Hi Everyone

I was wondering if anyone could provide some advice:

I have a component of the form:

@Component(name="Bar")
public class MyComponent {

private MyServiceProcessor processor;

@Activate
public void activate(ComponentContext cc) {

processor = new MyServiceProcessor();

}

@Deactivate
public void deactivate(ComponentContext cc) {

}

@Reference(cardinality = ReferenceCardinality.MULTIPLE)
public void bindFoo(ServiceReference<Foo> ref) {

/* some code here */
processor.process(ref.getService());
/* some more code here */

}

public void unbindFoo(ServiceReference<Foo> ref) {

}

}

The problem here is that the bindFoo() method is called by the SCR before the 
activate and thus a null pointer exception is thrown in the processor.process() 
call.
This is perhaps not surprising, but it is not ideal for a component that is 
‘lazy’ about the other services that it wants to discover. I could clearly move 
this functionality into a ServiceTracker which I create in the activate() but 
was wondering if there was another approach that allowed me to do this via DS 
and annotations?

Best regards

Bruce


*** DISCLAIMER *** This message, including attachments, is intended solely for 
the addressee indicated in this message and is strictly confidential or 
otherwise privileged. If you are not the intended recipient (or responsible for 
delivery of the message to such person) : - (1) please immediately (i) notify 
the sender by reply email and (ii) delete this message and attachments, - (2) 
any use, copy or dissemination of this transmission is strictly prohibited. If 
you or your employer does not consent to Internet email messages of this kind, 
please advise Myriad Group AG by reply e-mail immediately. Opinions, 
conclusions and other information expressed in this message are not given or 
endorsed by Myriad Group AG unless otherwise indicated by an authorized 
representative independent of this message.

Reply via email to