private <R extends JndiReference> boolean isPrivateReference(final R a) { if (!isResourceRef(a)) { return false; } final Class[] types = {EJBContext.class, EntityContext.class, SessionContext.class, MessageDrivenContext.class, UserTransaction.class}; for (final Class type : types) { if (type.getName().equals(a.getType())) { return true; } } return false; }
merge(bean.getEnvEntryMap(), webApp.getEnvEntryMap()); merge(bean.getEjbRefMap(), webApp.getEjbRefMap()); merge(bean.getEjbLocalRefMap(), webApp.getEjbLocalRefMap()); merge(bean.getServiceRefMap(), webApp.getServiceRefMap()); merge(bean.getResourceRefMap(), webApp.getResourceRefMap()); merge(bean.getResourceEnvRefMap(), webApp.getResourceEnvRefMap()); merge(bean.getMessageDestinationRefMap(), webApp.getMessageDestinationRefMap()); merge(bean.getPersistenceContextRefMap(), webApp.getPersistenceContextRefMap()); merge(bean.getPersistenceUnitRefMap(), webApp.getPersistenceUnitRefMap()); mergeUserTransaction(bean.getResourceRefMap(), webApp.getResourceRefMap(), webApp); mergeUserTransaction(bean.getResourceEnvRefMap(), webApp.getResourceEnvRefMap(), webApp); mergeUserTransaction(webApp.getResourceRefMap(), bean.getResourceRefMap(), bean); mergeUserTransaction(webApp.getResourceEnvRefMap(), bean.getResourceEnvRefMap(), bean); copy(aggregator.getEnvEntryMap(), a.getEnvEntryMap()); copy(aggregator.getEjbRefMap(), a.getEjbRefMap()); copy(aggregator.getEjbLocalRefMap(), a.getEjbLocalRefMap()); copy(aggregator.getServiceRefMap(), a.getServiceRefMap()); copy(aggregator.getResourceRefMap(), a.getResourceRefMap()); copy(aggregator.getResourceEnvRefMap(), a.getResourceEnvRefMap()); copy(aggregator.getMessageDestinationRefMap(), a.getMessageDestinationRefMap()); copy(aggregator.getPersistenceContextRefMap(), a.getPersistenceContextRefMap()); copy(aggregator.getPersistenceUnitRefMap(), a.getPersistenceUnitRefMap()); mergeUserTransaction(aggregator.getResourceRefMap(), a.getResourceRefMap(), a); mergeUserTransaction(aggregator.getResourceEnvRefMap(), a.getResourceEnvRefMap(), a);
private <R extends JndiReference> void copy(final Map<String, R> from, final Map<String, R> to) { for (final R a : from.values()) { if (isPrivateReference(a)) { continue; } final R b = to.get(a.getKey()); // New entry if (b == null) { if (!isExtendedPersistenceContext(a)) { to.put(a.getKey(), a); } continue; } // Update existing entry // merge injection points b.getInjectionTarget().addAll(a.getInjectionTarget()); // merge env-entry values if (b instanceof EnvEntry && a instanceof EnvEntry) { final EnvEntry eb = (EnvEntry) b; final EnvEntry ea = (EnvEntry) a; if (eb.getEnvEntryValue() == null) { eb.setEnvEntryValue(ea.getEnvEntryValue()); } if (eb.getEnvEntryType() == null) { eb.setEnvEntryType(ea.getEnvEntryType()); } } } }
@Override public AppModule deploy(final AppModule appModule) throws OpenEJBException { for (final WebModule webModule : appModule.getWebModules()) { if (webModule.getFinder() == null) { continue; } for (final EjbModule ejbModule : appModule.getEjbModules()) { // If they are the same module, they'll have the same finder if (ejbModule.getFinder() != webModule.getFinder()) { final String forceMerge = ejbModule.getProperties().getProperty("openejb.ejbmodule.MergeWebappJndiContext"); // always true is not null if (forceMerge != null) { // default resource propagation for (final EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) { copy(webModule.getWebApp().getResourceEnvRefMap(), bean.getResourceEnvRefMap()); } } continue; } merge(ejbModule, webModule); } } return appModule; }
public AnnotationDeployer() { discoverAnnotatedBeans = new DiscoverAnnotatedBeans(); processAnnotatedBeans = new ProcessAnnotatedBeans(SystemInstance.get().getOptions().get("openejb.jaxws.add-remote", false)); builtInEnvironmentEntries = new BuiltInEnvironmentEntries(); envEntriesPropertiesDeployer = new EnvEntriesPropertiesDeployer(); mBeanDeployer = new MBeanDeployer(); mergeWebappJndiContext = new MergeWebappJndiContext(); }
public AppModule deploy(AppModule appModule) throws OpenEJBException { final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(appModule.getClassLoader()); setModule(appModule); try { appModule = discoverAnnotatedBeans.deploy(appModule); appModule = envEntriesPropertiesDeployer.deploy(appModule); appModule = mergeWebappJndiContext.deploy(appModule); appModule = builtInEnvironmentEntries.deploy(appModule); appModule = processAnnotatedBeans.deploy(appModule); appModule = mergeWebappJndiContext.deploy(appModule); appModule = mBeanDeployer.deploy(appModule); return appModule; } finally { envEntriesPropertiesDeployer.resetAdditionalEnvEntries(); Thread.currentThread().setContextClassLoader(classLoader); removeModule(); } }
@Override public AppModule deploy(final AppModule appModule) throws OpenEJBException { for (final WebModule webModule : appModule.getWebModules()) { if (webModule.getFinder() == null) { continue; } for (final EjbModule ejbModule : appModule.getEjbModules()) { // If they are the same module, they'll have the same finder if (ejbModule.getFinder() != webModule.getFinder()) { continue; } merge(ejbModule, webModule); } } return appModule; }
merge(bean.getEnvEntryMap(), webApp.getEnvEntryMap()); merge(bean.getEjbRefMap(), webApp.getEjbRefMap()); merge(bean.getEjbLocalRefMap(), webApp.getEjbLocalRefMap()); merge(bean.getServiceRefMap(), webApp.getServiceRefMap()); merge(bean.getResourceRefMap(), webApp.getResourceRefMap()); merge(bean.getResourceEnvRefMap(), webApp.getResourceEnvRefMap()); merge(bean.getMessageDestinationRefMap(), webApp.getMessageDestinationRefMap()); merge(bean.getPersistenceContextRefMap(), webApp.getPersistenceContextRefMap()); merge(bean.getPersistenceUnitRefMap(), webApp.getPersistenceUnitRefMap()); mergeUserTransaction(bean.getResourceRefMap(), webApp.getResourceRefMap(), webApp); mergeUserTransaction(bean.getResourceEnvRefMap(), webApp.getResourceEnvRefMap(), webApp); mergeUserTransaction(webApp.getResourceRefMap(), bean.getResourceRefMap(), bean); mergeUserTransaction(webApp.getResourceEnvRefMap(), bean.getResourceEnvRefMap(), bean); copy(aggregator.getEnvEntryMap(), a.getEnvEntryMap()); copy(aggregator.getEjbRefMap(), a.getEjbRefMap()); copy(aggregator.getEjbLocalRefMap(), a.getEjbLocalRefMap()); copy(aggregator.getServiceRefMap(), a.getServiceRefMap()); copy(aggregator.getResourceRefMap(), a.getResourceRefMap()); copy(aggregator.getResourceEnvRefMap(), a.getResourceEnvRefMap()); copy(aggregator.getMessageDestinationRefMap(), a.getMessageDestinationRefMap()); copy(aggregator.getPersistenceContextRefMap(), a.getPersistenceContextRefMap()); copy(aggregator.getPersistenceUnitRefMap(), a.getPersistenceUnitRefMap()); mergeUserTransaction(aggregator.getResourceRefMap(), a.getResourceRefMap(), a); mergeUserTransaction(aggregator.getResourceEnvRefMap(), a.getResourceEnvRefMap(), a);
private <R extends JndiReference> void copy(final Map<String, R> from, final Map<String, R> to) { for (final R a : from.values()) { if (isPrivateReference(a)) { continue; } final R b = to.get(a.getKey()); // New entry if (b == null) { if (!isExtendedPersistenceContext(a)) { to.put(a.getKey(), a); } continue; } // Update existing entry // merge injection points b.getInjectionTarget().addAll(a.getInjectionTarget()); // merge env-entry values if (b instanceof EnvEntry && a instanceof EnvEntry) { final EnvEntry eb = (EnvEntry) b; final EnvEntry ea = (EnvEntry) a; if (eb.getEnvEntryValue() == null) { eb.setEnvEntryValue(ea.getEnvEntryValue()); } if (eb.getEnvEntryType() == null) { eb.setEnvEntryType(ea.getEnvEntryType()); } } } }
public AnnotationDeployer() { discoverAnnotatedBeans = new DiscoverAnnotatedBeans(); processAnnotatedBeans = new ProcessAnnotatedBeans(SystemInstance.get().getOptions().get("openejb.jaxws.add-remote", false)); builtInEnvironmentEntries = new BuiltInEnvironmentEntries(SystemInstance.get().getOptions().get("openejb.environment.default", false)); envEntriesPropertiesDeployer = new EnvEntriesPropertiesDeployer(); mBeanDeployer = new MBeanDeployer(); mergeWebappJndiContext = new MergeWebappJndiContext(); }
public AppModule deploy(AppModule appModule) throws OpenEJBException { final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(appModule.getClassLoader()); setModule(appModule); try { appModule = discoverAnnotatedBeans.deploy(appModule); appModule = envEntriesPropertiesDeployer.deploy(appModule); appModule = mergeWebappJndiContext.deploy(appModule); appModule = builtInEnvironmentEntries.deploy(appModule); appModule = processAnnotatedBeans.deploy(appModule); appModule = mergeWebappJndiContext.deploy(appModule); appModule = mBeanDeployer.deploy(appModule); return appModule; } finally { envEntriesPropertiesDeployer.resetAdditionalEnvEntries(); Thread.currentThread().setContextClassLoader(classLoader); removeModule(); } }
private <R extends JndiReference> boolean isPrivateReference(final R a) { if (!isResourceRef(a)) { return false; } final Class[] types = {EJBContext.class, EntityContext.class, SessionContext.class, MessageDrivenContext.class, UserTransaction.class}; for (final Class type : types) { if (type.getName().equals(a.getType())) { return true; } } return false; }