I tried to set (as you suggested in TODO)

xml.listStyle="flat"

and according to http://modello.codehaus.org/DataModel, this should support:

...
  </modules>
  <dependency groupId="easymock" artifactId="easymock" version="1.2_Java1.3"
scope="test"/>
  <dependencyManagement>
...

but modello ignores the flat style and generates the same parser as wrapped
:

<code>
    else if ( xmlStreamReader.getLocalName().equals( "dependencies" )  ) ...
</code>


That beeing said, I'm not sure this is a good idea to declare dependencies
anywhere in the POM, and not keep them grouped.

A better use (IMHO) of flat list format would be for plugins, executions,
goals, dependencies as child of dependencyManagement...

Nico.

2008/2/11, Brett Porter <[EMAIL PROTECTED]>:
>
> Hi,
>
> I've always wanted to see an attribute based POM, so based on Nicolas'
> suggestion I killed some time after waking up early this morning to do
> it.
>
> JIRA: http://jira.codehaus.org/browse/MNG-3397
>
> Here is a build to try:
> http://people.apache.org/~brett/apache-maven-2.0.9-SNAPSHOT-terse-bin.tar.gz
> and svn branch:
> http://svn.apache.org/repos/asf/maven/components/branches/maven-2.0.x-terse
>
> Here are two different files for comparison (it halved the size):
>
> http://svn.apache.org/viewvc/maven/archiva/trunk/pom.xml?content-type=text%2Fplain&view=co
>
> http://svn.apache.org/viewvc/maven/archiva/trunk/pom-4.1.0.xml?content-type=text%2Fplain&view=co
>
> What I did is basically convert all the primitive types in the model
> to attributes. I think more could be done (flattening lists, doing the
> same for plugin configuration elements), but this gets a big win at
> least in the dependencies section for minimal work.
>
> It should be completely backwards compatible. It detects v4.0.0 and
> reads it like it used to (then internally converts to the 4.1.0 Java
> model).
>
> Here's some notes on the implementation so far (again, go easy, I just
> whipped this up today and it's not production ready):
> - I see this as a stepping stone to the final solution. I've said this
> before, but I think the POM should separate the build information from
> the project metadata (particularly that stored in the repository). I
> think we need to take baby steps towards that though.
> - this could feasibly be applied to the settings and profile files too.
> - I switched to StAX in the process. This is likely going to introduce
> some small quirks we need to iron out (like the hack I added to parse
> Trygve's name - why did we ever allow that!) I think ideally we'd use
> the Xpp3Reader for 4.0.0 and the StaxReader for 4.1.0 for best
> compatibility. This would also fix the problem in that I've just
> removed the Xpp3Reader and so some plugins may choke. I'm sure the
> release plugin won't be happy, for example.
> - There is probably a slight performance overhead in reading v4 POMs
> since it repopulates the model twice. I haven't measured it but if
> it's an issue we could optimise the reader/converter. It also adds
> about 200k to the maven-model JAR.
> - It is very close to detecting based on namespace so we could enforce
> the use of that instead.
>
> Enjoy!
>
> Cheers,
> Brett
>
> --
> Brett Porter
> [EMAIL PROTECTED]
> http://blogs.exist.com/bporter/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to