You didn't understand me, I have only one implementation with the @Primary, the 
problem is when you are accesing the service without it.

Example:

MyService.class, new Clustered();
MyService.class, new Local(); @Primary


@Inject
MyService service <-- this will fail because there are two implementations, 
adding @Primary will help

My suggestion is to change the default behaviour to select a service with the 
@Primary when there are more than one implementations of the same interface. 

Denis
 

Mar 22, 2012 v 6:17 PM, Igor Drobiazko:

> The @Primary annotation is supposed to be placed on a single
> implementation, not all of them. The most frequent use case is a service
> which is implemented as a chain or a strategy.
> 
> On Thu, Mar 22, 2012 at 1:55 PM, Denis Stepanov 
> <[email protected]>wrote:
> 
>> Would be possible to change the default behaviour to select a service
>> marked @Primary when there are multiple occurrences of the same interface?
>> I'm finding that it's complicated to add a service with the same interface,
>> I need to find all occurrences of the interface and mark them @Primary and
>> it isn't possible when there is a third-party library relying on it.
> 
> I would like have the same interface for the @Local and the @Clustered
>> service and I would like to keep the local to be the primary without
>> changing the interface or marking access points.
>> 
>> Denis
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>> 
> 
> 
> -- 
> Best regards,
> 
> Igor Drobiazko
> http://tapestry5.de
> http://twitter.com/drobiazko


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to