from warning: No classloader found for java.util.ServiceLoader:load(interface org.eclipse.jetty.websocket.api.extensions.Extension)
reason:
spi-fly on idempiere use Dynamic Weaving to lookup service provide
it use Bundle.ACTIVE event to start lookup service provide (see org.apache.aries.spifly.BaseActivator and ProviderBundleTrackerCustomizer)
so service provide need to active before it's used
solution:
active and set start level to 3 for some bundle relate websocket to plan support websocket
remain some warning:
10:39:31.747-----------> BaseActivator.log: No classloader found for java.util.ServiceLoader:load(interface org.atmosphere.inject.Injectable)
don't fix because it still work well, in case active this bundle will encounter issue relase package "org.atmosphere.annotation" not yet export
https://github.com/Atmosphere/atmosphere/issues/1896
WARNING: No classloader found for java.util.ServiceLoader:load(interface org.eclipse.jetty.xml.ConfigurationProcessorFactory)
WARNING: No classloader found for java.util.ServiceLoader:load(interface org.eclipse.jetty.xml.ConfigurationProcessorFactory)
just find SpringConfigurationProcessorFactory and SpringConfigurationProcessorFactory implement that service, it look for spring so don't need resolve
refer:http://aries.apache.org/modules/spi-fly.html
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