@PostConstruct public void cacheBeans() { LOG.info("> Initializing ProviderTypes. "); final Set<Bean<?>> beans = beanManager.getBeans(ProviderType.class, new AnnotationLiteral<Any>() { }); for (final Bean b : beans) { try { // I don't want to register the CDI proxy, I need a fresh instance :( ProviderType pt = (ProviderType) b.getBeanClass().newInstance(); LOG.info("> Registering ProviderType: " + pt.getProviderTypeName()); runtimeRegistry.registerProviderType(pt); } catch (InstantiationException | IllegalAccessException ex) { LOG.error("Something went wrong with registering Provider Types!", ex); } } }