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)
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
+ add more Osgi for jasper dependency
+ don't fix incompatibility issue for swing
+ use bootdelegation to resolve org.w3c.dom.events issue. let all use class from jdk