@Override public BeanManager getBeanManager() { checkContainerState(container); final String callerName = getCallingClassName(); if(callerName.startsWith("org.glassfish.soteria")) { //the Java EE Security RI uses CDI.current() to perform bean lookup, however //as it is part of the container its bean archive does not have visibility to deployment beans //we use this code path to enable it to get the bean manager of the current module //so it can look up the deployment beans it needs to work try { BeanManager bm = (BeanManager) new InitialContext().lookup("java:comp/BeanManager"); if(bm != null) { return bm; } } catch (NamingException e) { //ignore } } final ClassLoader tccl = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(); final Class<?> callerClass = Reflections.loadClass(callerName, tccl); if (callerClass != null) { final BeanDeploymentArchive bda = deployment.getBeanDeploymentArchive(callerClass); if (bda != null) { return new BeanManagerProxy(container.beanDeploymentArchives().get(bda)); } } // fallback for cases when we are unable to load the class or no BeanManager exists yet for the given BDA return rootBeanManager; }
public EnvironmentCDI() { // sort the managers by their ID and use the first one as the fallback BeanManager // this guarantees that we consistently use the same BM List<BeanManagerImpl> managers = new ArrayList<BeanManagerImpl>(getContainer().beanDeploymentArchives().values()); Collections.sort(managers, BeanManagers.ID_COMPARATOR); this.fallbackBeanManager = managers.get(0); }
public EnvironmentCDI() { // sort the managers by their ID and use the first one as the // fallback BeanManager // this guarantees that we consistently use the same BM List<BeanManagerImpl> managers = new ArrayList<BeanManagerImpl>(getContainer().beanDeploymentArchives().values()); Collections.sort(managers, BeanManagers.ID_COMPARATOR); this.fallbackBeanManager = managers.get(0); }
public EnvironmentCDI() { // sort the managers by their ID and use the first one as the fallback BeanManager // this guarantees that we consistently use the same BM List<BeanManagerImpl> managers = new ArrayList<BeanManagerImpl>(getContainer().beanDeploymentArchives().values()); Collections.sort(managers, BeanManagers.ID_COMPARATOR); this.fallbackBeanManager = managers.get(0); }
public EnvironmentCDI() { // sort the managers by their ID and use the first one as the fallback BeanManager // this guarantees that we consistently use the same BM List<BeanManagerImpl> managers = new ArrayList<BeanManagerImpl>(getContainer().beanDeploymentArchives().values()); Collections.sort(managers, BeanManagers.ID_COMPARATOR); this.fallbackBeanManager = managers.get(0); }
public BeanManagerImpl locate() { try { return (BeanManagerImpl) new InitialContext().lookup("java:comp/BeanManager"); } catch (Exception e) { // Try the next method } // Locate via the BDA id "test" for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance().beanDeploymentArchives().entrySet()) { if (entry.getKey().getId().equals("test")) { return entry.getValue(); } } throw new IllegalStateException(); }
public BeanManagerImpl locate() { try { return (BeanManagerImpl) new InitialContext().lookup("java:comp/BeanManager"); } catch (Exception e) { // Try the next method } // Locate via the BDA id "test" for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance().beanDeploymentArchives().entrySet()) { if (entry.getKey().getId().equals("test")) { return entry.getValue(); } } throw new IllegalStateException(); }
public BeanManagerImpl findBeanManager(String callerClassName) { if (callerClassName == null) { throw BeanManagerLogger.LOG.unableToIdentifyBeanManager(); } Set<BeanManagerImpl> managers = new HashSet<BeanManagerImpl>(); for (Map.Entry<BeanDeploymentArchive, BeanManagerImpl> entry : container.beanDeploymentArchives().entrySet()) { for (String className : entry.getKey().getKnownClasses()) { if (className.equals(callerClassName)) { managers.add(entry.getValue()); } } } if (managers.size() == 1) { return managers.iterator().next(); } if (managers.size() == 0) { return unsatisfiedBeanManager(callerClassName); } return ambiguousBeanManager(callerClassName, managers); } }
public BeanManagerImpl findBeanManager(String callerClassName) { if (callerClassName == null) { throw BeanManagerLogger.LOG.unableToIdentifyBeanManager(); } Set<BeanManagerImpl> managers = new HashSet<BeanManagerImpl>(); for (Map.Entry<BeanDeploymentArchive, BeanManagerImpl> entry : container.beanDeploymentArchives().entrySet()) { for (String className : entry.getKey().getBeanClasses()) { if (className.equals(callerClassName)) { managers.add(entry.getValue()); } } } if (managers.size() == 1) { return managers.iterator().next(); } if (managers.size() == 0) { return unsatisfiedBeanManager(callerClassName); } return ambiguousBeanManager(callerClassName, managers); } }
public BeanManagerImpl findBeanManager(String callerClassName) { if (callerClassName == null) { throw BeanManagerLogger.LOG.unableToIdentifyBeanManager(); } Set<BeanManagerImpl> managers = new HashSet<BeanManagerImpl>(); for (Map.Entry<BeanDeploymentArchive, BeanManagerImpl> entry : container.beanDeploymentArchives().entrySet()) { for (String className : entry.getKey().getKnownClasses()) { if (className.equals(callerClassName)) { managers.add(entry.getValue()); } } } if (managers.size() == 1) { return managers.iterator().next(); } if (managers.size() == 0) { return unsatisfiedBeanManager(callerClassName); } return ambiguousBeanManager(callerClassName, managers); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
@Override public WeldContainer apply(String callerClassName) { List<String> ids = WeldContainer.getRunningContainerIds(); for (String containerId : ids) { Container container = Container.instance(containerId); for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : container.beanDeploymentArchives().entrySet()) { for (String className : entry.getKey().getBeanClasses()) { if (className.equals(callerClassName)) { return WeldContainer.instance(containerId); } } } } return WeldContainer.instance(ids.get(0)); } }
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception { if (Container.available(contextId)) { for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance(contextId).beanDeploymentArchives().entrySet()) { BeanDeploymentArchive bda = entry.getKey(); if (bda.getId().equals(FLAT_BEAN_DEPLOYMENT_ID) || bda.getId().contains(WEB_INF_CLASSES_FILE_PATH) || bda.getId().contains(WEB_INF_CLASSES)) { return entry.getValue().getCurrent(); } } throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } else { throw BeanManagerLogger.LOG.cannotLocateBeanManager(); } }
@Override public WeldContainer apply(String callerClassName) { List<String> ids = WeldContainer.getRunningContainerIds(); for (String containerId : ids) { Container container = Container.instance(containerId); for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : container.beanDeploymentArchives().entrySet()) { for (String className : entry.getKey().getKnownClasses()) { if (className.equals(callerClassName)) { return WeldContainer.instance(containerId); } } for (Class<?> clazz : entry.getKey().getLoadedBeanClasses()) { if (clazz.getName().equals(callerClassName)) { return WeldContainer.instance(containerId); } } } } return WeldContainer.instance(ids.get(0)); } }
@Test public void testAdditionalBeanDeploymentArchiveCreated(Outsider outsider, BeanManagerImpl beanManager) { assertNotNull(outsider); outsider.ping(); Map<BeanDeploymentArchive, BeanManagerImpl> beanDeploymentArchivesMap = Container.instance(beanManager).beanDeploymentArchives(); assertEquals(3, beanDeploymentArchivesMap.size()); boolean additionalBdaFound = false; for (BeanDeploymentArchive bda : beanDeploymentArchivesMap.keySet()) { if (bda.getId().equals(WeldDeployment.ADDITIONAL_BDA_ID)) { additionalBdaFound = true; break; } } assertTrue(additionalBdaFound); }
private static BeanManagerImpl getBeanManager(ServletContext ctx) { BeanDeploymentArchive war = Container.instance().services().get(ServletServices.class).getBeanDeploymentArchive(ctx); if (war == null) { throw new ForbiddenStateException(BEAN_DEPLOYMENT_ARCHIVE_MISSING, ctx); } BeanManagerImpl beanManager = Container.instance().beanDeploymentArchives().get(war); if (beanManager == null) { throw new ForbiddenStateException(BEAN_MANAGER_FOR_ARCHIVE_NOT_FOUND, ctx, war); } return beanManager; }