Brad Cox wrote:
> One thing that seems weird to me, why are you casting to
> CoreFactoryImpl instead of CoreFactory?

Because I tried both;
cso instanceof CoreFactory:false
cso instanceof CoreFactoryImpl:false

You nailed it:
CoreFactoryImpl.class.getClassLoader():24.0
cso.getClass().getClassLoader():16.0

I am not exactly sure what is going on here, but embedding dependencies transitively with all imports being optional sounds like an accident waiting to happen.

It is not surprising that you have two different bundles embedding the same classes when you are embedding all dependencies. You need to take a more measured approach to ensure proper sharing of classes. I understand that this is difficult when you are starting with a big ball of someone else's code, but there is really no way around it.

-> richard


Looks like its time to return to the problem that's been bothering me from day one; the interaction of maven and eclipse around MANIFEST.MF, which I'm pretty sure is what's at the root of this.

My goal is to describe everything in the pom and do all builds in maven, using eclipse solely for browsing and debugging. At some point I added this to every pom so that's what I'll be showing below:
<manifestLocation>src/main/resources/META-INF</manifestLocation>

I do maven builds like this: mvn -Dmaven.test.skip=true clean idea:clean eclipse:clean idea:idea eclipse:eclipse install. The test pom is at the end. The manifest maven-bundle-plugin generates follows with , replaced by ,\r\t for readability. Notice Import-Package drags in bizarre stuff (Swting?!!) and doesn't mention soakit.core, which should be providing most everything most bundles needs, with any strays picked up with <Embed-Transitive).

Manifest-Version: 1.0
Built-By: bradcox
Bundle-Activator: com.gestalt.soakit.test.TestActivator
Created-By: Apache Maven Bundle Plugin
Import-Package: com.gestalt.soakit.test;resolution:=optional;version="
 1.0",
    com.gestalt.soakit.test.internals;resolution:=optional;version="
 1.0",
    com.sun.msv.datatype;resolution:=optional,
    com.sun.msv.datatype.x
 sd;resolution:=optional,
    com.sun.org.apache.xerces.internal.parsers;re
 solution:=optional,
    com.sun.org.apache.xerces.internal.util;resolution
 :=optional,
    com.sun.org.apache.xerces.internal.xni.parser;resolution:=
 optional,
    javax.swing;resolution:=optional,
    javax.swing.border;resoluti
 on:=optional,
    javax.swing.event;resolution:=optional,
    javax.swing.table
 ;resolution:=optional,
    javax.swing.text;resolution:=optional,
    javax.swi
 ng.tree;resolution:=optional,
    javax.xml.datatype;resolution:=optional,
javax.xml.stream;resolution:=optional,
    javax.xml.stream.events;resolut
 ion:=optional,
    javax.xml.stream.util;resolution:=optional,
    org.apache.x
 ml.resolver;resolution:=optional,
    org.apache.xml.resolver.readers;reso
 lution:=optional,
    org.gjt.xpp;resolution:=optional,
    org.jdom;resolution
 :=optional,
    org.jdom.input;resolution:=optional,
    org.osgi.framework;res
 olution:=optional,
    org.osgi.util.tracker;resolution:=optional,
    org.rela
 xng.datatype;resolution:=optional,
    org.xmlpull.v1;resolution:=optional
 ,
    sun.io;resolution:=optional
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Embed-Transitive: true
Bnd-LastModified: 1229859848087
Export-Package: com.gestalt.soakit.test;uses:="com.gestalt.soakit.test
 .internals,
    org.osgi.framework";version="1.0.0.SNAPSHOT",
    com.gestalt.s
 oakit.test.internals;uses:="org.osgi.framework,
    com.gestalt.soakit.tes
 t";version="1.0.0.SNAPSHOT"
Bundle-Version: 1.0.0.SNAPSHOT
Bundle-Name: soakit.test
Bundle-Description: Integration tests for soakit core and components
Bundle-ClassPath: .,
    xalan-2.6.0.jar,
    icu4j-3.8.jar,
    jaxme-api-0.3.jar,
    xm
 lParserAPIs-2.6.2.jar,
    xercesImpl-2.6.2.jar,
    junit-4.4.jar,
    jaxen-1.1-be
 ta-4.jar,
    dom4j-1.5.2.jar,
    xml-apis-1.0.b2.jar,
    xom-1.1d2.jar,
    soakit.cor
 e-1.0-SNAPSHOT.jar
Build-Jdk: 1.5.0_16
Private-Package: nu.xom,
    org.apache.xalan.xsltc.compiler,
    com.ibm.icu.im
 pl.data.icudt38b,
    javax.xml.namespace,
    com.ibm.icu.impl.data.icudt38b.r
 bnf,
    org.w3c.dom.events,
    org.apache.xerces.impl.xs.traversers,
    org.dom4j
 .persistence.nativ,
    org.jaxen.saxpath,
    org.apache.xerces.util,
    org.apach
 e.xpath.patterns,
    com.ibm.icu.math,
    com.ibm.icu.text,
    junit.runner,
    org.a
 pache.xpath.res,
    com.ibm.icu.impl.data.icudt38b.translit,
    javax.xml.par
 sers,
    org.apache.xerces.jaxp,
    nu.xom.xinclude,
    org.apache.xml.dtm,
    org.ap
 ache.bcel.verifier.structurals,
    javax.xml.transform.stream,
    org.dom4j.p
 ersistence,
    org.dom4j.dom,
    org.apache.xalan.xsltc.compiler.util,
    org.jun
 it.internal,
    org.apache.xalan.xsltc.runtime,
    org.apache.html.dom,
    org.do
 m4j.io,
    org.apache.xalan.xslt,
    org.dom4j.swing,
    org.apache.xerces.impl.x
 s.util,
    org.w3c.dom.stylesheets,
    org.apache.xerces.impl,
    com.ibm.icu.imp
 l,
    org.apache.xpath.axes,
    org.junit.experimental.theories.suppliers,
    org
 .apache.xerces.xs,
    javax.xml.bind.util,
    org.junit.experimental.theories
 ,
    com.ibm.icu.impl.duration.impl.data,
    org.apache.xml.utils,
    com.ibm.icu
 .lang,
    org.apache.xalan.serialize,
    org.apache.xerces.impl.xs.models,
    org
 .apache.xalan.res,
    org.xml.sax.ext,
    org.xml.sax.helpers,
    org.apache.xerc
 es.xni.grammars,
    org.apache.xerces.impl.xs,
    org.apache.xpath.operations
 ,
    javax.xml.bind,
    org.dom4j.rule,
    org.apache.xalan.extensions,
    org.dom4j.
 rule.pattern,
    org.w3c.dom.ls,
    org.apache.bcel,
    org.junit.experimental.th
 eories.internal,
    org.apache.xerces.parsers,
    org.apache.xalan.xsltc.cmdl
 ine.getopt,
    org.apache.xml.utils.res,
    org.apache.xerces.xni.parser,
    org.
 apache.xalan.xsltc.trax,
    org.apache.bcel.generic,
    org.apache.xerces.imp
 l.dv.xs,
    com.ibm.icu.impl.data,
    nu.xom.xslt,
    org.apache.xml.res,
    org.jaxe
 n.function.xslt,
    org.apache.xerces.impl.xpath.regex,
    org.jaxen.dom.html
 ,
    org.apache.xalan.templates,
    org.apache.xalan.xsltc,
    org.hamcrest.core,
org.hamcrest,
    com.ibm.icu.impl.data.icudt38b.coll,
    org.apache.xerces.im
 pl.dv.util,
    org.w3c.dom.views,
    org.dom4j.xpp,
    org.apache.xerces.impl.xs.
 opti,
    junit.extensions,
    org.apache.xerces.impl.io,
    org.apache.xerces.imp
 l.dv.dtd,
    junit.textui,
    org.apache.xpath.compiler,
    com.ibm.icu.impl.data
 .icudt38b.brkitr,
    org.apache.wml.dom,
    org.apache.bcel.util,
    org.apache.x
 erces.impl.xs.identity,
    javax.xml.transform.dom,
    org.w3c.dom.traversal,
org.dom4j,
    org.apache.xerces.dom3,
    org.jaxen.javabean,
    javax.xml.bind.he
 lpers,
    org.apache.xmlcommons,
    org.jaxen.util,
    org.dom4j.jaxb,
    org.junit.m
 atchers,
    org.apache.wml,
    com.gestalt.soakit.core.internals,
    org.apache.b
 cel.verifier.exc,
    com.gestalt.soakit.core,
    org.jaxen.function,
    com.ibm.i
 cu.impl.duration,
    org.junit.runners,
    org.apache.xpath.functions,
    org.apa
 che.xml.dtm.ref,
    org.apache.xalan.xsltc.util,
    org.apache.xalan.transfor
 mer,
    org.junit.experimental.results,
    org.apache.bcel.classfile,
    org.apac
 he.xerces.dom3.bootstrap,
    org.junit.runner.notification,
    javax.xml.tran
 sform,
    org.apache.xerces.impl.dtd,
    org.dom4j.xpath,
    org.junit.internal.r
 equests,
    org.w3c.dom.css,
    org.jaxen.dom4j,
    org.apache.xerces.impl.dv,
    org
 .apache.xerces.dom3.as,
    org.apache.xalan.processor,
    org.apache.xpath,
    or
 g.dom4j.dtd,
    com.ibm.icu.util,
    org.apache.xerces.xni,
    org.junit.runner,
    o
 rg.dom4j.datatype,
    nu.xom.converters,
    org.apache.xalan,
    nu.xom.canonical
 ,
    org.apache.xerces.dom.events,
    org.w3c.dom.html,
    org.apache.xalan.xsltc
 .runtime.output,
    org.jaxen.expr,
    org.apache.xerces.xinclude,
    lib,
    org.apa
 che.xerces.impl.xpath,
    org.junit.runner.manipulation,
    org.apache.xalan.
 xsltc.dom,
    org.apache.regexp,
    org.apache.xalan.client,
    org.jaxen.pattern
 ,
    license,
    org.apache.xalan.xsltc.cmdline,
    org.apache.xml.dtm.ref.dom2dt
 m,
    org.w3c.dom.ranges,
    org.dom4j.bean,
    org.jaxen.jdom,
    org.apache.xpath.d
 omapi,
    org.apache.xerces.impl.validation,
    org.apache.bcel.verifier,
    org.
 jaxen.function.ext,
    org.jaxen.saxpath.base,
    org.apache.xerces.impl.dtd.
 models,
    org.dom4j.tree,
    org.jaxen.dom,
    org.dom4j.util,
    org.junit.internal
 .runners,
    org.jaxen,
    java_cup.runtime,
    org.apache.xpath.objects,
    org.apac
 he.bcel.verifier.statics,
    org.apache.xalan.lib,
    org.jaxen.expr.iter,
    org
 .apache.xerces.impl.msg,
    org.apache.xalan.trace,
    org.apache.xml.seriali
 zer,
    nu.xom.tests,
    org.xml.sax,
    org.apache.xerces.dom,
    org.hamcrest.inter
 nal,
    org.apache.xml.dtm.ref.sax2dtm,
    org.junit,
    org.apache.xalan.lib.sql
 ,
    org.apache.xml.serialize,
    org.w3c.dom,
    javax.xml,
    com.ibm.icu.impl.dura
 tion.impl,
    org.jaxen.xom,
    javax.xml.transform.sax,
    org.jaxen.saxpath.hel
 pers,
    org.w3c.dom.xpath,
    junit.framework
Originally-Created-By: Apache Maven Bundle Plugin
Bundle-ManifestVersion: 2
Bundle-SymbolicName: soakit.test
Tool: Bnd-0.0.295
Embed-Dependency: *;scope=compile|runtime;inline=false

If I now launch eclipse and open that same file in the dependencies GUI pane, I see the bizarre packages and no soakit.core. I delete the strays, add soakit.core, clear out the strays on Runtime/Classpath, and use Overview/Organize Manifests Wizard, and wind up with something that looks pretty reasonable:

Manifest-Version: 1.0
Built-By: bradcox
Bundle-Activator: com.gestalt.soakit.test.TestActivator
Created-By: Apache Maven Bundle Plugin
Import-Package: com.gestalt.soakit.core;version="1.0.0.SNAPSHOT", com.gestalt.soakit.core.internals;version="1.0.0.SNAPSHOT", com.gestalt.soakit.test;version="1.0";resolution:=optional, com.gestalt.soakit.test.internals;version="1.0";resolution:=optional
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Embed-Transitive: true
Bnd-LastModified: 1229859848087
Export-Package: com.gestalt.soakit.test;uses:="com.gestalt.soakit.test
 .internals,
    org.osgi.framework";version="1.0.0.SNAPSHOT",
    com.gestalt.s
 oakit.test.internals;uses:="org.osgi.framework,
    com.gestalt.soakit.tes
 t";version="1.0.0.SNAPSHOT"
Bundle-Version: 1.0.0.SNAPSHOT
Bundle-Name: soakit.test
Bundle-Description: Integration tests for soakit core and components
Bundle-ClassPath: .
Build-Jdk: 1.5.0_16
Private-Package: nu.xom,
    org.apache.xalan.xsltc.compiler,
    com.ibm.icu.im
 pl.data.icudt38b,
    javax.xml.namespace,
    com.ibm.icu.impl.data.icudt38b.r
 bnf,
    org.w3c.dom.events,
    org.apache.xerces.impl.xs.traversers,
    org.dom4j
 .persistence.nativ,
    org.jaxen.saxpath,
    org.apache.xerces.util,
    org.apach
 e.xpath.patterns,
    com.ibm.icu.math,
    com.ibm.icu.text,
    junit.runner,
    org.a
 pache.xpath.res,
    com.ibm.icu.impl.data.icudt38b.translit,
    javax.xml.par
 sers,
    org.apache.xerces.jaxp,
    nu.xom.xinclude,
    org.apache.xml.dtm,
    org.ap
 ache.bcel.verifier.structurals,
    javax.xml.transform.stream,
    org.dom4j.p
 ersistence,
    org.dom4j.dom,
    org.apache.xalan.xsltc.compiler.util,
    org.jun
 it.internal,
    org.apache.xalan.xsltc.runtime,
    org.apache.html.dom,
    org.do
 m4j.io,
    org.apache.xalan.xslt,
    org.dom4j.swing,
    org.apache.xerces.impl.x
 s.util,
    org.w3c.dom.stylesheets,
    org.apache.xerces.impl,
    com.ibm.icu.imp
 l,
    org.apache.xpath.axes,
    org.junit.experimental.theories.suppliers,
    org
 .apache.xerces.xs,
    javax.xml.bind.util,
    org.junit.experimental.theories
 ,
    com.ibm.icu.impl.duration.impl.data,
    org.apache.xml.utils,
    com.ibm.icu
 .lang,
    org.apache.xalan.serialize,
    org.apache.xerces.impl.xs.models,
    org
 .apache.xalan.res,
    org.xml.sax.ext,
    org.xml.sax.helpers,
    org.apache.xerc
 es.xni.grammars,
    org.apache.xerces.impl.xs,
    org.apache.xpath.operations
 ,
    javax.xml.bind,
    org.dom4j.rule,
    org.apache.xalan.extensions,
    org.dom4j.
 rule.pattern,
    org.w3c.dom.ls,
    org.apache.bcel,
    org.junit.experimental.th
 eories.internal,
    org.apache.xerces.parsers,
    org.apache.xalan.xsltc.cmdl
 ine.getopt,
    org.apache.xml.utils.res,
    org.apache.xerces.xni.parser,
    org.
 apache.xalan.xsltc.trax,
    org.apache.bcel.generic,
    org.apache.xerces.imp
 l.dv.xs,
    com.ibm.icu.impl.data,
    nu.xom.xslt,
    org.apache.xml.res,
    org.jaxe
 n.function.xslt,
    org.apache.xerces.impl.xpath.regex,
    org.jaxen.dom.html
 ,
    org.apache.xalan.templates,
    org.apache.xalan.xsltc,
    org.hamcrest.core,
org.hamcrest,
    com.ibm.icu.impl.data.icudt38b.coll,
    org.apache.xerces.im
 pl.dv.util,
    org.w3c.dom.views,
    org.dom4j.xpp,
    org.apache.xerces.impl.xs.
 opti,
    junit.extensions,
    org.apache.xerces.impl.io,
    org.apache.xerces.imp
 l.dv.dtd,
    junit.textui,
    org.apache.xpath.compiler,
    com.ibm.icu.impl.data
 .icudt38b.brkitr,
    org.apache.wml.dom,
    org.apache.bcel.util,
    org.apache.x
 erces.impl.xs.identity,
    javax.xml.transform.dom,
    org.w3c.dom.traversal,
org.dom4j,
    org.apache.xerces.dom3,
    org.jaxen.javabean,
    javax.xml.bind.he
 lpers,
    org.apache.xmlcommons,
    org.jaxen.util,
    org.dom4j.jaxb,
    org.junit.m
 atchers,
    org.apache.wml,
    com.gestalt.soakit.core.internals,
    org.apache.b
 cel.verifier.exc,
    com.gestalt.soakit.core,
    org.jaxen.function,
    com.ibm.i
 cu.impl.duration,
    org.junit.runners,
    org.apache.xpath.functions,
    org.apa
 che.xml.dtm.ref,
    org.apache.xalan.xsltc.util,
    org.apache.xalan.transfor
 mer,
    org.junit.experimental.results,
    org.apache.bcel.classfile,
    org.apac
 he.xerces.dom3.bootstrap,
    org.junit.runner.notification,
    javax.xml.tran
 sform,
    org.apache.xerces.impl.dtd,
    org.dom4j.xpath,
    org.junit.internal.r
 equests,
    org.w3c.dom.css,
    org.jaxen.dom4j,
    org.apache.xerces.impl.dv,
    org
 .apache.xerces.dom3.as,
    org.apache.xalan.processor,
    org.apache.xpath,
    or
 g.dom4j.dtd,
    com.ibm.icu.util,
    org.apache.xerces.xni,
    org.junit.runner,
    o
 rg.dom4j.datatype,
    nu.xom.converters,
    org.apache.xalan,
    nu.xom.canonical
 ,
    org.apache.xerces.dom.events,
    org.w3c.dom.html,
    org.apache.xalan.xsltc
 .runtime.output,
    org.jaxen.expr,
    org.apache.xerces.xinclude,
    lib,
    org.apa
 che.xerces.impl.xpath,
    org.junit.runner.manipulation,
    org.apache.xalan.
 xsltc.dom,
    org.apache.regexp,
    org.apache.xalan.client,
    org.jaxen.pattern
 ,
    license,
    org.apache.xalan.xsltc.cmdline,
    org.apache.xml.dtm.ref.dom2dt
 m,
    org.w3c.dom.ranges,
    org.dom4j.bean,
    org.jaxen.jdom,
    org.apache.xpath.d
 omapi,
    org.apache.xerces.impl.validation,
    org.apache.bcel.verifier,
    org.
 jaxen.function.ext,
    org.jaxen.saxpath.base,
    org.apache.xerces.impl.dtd.
 models,
    org.dom4j.tree,
    org.jaxen.dom,
    org.dom4j.util,
    org.junit.internal
 .runners,
    org.jaxen,
    java_cup.runtime,
    org.apache.xpath.objects,
    org.apac
 he.bcel.verifier.statics,
    org.apache.xalan.lib,
    org.jaxen.expr.iter,
    org
 .apache.xerces.impl.msg,
    org.apache.xalan.trace,
    org.apache.xml.seriali
 zer,
    nu.xom.tests,
    org.xml.sax,
    org.apache.xerces.dom,
    org.hamcrest.inter
 nal,
    org.apache.xml.dtm.ref.sax2dtm,
    org.junit,
    org.apache.xalan.lib.sql
 ,
    org.apache.xml.serialize,
    org.w3c.dom,
    javax.xml,
    com.ibm.icu.impl.dura
 tion.impl,
    org.jaxen.xom,
    javax.xml.transform.sax,
    org.jaxen.saxpath.hel
 pers,
    org.w3c.dom.xpath,
    junit.framework
Originally-Created-By: Apache Maven Bundle Plugin
Bundle-ManifestVersion: 2
Bundle-SymbolicName: soakit.test
Tool: Bnd-0.0.295
Embed-Dependency: *;scope=compile|runtime;inline=false

But as soon as I do a full build to get something executable (I've given up on getting eclipse to build anything executable until somebody provides the secret sauce), maven overwrites this with the invalid version.

I think what's going on is that maven's manifest prevails so test is getting soakit.core from two places. Based on that, I'll try reworking the pom to remove any ambiguity. Could really use any suggestions on that.

But even more, I could really use a better understanding of why maven and eclipse aren't working together now, and a fool proof recipe for how to make them coexist going forward.

I've also tried Netbeans and IntelliJ but these all fail for various reasons (bnd runs out of memory in IntelliJ building soakit.core for one). Using Pax-Runner fails running some Eclipse ant script trying to read bizarre directories. Every environ fails with a different problem.

The only common factor is my busted mental model of how maven and eclipse work together. Can someone set me straight? Here's my (no doubt) busted pom:

<?xml version="1.0" encoding="utf-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd";
>
    <modelVersion>4.0.0</modelVersion>
    <groupId>soakit</groupId>
    <artifactId>soakit.test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>soakit.test</name>
<description>Integration tests for soakit core and components</description>
    <packaging>bundle</packaging>

    <parent>
        <groupId>soakit</groupId>
        <artifactId>soakit</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>soakit</groupId>
            <artifactId>soakit.core</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
        </dependency>
        <!--
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
            <version>1.1.0-SNAPSHOT</version>
        </dependency>
        -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>1.5.0-SNAPSHOT</version>
                <extensions>true</extensions>
                <configuration>
<manifestLocation>src/main/resources/META-INF</manifestLocation>
                    <instructions>
                        <Bundle-Version>${pom.version}</Bundle-Version>
<Bundle-SymbolicName>soakit.test</Bundle-SymbolicName>
                        <Bundle-RequiredExecutionEnvironment>
                            J2SE-1.5
                        </Bundle-RequiredExecutionEnvironment>
                        <Bundle-Activator>
                            com.gestalt.soakit.test.TestActivator
                        </Bundle-Activator>
                        <Export-Package>
com.gestalt.soakit.test.*;version="${pom.version}",
                        </Export-Package>
                        <Import-Package>
                            *;resolution:=optional
                        </Import-Package>
<Embed-Dependency>*;scope=compile|runtime;inline=false</Embed-Dependency>
                        <Embed-Transitive>true</Embed-Transitive>
                    </instructions>
                </configuration>
                <executions>
                    <execution>
                        <id>manifest</id>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                        <phase>process-resources</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>





Richard S. Hall wrote:
Try printing CoreFactoryImpl.class.getClassLoader() within your bundle using the service tracker and then print cso.getClass().getClassLoader() from the service object and see if they are coming from the same class loader.

One thing that seems weird to me, why are you casting to CoreFactoryImpl instead of CoreFactory?

-> richard

Brad Cox wrote:
For the life of me I can't see why this fails. Here's the runup in detail:

coreTracker is a ServiceTracker for CoreServiceImpl, defined in a bundle I'm trying to access from the integration test bundle. These are the relevant declarations:

public interface CoreFactory extends ServiceFactory
public class CoreFactoryImpl implements CoreFactory

Integration test uses a ServiceTracker (CoreTracker) to locate the sole core instance from the core bundle like this:

Object cso = coreTracker.getService();
System.out.println("cso:"+cso);
> cso:com.gestalt.soakit.core.internals.corefactoryi...@dead19

So why should this cast fails with a ClassCastException?
CoreFactoryImpl cs = (CoreFactoryImpl)cso;

I'm going blind from staring at this. Maybe someone can spot what I'm missing. Here's some more detail.

Class csoClass = cso.getClass();
System.out.println("csoClass:"+csoClass);
> csoClass:com.gestalt.soakit.core.internals.CoreFactoryImpl

Class[] csoClasses = csoClass.getClasses();
System.out.println("cso.getClasses():"+csoClass.getClasses());
> cso.getClasses():[Ljava.lang.Class;@1cc5ef

Class[] csoInterfaces = csoClass.getInterfaces();
System.out.println("cso.getInterfaces():"+csoClass.getInterfaces());
> cso.getInterfaces():[Ljava.lang.Class;@c44af4

Here's the full trace

> org.osgi.framework.BundleException: Activator start error in bundle soakit.test [24].
>     at org.apache.felix.framework.Felix._startBundle(Felix.java:1701)
>     at org.apache.felix.framework.Felix.startBundle(Felix.java:1578)
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:382) > at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:363) > at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:82) > at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:276) > at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:167)
>     at java.lang.Thread.run(Thread.java:613)
> Caused by: java.lang.ClassCastException: com.gestalt.soakit.core.internals.CoreFactoryImpl > at com.gestalt.soakit.test.internals.TestImpl.configure(TestImpl.java:49) > at com.gestalt.soakit.test.internals.TestFactoryImpl.createTest(TestFactoryImpl.java:35) > at com.gestalt.soakit.test.TestActivator.start(TestActivator.java:54) > at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
>     at org.apache.felix.framework.Felix._startBundle(Felix.java:1654)
>     ... 7 more
> java.lang.ClassCastException: com.gestalt.soakit.core.internals.CoreFactoryImpl


------------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to