You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Joachim Rohde <ma...@joachimrohde.com> on 2015/08/12 11:54:54 UTC

Re: [wicketstuff] Can't we get rid of the distinction between JDK-versions on the folder level?

Had anyone had the chance to have a look already at this?

On 07/31/2015 11:25 PM, Joachim Rohde wrote:
> I finally found the time today to make those changes which you can find
> here: https://github.com/JoachimRohde/core
>
> Since the diff is "slightly" bigger than usually, here a short
> description of the relevant changes I made:
>
> - The animal sniffer plugin was integrated into the parent POM where it
> is now executed during the compile phase (see:
> https://github.com/wicketstuff/core/commit/5f68a8e7f9fb94dd4536817556aefb41aeb5afeb#diff-f44ca8b53c4fd9a67160bc238396d231)
>
>
> - Where it was necessary I overwrote the settings in the project POMs
> (see e.g.:
> https://github.com/wicketstuff/core/commit/5f68a8e7f9fb94dd4536817556aefb41aeb5afeb#diff-290ebaa69933b91a6f5c1e25f609062a)
>
>
> - I moved all project folders to the root-folder and included the
> modules in the POM. The remaining JDK-specific folders with the
> respective POM has been removed.
>
> Same I did for the wicket-6.x branch.
>
> Any new project on the wicket-6.x branch which uses a newer JDK than
> version 6 would need to include following in the project POM:
>
>   <build>
>          <pluginManagement>
>              <plugins>
>                  <!--
>                  Overwrite compiler plugin configuration from parent-POM
>                  since we want this project to allow features from Java 7.
>                  -->
>                  <plugin>
>                      <groupId>org.apache.maven.plugins</groupId>
>                      <artifactId>maven-compiler-plugin</artifactId>
>                      <configuration>
>                          <source>1.7</source>
>                          <target>1.7</target>
>                      </configuration>
>                  </plugin>
>              </plugins>
>          </pluginManagement>
>          <plugins>
>              <!--
>              Overwrite animal sniffer plugin configuration from parent-POM
>              since we want this project to allow features from Java 7.
>              -->
>              <plugin>
>                  <groupId>org.codehaus.mojo</groupId>
>                  <artifactId>animal-sniffer-maven-plugin</artifactId>
>
>                  <executions>
>                      <execution>
>                          <id>check-java-version</id>
>                          <phase>compile</phase>
>                          <goals>
>                              <goal>check</goal>
>                          </goals>
>                          <configuration>
>                              <signature>
>
> <groupId>org.codehaus.mojo.signature</groupId>
>                                  <artifactId>java17</artifactId>
>                                  <version>1.0</version>
>                              </signature>
>                          </configuration>
>                      </execution>
>                  </executions>
>              </plugin>
>          </plugins>
>      </build>
>
> Same applies to new projects on the master branch which wants to take
> adavantage of the JDK 8. At the moment we don't have any projects which
> requires JDK 8.
> But since there is no signature from animal sniffer itself for JDK 8
> yet, the project POM looks a bit different:
>
>
>   <build>
>          <pluginManagement>
>              <plugins>
>                  <!--
>                  Overwrite compiler plugin configuration from parent-POM
>                  since we want this project to allow features from Java 7.
>                  -->
>                  <plugin>
>                      <groupId>org.apache.maven.plugins</groupId>
>                      <artifactId>maven-compiler-plugin</artifactId>
>                      <configuration>
>                          <source>1.8</source>
>                          <target>1.8</target>
>                      </configuration>
>                  </plugin>
>              </plugins>
>          </pluginManagement>
>          <plugins>
>              <!--
>              Overwrite animal sniffer plugin configuration from parent-POM
>              since we want this project to allow features from Java 7.
>              -->
>              <plugin>
>                  <groupId>org.codehaus.mojo</groupId>
>                  <artifactId>animal-sniffer-maven-plugin</artifactId>
>
>                  <executions>
>                      <execution>
>                          <id>check-java-version</id>
>                          <phase>compile</phase>
>                          <goals>
>                              <goal>check</goal>
>                          </goals>
>                          <configuration>
>                              <signature>
>
> <groupId>com.ianbrandt.maven.signature</groupId>
>                                  <artifactId>java1.8</artifactId>
>                                  <version>1.0</version>
>                              </signature>
>                          </configuration>
>                      </execution>
>                  </executions>
>              </plugin>
>          </plugins>
>      </build>
>
> The artifact for the signature comes from
> https://github.com/ianbrandt/animal-sniffer-signatures and needs to be
> deployed manually to the local Maven repository since it's not available
> on Maven central.
>
> Any feedback is highly appreciated. (Anything unclear? Have I missed
> something?)
>
> Joachim
>
> On 05/17/2015 02:58 PM, Joachim Rohde wrote:
>> I would change both branches. If only one branch is changed nothing
>> would change (regarding the cherry picking).
>>
>> Joachim
>>
>> On 05/17/2015 02:23 PM, Martin Grigorov wrote:
>>> Hi Joachim,
>>>
>>> What is your plan? Make the change only in master or also in
>>> wicket-6.x too?
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sun, May 17, 2015 at 12:46 PM, Joachim Rohde <
>>> mailinglist@joachimrohde.com> wrote:
>>>
>>>> Hi Martin,
>>>>
>>>> time is a bit scarce for me at the moment. But I will give it a try
>>>> within
>>>> the next few weeks.
>>>>
>>>> Joachim
>>>>
>>>>
>>>> On 05/07/2015 08:21 AM, Martin Grigorov wrote:
>>>>
>>>>> Hi Joachim,
>>>>>
>>>>> The reason to use two separate folders is that at deploy time we use
>>>>> [1]:
>>>>> $ cd jdk-1.6.x; JAVA_HOME=$JAVA_6_HOME mvn deploy ....
>>>>> $ cd ../jdk-7.x; JAVA_HOME=$JAVA_7_HOME mvn deploy ....
>>>>> $ cd ../jdk-8.x; JAVA_HOME=$JAVA_8_HOME mvn deploy ....
>>>>>
>>>>> With your approach we could just use JAVA_8_HOME for all of them.
>>>>> m-compiler-p's settings will set the appropriate -target for each
>>>>> module.
>>>>> But this is not enough - we have to use something like
>>>>> http://mojo.codehaus.org/animal-sniffer-maven-plugin/ to make sure
>>>>> that
>>>>> jdk
>>>>> 1.6/7.x modules do not use feature from a newer JDK, because
>>>>> compiler's
>>>>> -target won't help.
>>>>>
>>>>> I think it should work.
>>>>> Do you want to try it out?
>>>>>
>>>>>
>>>>> 1.
>>>>>
>>>>> https://github.com/wicketstuff/core/wiki/Wicket-Stuff-Core-Release-Process#steps-to-create-new-version
>>>>>
>>>>>
>>>>>
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>>
>>>>> On Wed, May 6, 2015 at 11:50 PM, Joachim Rohde <
>>>>> mailinglist@joachimrohde.com
>>>>>
>>>>>> wrote:
>>>>>>
>>>>>
>>>>>   Hi,
>>>>>> As I already mentioned the other day I was porting some changes from
>>>>>> master branch to the wicket-6.x branch (
>>>>>>
>>>>>> http://apache-wicket.1842946.n4.nabble.com/wicketstuff-Need-help-with-cherry-picking-td4670615.html
>>>>>>
>>>>>>
>>>>>> )
>>>>>> and had some trouble doing so, since Git was not able to
>>>>>> cherry-pick my
>>>>>> changes due to a different folder structure. Since this was really
>>>>>> a pain
>>>>>> in the neck (and quite erroneous) I would like to know if we cannot
>>>>>> get
>>>>>> rid
>>>>>> of the distinction between different JDK versions in the folder
>>>>>> structure.
>>>>>>
>>>>>> At the moment all projects on the master branch are located in the
>>>>>> jdk-1.7-parent folder (since no project requires Java 8 yet, the
>>>>>> jdk-1.8-parent folder is empty). Most of those projects reside in the
>>>>>> jdk-1.6-parent folder on the wicket-6.x branch, making it
>>>>>> impossible to
>>>>>> simply downport changes via cherry-picking. Only difference between
>>>>>> the
>>>>>> POMs in those folders are the source- and target-level for the Maven
>>>>>> compiler plugin.
>>>>>>
>>>>>> Can't we just put everything in one folder and override source- and
>>>>>> target-level in the project specific POM if a project needs a higher
>>>>>> version than the default one? The only drawback I see at the
>>>>>> moment is
>>>>>> the
>>>>>> fact, that you cannot recognize at a first glance if a project
>>>>>> needs a
>>>>>> higher Java version. Or do I overlook here something?
>>>>>>
>>>>>> To be honest: I don't know if I would downport bigger changes on a
>>>>>> project
>>>>>> when myself only needs those changes on the master branch (since I'm
>>>>>> already using Wicket 1.7) and downporting is such a hassle.
>>>>>>
>>>>>> Joachim
>>>>>>
>>>>>>
>>>>>
>>>
>>
>

Re: [wicketstuff] Can't we get rid of the distinction between JDK-versions on the folder level?

Posted by Martin Grigorov <mg...@apache.org>.
I'll do it in the next few days!

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Aug 12, 2015 at 12:54 PM, Joachim Rohde <
mailinglist@joachimrohde.com> wrote:

> Had anyone had the chance to have a look already at this?
>
>
> On 07/31/2015 11:25 PM, Joachim Rohde wrote:
>
>> I finally found the time today to make those changes which you can find
>> here: https://github.com/JoachimRohde/core
>>
>> Since the diff is "slightly" bigger than usually, here a short
>> description of the relevant changes I made:
>>
>> - The animal sniffer plugin was integrated into the parent POM where it
>> is now executed during the compile phase (see:
>>
>> https://github.com/wicketstuff/core/commit/5f68a8e7f9fb94dd4536817556aefb41aeb5afeb#diff-f44ca8b53c4fd9a67160bc238396d231
>> )
>>
>>
>> - Where it was necessary I overwrote the settings in the project POMs
>> (see e.g.:
>>
>> https://github.com/wicketstuff/core/commit/5f68a8e7f9fb94dd4536817556aefb41aeb5afeb#diff-290ebaa69933b91a6f5c1e25f609062a
>> )
>>
>>
>> - I moved all project folders to the root-folder and included the
>> modules in the POM. The remaining JDK-specific folders with the
>> respective POM has been removed.
>>
>> Same I did for the wicket-6.x branch.
>>
>> Any new project on the wicket-6.x branch which uses a newer JDK than
>> version 6 would need to include following in the project POM:
>>
>>   <build>
>>          <pluginManagement>
>>              <plugins>
>>                  <!--
>>                  Overwrite compiler plugin configuration from parent-POM
>>                  since we want this project to allow features from Java 7.
>>                  -->
>>                  <plugin>
>>                      <groupId>org.apache.maven.plugins</groupId>
>>                      <artifactId>maven-compiler-plugin</artifactId>
>>                      <configuration>
>>                          <source>1.7</source>
>>                          <target>1.7</target>
>>                      </configuration>
>>                  </plugin>
>>              </plugins>
>>          </pluginManagement>
>>          <plugins>
>>              <!--
>>              Overwrite animal sniffer plugin configuration from parent-POM
>>              since we want this project to allow features from Java 7.
>>              -->
>>              <plugin>
>>                  <groupId>org.codehaus.mojo</groupId>
>>                  <artifactId>animal-sniffer-maven-plugin</artifactId>
>>
>>                  <executions>
>>                      <execution>
>>                          <id>check-java-version</id>
>>                          <phase>compile</phase>
>>                          <goals>
>>                              <goal>check</goal>
>>                          </goals>
>>                          <configuration>
>>                              <signature>
>>
>> <groupId>org.codehaus.mojo.signature</groupId>
>>                                  <artifactId>java17</artifactId>
>>                                  <version>1.0</version>
>>                              </signature>
>>                          </configuration>
>>                      </execution>
>>                  </executions>
>>              </plugin>
>>          </plugins>
>>      </build>
>>
>> Same applies to new projects on the master branch which wants to take
>> adavantage of the JDK 8. At the moment we don't have any projects which
>> requires JDK 8.
>> But since there is no signature from animal sniffer itself for JDK 8
>> yet, the project POM looks a bit different:
>>
>>
>>   <build>
>>          <pluginManagement>
>>              <plugins>
>>                  <!--
>>                  Overwrite compiler plugin configuration from parent-POM
>>                  since we want this project to allow features from Java 7.
>>                  -->
>>                  <plugin>
>>                      <groupId>org.apache.maven.plugins</groupId>
>>                      <artifactId>maven-compiler-plugin</artifactId>
>>                      <configuration>
>>                          <source>1.8</source>
>>                          <target>1.8</target>
>>                      </configuration>
>>                  </plugin>
>>              </plugins>
>>          </pluginManagement>
>>          <plugins>
>>              <!--
>>              Overwrite animal sniffer plugin configuration from parent-POM
>>              since we want this project to allow features from Java 7.
>>              -->
>>              <plugin>
>>                  <groupId>org.codehaus.mojo</groupId>
>>                  <artifactId>animal-sniffer-maven-plugin</artifactId>
>>
>>                  <executions>
>>                      <execution>
>>                          <id>check-java-version</id>
>>                          <phase>compile</phase>
>>                          <goals>
>>                              <goal>check</goal>
>>                          </goals>
>>                          <configuration>
>>                              <signature>
>>
>> <groupId>com.ianbrandt.maven.signature</groupId>
>>                                  <artifactId>java1.8</artifactId>
>>                                  <version>1.0</version>
>>                              </signature>
>>                          </configuration>
>>                      </execution>
>>                  </executions>
>>              </plugin>
>>          </plugins>
>>      </build>
>>
>> The artifact for the signature comes from
>> https://github.com/ianbrandt/animal-sniffer-signatures and needs to be
>> deployed manually to the local Maven repository since it's not available
>> on Maven central.
>>
>> Any feedback is highly appreciated. (Anything unclear? Have I missed
>> something?)
>>
>> Joachim
>>
>> On 05/17/2015 02:58 PM, Joachim Rohde wrote:
>>
>>> I would change both branches. If only one branch is changed nothing
>>> would change (regarding the cherry picking).
>>>
>>> Joachim
>>>
>>> On 05/17/2015 02:23 PM, Martin Grigorov wrote:
>>>
>>>> Hi Joachim,
>>>>
>>>> What is your plan? Make the change only in master or also in
>>>> wicket-6.x too?
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Sun, May 17, 2015 at 12:46 PM, Joachim Rohde <
>>>> mailinglist@joachimrohde.com> wrote:
>>>>
>>>> Hi Martin,
>>>>>
>>>>> time is a bit scarce for me at the moment. But I will give it a try
>>>>> within
>>>>> the next few weeks.
>>>>>
>>>>> Joachim
>>>>>
>>>>>
>>>>> On 05/07/2015 08:21 AM, Martin Grigorov wrote:
>>>>>
>>>>> Hi Joachim,
>>>>>>
>>>>>> The reason to use two separate folders is that at deploy time we use
>>>>>> [1]:
>>>>>> $ cd jdk-1.6.x; JAVA_HOME=$JAVA_6_HOME mvn deploy ....
>>>>>> $ cd ../jdk-7.x; JAVA_HOME=$JAVA_7_HOME mvn deploy ....
>>>>>> $ cd ../jdk-8.x; JAVA_HOME=$JAVA_8_HOME mvn deploy ....
>>>>>>
>>>>>> With your approach we could just use JAVA_8_HOME for all of them.
>>>>>> m-compiler-p's settings will set the appropriate -target for each
>>>>>> module.
>>>>>> But this is not enough - we have to use something like
>>>>>> http://mojo.codehaus.org/animal-sniffer-maven-plugin/ to make sure
>>>>>> that
>>>>>> jdk
>>>>>> 1.6/7.x modules do not use feature from a newer JDK, because
>>>>>> compiler's
>>>>>> -target won't help.
>>>>>>
>>>>>> I think it should work.
>>>>>> Do you want to try it out?
>>>>>>
>>>>>>
>>>>>> 1.
>>>>>>
>>>>>>
>>>>>> https://github.com/wicketstuff/core/wiki/Wicket-Stuff-Core-Release-Process#steps-to-create-new-version
>>>>>>
>>>>>>
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Wed, May 6, 2015 at 11:50 PM, Joachim Rohde <
>>>>>> mailinglist@joachimrohde.com
>>>>>>
>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>   Hi,
>>>>>>
>>>>>>> As I already mentioned the other day I was porting some changes from
>>>>>>> master branch to the wicket-6.x branch (
>>>>>>>
>>>>>>>
>>>>>>> http://apache-wicket.1842946.n4.nabble.com/wicketstuff-Need-help-with-cherry-picking-td4670615.html
>>>>>>>
>>>>>>>
>>>>>>> )
>>>>>>> and had some trouble doing so, since Git was not able to
>>>>>>> cherry-pick my
>>>>>>> changes due to a different folder structure. Since this was really
>>>>>>> a pain
>>>>>>> in the neck (and quite erroneous) I would like to know if we cannot
>>>>>>> get
>>>>>>> rid
>>>>>>> of the distinction between different JDK versions in the folder
>>>>>>> structure.
>>>>>>>
>>>>>>> At the moment all projects on the master branch are located in the
>>>>>>> jdk-1.7-parent folder (since no project requires Java 8 yet, the
>>>>>>> jdk-1.8-parent folder is empty). Most of those projects reside in the
>>>>>>> jdk-1.6-parent folder on the wicket-6.x branch, making it
>>>>>>> impossible to
>>>>>>> simply downport changes via cherry-picking. Only difference between
>>>>>>> the
>>>>>>> POMs in those folders are the source- and target-level for the Maven
>>>>>>> compiler plugin.
>>>>>>>
>>>>>>> Can't we just put everything in one folder and override source- and
>>>>>>> target-level in the project specific POM if a project needs a higher
>>>>>>> version than the default one? The only drawback I see at the
>>>>>>> moment is
>>>>>>> the
>>>>>>> fact, that you cannot recognize at a first glance if a project
>>>>>>> needs a
>>>>>>> higher Java version. Or do I overlook here something?
>>>>>>>
>>>>>>> To be honest: I don't know if I would downport bigger changes on a
>>>>>>> project
>>>>>>> when myself only needs those changes on the master branch (since I'm
>>>>>>> already using Wicket 1.7) and downporting is such a hassle.
>>>>>>>
>>>>>>> Joachim
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>