On Feb 5, 2009, at 9:28 PM, Adam Murdoch wrote:



Hans Dockter wrote:
I have started to create a Wiki page for reviewing our DSL in general. So far I have added page with some ideas how our new dependency DSL could look like:

http://docs.codehaus.org/display/GRADLE/Dependencies



Generally, this look really good. I like the separation of repositories, configurations, dependencies and publications into separate concepts.

Some questions/comments:

It looks like a configuration is implicitly created when it is first referenced. I think this would be a good thing. Perhaps it should only happen while the configurations { } closure is executing.

Right.

It also looks like you can configure a domain object using either a map or a closure or both. I think this would be good. We should also apply this approach to pretty much every domain object create/add/ configure method - tasks, repositories, projects, and so on.

In the case of the examples for the dependencies, the map would not automatically map to properties of the domain object. Which makes sense in this case, as in some cases here we have to do some processing.

What is also interesting for more complex objects is the GroovyBuilder. I have used it to configure the Maven deployer (DefaultGroovyMavenDeployer).

I like the new format for dependencies. Do you think we would keep the 'group:module:revision' format as well? We probably should deprecate it and keep it for a few releases before removing it.

I'm not sure if we should throw the old notation out directly and provide a converter. Our users have to touch the build anyway, as configurations and repositories are now defined in different places (we could of course also provide backward compatibility here).

<snip>

- Hans

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





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

   http://xircles.codehaus.org/manage_email


Reply via email to