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]
