[IDEA] - Having a parent maven pom.xml for only the dependency versions

classic Classic list List threaded Threaded
29 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[IDEA] - Having a parent maven pom.xml for only the dependency versions

Claus Ibsen-2
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: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Christian Mueller
Administrator
What do you propose the "list of all the camel components and some other
stuff" should go?

Best,
Christian
-----------------

Software Integration Specialist

Apache Camel committer: https://camel.apache.org/team
V.P. Apache Camel: https://www.apache.org/foundation/
Apache Member: https://www.apache.org/foundation/members.html

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Thu, Aug 15, 2013 at 1:26 PM, Claus Ibsen <[hidden email]> 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: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Claus Ibsen-2
On Sat, Aug 17, 2013 at 12:01 AM, Christian Müller
<[hidden email]> wrote:
> What do you propose the "list of all the camel components and some other
> stuff" should go?
>

They should stay where they are. Its just all the versions that gets
moved into its own file, so the file ONLY has the versions. And that
makes the diff much easier.

> Best,
> Christian
> -----------------
>
> Software Integration Specialist
>
> Apache Camel committer: https://camel.apache.org/team
> V.P. Apache Camel: https://www.apache.org/foundation/
> Apache Member: https://www.apache.org/foundation/members.html
>
> https://www.linkedin.com/pub/christian-mueller/11/551/642
>
>
> On Thu, Aug 15, 2013 at 1:26 PM, Claus Ibsen <[hidden email]> 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: [hidden email]
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>>



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

AW: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Jan Matèrne (jhm)
> > What do you propose the "list of all the camel components and some
> > other stuff" should go?
> >
>
> They should stay where they are. Its just all the versions that gets
> moved into its own file, so the file ONLY has the versions. And that
> makes the diff much easier.

Do you mean to externalize the complete dependency (groupid, artefactid,
version) or just the version (and using properties in the pom)?

Jan

<pom>
   <dependencies>
       <includeDependencies/>
   </dependencies>
</pom>

<pom>
   <loadVersionProperties/>
   <dependencies>
       <dependency>
           <groupdId>junit</groupId>
           <artefactId>junit</artefactId>
           <version>${dependency.junit.version}</version>
...

Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Claus Ibsen-2
On Sat, Aug 17, 2013 at 9:30 AM, Jan Matèrne (jhm) <[hidden email]> wrote:

>> > What do you propose the "list of all the camel components and some
>> > other stuff" should go?
>> >
>>
>> They should stay where they are. Its just all the versions that gets
>> moved into its own file, so the file ONLY has the versions. And that
>> makes the diff much easier.
>
> Do you mean to externalize the complete dependency (groupid, artefactid,
> version) or just the version (and using properties in the pom)?
>
> Jan
>
> <pom>
>    <dependencies>
>        <includeDependencies/>
>    </dependencies>
> </pom>
>
> <pom>
>    <loadVersionProperties/>
>    <dependencies>
>        <dependency>
>            <groupdId>junit</groupId>
>            <artefactId>junit</artefactId>
>            <version>${dependency.junit.version}</version>
> ...
>

Yeah only the versions (we already have today in the parent/pom.xml)
in the <properties> should be externalized in its own file. So we have
both the parent/pom.xml and another file with the versions.

(Though not sure how to do that in Maven. But would assume its possible)

eg in parent/pom.xml we have 200+ versions and a bunch of other stuff.

<properties>

    <!-- dependency versions -->
    <abdera-version>1.1.3</abdera-version>
    <!-- Note that activemq dependency is only used for testing! -->
    <activemq-version>5.8.0</activemq-version>
    <ahc-version>1.7.19</ahc-version>
    <ant-bundle-version>1.7.0_6</ant-bundle-version>


--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

James Carman
In reply to this post by Claus Ibsen-2
So, the goal here is to be able to provide a list of version numbers
that change much easier for any release?

On Sat, Aug 17, 2013 at 3:09 AM, Claus Ibsen <[hidden email]> wrote:

> On Sat, Aug 17, 2013 at 12:01 AM, Christian Müller
> <[hidden email]> wrote:
>> What do you propose the "list of all the camel components and some other
>> stuff" should go?
>>
>
> They should stay where they are. Its just all the versions that gets
> moved into its own file, so the file ONLY has the versions. And that
> makes the diff much easier.
>
>> Best,
>> Christian
>> -----------------
>>
>> Software Integration Specialist
>>
>> Apache Camel committer: https://camel.apache.org/team
>> V.P. Apache Camel: https://www.apache.org/foundation/
>> Apache Member: https://www.apache.org/foundation/members.html
>>
>> https://www.linkedin.com/pub/christian-mueller/11/551/642
>>
>>
>> On Thu, Aug 15, 2013 at 1:26 PM, Claus Ibsen <[hidden email]> 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: [hidden email]
>>> Twitter: davsclaus
>>> Blog: http://davsclaus.com
>>> Author of Camel in Action: http://www.manning.com/ibsen
>>>
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Claus Ibsen-2
Yes

We have many Camel components so it would be great for ppl if they can
see more easily which versions has changed, when they upgrade from


Camel 2.12.0 to 2.13.1
Camel 2.12.1 to 2.13.5
Camel 2.12.1 to 2.14.2

PS: Dont mind the version 2.13 and 2.14, just for demo purpose, to say
that you can take any 2 Camel releases in the future and compare the
dependency versions much more easily.

And we dont have to maintain that manually at some release notes,
which is tedious, error prone, and the data is based on eg the
previous .0 release, eg for the current 2.12 in progress release
notes, the versions on the wiki is after the 2.11.0 release.

Instead ppl can just pick their Camel versions and compare using some
git diff tool or whatnot.




On Sat, Aug 17, 2013 at 1:08 PM, James Carman
<[hidden email]> wrote:

> So, the goal here is to be able to provide a list of version numbers
> that change much easier for any release?
>
> On Sat, Aug 17, 2013 at 3:09 AM, Claus Ibsen <[hidden email]> wrote:
>> On Sat, Aug 17, 2013 at 12:01 AM, Christian Müller
>> <[hidden email]> wrote:
>>> What do you propose the "list of all the camel components and some other
>>> stuff" should go?
>>>
>>
>> They should stay where they are. Its just all the versions that gets
>> moved into its own file, so the file ONLY has the versions. And that
>> makes the diff much easier.
>>
>>> Best,
>>> Christian
>>> -----------------
>>>
>>> Software Integration Specialist
>>>
>>> Apache Camel committer: https://camel.apache.org/team
>>> V.P. Apache Camel: https://www.apache.org/foundation/
>>> Apache Member: https://www.apache.org/foundation/members.html
>>>
>>> https://www.linkedin.com/pub/christian-mueller/11/551/642
>>>
>>>
>>> On Thu, Aug 15, 2013 at 1:26 PM, Claus Ibsen <[hidden email]> 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: [hidden email]
>>>> Twitter: davsclaus
>>>> Blog: http://davsclaus.com
>>>> Author of Camel in Action: http://www.manning.com/ibsen
>>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: [hidden email]
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen



--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Babak Vahdat
This post was updated on .
In reply to this post by Claus Ibsen-2
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 data 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: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

AW: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Jan Matèrne (jhm)
I just played with that maven plugin.
The problem is that it loads the properties after the validation phase.

That wont work:

<!-- http://mojo.codehaus.org/properties-maven-plugin/usage.html -->
<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:[hidden email]]
> Gesendet: Samstag, 17. August 2013 21:48
> An: [hidden email]
> 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.

Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Christian Mueller
Administrator
In reply to this post by Claus Ibsen-2
Is there a plugin you are aware of which supports this? If yes, +1

Best,
Christian
-----------------

Software Integration Specialist

Apache Camel committer: https://camel.apache.org/team
V.P. Apache Camel: https://www.apache.org/foundation/
Apache Member: https://www.apache.org/foundation/members.html

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Sat, Aug 17, 2013 at 10:00 AM, Claus Ibsen <[hidden email]> wrote:

> On Sat, Aug 17, 2013 at 9:30 AM, Jan Matèrne (jhm) <[hidden email]>
> wrote:
> >> > What do you propose the "list of all the camel components and some
> >> > other stuff" should go?
> >> >
> >>
> >> They should stay where they are. Its just all the versions that gets
> >> moved into its own file, so the file ONLY has the versions. And that
> >> makes the diff much easier.
> >
> > Do you mean to externalize the complete dependency (groupid, artefactid,
> > version) or just the version (and using properties in the pom)?
> >
> > Jan
> >
> > <pom>
> >    <dependencies>
> >        <includeDependencies/>
> >    </dependencies>
> > </pom>
> >
> > <pom>
> >    <loadVersionProperties/>
> >    <dependencies>
> >        <dependency>
> >            <groupdId>junit</groupId>
> >            <artefactId>junit</artefactId>
> >            <version>${dependency.junit.version}</version>
> > ...
> >
>
> Yeah only the versions (we already have today in the parent/pom.xml)
> in the <properties> should be externalized in its own file. So we have
> both the parent/pom.xml and another file with the versions.
>
> (Though not sure how to do that in Maven. But would assume its possible)
>
> eg in parent/pom.xml we have 200+ versions and a bunch of other stuff.
>
> <properties>
>
>     <!-- dependency versions -->
>     <abdera-version>1.1.3</abdera-version>
>     <!-- Note that activemq dependency is only used for testing! -->
>     <activemq-version>5.8.0</activemq-version>
>     <ahc-version>1.7.19</ahc-version>
>     <ant-bundle-version>1.7.0_6</ant-bundle-version>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

R. Sirchia
In reply to this post by Jan Matèrne (jhm)
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) <[hidden email]>wrote:

> I just played with that maven plugin.
> The problem is that it loads the properties after the validation phase.
>
> That wont work:
>
> <!-- http://mojo.codehaus.org/properties-maven-plugin/usage.html -->
> <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:[hidden email]]
> > Gesendet: Samstag, 17. August 2013 21:48
> > An: [hidden email]
> > 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.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Babak Vahdat
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.

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) <[hidden email]>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:[hidden email]]
> > Gesendet: Samstag, 17. August 2013 21:48
> > An: [hidden email]
> > 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.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Claus Ibsen-2
Hi

Yeah Babak's idea sounds good. Having that 2-level of parents.

On Sun, Aug 18, 2013 at 1:55 PM, Babak Vahdat
<[hidden email]> 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
> <http://camel.465427.n5.nabble.com/file/n5737472/dependencies.diff>  .
>
> 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: [hidden email]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

dkulp@apache.org

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 <[hidden email]> 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
> <[hidden email]> 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
>> <http://camel.465427.n5.nabble.com/file/n5737472/dependencies.diff>  .
>>
>> 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: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen

--
Daniel Kulp
[hidden email] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Babak Vahdat
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!

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 <[hidden email]> 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
> <[hidden email]> 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
>> <http://camel.465427.n5.nabble.com/file/n5737472/dependencies.diff>  .
>>
>> 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) <
>>
>>> apache@
>>
>>> >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: [hidden email]
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen

--
Daniel Kulp
[hidden email] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

dkulp@apache.org

On Aug 19, 2013, at 1:25 PM, Babak Vahdat <[hidden email]> 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
>
>
> [hidden email] 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
[hidden email] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Babak Vahdat


Am 19.08.13 20:01 schrieb "Daniel Kulp" unter <[hidden email]>:

>
>On Aug 19, 2013, at 1:25 PM, Babak Vahdat <[hidden email]>
>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.

Yeah indeed everybody is free to have his own opinion, especially when it
comes to the open source community :)

Babak

>
>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
>>
>>
>> [hidden email] 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-proper
>>>>>>ties-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/r
>>>>>>>>ead-
>>>>>>>> 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-f
>>>>>or-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
>[hidden email] - http://dankulp.com/blog
>Talend Community Coder - http://coders.talend.com
>


Reply | Threaded
Open this post in threaded view
|

AW: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Jan Matèrne (jhm)
> >>intention here in this thread is  the other way around, that's extract
> >>them out!

I dont think so.
Reading Claus post again:
http://camel.465427.n5.nabble.com/IDEA-Having-a-parent-maven-pom-xml-for-onl
y-the-dependency-versions-td5737322.html
"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."

That means (to me):
- simple text file containing the version numbers and their names
- that text file must not be manually maintained; it must be part of the
build(system)

That does not mean (to me) that this file has to be the source for the build
system.
Generating that file from the existing poms would also be possible - and
after my failing tests with Maven - the better solution.

Generation could be done
- Maven properties plugin
- XSLT and the like (pom --> txt)
- Maven Dependency plugin
http://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html
- ...


Jan


Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Jon Anstey
In reply to this post by dkulp@apache.org
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 <[hidden email]> wrote:

>
> On Aug 19, 2013, at 1:25 PM, Babak Vahdat <[hidden email]>
> 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
> >
> >
> > [hidden email] 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
> [hidden email] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


--
Cheers,
Jon
---------------
Red Hat, Inc.
Email: [hidden email]
Web: http://redhat.com
Twitter: jon_anstey
Blog: http://janstey.blogspot.com
Author of Camel in Action: http://manning.com/ibsen
Reply | Threaded
Open this post in threaded view
|

Re: [IDEA] - Having a parent maven pom.xml for only the dependency versions

Łukasz Dywicki
I missed begining of this discussion, however can't you simply use import scope in Maven dependency?

Cheers,
Łukasz Dywicki
--
[hidden email]
Twitter: ldywicki
Blog: http://dywicki.pl
Code-House - http://code-house.org

Wiadomość napisana przez Jon Anstey <[hidden email]> w dniu 21 sie 2013, o godz. 15:27:

> 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 <[hidden email]> wrote:
>
>>
>> On Aug 19, 2013, at 1:25 PM, Babak Vahdat <[hidden email]>
>> 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
>>>
>>>
>>> [hidden email] 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
>> [hidden email] - http://dankulp.com/blog
>> Talend Community Coder - http://coders.talend.com
>>
>>
>
>
> --
> Cheers,
> Jon
> ---------------
> Red Hat, Inc.
> Email: [hidden email]
> Web: http://redhat.com
> Twitter: jon_anstey
> Blog: http://janstey.blogspot.com
> Author of Camel in Action: http://manning.com/ibsen

12