Note that you can also bounce the component by disabling and then enabling it.
scr:disable com.wipro.iot.Alljoyn scr:enable com.wipro.iot.Alljoyn This will deactivate and then re-activate the component. Regards, Tim > On 26 Oct 2016, at 11:30, Daghan ACAY <[email protected]> wrote: > > Another thing i do is put a break point at the line, e.g. activate method in > your case, and run it in debug mode. It is more reliable than logs on console. > > Sent by MailWise <http://www.mail-wise.com/installation/2> – See your emails > as clean, short chats. > > > > -------- Original Message -------- > From: Daghan ACAY <[email protected]> > Sent: Wednesday, October 26, 2016 08:27 PM > To: [email protected] > Subject: Re: [osgi-dev] Understanding activate > > I will just get a wild guess at it. > > DS component start time is not deterministic. That is your component can > start first in all components, in the middle or the last. > > I see you are using debug run which starts a lot components and prints out to > log. I say your "starting..." can be printed earlier in console. Please run > again with debug and scroll up. I have a feeling you will find "starting..." > > Cheers > Daghan > > Sent by MailWise <http://www.mail-wise.com/installation/2> – See your emails > as clean, short chats. > > > > -------- Original Message -------- > From: Timothy Ward <[email protected]> > Sent: Wednesday, October 26, 2016 08:22 PM > To: OSGi Developer Mail List <[email protected]> > Subject: Re: [osgi-dev] Understanding activate > > Also, your component should definitely not have a waiting thread which > discovers devices. The devices should register services which are injected > into the component. The injection can be used to trigger an action at that > time. This is known as the whiteboard pattern - bundles register a service so > that they can be discovered and used by another component. > > Regards, > > Tim > > >> On 26 Oct 2016, at 11:20, Neil Bartlett <[email protected] >> <mailto:[email protected]>> wrote: >> >> You don’t invoke the activate/deactivate methods yourself. They are invoked >> by the SCR at the appropriate time, assuming they have been correctly >> declared. >> >>> On 26 Oct 2016, at 09:20, <[email protected] >>> <mailto:[email protected]>> <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Please find reply inline… >>> >>> From: [email protected] >>> <mailto:[email protected]> >>> [mailto:[email protected] >>> <mailto:[email protected]>] On Behalf Of Timothy Ward >>> Sent: 26 October 2016 13:20 >>> To: OSGi Developer Mail List <[email protected] >>> <mailto:[email protected]>> >>> Subject: Re: [osgi-dev] Understanding activate >>> >>> ** This mail has been sent from an external source ** >>> >>> An activate method is able to start its own threads, but it sounds like >>> this may not be the right approach for you. >>> Me: Oh..okay.. >>> >>> What do you mean when you say "which would sleep and wait for others to >>> join before proceeding for next action”? This sounds a lot like you should >>> be using the OSGi service registry and referencing services rather than >>> sleeping. That way your activate method will not need to wait. >>> Me: Actually my plan is to wait on sleep to discover devices. [ I get a >>> callback when I other devices join the network. That part is written (not >>> tested).] >>> >>> As for your current problem - is that code snippet really the component? >>> The output indicates that you have a deactivate method defined as well. >>> Me: I have written a dummy deactivate method as well. It does nothing. My >>> intention is to somehow invoke this function in this bundle and see what >>> happens going forward when my java code executes. To start with I have just >>> written a dummy print statement “starting….” >>> >>> Regards, >>> >>> Tim >>> >>> >>> On 26 Oct 2016, at 09:43, <[email protected] >>> <mailto:[email protected]>> <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> No…none of the others have activate() in them.. This is the first time I am >>> writing an activate() method… >>> >>> Plaese note: I just want a method in this bundle to be invoked on running >>> the framework. I thought activate() would be the right one. But I >>> understand from your comments that activate should not have a thread >>> sleeping (which I eventually planned). So, then activate() would not help >>> me, right ? >>> >>> Could you propose as to what I should do alternatively to invoke a function >>> (which would sleep and wait for others to join before proceeding for next >>> action) on start up? >>> >>> >>> From: [email protected] >>> <mailto:[email protected]> >>> [mailto:[email protected] >>> <mailto:[email protected]>] On Behalf Of Timothy Ward >>> Sent: 26 October 2016 13:03 >>> To: OSGi Developer Mail List <[email protected] >>> <mailto:[email protected]>> >>> Subject: Re: [osgi-dev] Understanding activate >>> >>> ** This mail has been sent from an external source ** >>> I note that there are a number of other DS components present - are any of >>> the others showing the same issue? >>> >>> I’m making a guess here, but do any of the other components have Activate >>> methods which can block the activation Thread? >>> >>> Felix SCR owns a background worker thread which is used for a number of >>> different tasks. In components like this one the thread will be used to >>> invoke the activate method. If a component is blocks that thread then it >>> may cause your whole SCR to get “stuck”. This is one of several reasons why >>> activate methods should not block for long periods. >>> >>> Your problem may be totally unrelated to this, but it is worth checking. >>> >>> Regards, >>> >>> Tim >>> >>> >>> On 26 Oct 2016, at 09:11, [email protected] >>> <mailto:[email protected]> wrote: >>> >>> Please find my code snippet + the scr diagnostics ..below: >>> >>> ============ >>> @Component(name = "com.wipro.iot.Alljoyn", immediate = true) >>> public class AlljoynImpl { >>> >>> @Activate >>> public void activate() >>> { >>> System.out.println("starting....."); >>> } >>> } >>> >>> >>> ============ >>> >>> g! >>> g! scr:list >>> Name BundleId DefaultEnabled >>> [com.wipro.iot.Alljoyn] [ 6] [true] >>> [com.wipro.iot.DeviceManager] [ 1] [true] >>> [com.wipro.iot.GatewayDevice] [ 2] [true] >>> [com.wipro.iot.HueLight] [ 3] [true] >>> [com.wipro.iot.LampDevice] [ 4] [true] >>> [com.wipro.iot.MobilePhone] [ 5] [true] >>> [com.wipro.iot.poc] [ 7] [true] >>> [org.eclipse.equinox.event] [ 18] [true] >>> [osgi.enroute.configurer.simple.provider.Configurer] [ 22] [true] >>> [osgi.enroute.dto.bndlib.provider.DTOsProvider] [ 23] [true] >>> [osgi.enroute.logger.simple.provider.LoggerAdminImpl] [ 26] [true] >>> [osgi.enroute.logger.simple.provider.LoggerComponentImpl] [ 26] [true] >>> [osgi.enroute.rest.simple] [ 27] [true] >>> [osgi.enroute.simple.server] [ 29] [true] >>> [osgi.executor.provider] [ 24] [true] >>> g! >>> g! >>> g! >>> g! scr:info com.wipro.iot.Alljoyn >>> *** Bundle: com.wipro.iot.alljoyn.adapter (6) >>> Component Description: >>> Name: com.wipro.iot.Alljoyn >>> Default State: enabled >>> Activation: immediate >>> Configuration Policy: optional >>> Activate Method: activate >>> Deactivate Method: deactivate >>> Modified Method: - >>> Configuration Pid: [com.wipro.iot.Alljoyn] >>> Services: Service Scope: null >>> Properties: >>> Component Configuration: >>> ComponentId: 5 >>> State: satisfied >>> Properties: >>> component.id = 5 >>> component.name = com.wipro.iot.Alljoyn >>> g! >>> g! >>> g! >>> >>> From: [email protected] >>> <mailto:[email protected]> <[email protected] >>> <mailto:[email protected]>> on behalf of Tim Ward >>> <[email protected] <mailto:[email protected]>> >>> Sent: 26 October 2016 12:04:44 >>> To: OSGi Developer Mail List >>> Subject: Re: [osgi-dev] Understanding activate >>> >>> ** This mail has been sent from an external source ** >>> Manoj, >>> >>> As Bernd suggested, it would be a good idea to run the Felix SCR diagnostic >>> commands. >>> >>> scr:list will list the DS components in the runtime. If you don't see your >>> component in the output then you need to check the bundle you're building >>> to see if you've forgotten to include the DS component. >>> >>> scr:info <component name> will give detailed information about the >>> component, including what state it is in. >>> >>> Regards, >>> >>> Tim >>> >>> Sent from my iPhone >>> >>> On 26 Oct 2016, at 07:31, <[email protected] >>> <mailto:[email protected]>> <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Bernd…I am on Enroute Eclipse/Bndtools and clicking on “Debug OSGi” to run >>> the application. >>> >>> From: [email protected] >>> <mailto:[email protected]> >>> [mailto:[email protected] >>> <mailto:[email protected]>] On Behalf Of Bernd Eckenfels >>> Sent: 26 October 2016 10:55 >>> To: OSGi Developer Mail List <[email protected] >>> <mailto:[email protected]>> >>> Subject: Re: [osgi-dev] Understanding activate >>> >>> ** This mail has been sent from an external source ** >>> How do you build and install your bundle? Make sure the resulting JAR >>> actually contains the SCR descriptor for the component and also ensure the >>> DS service is actually available in the runtime. Other than that, the >>> actual code can be correct (depending on your actual imports which was not >>> shown). >>> >>> If this contains Felix Services and gogo Shell you can use scr:list command >>> to verify. >>> >>> Gruss >>> Bernd >>> -- >>> http://bernd.eckenfels.net <http://bernd.eckenfels.net/> >>> >>> >>> >>> >>> >>> On Wed, Oct 26, 2016 at 7:07 AM +0200, <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi All, >>> >>> @Component(immediate = true) >>> public class SampleImpl { >>> >>> @Activate >>> public void activate() >>> { >>> System.out.println("starting....."); >>> } >>> } >>> >>> How to invoke this ? activate() is not getting invoked when I run this >>> simple application. >>> >>> Thanks, >>> Manoj >>> The information contained in this electronic message and any attachments to >>> this message are intended for the exclusive use of the addressee(s) and may >>> contain proprietary, confidential or privileged information. If you are not >>> the intended recipient, you should not disseminate, distribute or copy this >>> e-mail. Please notify the sender immediately and destroy all copies of this >>> message and any attachments. WARNING: Computer viruses can be transmitted >>> via email. The recipient should check this email and any attachments for >>> the presence of viruses. The company accepts no liability for any damage >>> caused by any virus transmitted by this email. www.wipro.com >>> <http://www.wipro.com/> >>> The information contained in this electronic message and any attachments to >>> this message are intended for the exclusive use of the addressee(s) and may >>> contain proprietary, confidential or privileged information. If you are not >>> the intended recipient, you should not disseminate, distribute or copy this >>> e-mail. Please notify the sender immediately and destroy all copies of this >>> message and any attachments. WARNING: Computer viruses can be transmitted >>> via email. The recipient should check this email and any attachments for >>> the presence of viruses. The company accepts no liability for any damage >>> caused by any virus transmitted by this email. www.wipro.com >>> <http://www.wipro.com/> >>> _______________________________________________ >>> OSGi Developer Mail List >>> [email protected] <mailto:[email protected]> >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >>> <https://mail.osgi.org/mailman/listinfo/osgi-dev> >>> The information contained in this electronic message and any attachments to >>> this message are intended for the exclusive use of the addressee(s) and may >>> contain proprietary, confidential or privileged information. If you are not >>> the intended recipient, you should not disseminate, distribute or copy this >>> e-mail. Please notify the sender immediately and destroy all copies of this >>> message and any attachments. WARNING: Computer viruses can be transmitted >>> via email. The recipient should check this email and any attachments for >>> the presence of viruses. The company accepts no liability for any damage >>> caused by any virus transmitted by this email. www.wipro.com >>> <http://www.wipro.com/>_______________________________________________ >>> OSGi Developer Mail List >>> [email protected] <mailto:[email protected]> >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >>> <https://mail.osgi.org/mailman/listinfo/osgi-dev> >>> >>> The information contained in this electronic message and any attachments to >>> this message are intended for the exclusive use of the addressee(s) and may >>> contain proprietary, confidential or privileged information. If you are not >>> the intended recipient, you should not disseminate, distribute or copy this >>> e-mail. Please notify the sender immediately and destroy all copies of this >>> message and any attachments. WARNING: Computer viruses can be transmitted >>> via email. The recipient should check this email and any attachments for >>> the presence of viruses. The company accepts no liability for any damage >>> caused by any virus transmitted by this email. www.wipro.com >>> <http://www.wipro.com/>_______________________________________________ >>> OSGi Developer Mail List >>> [email protected] <mailto:[email protected]> >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >>> <https://mail.osgi.org/mailman/listinfo/osgi-dev> >>> >>> The information contained in this electronic message and any attachments to >>> this message are intended for the exclusive use of the addressee(s) and may >>> contain proprietary, confidential or privileged information. If you are not >>> the intended recipient, you should not disseminate, distribute or copy this >>> e-mail. Please notify the sender immediately and destroy all copies of this >>> message and any attachments. WARNING: Computer viruses can be transmitted >>> via email. The recipient should check this email and any attachments for >>> the presence of viruses. The company accepts no liability for any damage >>> caused by any virus transmitted by this email. www.wipro.com >>> <http://www.wipro.com/> _______________________________________________ >>> OSGi Developer Mail List >>> [email protected] <mailto:[email protected]> >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >>> <https://mail.osgi.org/mailman/listinfo/osgi-dev> >> _______________________________________________ >> OSGi Developer Mail List >> [email protected] <mailto:[email protected]> >> https://mail.osgi.org/mailman/listinfo/osgi-dev > > _______________________________________________ > OSGi Developer Mail List > [email protected] > https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
