Svatopluk Dedic created NETBEANS-5613:
-----------------------------------------

             Summary: Support for OSGi modules on Classpath (tests primarily)
                 Key: NETBEANS-5613
                 URL: https://issues.apache.org/jira/browse/NETBEANS-5613
             Project: NetBeans
          Issue Type: Improvement
          Components: platform - Module System
            Reporter: Svatopluk Dedic


Tests compose their execution environment on the classpath; if module system is 
triggered (i.e. by a Lookup for Module or ModuleInfo, core loads happily NB 
modules from the classpath. But does not load OSGi modules.

Subsequently, NB modules that depends on those won't be 'initialized' although 
they are well part of <testdependencies> and their code can be actually 
executed. 

Modules tha are OSGi in the current distribution are:

 
{code:java}

Bundle-SymbolicName: com.fasterxml.jackson.core.jackson-annotations
Bundle-SymbolicName: com.fasterxml.jackson.core.jackson-core
Bundle-SymbolicName: com.fasterxml.jackson.core.jackson-databind
Bundle-SymbolicName: com.fasterxml.jackson.dataformat.jackson-dataformat
Bundle-SymbolicName: com.googlecode.javaewah.JavaEWAH
Bundle-SymbolicName: com.google.guava
Bundle-SymbolicName: com.jcraft.jzlib
Bundle-SymbolicName: com.sun.jersey.core
Bundle-SymbolicName: com.sun.jna
Bundle-SymbolicName: com.sun.jna.platform
Bundle-SymbolicName: groovy
Bundle-SymbolicName: groovy-ant
Bundle-SymbolicName: javax.annotation-api
Bundle-SymbolicName: javax.servlet-api
Bundle-SymbolicName: javax.servlet.jsp.jstl-api
Bundle-SymbolicName: javax.validation.api
Bundle-SymbolicName: javax.ws.rs-api
Bundle-SymbolicName: javax.xml
Bundle-SymbolicName: javax.xml.soap-api
Bundle-SymbolicName: jaxb-api
Bundle-SymbolicName: jaxb-api
Bundle-SymbolicName: joda-time
Bundle-SymbolicName: junit-jupiter-api
Bundle-SymbolicName: junit-jupiter-engine
Bundle-SymbolicName: junit-jupiter-params
Bundle-SymbolicName: net.java.html
Bundle-SymbolicName: net.java.html.boot
Bundle-SymbolicName: net.java.html.boot.fx
Bundle-SymbolicName: net.java.html.boot.script
Bundle-SymbolicName: net.java.html.geo
Bundle-SymbolicName: net.java.html.json
Bundle-SymbolicName: net.java.html.sound
Bundle-SymbolicName: org.apache.commons.beanutils
Bundle-SymbolicName: org.apache.commons.chain
Bundle-SymbolicName: org.apache.commons.codec
Bundle-SymbolicName: org.apache.commons.commons-fileupload
Bundle-SymbolicName: org.apache.commons.io
Bundle-SymbolicName: org.apache.commons.logging
Bundle-SymbolicName: org.apache.felix.main
Bundle-SymbolicName: org.apache.xmlrpc
Bundle-SymbolicName: org.eclipse.core.jobs; singleton:=true
Bundle-SymbolicName: org.eclipse.core.runtime.compatibility.auth
Bundle-SymbolicName: org.eclipse.core.runtime; singleton:=true
Bundle-SymbolicName: org.eclipse.equinox.common; singleton:=true
Bundle-SymbolicName: org.eclipse.equinox.registry;singleton:=true
Bundle-SymbolicName: org.eclipse.equinox.security;singleton:=true
Bundle-SymbolicName: org.eclipse.mylyn.bugzilla.core;singleton:=true
Bundle-SymbolicName: org.eclipse.mylyn.tasks.core;singleton:=true
Bundle-SymbolicName: org.eclipse.mylyn.wikitext.confluence.core;single
Bundle-SymbolicName: org.eclipse.mylyn.wikitext.markdown.core;singleto
Bundle-SymbolicName: org.eclipse.osgi; singleton:=true
Bundle-SymbolicName: org.glassfish.hk2.api
Bundle-SymbolicName: org.glassfish.hk2.external.asm-all-repackaged
Bundle-SymbolicName: org.glassfish.hk2.external.cglib
Bundle-SymbolicName: org.glassfish.hk2.external.javax.inject
Bundle-SymbolicName: org.glassfish.hk2.locator
Bundle-SymbolicName: org.glassfish.hk2.osgi-resource-locator
Bundle-SymbolicName: org.glassfish.hk2.utils
Bundle-SymbolicName: org.glassfish.javax.el
Bundle-SymbolicName: org.glassfish.javax.faces
Bundle-SymbolicName: org.glassfish.jersey.containers.jersey-container-se
Bundle-SymbolicName: org.glassfish.jersey.core.jersey-client
Bundle-SymbolicName: org.glassfish.jersey.core.jersey-common
Bundle-SymbolicName: org.glassfish.jersey.core.jersey-server
Bundle-SymbolicName: org.glassfish.jersey.ext.jersey-entity-filtering
Bundle-SymbolicName: org.glassfish.jersey.media.jersey-media-moxy
Bundle-SymbolicName: org.glassfish.web.javax.servlet.jsp.jstl
Bundle-SymbolicName: org.json
Bundle-SymbolicName: org.netbeans.html.ko4j
Bundle-SymbolicName: org.netbeans.html.xhr4j
Bundle-SymbolicName: org.primefaces
Bundle-SymbolicName: osgi.cmpn
Bundle-SymbolicName: osgi.core
Bundle-SymbolicName: slf4j.jdk14
Bundle-SymbolicName: software.amazon.ion.java
Bundle-SymbolicName: testng

{code}
And some others. 

Tests that eventually use those modules on classpath must either use 
NbModuleSuite, or will eventually fail to initialize the module system 
properly, even though the running code can actually use the module's classes.

Most notably, there're *asm-8.0*.jar*, which is used at boostrap and are 
included by *org.netbeans.lib.asm* NetBeans module wrapper, although the JARs 
themselves are OSGi modules. This complicates classpath construction as in the 
module system tends to include both distribution (platform/core/asm*.jar) as 
well as the original binaries (libs.asm/external/asm*.jar) that leads to 
duplicate Bundle errors.

Not sure about impact of this feature to tests: virtually any test that uses 
OSGi on its classpath would then require inclusion of Felix or Netbinox to 
provide an OSGi container.

// [~jtulach] please evaluate

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to