estou aprendendo CDI e peguei um projeto,
essa classe faz o que?
public class CDIServiceLocator {
private static final Log LOGGER = LogFactory.getLog(CDIServiceLocator.class);
private CDIServiceLocator() {
}
private static BeanManager getBeanManager() {
try {
InitialContext initialContext = new InitialContext();
return (BeanManager) initialContext.lookup("java:comp/BeanManager");
} catch (NamingException e) {
LOGGER.error(e);
throw new RuntimeException("Não pôde encontrar BeanManager no JNDI.");
}
}
@SuppressWarnings("unchecked")
public static <T> T getBean(Class<T> clazz) {
BeanManager bm = getBeanManager();
Set<Bean<?>> beans = (Set<Bean<?>>) bm.getBeans(clazz);
if (beans == null || beans.isEmpty()) {
return null;
}
Bean<T> bean = (Bean<T>) beans.iterator().next();
CreationalContext<T> ctx = bm.createCreationalContext(bean);
return (T) bm.getReference(bean, clazz, ctx);
}
}