Hi Steinar,

Are you shure about the @Reference ? In your example code, the reference
is on a LogService.

regards,

François Papon
[email protected]

Le 09/09/2018 à 18:05, Steinar Bang a écrit :
>>>>>> Steinar Bang <[email protected]>:
>> 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>
>


Reply via email to