You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@ace.apache.org by "Robert M. Mather" <ro...@gmail.com> on 2015/04/09 23:40:14 UTC

Resolves in Bndtools but not ACE due to missing osgi.ee 1.6

I'm using Bndtools to generate (via bndrun > export) a runnable jar
embedding Felix framework 4.6.0 and org.apache.ace.agent 1.0.1. Here is the
.bndrun file:

-runfw: org.apache.felix.framework;version='[4.6.0,4.6.0]'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}

-resolve.effective: active;skip:="osgi.service"
-runrequires:  \
osgi.identity;filter:='(&(osgi.identity=org.apache.ace.agent)(version>=1.0.1))'
-runbundles:  \
org.apache.ace.agent;version='[1.0.1,1.0.2)'
-resolve: auto
-runproperties:  \
org.apache.felix.http.jettyEnabled=true

I have a set of bundles that successfully resolve in Bndtools against the
same framework and environment. I run the jar I produced with the ACE agent
on a Linux machine with Java 1.8, but I can't resolve/deploy any bundles
that have Require-Capability on JavaSE-1.6. Here is the error:

Deployment package does *not* resolve!
Details:
org.apache.felix.framework.resolver.ResolveException: Unable to resolve
biz.aQute.bnd.annotation;version=2.4.0.201411031537(id=22): missing
requirement [biz.aQute.bnd.annotation;version=2.4.0.201411031537(id=22)]
osgi.ee; (&(osgi.ee=JavaSE)(version=1.6))

Shouldn't the Felix framework running on Java 1.8 provide the capabilities
for previous Java versions? The Felix web console seems to indicate that it
does:

Provide-Capability: osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,
1.1, 1.2", osgi.ee; osgi.ee="JavaSE"; version:List="1.0, 1.1, 1.2, 1.3,
1.4, 1.5, 1.6, 1.7, 1.8", osgi.ee; osgi.ee="JavaSE/compact1";
version:List="1.8", osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8",
osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8", osgi.native;
osgi.native.osname:List="Linux";
osgi.native.osversion:Version=3.19.3.-1-ck;
osgi.native.processor:List="x86-64, amd64, em64t, x86_64"

I know this set of bundles resolves and loads in the framework because I've
tried using fileinstall and embedding everything in a runnable jar and both
work.

Is there some way I can convince the ACE resolver that the capabilities are
available? Is this potentially a bug in a particular version of something
I'm using?

Thanks,

Robert