>>>>> Steinar Bang <[email protected]>:

> My bundle, ie. the bundle containing the failing component, contains an
> import-package for org.neo4j.graphdb.

> But the bundle where the error occurs, ie. 
> wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-graphdb-api_3.4.7_neo4j-graphdb-api-3.4.7.jar
> does *not* contain an import-package for org.neo4j.graphdb.

> Is there a way to force-add an import-package for a wrapped jar?

I did the following:
 1. Exclude the offending dependency from the maven dependencies
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j</artifactId>
            <version>3.4.7</version>
            <exclusions>
                <exclusion>
                    <groupId>org.neo4j</groupId>
                    <artifactId>neo4j-graphdb-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-graphdb-api</artifactId>
            <version>3.4.7</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-resource</artifactId>
            <version>3.4.7</version>
        </dependency>
  2. Explictly specify the wrap'ed bundle in the template feature.xml,
     adding the org.neo4j.graphdb to 
        <bundle 
start-level="80">wrap:mvn:org.neo4j/neo4j-graphdb-api/3.4.7$Import-Package=org.neo4j.collection.primitive;resolution:=optional,org.neo4j.function;resolution:=optional,org.neo4j.helpers;resolution:=optional,org.neo4j.helpers.collection;resolution:=optional,org.neo4j.kernel.api.exceptions;resolution:=optional,org.neo4j.graphdb;resolution:=optional</bundle>

bundle:headers reported the wrapped mvn:org.neo4j/neo4j-graphdb-api to
be importing org.neo4j.graphdb but I still got the exception when
running the activator:
...
Caused by: java.lang.ClassNotFoundException: org.neo4j.graphdb.ResourceIterable 
not found by 
wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-graphdb-api_3.4.7_neo4j-graphdb-api-3.4.7.jar_Import-Package_org.neo4j.collection.primitive_resolution__optional_org.neo4j.function_resolution__optional_org.neo4j.helpers_resolution__optional_org.neo4j.helpers.collection_resolution__optional_org.neo4j.kernel.api.exceptions_resolution__optional_org.neo4j.graphdb_resolution__optional
 [106]

Also bundle:capabilities on the wrapped mvn:org.neo4j/neo4j-resource/3.4.7
shows the package as unused:
 karaf@root()> bundle:capabilities 117
 
wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-resource_3.4.7_neo4j-resource-3.4.7.jar
 [117] provides:
 
---------------------------------------------------------------------------------------------------------
 osgi.wiring.bundle; 
wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-resource_3.4.7_neo4j-resource-3.4.7.jar
 0.0.0 [UNUSED]
 osgi.wiring.host; 
wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-resource_3.4.7_neo4j-resource-3.4.7.jar
 0.0.0 [UNUSED]
 osgi.identity; 
wrap_file__home_sb_.m2_repository_org_neo4j_neo4j-resource_3.4.7_neo4j-resource-3.4.7.jar
 0.0.0 [UNUSED]
 osgi.wiring.package; org.neo4j.graphdb 0.0.0 [UNUSED]
 karaf@root()>

Reply via email to