--- 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
