Tim,

I see where you're going and in general I agree with you as I think most
software should be extensible to handle unknown environments and unique
situations.  However, I think the biggest bang for buck is to fix/enhance
the current one way and then add pluggability for POM parser substitution if
it is really needed.  The 1 negative that I see in POM parser substitution
is that if a user is use to "classic" POM files and sees an "enhanced" POM
file then they will likely still be able to grok what's going on.  However,
a user seeing a groovy, jruby or Joe Blow's domain specific language POM
file will be in a WTF situation.  It kinda destroys the universal
understanding of Maven.

Wb


On Feb 10, 2008 11:01 AM, Tim O'Brien <[EMAIL PROTECTED]> wrote:

>
> On Feb 10, 2008, at 10:57 AM, nicolas de loof wrote:
>
> > Using attributes in place of XML elements is not revolutionary. I
> > don't
> > speak here about writting POMs in groovy !
> >
>
> That's the difference, I do.   I think people should have the
> opportunity to replace the parser entirely and write custom
> implementations.   Class POM + something more like what you propose.
> But I also don't think the door should be closed for someone to come
> along and write a parser that can read something like YAML or Groovy.
>
> > This is just about better use of XML, it requires only a "tweak" of
> > the
> > Xpp3Parser to handle attributes the same way it handles nested
> > elements, and
> > maybe to change the install/deploy to convert the POM to "classic"
> > element-based format.
> >
>
> The problem here is that there is one way to parse a model, changing
> that one way to a different way isn't the fix.  The fix is to provide
> more than one implementation.
>
>
>
> > Nico.
> >
> > 2008/2/10, Tim O'Brien <[EMAIL PROTECTED]>:
> >>
> >> Nicolas,
> >>
> >> I agree that POM verbosity is a problem, but I also think that a lot
> >> of people on this list are not going to want to introduce
> >> revolutionary changes to POM structure without being convinced (as we
> >> are) that it is a problem.
> >>
> >> The first step to this would be to add the ability to plugin in
> >> another parser implementation.   Abstract both the pom and settings
> >> parsing from the Xpp3 stuff generated by modello, and make the Xpp3
> >> parsers the default implementation.   At that point, it would be
> >> easier to generate alternative parsers or preprocessors (like what
> >> Redmond did with YAML).  What can't change is the infoset of the
> >> current POM, the current POM structure can't change because of
> >> backwards compatibility, the POM that is generated in a repository
> >> cannot change, but the format that people use to manage a project.
> >> That should be pluggable and customizable, but any change introduced
> >> can't break the current model.
> >>
> >> But, I'm not optimisitc it is going to happen unless someone just
> >> does
> >> it and writes a ranting blog entry about it.
> >>
> >> Tim O'Brien
> >>
> >> On Feb 10, 2008, at 3: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.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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