You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/09/14 22:36:14 UTC
svn commit: r1170839 - in /openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/config/
openejb-jee/src/main/java/org/apache/openejb/jee/
Author: dblevins
Date: Wed Sep 14 20:36:13 2011
New Revision: 1170839
URL: http://svn.apache.org/viewvc?rev=1170839&view=rev
Log:
OPENEJB-1664: Merge EJB and WebApp JNDI namespaces for EJBs in .WARs compliance
OPENEJB-1663: Implement equals/hashcode on InjectionTarget and convert internal collections to java.util.Set
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/InjectionTarget.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Wed Sep 14 20:36:13 2011
@@ -1832,33 +1832,17 @@ public class AnnotationDeployer implemen
IAnnotationFinder finder = webModule.getFinder();
if (finder != null) {
- String[] webComponentAnnotations = {
- "javax.faces.bean.ManagedBean",
- "javax.servlet.annotation.WebServlet",
- "javax.servlet.annotation.WebServletContextListener",
- "javax.servlet.annotation.WebFilter",
- };
-
- List<Class<? extends Annotation>> annotations = new ArrayList<Class<? extends Annotation>>();
- for (String componentAnnotationName : webComponentAnnotations) {
+ // Add all the classes of the previous finder
+ // TODO this part can be optimized
+ final List<String> classNames = finder.getAnnotatedClassNames();
+ for (String className : classNames) {
try {
- Class<?> clazz = classLoader.loadClass(componentAnnotationName);
- annotations.add(clazz.asSubclass(Annotation.class));
+ Class clazz = classLoader.loadClass(className);
+ classes.add(clazz);
} catch (ClassNotFoundException e) {
- logger.debug("Support not enabled: " + componentAnnotationName);
+ logger.debug("Unable to load class for scanning: " + className);
}
}
-
-
- for (Class<? extends Annotation> annotation : annotations) {
- logger.debug("Scanning for @" + annotation.getName());
- List<Class<?>> list = finder.findAnnotatedClasses(annotation);
- if (logger.isDebugEnabled()) for (Class clazz : list) {
- logger.debug("Found " + clazz.getName());
- }
-
- classes.addAll(list);
- }
}
AnnotationFinder annotationFinder = createFinder(classes.toArray(new Class<?>[classes.size()]));
@@ -3151,7 +3135,7 @@ public class AnnotationDeployer implemen
return list.size() == 0;
}
- public void buildAnnotatedRefs(JndiConsumer consumer, AnnotationFinder annotationFinder, ClassLoader classLoader) throws OpenEJBException {
+ public void buildAnnotatedRefs(JndiConsumer consumer, IAnnotationFinder annotationFinder, ClassLoader classLoader) throws OpenEJBException {
//
// @EJB
//
@@ -3676,10 +3660,14 @@ public class AnnotationDeployer implemen
consumer.getEnvEntry().add(envEntry);
reference = envEntry;
} else {
- /*
- * Can't add env-entry since @Resource.lookup is not set and it is NOT in a shareable JNDI name space
- */
- return;
+ EnvEntry envEntry = new EnvEntry();
+ envEntry.setName(refName);
+ consumer.getEnvEntry().add(envEntry);
+ reference = envEntry;
+// /*
+// * Can't add env-entry since @Resource.lookup is not set and it is NOT in a shareable JNDI name space
+// */
+// return;
}
} else {
/*
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Wed Sep 14 20:36:13 2011
@@ -336,7 +336,6 @@ class AppInfoBuilder {
}
appInfo.webApps.add(webAppInfo);
- appInfo.webApps.add(webAppInfo);
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Wed Sep 14 20:36:13 2011
@@ -1014,7 +1014,7 @@ public class AutoConfig implements Dynam
return ref.getType();
}
if (classLoader != null) {
- List<InjectionTarget> injections = ref.getInjectionTarget();
+ Set<InjectionTarget> injections = ref.getInjectionTarget();
for (InjectionTarget injection : injections) {
try {
Class target = classLoader.loadClass(injection.getInjectionTargetClass().trim());
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Wed Sep 14 20:36:13 2011
@@ -198,10 +198,9 @@ public class ConfigurationFactory implem
chain.add(new ApplyOpenejbJar());
chain.add(new MappedNameBuilder());
chain.add(new ActivationConfigPropertyOverride());
-
- // TODO: How do we want this plugged in?
chain.add(new OutputGeneratedDescriptors());
+ chain.add(new MergeWebappJndiContext());
this.deployer = chain;
}
Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java?rev=1170839&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java Wed Sep 14 20:36:13 2011
@@ -0,0 +1,139 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.config;
+
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.EnvEntry;
+import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.JndiReference;
+import org.apache.openejb.jee.ResourceEnvRef;
+
+import javax.ejb.EJBContext;
+import javax.ejb.MessageDrivenContext;
+import javax.ejb.SessionContext;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MergeWebappJndiContext implements DynamicDeployer {
+
+ @Override
+ public AppModule deploy(AppModule appModule) throws OpenEJBException {
+
+ for (WebModule webModule : appModule.getWebModules()) {
+ if (webModule.getFinder() == null) continue;
+
+ for (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;
+ }
+
+ private void merge(EjbModule ejbModule, WebModule webModule) {
+ final JndiConsumer webApp = webModule.getWebApp();
+
+ removePrivateReferences(webApp);
+
+ final EjbJar ejbJar = ejbModule.getEjbJar();
+
+ for (EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
+ 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());
+ }
+
+ removePrivateReferences(webApp);
+ }
+
+ /**
+ * Bidirectional a-b merge
+ *
+ * @param a
+ * @param b
+ * @param <R>
+ */
+ private <R extends JndiReference> void merge(Map<String, R> a, Map<String, R> b) {
+ copy(a, b);
+ copy(b, a);
+ }
+
+ private <R extends JndiReference> void copy(Map<String, R> from, Map<String, R> to) {
+ for (R a : from.values()) {
+ final R b = to.get(a.getKey());
+
+ // New entry
+ if (b == null) {
+ 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());
+ }
+ }
+ }
+ }
+
+ private void removePrivateReferences(JndiConsumer webApp) {
+ Class[] types = {EJBContext.class, SessionContext.class, MessageDrivenContext.class};
+ final Iterator<ResourceEnvRef> refs = webApp.getResourceEnvRef().iterator();
+ while (refs.hasNext()) {
+ final ResourceEnvRef ref = refs.next();
+ if (isInvalid(types, ref)) refs.remove();
+ }
+ }
+
+ private boolean isInvalid(Class[] types, ResourceEnvRef ref) {
+ boolean invalid = false;
+ for (Class type : types) {
+ if (type.getName().equals(ref.getType())) {
+ invalid= true;
+ break;
+ }
+ }
+ return invalid;
+ }
+
+ private void yank(ResourceEnvRef ref, Class<EJBContext> ejbContextClass, Class<SessionContext> sessionContextClass, Class<MessageDrivenContext> messageDrivenContextClass) {
+ }
+
+}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java Wed Sep 14 20:36:13 2011
@@ -79,4 +79,8 @@ public class Module {
public void setAppModule(AppModule appModule) {
this.appModule = appModule;
}
+
+ public AppModule getAppModule() {
+ return appModule;
+ }
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbLocalRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlType
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
* javaee6.xsd
@@ -89,7 +91,7 @@ public class EjbLocalRef implements EjbR
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -253,9 +255,9 @@ public class EjbLocalRef implements EjbR
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -89,7 +91,7 @@ public class EjbRef implements EjbRefere
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -200,9 +202,9 @@ public class EjbRef implements EjbRefere
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EnvEntry.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
* javaee6.xsd
@@ -91,7 +93,7 @@ public class EnvEntry implements JndiRef
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -190,9 +192,9 @@ public class EnvEntry implements JndiRef
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Injectable.java Wed Sep 14 20:36:13 2011
@@ -17,11 +17,12 @@
package org.apache.openejb.jee;
import java.util.List;
+import java.util.Set;
/**
* @version $Rev$ $Date$
*/
public interface Injectable {
- public List<InjectionTarget> getInjectionTarget();
+ public Set<InjectionTarget> getInjectionTarget();
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/InjectionTarget.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/InjectionTarget.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/InjectionTarget.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/InjectionTarget.java Wed Sep 14 20:36:13 2011
@@ -85,4 +85,23 @@ public class InjectionTarget {
this.injectionTargetName = value;
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ InjectionTarget that = (InjectionTarget) o;
+
+ if (injectionTargetClass != null ? !injectionTargetClass.equals(that.injectionTargetClass) : that.injectionTargetClass != null) return false;
+ if (injectionTargetName != null ? !injectionTargetName.equals(that.injectionTargetName) : that.injectionTargetName != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = injectionTargetClass != null ? injectionTargetClass.hashCode() : 0;
+ result = 31 * result + (injectionTargetName != null ? injectionTargetName.hashCode() : 0);
+ return result;
+ }
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDestinationRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -86,7 +88,7 @@ public class MessageDestinationRef imple
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -194,9 +196,9 @@ public class MessageDestinationRef imple
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceContextRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlType
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -88,7 +90,7 @@ public class PersistenceContextRef imple
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -190,9 +192,9 @@ public class PersistenceContextRef imple
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/PersistenceUnitRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlType
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -80,7 +82,7 @@ public class PersistenceUnitRef implemen
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -161,9 +163,9 @@ public class PersistenceUnitRef implemen
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceEnvRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -78,7 +80,7 @@ public class ResourceEnvRef implements J
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -165,9 +167,9 @@ public class ResourceEnvRef implements J
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java Wed Sep 14 20:36:13 2011
@@ -28,7 +28,9 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
@@ -86,7 +88,7 @@ public class ResourceRef implements Jndi
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -193,9 +195,9 @@ public class ResourceRef implements Jndi
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java?rev=1170839&r1=1170838&r2=1170839&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ServiceRef.java Wed Sep 14 20:36:13 2011
@@ -30,8 +30,10 @@ import javax.xml.bind.annotation.adapter
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
@@ -117,7 +119,7 @@ public class ServiceRef implements JndiR
@XmlElement(name = "lookup-name")
protected String lookupName;
@XmlElement(name = "injection-target", required = true)
- protected List<InjectionTarget> injectionTarget;
+ protected Set<InjectionTarget> injectionTarget;
@XmlAttribute
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlID
@@ -293,9 +295,9 @@ public class ServiceRef implements JndiR
this.lookupName = lookupName;
}
- public List<InjectionTarget> getInjectionTarget() {
+ public Set<InjectionTarget> getInjectionTarget() {
if (injectionTarget == null) {
- injectionTarget = new ArrayList<InjectionTarget>();
+ injectionTarget = new HashSet<InjectionTarget>();
}
return this.injectionTarget;
}