* IDEMPIERE-4298: remove Bundle-RequiredExecutionEnvironment
when build by tycho value of Bundle-RequiredExecutionEnvironment and jdt need to compatibility
in case we use Bundle-RequiredExecutionEnvironment = 11 then can't build by jdk != 11
so stick on fix value isn't good
eclipse now also support Require-Capability, so don't need Bundle-RequiredExecutionEnvironment anymore
* IDEMPIERE-4298:support update jdk (jdk 12 13 14)
default environment still jdk-11 but you can build for any jdk by below command
export JAVA_HOME=path to jdk
mvn verify -Djdk.version=11
in case on JAVA_HOME is jdk 14 then can set jdk.version for 11, 12, 13, 14 and same for other jdk
at moment java 14 just support on eclipse 2020-03 with install plugin
Java 14 Support for Eclipse 2020-03 (4.15)
1. new version of cxf need new version of spring so get osgi version from org.apache.servicemix but spring of cxf limit to 4.0 so take 4.3.19.RELEASE_1
http://cxf.apache.org/docs/30-migration-guide.html
2. eclipse auto add --add-modules=ALL-SYSTEM when run eclipse launcher, so when run idempiere server from eclipse encounter bellow condition
javax.activity, javax.xml.ws is depricate package to remove on jdk11
that why this module is exclusive from build class path (but by --add-modules=ALL-SYSTEM it appear at runtime)
we use some replace jar for that package (com.sun.activation for javax.activation)
jaxws-api look same javax.xml.ws but when build with tycho it said about access restriction on package javax.xml.ws,..
(i guess jaxws-api is new and it follow jdk mudule)
javax.xml.ws is special package, it's marked for remove on next jdk release.
it can't resolve ever i use <arg>-warn:+discouraged,forbidden</arg>
https://bugs.eclipse.org/bugs/show_bug.cgihttps://bugs.eclipse.org/bugs/show_bug.cgi?id=537016
1. use latest jdt for support jdk10
2. tycho resolve dependency to javax.activation, javax.xml.bind from jdk, but jdk don't public it.
eclipse resolve by get highest version from com.sun.activation.javax.activation, jaxb-api
so need use Require-Bundle to force tycho choose com.sun.activation.javax.activation
2.1 if keep both import javax.activation and Require-Bundle com.sun.activation.javax.activation with get bellow exception on tycho but org.adempiere.base don't have this issue
[ERROR] /home/hieplq/1Dev/project/native/idempiere-dev-11/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultFeedbackService.java:[16]
[ERROR] import javax.activation.DataSource;
[ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The type 'DataSource' is not API (restriction on classpath entry '/home/hieplq/.m2/repository/p2/osgi/bundle/com.sun.activation.javax.activation/1.2.0/com.sun.activation.javax.activation-1.2.0.jar')
3. pass --add-exports for org.adempiere.base, install, server and swing
update jetty to 12
update almost library to latest version
change org.eclipse.jdt.core.compiler.batch to org.eclipse.jdt.core
change javax.management.j2ee-api to org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec, reduce dependency and correct dependency of activeMQ
javax.activation to com.sun.activation.javax.activation
lib for service will take from library instea of jdk
groovy to date