Search code examples
javaosgicdiapache-felixweld

WELD OSGI example - no result


I want to do the following solution:Apache Felix + Weld for Java SE (I use felix 4.6.1 and WELD 2.2.10.SP1). For that I want to run one of examples from weld archive - weld-osgi-paint.

I install only the following bundles:

xbean-bundleutils-3.18.jar
pax-cdi-api-0.8.0.jar
pax-cdi-extension-0.8.0.jar
pax-cdi-spi-0.8.0.jar
pax-cdi-extender-0.8.0.jar
pax-swissbox-core-1.8.0.jar
pax-swissbox-lifecycle-1.8.0.jar
pax-swissbox-tracker-1.8.0.jar
ops4j-base-lang-1.5.0.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7.2.jar
log4j-1.2.17.jar
weld-osgi-paint-api.jar
weld-osgi-paint-core.jar
weld-osgi-paint-triangle.jar
weld-osgi-paint-square.jar

I start only two bundles:

org.apache.felix.scr-1.8.2.jar
weld-osgi-paint-core.jar

Besides weld-se.jar and weld-se-core.jar I added to lib path and I export "javax.*" packges from them this way:

String SYSTEM_PACKAGES =
        "org.osgi.framework;version=\"1.8\"," +
        "org.osgi.util.tracker;version=\"1.8\","+
        "org.osgi.service.packageadmin;version=\"1.8\","+
        "org.osgi.framework.wiring;version=\"1.8\","+
        "javax.swing,javax.management,javax.naming,javax.xml.parsers,"+
        "javax.el,javax.enterprise.context;version=\"1.0\","+
        "javax.enterprise.event;version=\"1.0\","+
        "javax.enterprise.inject;version=\"1.0\","+
        "javax.enterprise.util;version=\"1.0\","+
        "javax.inject;version=\"1.0\","+
        "javax.annotation;version=\"1.1\","+
        "javax.enterprise.context.spi;version=\"1.0\","+
        "javax.enterprise.inject.spi;version=\"1.0\","+
        "org.w3c.dom,org.xml.sax,org.xml.sax.helpers";
       configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);

I start the program and I don't get any errors and exceptions. I get nothing. What do I do wrong?

EDIT 1
I removed slf4j bundles and instead installed pax-logging-api-1.8.2.jar. This is what I get now:

org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling SLF4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Jakarta Commons Logging API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Log4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Avalon Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling JULI Logger API support.

And thats all. Nothing else. The program doesn't terminate. It just shows nothing else.


Solution

  • I'm not sure what you mean by "adding weld-se* to lib path".

    Pax CDI requires weld-osgi-bundle and its dependencies. Weld SE is for Java SE and not for OSGi.

    Have a look at Pax CDI integration tests for working examples.