You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Jamescott <ex...@gmail.com> on 2013/09/12 21:51:28 UTC

New to Felix: How to resolve OSGI dependency for maven project

repository.xml
<http://apache-felix.18485.x6.nabble.com/file/n5004977/repository.xml> 
Hello,

I have a maven project which try to use Felix OSGI container to load OSGI
bundles at runtime. Since the bundles I am going to load depended on other
bundles. I am using local OSGI bundle repository to resolve dependency
issue.

First, in Eclipse, I run bundle:index maven goal to generate a
"repository.xml" file containing all dependencies by using
maven-bundle-plugin.

Second, my test code using Felix OSGI service API trys to resolve dependency
for one bundle based on "repository.xml"

FileUtils.deleteDirectory(new File("felix-cache"));
			FrameworkFactory frameworkFactory =
ServiceLoader.load(FrameworkFactory.class).iterator().next();

			framework = frameworkFactory.newFramework(new HashMap<String, String>());
			framework.start();

			@SuppressWarnings("restriction")
			RepositoryAdmin repoAdmin = new
RepositoryAdminImpl(framework.getBundleContext(), null);
			URL url = new File("S:\\maven.repo\\repository.xml").toURI().toURL();
			
			repoAdmin.addRepository(url);
			Resolver resolver = repoAdmin.resolver();
			Resource[] resource =
repoAdmin.discoverResources("(symbolicname=com.ebay.bullseye.integ.BullseyeDAO)");
			resolver.add(resource[0]);
			if (resolver.resolve())
			{
			    resolver.deploy(16);
			}
			else
			{
			    Reason[] reasons = resolver.getUnsatisfiedRequirements();
			    for (Reason reason : reasons)
			    {
			        System.out.println("Unable to resolve, requirement: " +
reason.getRequirement() + " resource: " + reason.getResource());
			    }
			}


But resolver.resolve() return false, and unsatisfiedRequirments are printed
out as following 

Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.retry)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=org.cliffc.high_scale_lib)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.http.util)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement: package:(&(package=sun.tools.javac))
resource: org.apache.ant.ant-launcher/1.7.0
Unable to resolve, requirement: package:(&(package=javax.ws.rs.core))
resource: com.sun.jersey.jersey-core/1.8.0
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.thrift)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement: package:(&(package=sun.rmi.rmic)) resource:
org.apache.ant.ant/1.7.0
Unable to resolve, requirement: package:(&(package=sun.tools.javac))
resource: org.apache.ant.ant/1.7.0
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.util)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.connectionpool)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.model)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=org.apache.http.io)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=com.google.common.cache)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=com.google.common.collect)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.spi.inject)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.provider)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.google.common.primitives)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement: package:(&(package=javax.ws.rs)) resource:
com.sun.jersey.jersey-core/1.8.0
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.spi.component.ioc)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.google.common.io)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=org.apache.http.entity)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement: package:(&(package=javax.ws.rs.ext))
resource: com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=org.apache.http.impl)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.impl)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.shallows)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=com.google.common.collect)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement: package:(&(package=sun.misc)) resource:
com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=com.google.common.io)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.utils)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.db.marshal)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.thrift)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement: package:(&(package=com.sun.tools.javac))
resource: org.apache.ant.ant-launcher/1.7.0
Unable to resolve, requirement:
package:(&(package=com.google.common.base)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=org.apache.http.protocol)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement: package:(&(package=com.sun.jersey.spi))
resource: com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement: package:(&(package=com.sun.tools.javac))
resource: org.apache.ant.ant/1.7.0
Unable to resolve, requirement:
package:(&(package=org.apache.http.params)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement: package:(&(package=javax.ws.rs.ext))
resource: com.sun.jersey.jersey-core/1.8.0
Unable to resolve, requirement:
package:(&(package=org.apache.http.impl.io)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.cql.jdbc)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.service)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.http.impl.entity)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.spi.service)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.reflection)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=org.apache.http.message)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=com.google.common.cache)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement: package:(&(package=sun.misc)) resource:
net.jpountz.lz4.lz4/1.1.0
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.connectionpool.impl)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement: package:(&(package=sun.misc)) resource:
com.google.guava.guava/11.0.2
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.serializers)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=org.apache.http)(version>=4.1.2)) resource:
org.apache.httpcomponents.httpclient/4.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.cassandra.dht)(version>=0.3.0)(!(version>=1.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=com.google.common.util.concurrent)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=net.jpountz.lz4)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.astyanax.astyanax-dependencies/0.3.1
Unable to resolve, requirement:
package:(&(package=com.google.common.base)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.spi.factory)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.connectionpool.exceptions)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement: package:(&(package=org.apache.env))
resource: org.apache.ant.ant/1.7.0
Unable to resolve, requirement:
package:(&(package=com.netflix.astyanax.query)(version>=1.1.0)(!(version>=2.0.0)))
resource: com.ebay.bullseye.integ.BullseyeDAO/2.0.1.SNAPSHOT
Unable to resolve, requirement:
package:(&(package=org.apache.tools.ant.util.java15)) resource:
org.apache.ant.ant/1.7.0
Unable to resolve, requirement: package:(&(package=org.apache.tomcat))
resource: org.apache.geronimo.ext.tomcat.util/7.0.0.2-SNAPSHOT
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.header)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement:
package:(&(package=com.google.common.util.concurrent)(version>=11.0.0)(!(version>=12.0.0)))
resource: com.ebay.astyanax.astyanax/1.1.2
Unable to resolve, requirement:
package:(&(package=org.apache.tools.ant.taskdefs.optional)) resource:
org.apache.ant.ant/1.7.0
Unable to resolve, requirement:
package:(&(package=com.sun.jersey.core.spi.component)) resource:
com.sun.jersey.jersey-client/1.8.0
Unable to resolve, requirement: package:(&(package=javax.ws.rs.core))
resource: com.sun.jersey.jersey-client/1.8.0

Since I am new to Apache Felix, I am looking for any help on my issues. The
repository.xml is attached as well

Thanks in advances





--
View this message in context: http://apache-felix.18485.x6.nabble.com/New-to-Felix-How-to-resolve-OSGI-dependency-for-maven-project-tp5004977.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org