This is not a trivial task so I would suggest the following:

1) find out what the ideal representation would be
2) determine what would be needed in modello to generate the reader/ writer (this will actually be a lot of work)
3) try the changes out in the core

Dealing with 1) should be relatively straight forward in collecting something in the Wiki, and you can look historically at what Spring did with their descriptors which is exactly what we're talking about. Find out how they dealt with it.

I think most of your time will be spent with 2). Basically you just need to ensure that the object model ends up being the same regardless of what read/writer you generate and use.

Right now in the core the Xpp3Reader is hard-coded but in the CAP branch I've already started working on figuring out how to figure out the version of the POM being used and use that information to select the right reader. But I think you're going to be busy with 1) and 2) for a while.

I don't think mixed versions are wise. You use one version of the other. Also I don't see scripting ever getting into the reader/ writers. The POM is data and for Maven proper I would never support scripting in the POM. That's not to say sibling projects can't use groovy builders, or ruby scripting. I think creating a attributed based POM will be hard enough.

Once 1) and 2) are done we can talk about integrating it into the core. But 1) and 2) can be completely done and tested before trying to push it into the core. If you push this into the dashboard and design proposals it's something I can bring up with the folks that show up to the Maven day next week. I can show them your proposal whatever state it is in next Friday to get some feedback for you.

On 10-Feb-08, at 1:34 AM, nicolas de loof wrote:

Hello,

Maven detractors blam maven  POM.xml to become huge XML files even for
simple tasks.
Considering the comparison with ant, the latest use XML attributes an few
XML elements, making tasks declaration consise.

Could we introduce a new XML schema (for maven 2.1) to support simple types
elements as attributes, maybe using namespaces :


<project>
 <modelVersion>4.0.0</modelVersion>

 <groupId>org.codehaus.mojo</groupId>
 <artifactId>my-project</artifactId>
 <version>1.0</version>
</project>

... could be written :

<project modelVersion="4.0.0"
groupId="org.codehaus.mojo" artifactId="my-project" version="1.0">
</project>

We could use namespaces to avoid colision in maven schemas, and
support a mix of elements and attributs :



<project m2:groupId="org.codehaus.mojo" m2:artifactId="my-project"
m2:version="1.0">
 <modelVersion>4.0.0</modelVersion>
</project>



The previous examples are just to fix the principle. Declaring
dependencies and plugins configuration could become really consice and
enhance readability.



Nico.

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A party which is not afraid of letting culture,
business, and welfare go to ruin completely can
be omnipotent for a while.

-- Jakob Burckhardt



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to