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
>>>>
>>>>
>>

Reply via email to