You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by "Beyer, Doug" <do...@troppussoftware.com> on 2011/07/03 17:49:24 UTC

Another "Unresolved constraint" issue

Problem:
Bundle com_troppus_Log.jar imports basic osgi packages which are exported by bundles in the felix bundle directory. Note that I experimented by removing the "org.osgi.service.compone
nt " import from the com_troppus_Log bundle's manifest and I then got a similar error for the imported org.osgi.service.log package. This indicates to me that I'm missing something basic in importing container services.

Might this be an issue with the "uses" clause that the container service bundles are using in their manifests? That is, the system bundle exports "org.osgi.framework; version="1.5.0"" which is a higher version than either the felix "scr" or "log" bundle states in their uses clauses.


Error at felix startup with my bundle (i.e. Troppus Log Bundle) in the <felix root> bundle directory:

D:\MyDocs\Projects\felix-framework-3.2.2>java -jar bin/felix.jar -console
ERROR: Bundle com.troppus.bundle.log [1] Error starting file:/D:/MyDocs/Projects
/felix-framework-3.2.2/bundle/com_troppus_Log.jar (org.osgi.framework.BundleExce
ption: Unresolved constraint in bundle com.troppus.bundle.log [1]: Unable to res
olve 1.0: missing requirement [1.0] package; (package=: org.osgi.service.compone
nt))
org.osgi.framework.BundleException: Unresolved constraint in bundle com.troppus.
bundle.log [1]: Unable to resolve 1.0: missing requirement [1.0] package; (packa
ge=: org.osgi.service.component)
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3564)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)

        at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266
)
        at java.lang.Thread.run(Unknown Source)
____________________________
Welcome to Apache Felix Gogo

g! lb
START LEVEL 1
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (3.2.2)
    1|Installed  |    1|Troppus Log Bundle (1.0.0)
    2|Active     |    1|Apache Felix Bundle Repository (1.6.2)
    3|Active     |    1|Apache Felix Configuration Admin Service (1.2.8)
    4|Active     |    1|Apache Felix Gogo Command (0.8.0)
    5|Active     |    1|Apache Felix Gogo Runtime (0.8.0)
    6|Active     |    1|Apache Felix Gogo Shell (0.8.0)
    7|Active     |    1|Apache Felix Log Service (1.0.1)
    8|Active     |    1|Apache Felix Declarative Services (1.6.0)
g! headers 1

Troppus Log Bundle (1)
----------------------
Bundle-ClassPath = .
Bundle-ManifestVersion = 2
Bundle-Name = Troppus Log Bundle
Bundle-SymbolicName = com.troppus.bundle.log
Bundle-Vendor = Troppus
Bundle-Version = 1.0.0
Export-Package = com.troppus.bundle.log.intf
Import-Package = : org.osgi.service.component, org.osgi.service.log
Manifest-Version = 1.0.0
Service-Component = OSGI-INF/logger.xml
g! headers 8

Apache Felix Declarative Services (8)
-------------------------------------
Bnd-LastModified = 1281447210302
Build-Jdk = 1.6.0_13
Built-By = fmeschbe
Bundle-Activator = org.apache.felix.scr.impl.Activator
Bundle-ClassPath = .,kxml2-2.2.2.jar
Bundle-Description = Implementation of the Declarative Services specification 1.
1
Bundle-DocURL = http://felix.apache.org/site/apache-felix-service-component-runt
ime.html
Bundle-License = http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion = 2
Bundle-Name = Apache Felix Declarative Services
Bundle-SymbolicName = org.apache.felix.scr
Bundle-Vendor = The Apache Software Foundation
Bundle-Version = 1.6.0
Created-By = Apache Maven Bundle Plugin
Embed-Dependency = kxml2
Export-Package = org.apache.felix.scr;uses:="org.osgi.framework,org.osgi.service
.component";version="1.6",org.osgi.service.component;uses:="org.osgi.framework";
version="1.1"
Import-Package = org.apache.felix.shell;resolution:=optional;version="1.0",org.o
sgi.framework;version="[1.4,2)",org.osgi.service.cm;resolution:=optional;version
="[1.2,2)",org.osgi.service.component;version="[1.1,1.2)",org.osgi.service.log;r
esolution:=optional;version="[1.3,2)",org.osgi.service.metatype;resolution:=opti
onal;version="[1.1,2)",org.osgi.service.packageadmin;resolution:=optional;versio
n="[1.2,2)"
Manifest-Version = 1.0
Tool = Bnd-0.0.357
g! headers 7

Apache Felix Log Service (7)
----------------------------
Bnd-LastModified = 1301327294568
Build-Jdk = 1.6.0_24
Built-By = rickhall
Bundle-Activator = org.apache.felix.log.Activator
Bundle-Description = A simple implementation of the OSGi R4 Log service.
Bundle-DocURL = http://www.apache.org/
Bundle-License = http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion = 2
Bundle-Name = Apache Felix Log Service
Bundle-SymbolicName = org.apache.felix.log
Bundle-Vendor = The Apache Software Foundation
Bundle-Version = 1.0.1
Created-By = Apache Maven Bundle Plugin
Export-Package = org.osgi.service.log;uses:="org.osgi.framework";version="1.3"
Export-Service = org.osgi.service.log.LogService,org.osgi.service.log.LogReaderS
ervice
Import-Package = org.osgi.framework;version="[1.4,2)",org.osgi.service.log;versi
on="[1.3,2)"
Manifest-Version = 1.0
Tool = Bnd-1.15.0
g! headers 0

System Bundle (0)
-----------------
Bundle-Description = This bundle is system specific; it implements various syste
m services.
Bundle-ManifestVersion = 2
Bundle-Name = System Bundle
Bundle-SymbolicName = org.apache.felix.framework
Bundle-Version = 3.2.2
Export-Package = org.osgi.framework; version="1.5.0", org.osgi.framework.launch;
version="1.0.0", org.osgi.framework.hooks.service; version="1.0.0", org.osgi.se
rvice.packageadmin; version="1.2.0", org.osgi.service.startlevel; version="1.1.0
", org.osgi.service.url; version="1.0.0", org.osgi.util.tracker; version="1.4.0"
, javax.accessibility; version="0.0.0.1_006_JavaSE", javax.activation; version="
0.0.0.1_006_JavaSE", javax.activity; version="0.0.0.1_006_JavaSE", javax.annotat
ion; version="0.0.0.1_006_JavaSE", javax.annotation.processing; version="0.0.0.1
_006_JavaSE", javax.crypto; version="0.0.0.1_006_JavaSE", javax.crypto.interface
s; version="0.0.0.1_006_JavaSE", javax.crypto.spec; version="0.0.0.1_006_JavaSE"
, javax.imageio; version="0.0.0.1_006_JavaSE", javax.imageio.event; version="0.0
.0.1_006_JavaSE", javax.imageio.metadata; version="0.0.0.1_006_JavaSE", javax.im
ageio.plugins.bmp; version="0.0.0.1_006_JavaSE", javax.imageio.plugins.jpeg; ver
sion="0.0.0.1_006_JavaSE", javax.imageio.spi; version="0.0.0.1_006_JavaSE", java
x.imageio.stream; version="0.0.0.1_006_JavaSE", javax.jws; version="0.0.0.1_006_
JavaSE", javax.jws.soap; version="0.0.0.1_006_JavaSE", javax.lang.model; version
="0.0.0.1_006_JavaSE", javax.lang.model.element; version="0.0.0.1_006_JavaSE", j
avax.lang.model.type; version="0.0.0.1_006_JavaSE", javax.lang.model.util; versi
on="0.0.0.1_006_JavaSE", javax.management; version="0.0.0.1_006_JavaSE", javax.m
anagement.loading; version="0.0.0.1_006_JavaSE", javax.management.modelmbean; ve
rsion="0.0.0.1_006_JavaSE", javax.management.monitor; version="0.0.0.1_006_JavaS
E", javax.management.openmbean; version="0.0.0.1_006_JavaSE", javax.management.r
elation; version="0.0.0.1_006_JavaSE", javax.management.remote; version="0.0.0.1
_006_JavaSE", javax.management.remote.rmi; version="0.0.0.1_006_JavaSE", javax.m
anagement.timer; version="0.0.0.1_006_JavaSE", javax.naming; version="0.0.0.1_00
6_JavaSE", javax.naming.directory; version="0.0.0.1_006_JavaSE", javax.naming.ev
ent; version="0.0.0.1_006_JavaSE", javax.naming.ldap; version="0.0.0.1_006_JavaS
E", javax.naming.spi; version="0.0.0.1_006_JavaSE", javax.net; version="0.0.0.1_
006_JavaSE", javax.net.ssl; version="0.0.0.1_006_JavaSE", javax.print; version="
0.0.0.1_006_JavaSE", javax.print.attribute; version="0.0.0.1_006_JavaSE", javax.
print.attribute.standard; version="0.0.0.1_006_JavaSE", javax.print.event; versi
on="0.0.0.1_006_JavaSE", javax.rmi; version="0.0.0.1_006_JavaSE", javax.rmi.CORB
A; version="0.0.0.1_006_JavaSE", javax.rmi.ssl; version="0.0.0.1_006_JavaSE", ja
vax.script; version="0.0.0.1_006_JavaSE", javax.security.auth; version="0.0.0.1_
006_JavaSE", javax.security.auth.callback; version="0.0.0.1_006_JavaSE", javax.s
ecurity.auth.kerberos; version="0.0.0.1_006_JavaSE", javax.security.auth.login;
version="0.0.0.1_006_JavaSE", javax.security.auth.spi; version="0.0.0.1_006_Java
SE", javax.security.auth.x500; version="0.0.0.1_006_JavaSE", javax.security.cert
; version="0.0.0.1_006_JavaSE", javax.security.sasl; version="0.0.0.1_006_JavaSE
", javax.sound.midi; version="0.0.0.1_006_JavaSE", javax.sound.midi.spi; version
="0.0.0.1_006_JavaSE", javax.sound.sampled; version="0.0.0.1_006_JavaSE", javax.
sound.sampled.spi; version="0.0.0.1_006_JavaSE", javax.sql; version="0.0.0.1_006
_JavaSE", javax.sql.rowset; version="0.0.0.1_006_JavaSE", javax.sql.rowset.seria
l; version="0.0.0.1_006_JavaSE", javax.sql.rowset.spi; version="0.0.0.1_006_Java
SE", javax.swing; version="0.0.0.1_006_JavaSE", javax.swing.border; version="0.0
.0.1_006_JavaSE", javax.swing.colorchooser; version="0.0.0.1_006_JavaSE", javax.
swing.event; version="0.0.0.1_006_JavaSE", javax.swing.filechooser; version="0.0
.0.1_006_JavaSE", javax.swing.plaf; version="0.0.0.1_006_JavaSE", javax.swing.pl
af.basic; version="0.0.0.1_006_JavaSE", javax.swing.plaf.metal; version="0.0.0.1
_006_JavaSE", javax.swing.plaf.multi; version="0.0.0.1_006_JavaSE", javax.swing.
plaf.synth; version="0.0.0.1_006_JavaSE", javax.swing.table; version="0.0.0.1_00
6_JavaSE", javax.swing.text; version="0.0.0.1_006_JavaSE", javax.swing.text.html
; version="0.0.0.1_006_JavaSE", javax.swing.text.html.parser; version="0.0.0.1_0
06_JavaSE", javax.swing.text.rtf; version="0.0.0.1_006_JavaSE", javax.swing.tree
; version="0.0.0.1_006_JavaSE", javax.swing.undo; version="0.0.0.1_006_JavaSE",
javax.tools; version="0.0.0.1_006_JavaSE", javax.transaction; version="0.0.0.1_0
06_JavaSE", javax.transaction.xa; version="0.0.0.1_006_JavaSE", javax.xml; versi
on="0.0.0.1_006_JavaSE", javax.xml.bind; version="0.0.0.1_006_JavaSE", javax.xml
.bind.annotation; version="0.0.0.1_006_JavaSE", javax.xml.bind.annotation.adapte
rs; version="0.0.0.1_006_JavaSE", javax.xml.bind.attachment; version="0.0.0.1_00
6_JavaSE", javax.xml.bind.helpers; version="0.0.0.1_006_JavaSE", javax.xml.bind.
util; version="0.0.0.1_006_JavaSE", javax.xml.crypto; version="0.0.0.1_006_JavaS
E", javax.xml.crypto.dom; version="0.0.0.1_006_JavaSE", javax.xml.crypto.dsig; v
ersion="0.0.0.1_006_JavaSE", javax.xml.crypto.dsig.dom; version="0.0.0.1_006_Jav
aSE", javax.xml.crypto.dsig.keyinfo; version="0.0.0.1_006_JavaSE", javax.xml.cry
pto.dsig.spec; version="0.0.0.1_006_JavaSE", javax.xml.datatype; version="0.0.0.
1_006_JavaSE", javax.xml.namespace; version="0.0.0.1_006_JavaSE", javax.xml.pars
ers; version="0.0.0.1_006_JavaSE", javax.xml.soap; version="0.0.0.1_006_JavaSE",
javax.xml.stream; version="0.0.0.1_006_JavaSE", javax.xml.stream.events; versio
n="0.0.0.1_006_JavaSE", javax.xml.stream.util; version="0.0.0.1_006_JavaSE", jav
ax.xml.transform; version="0.0.0.1_006_JavaSE", javax.xml.transform.dom; version
="0.0.0.1_006_JavaSE", javax.xml.transform.sax; version="0.0.0.1_006_JavaSE", ja
vax.xml.transform.stax; version="0.0.0.1_006_JavaSE", javax.xml.transform.stream
; version="0.0.0.1_006_JavaSE", javax.xml.validation; version="0.0.0.1_006_JavaS
E", javax.xml.ws; version="0.0.0.1_006_JavaSE", javax.xml.ws.handler; version="0
.0.0.1_006_JavaSE", javax.xml.ws.handler.soap; version="0.0.0.1_006_JavaSE", jav
ax.xml.ws.http; version="0.0.0.1_006_JavaSE", javax.xml.ws.soap; version="0.0.0.
1_006_JavaSE", javax.xml.ws.spi; version="0.0.0.1_006_JavaSE", javax.xml.ws.wsad
dressing; version="0.0.0.1_006_JavaSE", javax.xml.xpath; version="0.0.0.1_006_Ja
vaSE", org.ietf.jgss; version="0.0.0.1_006_JavaSE", org.omg.CORBA; version="0.0.
0.1_006_JavaSE", org.omg.CORBA_2_3; version="0.0.0.1_006_JavaSE", org.omg.CORBA_
2_3.portable; version="0.0.0.1_006_JavaSE", org.omg.CORBA.DynAnyPackage; version
="0.0.0.1_006_JavaSE", org.omg.CORBA.ORBPackage; version="0.0.0.1_006_JavaSE", o
rg.omg.CORBA.portable; version="0.0.0.1_006_JavaSE", org.omg.CORBA.TypeCodePacka
ge; version="0.0.0.1_006_JavaSE", org.omg.CosNaming; version="0.0.0.1_006_JavaSE
", org.omg.CosNaming.NamingContextExtPackage; version="0.0.0.1_006_JavaSE", org.
omg.CosNaming.NamingContextPackage; version="0.0.0.1_006_JavaSE", org.omg.Dynami
c; version="0.0.0.1_006_JavaSE", org.omg.DynamicAny; version="0.0.0.1_006_JavaSE
", org.omg.DynamicAny.DynAnyFactoryPackage; version="0.0.0.1_006_JavaSE", org.om
g.DynamicAny.DynAnyPackage; version="0.0.0.1_006_JavaSE", org.omg.IOP; version="
0.0.0.1_006_JavaSE", org.omg.IOP.CodecFactoryPackage; version="0.0.0.1_006_JavaS
E", org.omg.IOP.CodecPackage; version="0.0.0.1_006_JavaSE", org.omg.Messaging; v
ersion="0.0.0.1_006_JavaSE", org.omg.PortableInterceptor; version="0.0.0.1_006_J
avaSE", org.omg.PortableInterceptor.ORBInitInfoPackage; version="0.0.0.1_006_Jav
aSE", org.omg.PortableServer; version="0.0.0.1_006_JavaSE", org.omg.PortableServ
er.CurrentPackage; version="0.0.0.1_006_JavaSE", org.omg.PortableServer.POAManag
erPackage; version="0.0.0.1_006_JavaSE", org.omg.PortableServer.POAPackage; vers
ion="0.0.0.1_006_JavaSE", org.omg.PortableServer.portable; version="0.0.0.1_006_
JavaSE", org.omg.PortableServer.ServantLocatorPackage; version="0.0.0.1_006_Java
SE", org.omg.SendingContext; version="0.0.0.1_006_JavaSE", org.omg.stub.java.rmi
; version="0.0.0.1_006_JavaSE", org.omg.stub.javax.management.remote.rmi; versio
n="0.0.0.1_006_JavaSE", org.w3c.dom; version="0.0.0.1_006_JavaSE", org.w3c.dom.b
ootstrap; version="0.0.0.1_006_JavaSE", org.w3c.dom.css; version="0.0.0.1_006_Ja
vaSE", org.w3c.dom.events; version="0.0.0.1_006_JavaSE", org.w3c.dom.html; versi
on="0.0.0.1_006_JavaSE", org.w3c.dom.ls; version="0.0.0.1_006_JavaSE", org.w3c.d
om.ranges; version="0.0.0.1_006_JavaSE", org.w3c.dom.stylesheets; version="0.0.0
.1_006_JavaSE", org.w3c.dom.traversal; version="0.0.0.1_006_JavaSE", org.w3c.dom
.views; version="0.0.0.1_006_JavaSE", org.w3c.dom.xpath; version="0.0.0.1_006_Ja
vaSE", org.xml.sax; version="0.0.0.1_006_JavaSE", org.xml.sax.ext; version="0.0.
0.1_006_JavaSE", org.xml.sax.helpers; version="0.0.0.1_006_JavaSE"
Export-Service = org.osgi.service.packageadmin.PackageAdmin,org.osgi.service.sta
rtlevel.StartLevel,org.osgi.service.url.URLHandlers
g!