How do I specify an implementation using @OSGiService
I have two implementations of an interface. Both are OSGi
public interface MenuService {
//...
}
and
@Component(
immediate = true,
service = MenuService.class,
name = "menuServiceImpl1"
)
public interface MenuServiceImpl1 implements MenuService {
//...
}
and
@Component(
immediate = true,
service = MenuService.class,
name = "menuServiceImpl2"
)
public interface MenuServiceImpl2 implements MenuService {
}
I can inject an implementation using OSGiService like so:
@OSGiService
private MenuService menuService;
But I always get MenuServiceImpl1 and never MenuServiceImpl2
I've tried using @Named like so:
@Named("menuServiceImpl2")
@OSGiService
private MenuService menuService;
but no luck.
Can anyone let me know how I can do this?