ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Amerson <gregory.amer...@liferay.com>
Subject Re: API of IvyDE
Date Thu, 29 Aug 2013 09:00:59 GMT
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.getPath(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.liferay.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ée <nicolas.lalevee@hibnet.org
> 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 IvyConsole
> (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 Ivy
> 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 not
> in the other. It might be very confusing for the end user. And preferences
> 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 see
> what is actually exposed. But as soon as we are happy with the state of the
> 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
>
>


-- 
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message