Author: rmannibucau
Date: Thu Aug 29 11:43:20 2013
New Revision: 1518607
URL: http://svn.apache.org/r1518607
Log:
TOMEE-1023 merging app env-entry with ejbs
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1518607&r1=1518606&r2=1518607&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
Thu Aug 29 11:43:20 2013
@@ -236,8 +236,6 @@ class AppInfoBuilder {
// Get the ejb-jar.xml object
final EnterpriseBean enterpriseBean =
beanData.get(beanInfo.ejbName);
- setApplicationEnvEntries(appModule.getApplication(),
enterpriseBean);
-
// Build the JNDI info tree for the EJB
jndiEncInfoBuilder.build(enterpriseBean, beanInfo.ejbName,
ejbJar.moduleName, ejbModule.getModuleUri(), ejbJar.moduleJndiEnc,
beanInfo.jndiEnc);
@@ -307,14 +305,6 @@ class AppInfoBuilder {
}
- private void setApplicationEnvEntries(final Application app, final
EnterpriseBean enterpriseBean) {
- if (app == null || enterpriseBean == null) {
- return;
- }
-
- enterpriseBean.getEnvEntry().addAll(app.getEnvEntry());
- }
-
private void buildPojoConfiguration(final AppModule appModule, final
AppInfo appInfo) {
for (final Map.Entry<String, PojoConfiguration> config :
appModule.getPojoConfigurations().entrySet()) {
final IdPropertiesInfo info = new IdPropertiesInfo();
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java?rev=1518607&r1=1518606&r2=1518607&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java
Thu Aug 29 11:43:20 2013
@@ -26,8 +26,10 @@ import org.apache.openejb.jee.JndiConsum
import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.Map;
import java.util.Set;
/**
@@ -48,63 +50,77 @@ public class CleanEnvEntries implements
return appModule;
}
- public AppModule removeUnsetEnvEntries(AppModule appModule) throws
OpenEJBException {
+ public AppModule removeUnsetEnvEntries(final AppModule appModule) throws
OpenEJBException {
+ final Map<String, EnvEntry> appEnvEntryMap =
getAppEnvEntryMap(appModule);
- for (ClientModule module : appModule.getClientModules()) {
+ for (final ClientModule module : appModule.getClientModules()) {
final JndiConsumer consumer = module.getApplicationClient();
if (consumer == null) continue;
- removeUnsetEnvEntries(consumer);
+ removeUnsetEnvEntries(appEnvEntryMap, consumer);
}
- for (WebModule module : appModule.getWebModules()) {
+ for (final WebModule module : appModule.getWebModules()) {
final JndiConsumer consumer = module.getWebApp();
if (consumer == null) continue;
- removeUnsetEnvEntries(consumer);
+ removeUnsetEnvEntries(appEnvEntryMap, consumer);
}
- for (EjbModule module : appModule.getEjbModules()) {
+ for (final EjbModule module : appModule.getEjbModules()) {
final EjbJar ejbJar = module.getEjbJar();
if (ejbJar == null) continue;
- for (EnterpriseBean consumer : ejbJar.getEnterpriseBeans()) {
- removeUnsetEnvEntries(consumer);
+ for (final EnterpriseBean consumer : ejbJar.getEnterpriseBeans()) {
+ removeUnsetEnvEntries(appEnvEntryMap, consumer);
}
}
return appModule;
}
- private void removeUnsetEnvEntries(JndiConsumer consumer) {
+ private static Map<String, EnvEntry> getAppEnvEntryMap(final AppModule
appModule) {
+ if (appModule.getApplication() != null &&
appModule.getApplication().getEnvEntry() != null) {
+ return appModule.getApplication().getEnvEntryMap();
+ }
+ return Collections.emptyMap();
+ }
+
+ private void removeUnsetEnvEntries(final Map<String,EnvEntry> appEntries,
final JndiConsumer consumer) {
final Iterator<EnvEntry> entries = consumer.getEnvEntry().iterator();
while (entries.hasNext()) {
final EnvEntry entry = entries.next();
- if (entry.getEnvEntryValue() != null) continue;
- if (entry.getLookupName() != null) continue;
+ if (entry.getEnvEntryValue() != null || entry.getLookupName() !=
null) {
+ continue;
+ }
- entries.remove();
+ final EnvEntry appEntry = appEntries.get(entry.getName());
+ if (appEntry != null && appEntry.getEnvEntryValue() != null) {
+ entry.setEnvEntryValue(appEntry.getEnvEntryValue());
+ } else {
+ entries.remove();
+ }
}
}
- public AppModule fillInMissingType(AppModule appModule) throws
OpenEJBException {
+ public AppModule fillInMissingType(final AppModule appModule) throws
OpenEJBException {
- for (ClientModule module : appModule.getClientModules()) {
+ for (final ClientModule module : appModule.getClientModules()) {
final JndiConsumer consumer = module.getApplicationClient();
if (consumer == null) continue;
fillInMissingType(consumer, module);
}
- for (WebModule module : appModule.getWebModules()) {
+ for (final WebModule module : appModule.getWebModules()) {
final JndiConsumer consumer = module.getWebApp();
if (consumer == null) continue;
fillInMissingType(consumer, module);
}
- for (EjbModule module : appModule.getEjbModules()) {
+ for (final EjbModule module : appModule.getEjbModules()) {
final EjbJar ejbJar = module.getEjbJar();
if (ejbJar == null) continue;
@@ -116,16 +132,16 @@ public class CleanEnvEntries implements
return appModule;
}
- private void fillInMissingType(JndiConsumer consumer, DeploymentModule
module) {
+ private void fillInMissingType(final JndiConsumer consumer, final
DeploymentModule module) {
final ClassLoader loader = module.getClassLoader();
- for (EnvEntry entry : consumer.getEnvEntry()) {
+ for (final EnvEntry entry : consumer.getEnvEntry()) {
fillInMissingType(loader, entry);
}
}
- private void fillInMissingType(ClassLoader loader, EnvEntry entry) {
+ private void fillInMissingType(final ClassLoader loader, final EnvEntry
entry) {
if (entry.getType() != null) return;
// If it has the lookup supplied we don't care if there is no type
@@ -136,7 +152,7 @@ public class CleanEnvEntries implements
final Set<Class> types = new HashSet<Class>();
- for (InjectionTarget target : entry.getInjectionTarget()) {
+ for (final InjectionTarget target : entry.getInjectionTarget()) {
if (target.getInjectionTargetClass() == null) continue;
if (target.getInjectionTargetName() == null) continue;
@@ -150,7 +166,7 @@ public class CleanEnvEntries implements
entry.setType(type.getName());
}
- private void normalize(Set<Class> types) {
+ private void normalize(final Set<Class> types) {
types.remove(Object.class);
if (types.contains(int.class)) {