Bundle:diag doesn’t help ?

Anyway sure you can it programmatically by deploying your own bundle. But the 
problem is not jmx, ssh or code, it’s the fact we don’t provide spring-dm state 
service. So you would have to implement it yourself. 

Regards 
JB

> Le 10 sept. 2021 à 12:28, Andrei Petru Mura <[email protected]> a écrit :
> 
> 
> Yes, I intend to switch to blueprint, but not right now. Firstly I would need 
> a solution to my problem. Is there any other way to access karaf remotely 
> other than JMX and SSH console? I'm interested in a programmatic way. 
> 
> Thanks,
> Andrei
> 
>> On Fri, Sep 10, 2021 at 1:23 PM JB Onofré <[email protected]> wrote:
>> Hi
>> 
>> Karaf 4.0 is super old. Anyway we provided state for blueprint and SCR but 
>> not spring-dm. And spring-dm is now deprecated (replaced by blueprint). 
>> 
>> Any plan for you to move to blueprint ?
>> 
>> Regards 
>> JB
>> 
>>>> Le 10 sept. 2021 à 12:13, Andrei Petru Mura <[email protected]> a écrit :
>>>> 
>>> 
>>> Hi there,
>>> 
>>> Did my message reach out to you?
>>> 
>>> Thanks,
>>> Andrei
>>> 
>>>> On Thu, Sep 9, 2021 at 4:49 PM Andrei Petru Mura <[email protected]> 
>>>> wrote:
>>>> Hello,
>>>> 
>>>> In Karaf 4.0.4, I have my own bundles deployed using spring-dm. I would be 
>>>> interested if there is a possibility to get the status of a bundle via JMX 
>>>> as it is listed in karaf console.
>>>> 
>>>> In karaf, I get this:
>>>> karaf@root> list
>>>> 
>>>> 285 | Active   |  80 | 1.0.0.SNAPSHOT | bundle-name
>>>> 
>>>> From my Java routine, I try to get the status via:
>>>> 
>>>> BundlesMBean mbeanProxy = JMX.newMBeanProxy(mbeanServer, bundlesObjName, 
>>>> BundlesMBean.class, true);
>>>> TabularData tabularData = mbeanProxy.getBundles();
>>>> 
>>>> for (Object k : tabularData.keySet()) {
>>>>     // key from tabularData is a java.util.List
>>>>     Object[] key = ((List<?>) k).toArray();
>>>>     // CompositeData is a java.util.Map that hold properties
>>>>     // of a JMX entity
>>>>     CompositeData bundle = tabularData.get(key);
>>>>     String nameAttr = (String) bundle.get(BUNDLE_NAME_ATTR);
>>>>     String versionAttr = (String) bundle.get(BUNDLE_VERSION_ATTR);
>>>>     // checks if interested bundle
>>>>     if ( (nameAttr != null && nameAttr.equals("bundle-name"))
>>>>         && (versionAttr != null && versionAttr.equals("1.0.0.SNAPSHOT"))
>>>>     {
>>>>         // return bundle status taken as it is as java.lang.String
>>>>         // in karaf.
>>>>         return (String) bundle.get(BUNDLE_STATE_ATTR);
>>>>     }
>>>> }
>>>> 
>>>> The problem is that I always get null. Why this? and how can I make it so 
>>>> that I get the Spring status?
>>>> 
>>>> Thanks,
>>>> Andrei

Reply via email to