Author: rmannibucau Date: Tue Mar 12 18:45:36 2013 New Revision: 1455665 URL: http://svn.apache.org/r1455665 Log: TOMEE-791 trying to be more IDE friendly regarding beans.xml
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1455665&r1=1455664&r2=1455665&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Tue Mar 12 18:45:36 2013 @@ -934,6 +934,9 @@ public class DeploymentLoader implements if (url == null) continue; complete = mergeBeansXml(complete, url); } + if (complete != null) { + complete.removeDuplicates(); + } webModule.getAltDDs().put("beans.xml", complete); } @@ -983,6 +986,7 @@ public class DeploymentLoader implements } if (complete == null) return; + complete.removeDuplicates(); IAnnotationFinder finder; try { Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java?rev=1455665&r1=1455664&r2=1455665&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java Tue Mar 12 18:45:36 2013 @@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlRoot import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; @@ -221,4 +222,17 @@ public class Beans { } return duplicatedAlternatives; } + + public void removeDuplicates() { + removeDuplicates(getAlternativeClasses()); + removeDuplicates(getAlternativeStereotypes()); + removeDuplicates(getDecorators()); + removeDuplicates(getInterceptors()); + } + + private <T> void removeDuplicates(final List<T> list) { + final List<T> classes = new ArrayList<T>(list); + list.clear(); + list.addAll(new HashSet<T>(classes)); + } }