You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/20 18:14:53 UTC
svn commit: r1291379 -
/openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java
Author: rmannibucau
Date: Mon Feb 20 17:14:53 2012
New Revision: 1291379
URL: http://svn.apache.org/viewvc?rev=1291379&view=rev
Log:
more ejb-jar merging
Modified:
openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java
Modified: openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java?rev=1291379&r1=1291378&r2=1291379&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java (original)
+++ openejb/trunk/maven-plugins/dd-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/dd/merger/EjbJarMerger.java Mon Feb 20 17:14:53 2012
@@ -1,11 +1,18 @@
package org.apache.openejb.maven.plugin.dd.merger;
import org.apache.maven.plugin.logging.Log;
+import org.apache.openejb.jee.ApplicationException;
import org.apache.openejb.jee.AssemblyDescriptor;
+import org.apache.openejb.jee.ContainerConcurrency;
+import org.apache.openejb.jee.ContainerTransaction;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.Interceptor;
+import org.apache.openejb.jee.InterceptorBinding;
import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.jee.MessageDestination;
+import org.apache.openejb.jee.MethodPermission;
+import org.apache.openejb.jee.SecurityRole;
import org.apache.openejb.maven.plugin.dd.Merger;
import java.io.BufferedInputStream;
@@ -43,8 +50,109 @@ public class EjbJarMerger extends Merger
return reference;
}
- private static void mergeAssemblyDescriptor(final AssemblyDescriptor assemblyDescriptor, final AssemblyDescriptor descriptor) {
- // TODO
+ // TODO: merge it in a better way
+ private void mergeAssemblyDescriptor(final AssemblyDescriptor reference, final AssemblyDescriptor descriptor) {
+ for (SecurityRole role : descriptor.getSecurityRole()) {
+ boolean found = false;
+ for (SecurityRole refRole : reference.getSecurityRole()) {
+ if (refRole.getRoleName().equals(role.getRoleName())) {
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ log.warn("role " + role.getRoleName() + " already defined");
+ } else {
+ reference.getSecurityRole().add(role);
+ }
+ }
+
+ for (MethodPermission perm : descriptor.getMethodPermission()) {
+ boolean found = false;
+ for (MethodPermission refPerm : reference.getMethodPermission()) {
+ if (refPerm.getRoleName().equals(perm.getRoleName())) {
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ log.warn("method permission " + perm.getId() + " already defined");
+ } else {
+ reference.getMethodPermission().add(perm);
+ }
+ }
+
+ for (ContainerTransaction tx : descriptor.getContainerTransaction()) {
+ boolean found = false;
+ for (ContainerTransaction refTx : reference.getContainerTransaction()) {
+ if (refTx.getId().equals(tx.getId())) { // is id the good test?
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ log.warn("container transaction " + tx.getId() + " already defined");
+ } else {
+ reference.getContainerTransaction().add(tx);
+ }
+ }
+
+ for (ContainerConcurrency concurrency : descriptor.getContainerConcurrency()) {
+ boolean found = false;
+ for (ContainerConcurrency refConcurrency : reference.getContainerConcurrency()) {
+ if (refConcurrency.getId().equals(concurrency.getId())) { // is id the good test?
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ log.warn("container concurrency " + concurrency.getId() + " already defined");
+ } else {
+ reference.getContainerConcurrency().add(concurrency);
+ }
+ }
+
+ for (InterceptorBinding interceptorBinding : descriptor.getInterceptorBinding()) {
+ boolean found = false;
+ for (InterceptorBinding refInterceptorBinding : reference.getInterceptorBinding()) {
+ if (refInterceptorBinding.getEjbName().equals(interceptorBinding.getEjbName())) {
+ for (String interceptor : interceptorBinding.getInterceptorClass()) {
+ if (refInterceptorBinding.getInterceptorClass().contains(interceptor)) {
+ found = true;
+ break;
+ }
+ }
+ }
+ }
+ if (found) {
+ log.warn("interceptor binding " + interceptorBinding.getId() + " already defined");
+ } else {
+ reference.getInterceptorBinding().add(interceptorBinding);
+ }
+ }
+
+ for (MessageDestination destination : descriptor.getMessageDestination()) {
+ boolean found = false;
+ for (MessageDestination refDestination : reference.getMessageDestination()) {
+ if (refDestination.getMessageDestinationName().equals(destination.getMessageDestinationName())) { // is id the good test?
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ log.warn("message destination " + destination.getMessageDestinationName() + " already defined");
+ } else {
+ reference.getMessageDestination().add(destination);
+ }
+ }
+
+ for (ApplicationException exception : descriptor.getApplicationException()) {
+ if (reference.getApplicationExceptionMap().containsKey(exception.getKey())) {
+ log.warn("application exception " + exception.getKey() + " already defined");
+ } else {
+ reference.getApplicationException().add(exception);
+ }
+ }
}
@Override