A DS component does not need an interface, and does not need to be registered as a service. The sample component snippet (as provided) should work fine.
Regards, Tim Sent from my iPhone > On 26 Oct 2016, at 12:25, Daghan ACAY <daghana...@hotmail.com> wrote: > > I guess I know the problem. > > > Your component does not implement an interface. That is, Osgi is build on the > idea of abstraction. You define an interface (java interface) and your > component implements it. If you follow that pattern then @Component can > figure out properly how to register your component. In your case you have an > implementation without an interface, hence you are breaking the convention. > there is nothing wrong with that, but you net to say OSGi DS that you are > doing this. Here is how you can do it: > > > try > > > @Component(immediate = true, service=SampleImpl.class) > public class SampleImpl { > > I hope this works > > > Cheers > > Daghan > > > > > From: osgi-dev-boun...@mail.osgi.org <osgi-dev-boun...@mail.osgi.org> on > behalf of manoj.vrajam...@wipro.com <manoj.vrajam...@wipro.com> > Sent: Wednesday, October 26, 2016 9:47 AM > To: osgi-dev@mail.osgi.org > Subject: Re: [osgi-dev] Understanding activate > > I did this..Put a breakpoint at the print..anad ran it usin debug osgi ...I > did not get any different result... > From: osgi-dev-boun...@mail.osgi.org <osgi-dev-boun...@mail.osgi.org> on > behalf of Daghan ACAY <daghana...@hotmail.com> > Sent: 26 October 2016 15:00:17 > To: osgi-dev@mail.osgi.org > Subject: Re: [osgi-dev] Understanding activate > > ** This mail has been sent from an external source ** > > 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 – See your emails as clean, short chats. > > > > -------- Original Message -------- > From: Daghan ACAY <daghana...@hotmail.com> > Sent: Wednesday, October 26, 2016 08:27 PM > To: osgi-dev@mail.osgi.org > 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 – See your emails as clean, short chats. > > > > -------- Original Message -------- > From: Timothy Ward <tim.w...@paremus.com> > Sent: Wednesday, October 26, 2016 08:22 PM > To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> > 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 <njbartl...@gmail.com> 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, <manoj.vrajam...@wipro.com> >>> <manoj.vrajam...@wipro.com> wrote: >>> >>> Please find reply inline… >>> >>> From: osgi-dev-boun...@mail.osgi.org >>> [mailto:osgi-dev-boun...@mail.osgi.org] On Behalf Of Timothy Ward >>> Sent: 26 October 2016 13:20 >>> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> >>> 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, <manoj.vrajam...@wipro.com> >>> <manoj.vrajam...@wipro.com> 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: osgi-dev-boun...@mail.osgi.org >>> [mailto:osgi-dev-boun...@mail.osgi.org] On Behalf Of Timothy Ward >>> Sent: 26 October 2016 13:03 >>> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> >>> 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, manoj.vrajam...@wipro.com 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: osgi-dev-boun...@mail.osgi.org <osgi-dev-boun...@mail.osgi.org> on >>> behalf of Tim Ward <tim.w...@paremus.com> >>> 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, <manoj.vrajam...@wipro.com> >>> <manoj.vrajam...@wipro.com> wrote: >>> >>> Bernd…I am on Enroute Eclipse/Bndtools and clicking on “Debug OSGi” to run >>> the application. >>> >>> From: osgi-dev-boun...@mail.osgi.org >>> [mailto:osgi-dev-boun...@mail.osgi.org] On Behalf Of Bernd Eckenfels >>> Sent: 26 October 2016 10:55 >>> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> >>> 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 >>> >>> >>> >>> >>> >>> On Wed, Oct 26, 2016 at 7:07 AM +0200, <manoj.vrajam...@wipro.com> 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 >>> 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 >>> _______________________________________________ >>> OSGi Developer Mail List >>> osgi-dev@mail.osgi.org >>> 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_______________________________________________ >>> OSGi Developer Mail List >>> osgi-dev@mail.osgi.org >>> 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_______________________________________________ >>> OSGi Developer Mail List >>> osgi-dev@mail.osgi.org >>> 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 >>> _______________________________________________ >>> OSGi Developer Mail List >>> osgi-dev@mail.osgi.org >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >> >> _______________________________________________ >> OSGi Developer Mail List >> osgi-dev@mail.osgi.org >> 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 > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev