--- On Mon, 3/8/10, Adam Murdoch <[email protected]> wrote:

> From: Adam Murdoch <[email protected]>
> Subject: Re: [gradle-dev] removal of 'unused code' in open-api
> To: [email protected]
> Date: Monday, March 8, 2010, 11:09 PM
> 
> 
> On 5/03/10 1:29 AM, Mike wrote:
> > Adam,
> >    on January 5th you removed several
> classes from the Open API project of gradle. The comment
> states that these were unused. These classes are being used
> by my Idea plugin (which I'm finally back working on trying
> to see if I can get it into the open source community). I
> can add them back or you could revert the change, but
> specifically, I wanted you to be aware they are used by an
> external project. If you're wondering why, its because the
> Open API project is trying to shield external users from
> changes in gradle. My hope was that once gradle hits 1.0,
> only additions would be made to the Open API thereby gaining
> backward compatibility for things like IDE plugins and CI
> servers. I wanted to decouple versions of gradle and IDEs so
> people can be free to upgrade either at any time (nothing
> more frustrating than when your latest IDE isn't compatible
> with your tools). Its also been made generic so many IDE can
> take advantage of several features in both gradle
> >   and the gradle UI.
> >    
> 
> I'm curious, why doesn't the Gradle GUI use this code? I
> would have thought an IDE plugin and the Gradle GUI would
> have pretty much the same needs as far as launching Gradle
> goes. Which suggests they should use the same code for doing
> so.
> 

 The IDE plugin and the Gradle GUI DO share the same code (this way most new 
features in the GUI will automatically show up in the plugin). The difference 
is that the code in open-API has some additional code that A) handles loading 
the gradle UI based on an external Gradle directory. And B) is meant to shield 
external users from changes. In fact, the open-API is really just a few static 
functions that handle loading gradle along with some wrappers. When the Gradle 
GUI is loaded via '--gui', its running within Gradle so we can instantiate the 
UI classes directly. The open-API handles loading Gradle for you. It not a 
significant amount of code, but it seems like code that anyone would have to 
do. Plus, because its calling inner Gradle code, its subject to change over 
time. That and the wrappers are part of what shields external users from 
changes.
  There is also some non-GUI code in the open-API. This is meant to aid just 
executing Gradle commands from an external process such as a headless 
Continuous Integration server plugin or the like.

Mike
Automated Logic Research Team




> 
> -- Adam Murdoch
> Gradle Developer
> http://www.gradle.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>    http://xircles.codehaus.org/manage_email
> 
> 
> 




---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to