On Aug 29, 2009, at 8:30 AM, Adam Murdoch wrote:



Hans Dockter wrote:
I'd like to improve the package organization of the Gradle source code.

The original idea was to have an org.gradle.api root package under which all the interfaces lies that are supposed to be used by Gradle users. org.gradle.api.internal contain the implementations and helper classes. The infrastructure code for running a Gradle build lies under the org.gradle root package.

I think this does not make sense any longer. From an embedded perspective the infrastructure is as much api as the stuff under org.gradle.api. And you also want to hook into the lifecycle from your build script. Therefore I think it makes sense to get rid of the api package all together.


I agree.

We would end up with org.gradle and org.gradle.internal as root packages.

Then we'd end up with:

org.gradle.a
org.gradle.internal.a
org.gradle.a.b
org.gradle.internal.a.b

One problem with this is that related classes (a.b.c.d.* and internal.a.b.c.d.*) are quite a bit apart in the hierarchy, particularly as we get deeper in the package hierarchy.

Which can be good or bad depending on what you are interested in. If you are only interested in the API this makes life easier.


It might be better to flip this round:

org.gradle.a
org.gradle.a.internal
org.gradle.a.b
org.gradle.a.b.internal

I don't feel strong about this. I had a look at the Eclipse code a while ago. They use internal as 'root'.

- Hans

--
Hans Dockter
Gradle Project Manager
http://www.gradle.org

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

   http://xircles.codehaus.org/manage_email


Reply via email to