Eu gostaria que se a minha aplicação tivesse rodando no Windows retornasse a instancia do Windows, e se tivesse rodando no Linux a instancia do Linux.
Alguém tem idéia de por que da esse erro: "Multiple beans are eligible for injection to the injection point". Na hora da injecao da dependencia?
É possivel fazer o que eu estou querendo?
Abaixo meu código fonte.
HostService.java@Stateless
public class HostService {
@Inject
private HostCommand command;
}
public interface HostCommand {
void execute();
}
public class WindowsCommand implements HostCommand {
public void execute() {}
}
public class LinuxCommand implements HostCommand {
public void execute() {}
}
public class CommandFactory {
@Produces
public HostCommand createCommand() {
if (isWindows()) { return new WindowsCommand(); }
else { return new LinuxCommand(); }
}
}
Obrigado ;)