On Wed, Dec 9, 2015 at 11:00 AM, Jean-Baptiste Onofré <[email protected]> wrote: > karaf@root()> scr:info > Error executing command: Cannot coerce info() to any of [(String)] > > You have to use 4.0.4-SNAPSHOT as I fixed an issue in shell-compat.
Ah, well, that's different. > > Regards > JB > > > On 12/09/2015 02:06 PM, Benson Margulies wrote: >> >> karaf@root>feature:install shell-compat >> karaf@root> >> karaf@root>scr:info >> Command not found: scr:info >> >> >> On Wed, Dec 9, 2015 at 8:03 AM, Jean-Baptiste Onofré <[email protected]> >> wrote: >>> >>> Gogo commands should work if shell-compat feature is installed. >>> >>> Regards >>> JB >>> >>> >>> >>> Sent from my Samsung device >>> >>> >>> -------- Original message -------- >>> From: Benson Margulies <[email protected]> >>> Date: 09/12/2015 12:34 (GMT+01:00) >>> To: [email protected] >>> Subject: Re: Bundle in mysterious scr state >>> >>> JB, I have some related issues for which I would really benefit from >>> using the 'real gogo scr' command. Is there some method I'm missing to >>> get to it? >>> >>> On Tue, Dec 8, 2015 at 9:00 PM, Benson Margulies <[email protected]> >>> wrote: >>>> >>>> Bingo! Thank you very much! >>>> >>>> On Tue, Dec 8, 2015 at 8:57 PM, Benson Margulies <[email protected]> >>>> wrote: >>>>> >>>>> On Tue, Dec 8, 2015 at 8:49 PM, David Jencks <[email protected]> >>>>> wrote: >>>>>> >>>>>> The simplest explanation for the behavior change is that no-service >>>>>> components are immediate (there’s no service to request to trigger >>>>>> creation >>>>>> of the component) whereas components exposing a service are delayed >>>>>> unless >>>>>> you explicitly specify immediate. You could have put your system into >>>>>> a >>>>>> state where no one has actually requested the WebServiceAvailable >>>>>> service, >>>>>> so none of the network of components gets activated, and as soon as >>>>>> something gets the service, everything will start up. If you specify >>>>>> immediate=true and you get the old behavior, this is what happened >>>>>> :-). >>>>>> Then you can decide how lazily you want all these services to be >>>>>> instantiated. >>>>> >>>>> >>>>> I guess I misread the doc on immediate to be 'true' when there was no >>>>> factory. Let me go turn it on. >>>>> >>>>> As a reported, I'm momentarily stumped on the scr:info command, having >>>>> done what you suggested to no good effect. >>>>> >>>>> >>>>>> >>>>>> I bet that if you removed the karaf scr command and rebuilt (or left >>>>>> out >>>>>> the bundle its in if that wouldn’t kill the console) you’d see the >>>>>> felix scr >>>>>> gogo command…. I thought I remember JB saying recently that karaf >>>>>> supported >>>>>> both karaf and gogo commands, so maybe the karaf one is hiding the >>>>>> same-named felix one. >>>>>> >>>>>> Felix scr logs way more info than you get in the info command, but >>>>>> it’s >>>>>> harder to interpret. You need to make sure the log service is >>>>>> recording >>>>>> debug level, and you need to set the felix scr configuration property >>>>>> >>>>>> ds.loglevel=debug >>>>>> >>>>>> If you are configuring ds using config admin, put this in the >>>>>> configuration. Otherwise you can set it as a framework property (not >>>>>> sure >>>>>> how to do this in karaf, but I imagine it’s possible). >>>>>> >>>>>> hope this helps >>>>>> david jencks >>>>>> >>>>>>> On Dec 8, 2015, at 5:26 PM, Benson Margulies <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>> The component state is '2' (ENABLED). >>>>>>> >>>>>>> I can now describe what brings on this mess. Here's a diff. In a >>>>>>> different bundle, in a different component, I change it from services >>>>>>> = {} to service = { some interface }. >>>>>>> >>>>>>> Thereafter, a whole slew of bundles get into this stuck state. In >>>>>>> particular, a bundle that is absolutely not depending on the one I >>>>>>> change. >>>>>>> >>>>>>> I don't think that plain gogo commands can be run in Karaf, but I >>>>>>> could be misinformed. >>>>>>> >>>>>>> David, short of doing the work of porting the modern SCR display code >>>>>>> from Felix into Karaf, any ideas about what to look at? >>>>>>> >>>>>>> Does SCR log anything I could enable to get a clue? >>>>>>> >>>>>>> diff --git >>>>>>> >>>>>>> a/worker/service/src/main/java/com/basistech/ws/worker/service/WorkerService.java >>>>>>> >>>>>>> >>>>>>> b/worker/service/src/main/java/com/basistech/ws/worker/service/WorkerService.java >>>>>>> index 572bcc6..9f7f22f 100644 >>>>>>> --- >>>>>>> >>>>>>> a/worker/service/src/main/java/com/basistech/ws/worker/service/WorkerService.java >>>>>>> +++ >>>>>>> >>>>>>> b/worker/service/src/main/java/com/basistech/ws/worker/service/WorkerService.java >>>>>>> @@ -15,6 +15,7 @@ >>>>>>> package com.basistech.ws.worker.service; >>>>>>> >>>>>>> import com.basistech.rosette.RosetteRuntimeException; >>>>>>> +import com.basistech.ws.common.WebServiceAvailable; >>>>>>> import com.basistech.ws.common.json.JsonUtils; >>>>>>> import com.basistech.ws.common.ticket.Ticket; >>>>>>> import com.basistech.ws.worker.api.WorkerInterface; >>>>>>> @@ -51,9 +52,11 @@ import java.util.concurrent.atomic.AtomicLong; >>>>>>> * This registers itself upon activation as a CXF JAX-RS Service. >>>>>>> */ >>>>>>> @Component(configurationPid = "com.basistech.ws.worker", >>>>>>> - /* No services; we're here to register with CXF. */ >>>>>>> - service = {}) >>>>>>> -public class WorkerService { >>>>>>> + // this service simply allows tests to wait for this thing >>>>>>> to >>>>>>> be started. >>>>>>> + service = { WebServiceAvailable.class }, >>>>>>> + property = { "service=worker" } >>>>>>> +) >>>>>>> +public class WorkerService implements WebServiceAvailable { >>>>>>> private static final Logger LOG = >>>>>>> LoggerFactory.getLogger(WorkerService.class); >>>>>>> private static final String APPLICATION_X_JACKSON_SMILE = >>>>>>> "application/x-jackson-smile"; >>>>>>> private static final MediaType APPLICATION_X_JACKSON_SMILE_TYPE >>>>>>> >>>>>>> >>>>>>> On Tue, Dec 8, 2015 at 8:09 PM, David Jencks >>>>>>> <[email protected]> >>>>>>> wrote: >>>>>>>> >>>>>>>> The gogo scr command is packaged in felix ds itself. If karaf >>>>>>>> supports gogo >>>>>>>> commands you ought to be able to see it. >>>>>>>> >>>>>>>> Most of those states haven’t existed in years. Are you trying to >>>>>>>> use >>>>>>>> the >>>>>>>> backwards compatibility bundle to avoid updating your command to >>>>>>>> show >>>>>>>> the >>>>>>>> new spec-defined state info from the DTOs? The model the backwards >>>>>>>> compatibility bundle relies on is really bogus. >>>>>>>> >>>>>>>> david jencks >>>>>>>> >>>>>>>> On Dec 8, 2015, at 4:38 PM, Benson Margulies <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> Dependencies are too big. I will debug the command and tell you what >>>>>>>> I >>>>>>>> see >>>>>>>> when I get back home >>>>>>>> >>>>>>>> On Dec 8, 2015 7:29 PM, "Jean-Baptiste Onofré" <[email protected]> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> I mean share your code or bundle jar in order for me to try to >>>>>>>>> reproduce >>>>>>>>> and check the actual component state ;) >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> JB >>>>>>>>> >>>>>>>>> On 12/09/2015 01:27 AM, Benson Margulies wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> What do you mean by 'send the bundles'? >>>>>>>>>> >>>>>>>>>> On Dec 8, 2015 7:18 PM, "Jean-Baptiste Onofré" <[email protected] >>>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>>> >>>>>>>>>> Just checked, the two states that the command doesn't deal is >>>>>>>>>> the >>>>>>>>>> deprecated state: STATE_ENABLED, and STATE_DESTROYED >>>>>>>>>> >>>>>>>>>> Maybe the component are in this state. >>>>>>>>>> >>>>>>>>>> @Benson: can you send the bundles to test if the component is >>>>>>>>>> not >>>>>>>>>> in >>>>>>>>>> the "deprecated" state ? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Regards >>>>>>>>>> JB >>>>>>>>>> >>>>>>>>>> On 12/09/2015 01:14 AM, Jean-Baptiste Onofré wrote: >>>>>>>>>> >>>>>>>>>> The ScrDetails command basically does: >>>>>>>>>> >>>>>>>>>> - component.getState() >>>>>>>>>> - then a switch on the int to display human readable >>>>>>>>>> string. >>>>>>>>>> >>>>>>>>>> switch (componentState) { >>>>>>>>>> case Component.STATE_ACTIVE: >>>>>>>>>> retVal = "ACTIVE"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_ACTIVATING: >>>>>>>>>> retVal = "ACTIVATING"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_DEACTIVATING: >>>>>>>>>> retVal = "DEACTIVATING"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_DISABLED: >>>>>>>>>> retVal = "DISABLED"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_DISABLING: >>>>>>>>>> retVal = "DISABLING"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_DISPOSED: >>>>>>>>>> retVal = "DISPOSED"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_DISPOSING: >>>>>>>>>> retVal = "DISPOSING"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_ENABLING: >>>>>>>>>> retVal = "ENABLING"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_FACTORY: >>>>>>>>>> retVal = "FACTORY"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_REGISTERED: >>>>>>>>>> retVal = "REGISTERED"; >>>>>>>>>> break; >>>>>>>>>> case Component.STATE_UNSATISFIED: >>>>>>>>>> retVal = "UNSATISFIED"; >>>>>>>>>> break; >>>>>>>>>> >>>>>>>>>> So, it would mean that the component is not in the >>>>>>>>>> previous >>>>>>>>>> state >>>>>>>>>> (another one maybe missing in the switch). >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> JB >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 12/09/2015 01:03 AM, David Jencks wrote: >>>>>>>>>> >>>>>>>>>> I have no idea what this command you are using is, can >>>>>>>>>> you >>>>>>>>>> show the >>>>>>>>>> output from the gogo scr:info command for this >>>>>>>>>> component? >>>>>>>>>> >>>>>>>>>> thanks >>>>>>>>>> david jencks >>>>>>>>>> >>>>>>>>>> On Dec 8, 2015, at 3:51 PM, Benson Margulies >>>>>>>>>> <[email protected] >>>>>>>>>> <mailto:[email protected]>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> I have one particular bundle that gets into this >>>>>>>>>> stuck >>>>>>>>>> state since I >>>>>>>>>> made some changes that should be completely >>>>>>>>>> unrelated >>>>>>>>>> to >>>>>>>>>> it. I badly >>>>>>>>>> want to explain why it's stuck. I am reduced to a >>>>>>>>>> sort >>>>>>>>>> of 'bisect' >>>>>>>>>> procedure of carefully remaking the changes to see >>>>>>>>>> if >>>>>>>>>> I >>>>>>>>>> can isolate >>>>>>>>>> the problem, since the scr:details command does >>>>>>>>>> not >>>>>>>>>> explain why it's >>>>>>>>>> left 'null'. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Dec 8, 2015 at 6:48 PM, Jean-Baptiste >>>>>>>>>> Onofré >>>>>>>>>> <[email protected] <mailto:[email protected]>> wrote: >>>>>>>>>> >>>>>>>>>> Karaf 4.0.2 already uses SCR 2.0.2. >>>>>>>>>> >>>>>>>>>> Does it always occur or just on some bundles ? >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> JB >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 12/09/2015 12:44 AM, Benson Margulies >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Karaf 4.0.2 ... It's scr 2.0.2, but I >>>>>>>>>> guess >>>>>>>>>> the >>>>>>>>>> command is not so hot. >>>>>>>>>> >>>>>>>>>> eature:info scr >>>>>>>>>> Feature scr 4.0.2 >>>>>>>>>> Description: >>>>>>>>>> Declarative Service support >>>>>>>>>> Feature has no configuration >>>>>>>>>> Feature has no configuration files >>>>>>>>>> Feature has no dependencies. >>>>>>>>>> Feature contains followed bundles: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.felix/org.apache.felix.metatype/1.1.2 >>>>>>>>>> start-level=30 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.felix/org.apache.felix.scr/2.0.2 >>>>>>>>>> start-level=30 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.felix/org.apache.felix.scr.compat/1.0.2 >>>>>>>>>> start-level=30 >>>>>>>>>> Feature contains followed conditionals: >>>>>>>>>> Conditional(management) has no >>>>>>>>>> configuration >>>>>>>>>> Conditional(management) has no >>>>>>>>>> configuration >>>>>>>>>> files >>>>>>>>>> Conditional(management) has no >>>>>>>>>> dependencies. >>>>>>>>>> Conditional(management) contains followed >>>>>>>>>> bundles: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.0.2 >>>>>>>>>> start-level=30 >>>>>>>>>> Conditional(webconsole) has no >>>>>>>>>> configuration >>>>>>>>>> Conditional(webconsole) has no >>>>>>>>>> configuration >>>>>>>>>> files >>>>>>>>>> Conditional(webconsole) has no >>>>>>>>>> dependencies. >>>>>>>>>> Conditional(webconsole) contains followed >>>>>>>>>> bundles: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.felix/org.apache.felix.webconsole.plugins.ds/2.0.2 >>>>>>>>>> start-level=30 >>>>>>>>>> Conditional(shell) has no configuration >>>>>>>>>> Conditional(shell) has no configuration >>>>>>>>>> files >>>>>>>>>> Conditional(shell) has no dependencies. >>>>>>>>>> Conditional(shell) contains followed >>>>>>>>>> bundles: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> mvn:org.apache.karaf.scr/org.apache.karaf.scr.command/4.0.2 >>>>>>>>>> start-level=30 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Dec 8, 2015 at 6:11 PM, David >>>>>>>>>> Jencks >>>>>>>>>> <[email protected] >>>>>>>>>> <mailto:[email protected]>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> This looks like a back level scr? >>>>>>>>>> maybe >>>>>>>>>> 1.8.x? The info from those >>>>>>>>>> makes it really hard to tell what’s >>>>>>>>>> going >>>>>>>>>> on. Is it >>>>>>>>>> configuration required >>>>>>>>>> and no configuration? >>>>>>>>>> >>>>>>>>>> david jencks >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Dec 8, 2015, at 2:39 PM, Benson >>>>>>>>>> Margulies <[email protected] >>>>>>>>>> <mailto:[email protected]>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Here's a bundle. The bundle is >>>>>>>>>> active, >>>>>>>>>> its references are satisfied, >>>>>>>>>> but its state is null. What's it >>>>>>>>>> stuck >>>>>>>>>> on? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 36 | Active | 80 | >>>>>>>>>> 0.7.105.v20151208100035 | >>>>>>>>>> rosapi-worker-bus >>>>>>>>>> >>>>>>>>>> karaf@root>scr:details >>>>>>>>>> >>>>>>>>>> com.basistech.ws.worker.bus.impl.BusService >>>>>>>>>> Component Details >>>>>>>>>> Name : >>>>>>>>>> >>>>>>>>>> com.basistech.ws.worker.bus.impl.BusService >>>>>>>>>> State : null >>>>>>>>>> References >>>>>>>>>> Reference : Bus >>>>>>>>>> State : satisfied >>>>>>>>>> Multiple : single >>>>>>>>>> Optional : mandatory >>>>>>>>>> Policy : static >>>>>>>>>> Service Reference : No >>>>>>>>>> Services >>>>>>>>>> bound >>>>>>>>>> Reference : >>>>>>>>>> ConfigAdmin >>>>>>>>>> State : satisfied >>>>>>>>>> Multiple : single >>>>>>>>>> Optional : mandatory >>>>>>>>>> Policy : static >>>>>>>>>> Service Reference : No >>>>>>>>>> Services >>>>>>>>>> bound >>>>>>>>>> karaf@root> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Jean-Baptiste Onofré >>>>>>>>>> [email protected] >>>>>>>>>> <mailto:[email protected]> >>>>>>>>>> http://blog.nanthrax.net >>>>>>>>>> Talend - http://www.talend.com >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Jean-Baptiste Onofré >>>>>>>>>> [email protected] <mailto:[email protected]> >>>>>>>>>> http://blog.nanthrax.net >>>>>>>>>> Talend - http://www.talend.com >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Jean-Baptiste Onofré >>>>>>>>> [email protected] >>>>>>>>> http://blog.nanthrax.net >>>>>>>>> Talend - http://www.talend.com >>>>>>>> >>>>>>>> >>>>>>>> >>>>>> > > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com
