>>>>> Steinar Bang <s...@dod.no>: > Platform: debian 9.5 "stretch", amd64 > openjdk-8-jdk 8u181-b13-1~deb9u1 > karaf 4.1.5
> (Note: This is a project very much in the start phase so I haven't pushed > anything to github yet) > I'm trying to inject a SystemMBean into a DS component. When I try > this, loading the feature holding the component, fails with an error > message: > karaf@root()> feature:repo-add > mvn:no.priv.bang.neo4j.karaf/neo4j-karaf/LATEST/xml/features > Adding feature url > mvn:no.priv.bang.neo4j.karaf/neo4j-karaf/LATEST/xml/features > karaf@root()> feature:install neo4j-server > Error executing command: Unable to resolve root: missing requirement [root] > osgi.identity; osgi.identity=neo4j-server; type=karaf.feature; > version="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]"; > filter:="(&(osgi.identity=neo4j-server)(type=karaf.feature)(version>=1.0.0.SNAPSHOT)(version<=1.0.0.SNAPSHOT))" > [caused by: Unable to resolve neo4j-server/1.0.0.SNAPSHOT: missing > requirement [neo4j-server/1.0.0.SNAPSHOT] osgi.identity; > osgi.identity=no.priv.bang.neo4j.karaf; type=osgi.bundle; > version="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]"; resolution:=mandatory [caused by: > Unable to resolve no.priv.bang.neo4j.karaf/1.0.0.SNAPSHOT: missing > requirement [no.priv.bang.neo4j.karaf/1.0.0.SNAPSHOT] osgi.service; > filter:="(objectClass=org.apache.karaf.system.management.SystemMBean)"; > effective:=active]] > karaf@root()> If I remove the @Reference public void setLogservice(LogService logservice) { this.logservice = logservice; } then my feature loads: karaf@root()> feature:repo-add mvn:no.priv.bang.neo4j.karaf/neo4j-karaf/LATEST/xml/features Adding feature url mvn:no.priv.bang.neo4j.karaf/neo4j-karaf/LATEST/xml/features karaf@root()> feature:install neo4j-server karaf@root()> So I guess this means that the above message is because the service dependency isn't satisfied...? But why isn't the ServiceMBean service dependency satisfied from this? karaf@root()> bundle:capabilities org.apache.karaf.system.core org.apache.karaf.system.core [46] provides: ------------------------------------------- osgi.wiring.bundle; org.apache.karaf.system.core 4.1.5 [UNUSED] osgi.wiring.host; org.apache.karaf.system.core 4.1.5 [UNUSED] osgi.identity; org.apache.karaf.system.core 4.1.5 [UNUSED] osgi.wiring.package; org.apache.karaf.system 4.1.5 [UNUSED] osgi.wiring.package; org.apache.karaf.system.management 4.1.5 [UNUSED] service; [org.apache.karaf.system.SystemService] with properties: service.bundleid = 46 service.id = 103 service.scope = singleton Used by: org.apache.karaf.system.core [46] service; [org.apache.karaf.system.management.SystemMBean, javax.management.DynamicMBean, javax.management.MBeanRegistration] with properties: jmx.objectname = org.apache.karaf:type=system,name=root service.bundleid = 46 service.id = 104 service.scope = singleton Used by: org.apache.aries.jmx.whiteboard [18] karaf@root()> Maybe I would be better off trying to inject the SystemService? (if that does what I need to do? Yep, it appears to have the same methods, more or less... [1]) References [1] <https://github.com/apache/karaf/blob/master/system/src/main/java/org/apache/karaf/system/SystemService.java>