Hi Frank you can use the required configuration policy. I think this is something like
@Component(configurationPolicy=ConfigurationPolicy.REQUIRE) So the component is only activated if actual configuration exists for it Regards Felix > Am 05.05.2015 um 18:16 schrieb Frank Langel <[email protected]>: > > I am sorry for not being sufficiently precise, I didn¹t mean annotation, I > meant Component property > > @Component(properties={"property1=value"}) > > > Based on the value of property1, I will check if the service component > should be in the state ACTIVE or STATE_UNSATISFIED > > The actual use case is to check if a message queue was in a messaging > middleware was previously setup. If not, the service (EventHandler) should > not startup. > > > On 5/5/15, 6:00 PM, "[email protected]" > <[email protected]> wrote: > >> Send osgi-dev mailing list submissions to >> [email protected] >> >> To subscribe or unsubscribe via the World Wide Web, visit >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> or, via email, send a message with subject or body 'help' to >> [email protected] >> >> You can reach the person managing the list at >> [email protected] >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of osgi-dev digest..." >> >> >> Today's Topics: >> >> 1. Stop/disable OSGI component/service based on annotation >> (Frank Langel) >> 2. Re: Stop/disable OSGI component/service based on annotation >> (Neil Bartlett) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Tue, 05 May 2015 11:03:39 +0200 >> From: Frank Langel <[email protected]> >> To: <[email protected]> >> Subject: [osgi-dev] Stop/disable OSGI component/service based on >> annotation >> Message-ID: <d16e540b.242c7%[email protected]> >> Content-Type: text/plain; charset="iso-8859-1" >> >> Hi, >> >> Here is the scenario I like to achieve >> 1. I create a OSGI component/service X that has an annotation A1 >> 2. It has no dependencies or start/active methods >> 3. Based on the value of A1, I like this service to be available or marked >> as STATE_UNSATISFIED when starting up >> How can I do this? >> * ServiceTracker is not the answer I think. It doesn?t provide the >> ability >> to access the component context that would allow me to disable the service >> again, plus I think its not a good idea as there might be dependencies to >> be >> managed >> * I don?t want to add the logic in the activate method bc I want to apply >> it >> to all components with the annotation >> * Introspection in Activator : I could not use the component model >> directly, >> but search my bundle for all classes with this annotation, and start the >> service myself >> * I cannot use service listener, as ServiceEvent does not expose an >> possibly >> to interfere when registering the service >> * Are service hocks the answer ? >> Thanks a lot in advance >> Frank >> >> >> >> >> >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: >> <http://mail.osgi.org/pipermail/osgi-dev/attachments/20150505/27605ced/att >> achment-0001.html> >> >> ------------------------------ >> >> Message: 2 >> Date: Tue, 5 May 2015 10:08:31 +0100 >> From: Neil Bartlett <[email protected]> >> To: OSGi Developer Mail List <[email protected]> >> Subject: Re: [osgi-dev] Stop/disable OSGI component/service based on >> annotation >> Message-ID: <[email protected]> >> Content-Type: text/plain; charset="windows-1252" >> >> Hi Frank, >> >> Can you please clarify the meaning of point 3. >> >> ?Based on the value of A1?? but this is an annotation on a class so is >> there any possibility for it to change during runtime? It seems that >> whatever the value of A1 is at compile time will determine forever >> whether that component is active or inactive. That can?t be what you mean >> though, so could you please elaborate a little further what you had in >> mind? >> >> Regards, >> Neil >> >>> On 5 May 2015, at 10:03, Frank Langel <[email protected]> wrote: >>> >>> Hi, >>> >>> Here is the scenario I like to achieve >>> I create a OSGI component/service X that has an annotation A1 >>> It has no dependencies or start/active methods >>> Based on the value of A1, I like this service to be available or marked >>> as STATE_UNSATISFIED when starting up >>> How can I do this? >>> ServiceTracker is not the answer I think. It doesn?t provide the >>> ability to access the component context that would allow me to disable >>> the service again, plus I think its not a good idea as there might be >>> dependencies to be managed >>> I don?t want to add the logic in the activate method bc I want to apply >>> it to all components with the annotation >>> Introspection in Activator : I could not use the component model >>> directly, but search my bundle for all classes with this annotation, and >>> start the service myself >>> I cannot use service listener, as ServiceEvent does not expose an >>> possibly to interfere when registering the service >>> Are service hocks the answer ? >>> Thanks a lot in advance >>> Frank >>> >>> >>> >>> _______________________________________________ >>> OSGi Developer Mail List >>> [email protected] >>> https://mail.osgi.org/mailman/listinfo/osgi-dev >> >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: >> <http://mail.osgi.org/pipermail/osgi-dev/attachments/20150505/2be8b590/att >> achment-0001.html> >> >> ------------------------------ >> >> _______________________________________________ >> OSGi Developer Mail List >> [email protected] >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> >> End of osgi-dev Digest, Vol 103, Issue 2 >> **************************************** > > > _______________________________________________ > 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
