Seguinte, acompanhando meu tópico anterior (preciso acessar o bean de forma diferente se estiver dentro do glassfish ou numa vm comum), depois de muito pesquisar cheguei a seguinte conclusão.
class BeanFactory {
public static boolean isLocal = false;
public static <T> getBeanFor(Class c) {
if(isLocal) {
// retorna o próprio bean
}
else {
// faz um lookup via JNDI e retorna a interface
}
}
}
Como o Bean obrigatoriamente implementa a interface, não teria problema.. de qualquer lugar (dentro ou fora do contêiner) eu faria BeanFactory.getBeanFor(Pessoa.class); e ele me retornaria a interface e pra view é indiferente se foi acessada via jndi ou direto.
Bom, a dúvida vai pros experientes com generics... tem como eu voltar o tipo certo ? ou melhor eu fazer um método pra cada tipo de bean ? a lógica de todos eles é praticamente igual
Abraço
gui