camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jon Anstey <jans...@gmail.com>
Subject Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions
Date Wed, 21 Aug 2013 13:27:40 GMT
I like the idea of having a pom just for versions. We could use Babak's
proposal but instead of introducing another level of inheritance, just make
one of the current top level poms mostly properties and push everything
else into the other pom. So, either org.apache.camel:camel or
org.apache.camel:camel-parent would become the "dependencies pom". Yes,
still non-standard from a Maven POV, but at least no less standard than we
already are :-)


On Mon, Aug 19, 2013 at 3:31 PM, Daniel Kulp <dkulp@apache.org> wrote:

>
> On Aug 19, 2013, at 1:25 PM, Babak Vahdat <babak.vahdat@swissonline.ch>
> wrote:
>
> > Hi Dan,
> >
> > how exactly does your proposal look like? If I'm getting you right you
> > suggest to push all these properties up into the top most level POM we
> have,
> > that is org.apache.camel:camel:2.12-SNAPSHOT right? But then again we've
> got
> > the same problem as already today because these Maven properties would be
> > mixed up with a lot of other stuff. And the intention here in this
> thread is
> > the other way around, that's extract them out!
>
> I just don't see any value in pulling them out.  It doesn't solve any
> problem that isn't "trivial", but then creates an even greater confusion by
> having a more complicated and more non-standard build system.
>
> Seriously, if you do:
>
> git diff a1acd3454e91e7388f4165715b823fa4749502ea parent/pom.xml
>
> (which is the diff between master and 2.11.0)
>
> There is very little that would not be part of the "diff" that would be
> provided from your proposal, but there is additional information in there
> that is important that your proposal would miss. (like the dropping of the
> spring3 profile and the changing of the groupId/artifactId on the ehcache
> things, different Saxon artifact ID)
>
> I would suggest just removing all the camel components from the
> parent/pom.xml and adding <version>${project.version}</version> in the
> places that actually depend on them.  Defining dependencies on stuff you
> are building like this in the parent depmngt section is again one of those
> 'kind of non-standard' type things.   Most of the components are only
>  imported into the assembly and the tests so it's not a "huge" deal.
>
>
>
> Dan
>
>
>
>
> >
> > Babak
> >
> >
> > dkulp@apache.org wrote
> >> Personally, I was going to suggest going the other direction and
> >> completely get rid of the "parent" pom and move everything into the top
> >> level pom.   We already have a non-standard maven layout due to the
> parent
> >> pom which can be confusing for people (and tools).   I'd much rather try
> >> and find a way to go back to a more standard layout than introduce yet
> >> another layer in there to make it even more non-standard.
> >>
> >> That's my opinion.
> >>
> >> Dan
> >>
> >>
> >>
> >> On Aug 18, 2013, at 8:35 AM, Claus Ibsen &lt;
> >
> >> claus.ibsen@
> >
> >> &gt; wrote:
> >>
> >>> Hi
> >>>
> >>> Yeah Babak's idea sounds good. Having that 2-level of parents.
> >>>
> >>> On Sun, Aug 18, 2013 at 1:55 PM, Babak Vahdat
> >>> &lt;
> >
> >> babak.vahdat@
> >
> >> &gt; wrote:
> >>>> I just tried out a different approach which:
> >>>>
> >>>> - doesn't require any Maven plugin usage.
> >>>> - doesn't require to convert the Maven properties from the XML format
> to
> >>>> the
> >>>> Java properties file format etc.
> >>>> - is really simple.
> >>>>
> >>>> So the idea is to simply bump one more level of parent-child
> dependency
> >>>> into
> >>>> our POM hierarchy (org.apache.camel:camel-dependencies:2.12-SNAPSHOT)
> >>>> which
> >>>> contains all the Maven properties of our 3rd party dependencies. And
> >>>> this is
> >>>> the diff for it  dependencies.diff
> >>>> &lt;
> http://camel.465427.n5.nabble.com/file/n5737472/dependencies.diff&gt;
> >>>> .
> >>>>
> >>>> Then for the release notes of the upcomming 2.12.0 release we could
> just
> >>>> add
> >>>> the following link about our 3rd party dependencies, of course right
> now
> >>>> this resource doesn't exist on the central repo :-)
> >>>>
> http://search.maven.org/remotecontent?filepath=org/apache/camel/camel-dependencies/2.12.0/camel-dependencies-2.12.0.pom
> >>>>
> >>>>
> >>>> For example in case of our Camel Parent POM of the 2.11.1 release the
> >>>> link
> >>>> is:
> >>>>
> http://search.maven.org/remotecontent?filepath=org/apache/camel/camel-parent/2.11.1/camel-parent-2.11.1.pom
> >>>>
> >>>> Babak
> >>>>
> >>>>
> >>>> R. Sirchia wrote
> >>>>> Hi,
> >>>>>
> >>>>> Why don't you do it the other way around?
> >>>>>
> >>>>> I understand from Claus that his desire is not so much to manage
the
> >>>>> dependencies and their versions in a different file, but just to
> >>>>> provide a
> >>>>> file where the version properties can be easily read from and diffed
> >>>>> between releases.
> >>>>>
> >>>>> In that case, you could simply leave everything as it is and use
the
> >>>>> properties maven plugin to write the existing properties to a
> >>>>> properties
> >>>>> file:
> >>>>>
> http://mojo.codehaus.org/properties-maven-plugin/write-project-properties-mojo.html
> >>>>>
> >>>>> Optionally, the end result can be filtered using for example a
> >>>>> maven-antrun-plugin goal to leave out any non-version properties,
> which
> >>>>> should be easy as the version definitions (can easilly be made to)
> >>>>> follow
> >>>>> a
> >>>>> certain naming convention.
> >>>>>
> >>>>> The end result (a clean *.properties file) can then be attached
using
> >>>>> the
> >>>>> build-helper plugin. It is then available in Maven Central to be
> >>>>> referenced
> >>>>> from the release notes, diffed or imported by any user, etc.
> >>>>>
> >>>>> Riccardo
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Sat, Aug 17, 2013 at 10:23 PM, Jan Matèrne (jhm) &lt;
> >>>>
> >>>>> apache@
> >>>>
> >>>>> &gt;wrote:
> >>>>>
> >>>>>> I just played with that maven plugin.
> >>>>>> The problem is that it loads the properties after the validation
> >>>>>> phase.
> >>>>>>
> >>>>>> That wont work:
> >>>>>>
> >>>>>>
> >>>>
> >>>>>>
> >>>>>
> >> <project>
> >>>>>>
> >>>>>
> >> <modelVersion>
> >>>>> 4.0.0
> >>>>>
> >> </modelVersion>
> >>>>>>
> >>>>>>
> >>>>>
> >> <groupId>
> >>>>> just-test
> >>>>>
> >> </groupId>
> >>>>>>
> >>>>>
> >> <artifactId>
> >>>>> version-test
> >>>>>
> >> </artifactId>
> >>>>>>
> >>>>>
> >> <version>
> >>>>> 1.0
> >>>>>
> >> </version>
> >>>>>>
> >>>>>>
> >>>>>
> >> <build>
> >>>>>>
> >>>>>
> >> <plugins>
> >>>>>>
> >>>>>
> >> <plugin>
> >>>>>>
> >>>>>
> >> <groupId>
> >>>>> org.codehaus.mojo
> >>>>>
> >> </groupId>
> >>>>>>
> >>>>>
> >> <artifactId>
> >>>>> properties-maven-plugin
> >>>>>
> >> </artifactId>
> >>>>>>
> >>>>>
> >> <version>
> >>>>> 1.0-alpha-2
> >>>>>
> >> </version>
> >>>>>>
> >>>>>
> >> <executions>
> >>>>>>
> >>>>>
> >> <execution>
> >>>>>>
> >>>>>
> >> <phase>
> >>>>> initialize
> >>>>>
> >> </phase>
> >>>>>>
> >>>>>
> >> <goals>
> >>>>>>
> >>>>>
> >> <goal>
> >>>>> read-project-properties
> >>>>>
> >> </goal>
> >>>>>>
> >>>>>
> >> </goals>
> >>>>>>
> >>>>>
> >> <configuration>
> >>>>>>
> >>>>>
> >> <files>
> >>>>>>
> >>>>>
> >> <file>
> >>>>> versions.properties
> >>>>>
> >> </file>
> >>>>>>
> >>>>>
> >> </files>
> >>>>>>
> >>>>>
> >> </configuration>
> >>>>>>
> >>>>>
> >> </execution>
> >>>>>>
> >>>>>
> >> </executions>
> >>>>>>
> >>>>>
> >> </plugin>
> >>>>>>
> >>>>>
> >> </plugins>
> >>>>>>
> >>>>>
> >> </build>
> >>>>>>
> >>>>>>
> >>>>>
> >> <dependencies>
> >>>>>>
> >>>>>
> >> <dependency>
> >>>>>>
> >>>>>
> >> <groupId>
> >>>>> junit
> >>>>>
> >> </groupId>
> >>>>>>
> >>>>>
> >> <artifactId>
> >>>>> junit
> >>>>>
> >> </artifactId>
> >>>>>>
> >>>>>
> >> <version>
> >>>>> ${junit}
> >>>>>
> >> </version>
> >>>>>>
> >>>>>
> >> </dependency>
> >>>>>>
> >>>>>
> >> </dependencies>
> >>>>>>
> >>>>>
> >> </project>
> >>>>>>
> >>>>>>
> >>>>>> I also tried putting a
> >>>>>>
> >>>>>
> >> <properties>
> >>>>>>
> >>>>>
> >> <junit>
> >>>>> 1
> >>>>>
> >> </junit>
> >>>>>>
> >>>>>
> >> </properties>
> >>>>>> as placeholder for the validation doesnt work.
> >>>>>> The property is not changed to the stored junit=4.9 in my file.
> >>>>>>
> >>>>>>
> >>>>>> Current ideas:
> >>>>>> - building our own mvn plugin (enhancing that plugin) for loading
> the
> >>>>>> props
> >>>>>> and overwrite existing properties
> >>>>>> - generate a valid pom from the version-list
> >>>>>>
> >>>>>>
> >>>>>> Jan
> >>>>>>
> >>>>>>
> >>>>>>> -----Urspr√ľngliche Nachricht-----
> >>>>>>> Von: Babak Vahdat [mailto:
> >>>>
> >>>>> babak.vahdat@
> >>>>
> >>>>> ]
> >>>>>>> Gesendet: Samstag, 17. August 2013 21:48
> >>>>>>> An:
> >>>>
> >>>>> dev@.apache
> >>>>
> >>>>>>> Betreff: Re: [IDEA] - Having a parent maven pom.xml for
only the
> >>>>>>> dependency versions
> >>>>>>>
> >>>>>>> Hi
> >>>>>>>
> >>>>>>> what I'm aware of for this purpose is the following plugin:
> >>>>>>>
> >>>>>>> http://mojo.codehaus.org/properties-maven-plugin/usage.html
> >>>>>>>
> >>>>>>> However it's not maintained anymore since 2009!
> >>>>>>>
> >>>>>>> The other option would be to use the Kuali's plugin but
I'm not
> sure
> >>>>>>> about it's licence (it's already available in central repo):
> >>>>>>>
> >>>>>>>
> http://site.kuali.org/maven/plugins/properties-maven-plugin/1.1.9/read-
> >>>>>>> project-properties-mojo.html
> >>>>>>>
> >>>>>>> No matter which one we would want to make use of, the tough
part of
> >>>>>>> this would be to convert the lines like:
> >>>>>>>
> >>>>>>>
> >>>>>
> >> <ahc-version>
> >>>>> 1.7.19
> >>>>>
> >> </ahc-version>
> >>>>>>>
> >>>>>>> into:
> >>>>>>>
> >>>>>>> ahc-version=1.7.19
> >>>>>>>
> >>>>>>> But it should be possible to automate this conversion with
couple
> of
> >>>>>>> lines of code, or maybe even a new Camel date format for
this
> purpose
> >>>>>>> :-)
> >>>>>>>
> >>>>>>> Babak
> >>>>>>>
> >>>>>>>
> >>>>>>> Claus Ibsen-2 wrote
> >>>>>>>> Hi
> >>>>>>>>
> >>>>>>>> Today we have the parent/pom.xml file which has both
all the
> >>>>>>>> versions
> >>>>>>>> of the 3rd party JARs we have as dependencies. And also
a list of
> >>>>>>>> all
> >>>>>>>> the camel components and some other stuff.
> >>>>>>>>
> >>>>>>>> I wonder if we could have all the dependency versions
in a single
> >>>>>>>> file, without all the other stuff.
> >>>>>>>>
> >>>>>>>> This would make it easier for ppl to see what are the
version
> >>>>>>>> changes
> >>>>>>>> between any two Camel versions, but just diff the 2
files?
> >>>>>>>>
> >>>>>>>> And also we could just have such a link in the release
notes so we
> >>>>>>>> dont have to manually keep all the versions upgrades
in the
> release
> >>>>>>>> notes up to date as well.
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Claus Ibsen
> >>>>>>>> -----------------
> >>>>>>>> Red Hat, Inc.
> >>>>>>>> Email:
> >>>>>>>
> >>>>>>>> cibsen@
> >>>>>>>
> >>>>>>>> Twitter: davsclaus
> >>>>>>>> Blog: http://davsclaus.com
> >>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> View this message in context:
> http://camel.465427.n5.nabble.com/IDEA-
> >>>>>>> Having-a-parent-maven-pom-xml-for-only-the-dependency-versions-
> >>>>>>> tp5737322p5737460.html
> >>>>>>> Sent from the Camel Development mailing list archive at
Nabble.com.
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> View this message in context:
> >>>>
> http://camel.465427.n5.nabble.com/IDEA-Having-a-parent-maven-pom-xml-for-only-the-dependency-versions-tp5737322p5737472.html
> >>>> Sent from the Camel Development mailing list archive at Nabble.com.
> >>>
> >>>
> >>>
> >>> --
> >>> Claus Ibsen
> >>> -----------------
> >>> Red Hat, Inc.
> >>> Email:
> >
> >> cibsen@
> >
> >>> Twitter: davsclaus
> >>> Blog: http://davsclaus.com
> >>> Author of Camel in Action: http://www.manning.com/ibsen
> >>
> >> --
> >> Daniel Kulp
> >
> >> dkulp@
> >
> >> - http://dankulp.com/blog
> >> Talend Community Coder - http://coders.talend.com
> >
> >
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/IDEA-Having-a-parent-maven-pom-xml-for-only-the-dependency-versions-tp5737322p5737525.html
> > Sent from the Camel Development mailing list archive at Nabble.com.
>
> --
> Daniel Kulp
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


-- 
Cheers,
Jon
---------------
Red Hat, Inc.
Email: janstey@redhat.com
Web: http://redhat.com
Twitter: jon_anstey
Blog: http://janstey.blogspot.com
Author of Camel in Action: http://manning.com/ibsen

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message