Ok guys … now some MAJOR update :-)

I managed to setup a build that build all modules with Java8, if the profile 
“platform-java7” is enabled, also Java7 versions are produced by unpacking the 
Java8 versions in some pom-only modules, applying retrolambda there and then 
running all unit- and integration-tests with Java7. The cool thing is, I didn’t 
port only the ones build for java7 in the past, but all edgent modules and 
fixed the ones that were having problems (I added a helper that does the same 
as the Java8 extensions did). Now all modules except some examples are also 
available on Java7 (I had do disable some Tests though, as they were using 
Java8 APIs, but this should be fixable quite easily). The cool thing … all 
should also work on Travis too (I found a place where the Java paths were 
documented …  see the .travis.yml).

The build of Java8 should work out of the box on any machine with Maven and 
Java8, if you want to build the Java7 versions, you need to activate the 
profile “platform-java7” and provide a so-called toolchain (either you create a 
toolchain.xml in your .m2 directory or you create a file elsewhere and pass 
that files path in with the “-t” command-line option). As retrolambda needs 
Java8 to run, you also need to provide a property: “java8.home” that points to 
your Java8 home directory.

Regarding the Android package, I would start working on this next. If the 
“android” modules are only used in the “android” platform, I would suggest 
building a similar structure for android as for Java7 and to move the real 
android modules into that directory. Then they wouldn’t be part of the Java8 
and Java7 package and be included only in the android package.

You can use the toolchains-travis.xml file as a template to create your own. I 
added an git exclusion for toolchains-local.xml. So, if you just copy that to 
toolchains-local.xml and adjust your java-home paths inside, you should be able 
to build everything with the following command:

mvn –Pplatform-java7,platform-android –Djava8.home={JAVA8_HOME} –t 
toolchains-local.xml clean install

Hope it works on your machines too … if not I’ll handle the problems as soon as 
possible.

Chris




Am 19.06.17, 15:20 schrieb "Dale LaBossiere" <dml.apa...@gmail.com>:

    Nice catch!
    I created https://issues.apache.org/jira/browse/EDGENT-423
    — Dale
    
    > On Jun 18, 2017, at 8:04 AM, Christofer Dutz <christofer.d...@c-ware.de> 
wrote:
    > 
    > While fine tuning my maven migration, I stumbled over a problem in the 
analytics/sensors modules.
    > As part of the build I am validating the classes for Java7 against the 
signatures of the Java 7 SDK. Here my plugin found an issue I thought was worth 
reporting.
    > In the class org.apache.edgent.analytics.sensors.Range almost at the end 
in the method toUnsignedString we are using Byte.toUnsignedInt, which is only 
available in Java 8 … there is no back-port for java 7 for this code. 
Eventually we should replace this with code that works on Java 7 too.
    
    

Reply via email to