You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ge...@apache.org on 2011/05/15 14:55:48 UTC
svn commit: r1103356 - in
/geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment:
EARConfigBuilder.java NamingBuilderCollection.java
Author: genspring
Date: Sun May 15 12:55:47 2011
New Revision: 1103356
URL: http://svn.apache.org/viewvc?rev=1103356&view=rev
Log:
to avoid NPE when building plugin with ext-module tag in DD.
Modified:
geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java
Modified: geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java?rev=1103356&r1=1103355&r2=1103356&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java Sun May 15 12:55:47 2011
@@ -444,7 +444,7 @@ public class EARConfigBuilder implements
// todo change module so you can extract the real module path back out.. then we can eliminate
// the moduleLocations and have addModules return the modules
String applicationName = null;
- if (application.getApplicationName() != null) {
+ if (application!=null && application.getApplicationName() != null) {
applicationName = application.getApplicationName().trim();
} else if (earFile != null) {
applicationName = FileUtils.removeExtension(new File(earFile.getName()).getName(), ".ear");
@@ -458,14 +458,14 @@ public class EARConfigBuilder implements
earFile,
application,
gerApplication,
- application.toString()
+ application==null ? null : application.toString()
);
try {
addModules(earFile, application, gerApplication, environment, applicationInfo, idBuilder);
if (applicationInfo.getModules().isEmpty()) {
//if no application.xml and no modules detected, return null for stand-alone module processing
return null;
- } else {
+ } else if (application!=null){
addModulesToDefaultPlan(application, applicationInfo.getModules());
}
} catch (Throwable e) {
Modified: geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java?rev=1103356&r1=1103355&r2=1103356&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java Sun May 15 12:55:47 2011
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,7 +33,17 @@ import org.apache.geronimo.kernel.reposi
import org.apache.geronimo.gbean.annotation.GBean;
import org.apache.geronimo.gbean.annotation.ParamReference;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.openejb.jee.DataSource;
+import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.EnvEntry;
import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.MessageDestinationRef;
+import org.apache.openejb.jee.PersistenceContextRef;
+import org.apache.openejb.jee.PersistenceUnitRef;
+import org.apache.openejb.jee.ResourceEnvRef;
+import org.apache.openejb.jee.ResourceRef;
+import org.apache.openejb.jee.ServiceRef;
import org.apache.xmlbeans.QNameSet;
import org.apache.xmlbeans.XmlObject;
@@ -47,18 +58,35 @@ public class NamingBuilderCollection ext
}
public void buildEnvironment(JndiConsumer specDD, XmlObject plan, Environment environment) throws DeploymentException {
+ if(specDD == null){
+ // java ee 5 and 6 might not have spec DD, adding this to avoid the NPE.
+ specDD = new JndiConsumerNonNull();
+ }
+
for (NamingBuilder namingBuilder : getSortedBuilders()) {
namingBuilder.buildEnvironment(specDD, plan, environment);
}
}
public void initContext(JndiConsumer specDD, XmlObject plan, Module module) throws DeploymentException {
+
+ if(specDD == null){
+ // java ee 5 and 6 might not have spec DD, adding this to avoid the NPE.
+ specDD = new JndiConsumerNonNull();
+ }
+
for (NamingBuilder namingBuilder : getSortedBuilders()) {
namingBuilder.initContext(specDD, plan, module);
}
}
public void buildNaming(JndiConsumer specDD, XmlObject plan, Module module, Map<EARContext.Key, Object> sharedContext) throws DeploymentException {
+
+ if(specDD == null){
+ // java ee 5 and 6 might not have spec DD, adding this to avoid the NPE.
+ specDD = new JndiConsumerNonNull();
+ }
+
for (NamingBuilder namingBuilder : getSortedBuilders()) {
if (EARConfigBuilder.createPlanMode.get().booleanValue()) {
try {
@@ -78,6 +106,113 @@ public class NamingBuilderCollection ext
return list;
}
+ private final class JndiConsumerNonNull implements JndiConsumer {
+ @Override
+ public String getJndiConsumerName() {
+ return null;
+ }
+
+ @Override
+ public Collection<EnvEntry> getEnvEntry() {
+ return new ArrayList<EnvEntry>();
+ }
+
+ @Override
+ public Map<String, EnvEntry> getEnvEntryMap() {
+ return new HashMap<String, EnvEntry>();
+ }
+
+ @Override
+ public Collection<EjbRef> getEjbRef() {
+ return new ArrayList<EjbRef>();
+ }
+
+ @Override
+ public Map<String, EjbRef> getEjbRefMap() {
+ return new HashMap<String, EjbRef>();
+ }
+
+ @Override
+ public Collection<EjbLocalRef> getEjbLocalRef() {
+ return new ArrayList<EjbLocalRef>();
+ }
+
+ @Override
+ public Map<String, EjbLocalRef> getEjbLocalRefMap() {
+ return new HashMap<String, EjbLocalRef>();
+ }
+
+ @Override
+ public Collection<ServiceRef> getServiceRef() {
+ return new ArrayList<ServiceRef>();
+ }
+
+ @Override
+ public Map<String, ServiceRef> getServiceRefMap() {
+ return new HashMap<String, ServiceRef>();
+ }
+
+ @Override
+ public Collection<ResourceRef> getResourceRef() {
+ return new ArrayList<ResourceRef>();
+ }
+
+ @Override
+ public Map<String, ResourceRef> getResourceRefMap() {
+ return new HashMap<String, ResourceRef>();
+ }
+
+ @Override
+ public Collection<ResourceEnvRef> getResourceEnvRef() {
+ return new ArrayList<ResourceEnvRef>();
+ }
+
+ @Override
+ public Map<String, ResourceEnvRef> getResourceEnvRefMap() {
+ return new HashMap<String, ResourceEnvRef>();
+ }
+
+ @Override
+ public Collection<MessageDestinationRef> getMessageDestinationRef() {
+ return new ArrayList<MessageDestinationRef>();
+ }
+
+ @Override
+ public Map<String, MessageDestinationRef> getMessageDestinationRefMap() {
+ return new HashMap<String, MessageDestinationRef>();
+ }
+
+ @Override
+ public Collection<PersistenceContextRef> getPersistenceContextRef() {
+ return new ArrayList<PersistenceContextRef>();
+ }
+
+ @Override
+ public Map<String, PersistenceContextRef> getPersistenceContextRefMap() {
+ return new HashMap<String, PersistenceContextRef>();
+ }
+
+ @Override
+ public Collection<PersistenceUnitRef> getPersistenceUnitRef() {
+ return new ArrayList<PersistenceUnitRef>();
+ }
+
+ @Override
+ public Map<String, PersistenceUnitRef> getPersistenceUnitRefMap() {
+ return new HashMap<String, PersistenceUnitRef>();
+ }
+
+ @Override
+ public Collection<DataSource> getDataSource() {
+ return new ArrayList<DataSource>();
+ }
+
+ @Override
+ public Map<String, DataSource> getDataSourceMap() {
+ return new HashMap<String, DataSource>();
+ }
+ }
+
private static class NamingBuilderComparator implements Comparator<NamingBuilder> {
public int compare(NamingBuilder o1, NamingBuilder o2) {
return o1.getPriority() - o2.getPriority();