On Feb 12, 2008, at 9:34 AM, Gilles Scokart wrote:



-----Original Message-----
From: Tim O'Brien [mailto:[EMAIL PROTECTED]
Sent: mardi 12 février 2008 16:03
To: Maven Developers List
Subject: Re: An Attribute Based POM


On Feb 12, 2008, at 3:58 AM, Benjamin Bentmann wrote:

For example, we'd can group groupId/artifactId/version into one
attribute
like this:

<dependency artifact="org.apache.maven:maven-project: 2.0.8" [...] />

Please don't do this. This would require another parsing step after
the XML
parsing and introduces further error sources. Use XML to structure
the data,
not some proprietary format. Third-party tools dealing with the POM
will
also appreciate a proper/pure XML representation of the project model.
Consider for instance the pain such string aggregates would cause
for XSLT
processing of the POM. Merging different pieces of data into a
single string
is in general a bad idea.


Couldn't disagree more.   Certain data has a native format.  Consider
something like a 24 hour time.   Is:

      <time>23:22:22.003</time>

an "undue burden" on different parsers?   No, this is reasonable.
This would be unreasonable:

      <time hour="23" minute="22" second="22" millis="003"/>

The idea that we have to design data around parsers means that you
sacrifice usability and readability.

I'd take it one step further than Emmanuel:

<dependencyGroup root="org.apache.maven">
 <dependency artifact="maven-project:2.0.8"/>
 <dependency artifact="continuum:continuum-model:1.1"/>
</dependencyGroup>

Should be:

<dependGroup root="org.apache.maven">
  maven-project:2.0.8
  continuum:continuum-model:1.1
</dependGroup>

XSLT can tokenize strings just fine.



Than why to use XML?  Why not have simple text?

Giles, why not simple text? People have already been working with POMs in alternative formats that don't involve XML at all. I guess the real question here is, why would it disturb people so much if someone had an alternative format for a POM for every day use, but when they published to a repo it used the standard format.



No seriously, keep the organisation and artefact separated from the version. There are plenty of use case that needs to identify them separately (like the management of the conflict, the management of the dependent projects).

If you really want something more textual, I suggest you look at buildr. It give you something like this :

AXIOM  = group("axiom-api", "axiom-impl", "axiom-dom",
                   :under=>"org.apache.ws.commons.axiom", version=>"1.2.4")
AXIS2 = "org.apache.axis2:axis2:jar:1.2"
OPENJPA = ["org.apache.openjpa:openjpa-all:jar:0.9.7", "net.sourceforge.serp:serp:jar:1.12.0"]
AXIS_OF_WS = [AXIS2, AXIOM]

compile.with OPENJPA, AXIS_OF_WS


Why not? It might be user friendly (for some users...). But I don't want to see this in a repository. IMO, XML is
much better.


No one is talking about modifying the repository, the repository should contain one format of POM, but there is no reason why there cannot be a diversity of implementations. Oh wait, people here think it would screw up "Universal Understanding".

:-)


Gilles







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



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

Reply via email to