Return-Path: X-Original-To: apmail-ant-dev-archive@www.apache.org Delivered-To: apmail-ant-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B656A1002F for ; Thu, 29 Aug 2013 09:02:18 +0000 (UTC) Received: (qmail 25761 invoked by uid 500); 29 Aug 2013 09:02:16 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 25477 invoked by uid 500); 29 Aug 2013 09:02:09 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 25459 invoked by uid 99); 29 Aug 2013 09:02:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Aug 2013 09:02:07 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of 4615833@liferay.com designates 74.125.82.41 as permitted sender) Received: from [74.125.82.41] (HELO mail-wg0-f41.google.com) (74.125.82.41) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Aug 2013 09:02:00 +0000 Received: by mail-wg0-f41.google.com with SMTP id b12so993761wgh.4 for ; Thu, 29 Aug 2013 02:01:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=TVQKOYUYvgGCRlzMDN2ZtOWtIsH032mOpDhRYnzZRBU=; b=RapjuBLPQ5ApZlZjbNr6PaA/OtMkq2l4c6wd1t9AJ28sMIn7sKrAsa5cE5PToV0+0e s93jShKbWm0WAMlQ2EpVLprn5Gx7n3Kv6XauE6LjeaLL6iApxO+igb4LHXGWgdzjh6qu vOAbWcMsnmzWVhDgow7/HmQe27izPoOVARnm4wTFaTgY+v5qA5W/vn5Hlda/uTspQjSy /4NmgxZv+bJ/Ggzm0QE6w74gN7XZ0CFTt0+Yh7XwOl3qyL5ishl38Ady0P9FADNB3mNi e1BvD8m8GlyfrZCcJQ9I2u0mU2NuVHjiKJ0UgLygJsg2ucNdVOGw4hxwbWErTrysxiQz BAZg== X-Gm-Message-State: ALoCoQmf/ErSl9sGYGdXymo8SlR4dtfVYIhLb7CtPUhqoq/47U1dvaSfiqU1+scFjPxv9vAjP+jJ X-Received: by 10.195.12.170 with SMTP id er10mr4283133wjd.5.1377766899356; Thu, 29 Aug 2013 02:01:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.4.134 with HTTP; Thu, 29 Aug 2013 02:00:59 -0700 (PDT) In-Reply-To: <1F4BBBED-A20E-44FE-9773-35B555417D1A@hibnet.org> References: <1F4BBBED-A20E-44FE-9773-35B555417D1A@hibnet.org> From: Greg Amerson Date: Thu, 29 Aug 2013 17:00:59 +0800 Message-ID: Subject: Re: API of IvyDE To: Ant Developers List Content-Type: multipart/alternative; boundary=047d7bb04c929e9af304e5125ac0 X-Virus-Checked: Checked by ClamAV on apache.org --047d7bb04c929e9af304e5125ac0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello Nicolas, We just released a new version of Liferay IDE, that uses IvyDE to configure some Ivy based Liferay projects. We used the latest nightly build of IvyDE as our integration point: https://builds.apache.org/job/IvyDE-updatesite/673/ So for Liferay projects that use Ivy, our Eclipse plugin does the following= : - Add ivy nature - Add ivy container with a bunch of Liferay specific settings - Perform resolve on the Ivy container We were able to use the IvyDE exported APIs, in most cases except for when we were creating the Ivy container path. I did not want to hard-code the construction of the container path, instead I feel using the logic from IvyDE directly is much better for downstream projects like us to make sure we are constructing the path correctly. Here is the method that I wanted to use: org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainerConfAdapter.getPa= th(IvyClasspathContainerConfiguration) But this method is unavailable downstream, so for our latest release we created a new class called IvyUtil where we copied this method into it. See here: https://github.com/liferay/liferay-ide/blob/master/tools/plugins/com.lifera= y.ide.sdk.ui/src/com/liferay/ide/sdk/ui/IvyUtil.java Would your team consider creating an API for this usage? Thanks, Greg On Tue, Jul 30, 2013 at 1:56 AM, Nicolas Lalev=E9e wrote: > As discussed recently with Greg, IvyDE needs a proper API so that other > plugin can rely on. In house we do a such "external" plugin to IvyDE: > EasyAnt4e, the eclipse plugin for the integration of EasyAnt into Eclipse= . > I think it is a good use case and I tried to make a proper API usable by > EasyAnt4e. I think I have been able to make something nice. See my last > commit r1508149. And hopefully nothing too internal is exposed. > > There is a corner case though, and I don't know what to do. The IvyConsol= e > (from IvyDE) is extended by EasyAntConsoleImpl (from EasyAnt4e). I am not= a > big fan of exposing the IvyConsole. It is too tied to the way IvyDE and I= vy > itself print the logs. I have not tested, but I guess that in the current > state, depending of which console starts first, logs will go in one but n= ot > in the other. It might be very confusing for the end user. And preference= s > regarding the colors and the log level are also being shared. Probably > another mess. > Did I missed something ? Couldn't the EasyAntConsole implements its own > log stream handling ? > > Note: it is a common practice to have "internal" in the name of the > packages which are not exposed. I haven't renamed every package, since it > will move a lot of resources. So you should rely on the MANIFEST.MF to se= e > what is actually exposed. But as soon as we are happy with the state of t= he > code, we could rename them. > > Nicolas > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org > For additional commands, e-mail: dev-help@ant.apache.org > > --=20 Greg Amerson Liferay Developer Tools Liferay, Inc. www.liferay.com --047d7bb04c929e9af304e5125ac0--