[jboss-cvs] JBossAS SVN: r75334 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/ejb and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 3 04:52:35 EDT 2008
Author: emuckenhuber
Date: 2008-07-03 04:52:35 -0400 (Thu, 03 Jul 2008)
New Revision: 75334
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
Log:
[JBMETA-45] merge ejbRefs invokerBindings
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java 2008-07-03 08:37:46 UTC (rev 75333)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java 2008-07-03 08:52:35 UTC (rev 75334)
@@ -1974,6 +1974,39 @@
securityIdentity.merge(overrideSecId, originalSecId);
}
+ // Fixup the invoker binding references on ejb refs
+ InvokerBindingsMetaData invokerBindings = getInvokerBindings();
+ if (invokerBindings != null && invokerBindings.isEmpty() == false)
+ {
+ for (InvokerBindingMetaData invokerBinding : invokerBindings)
+ {
+ if(invokerBinding.getEjbRefs() != null)
+ {
+ for(InvokerBindingMetaData.EjbRef ejbRef : invokerBinding.getEjbRefs())
+ {
+ EJBReferenceMetaData targetEjbRef = jndiEnvironmentRefsGroup.getEjbReferenceByName(ejbRef.getEjbRefName());
+ if (targetEjbRef == null)
+ throw new IllegalStateException("ejb-ref " + ejbRef.getEjbRefName() + " found on invoker " + invokerBinding.getName() + " but it does not exist for ejb: " + getName());
+ targetEjbRef.addInvokerBinding(invokerBinding.getName(), ejbRef.getJndiName());
+ }
+ }
+ }
+ }
+
+ // Fixup the security identity
+ SecurityIdentityMetaData jbossSecurityIdentity = null;
+ if (override != null && override.getSecurityIdentity() != null)
+ jbossSecurityIdentity = override.getSecurityIdentity();
+ SecurityIdentityMetaData originalSecurityIdentity = null;
+ if(original != null)
+ originalSecurityIdentity = original.getSecurityIdentity();
+ if(jbossSecurityIdentity != null || originalSecurityIdentity != null)
+ {
+ if(securityIdentity == null)
+ securityIdentity = new SecurityIdentityMetaData();
+ securityIdentity.merge(jbossSecurityIdentity, originalSecurityIdentity);
+ }
+
if(original instanceof JBossGenericBeanMetaData)
merge((JBossGenericBeanMetaData)original);
if(override instanceof JBossGenericBeanMetaData)
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java 2008-07-03 08:37:46 UTC (rev 75333)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java 2008-07-03 08:52:35 UTC (rev 75334)
@@ -35,10 +35,13 @@
import org.jboss.metadata.annotation.creator.ejb.EjbJar30Creator;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
+import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerBindingsMetaData;
import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -50,6 +53,9 @@
import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.Environment;
import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
@@ -115,6 +121,9 @@
}
ejbJar.assertInterceptorBindings(3, jbossMetaData.getAssemblyDescriptor().getInterceptorBindings());
+
+ // Basic check if EjbReferences.invokerBindings are merged
+ assertEjbReferenceInvokerBindings(ejb);
}
/**
@@ -371,5 +380,18 @@
}
}
return classes;
- }
+ }
+
+ private void assertEjbReferenceInvokerBindings(JBossEnterpriseBeanMetaData bean)
+ {
+ Environment envRefs = bean.getJndiEnvironmentRefsGroup();
+ assertNotNull(envRefs);
+ EJBReferencesMetaData ejbReferences = envRefs.getEjbReferences();
+ assertNotNull(ejbReferences);
+ EJBReferenceMetaData ejbRef = ejbReferences.get("session1EjbRef1Name");
+ assertNotNull(ejbRef);
+
+ assertEquals("session1Invoker1EjbName1", ejbRef.getInvokerBinding("invokerProxyBinding1Name"));
+ assertEquals("session1Invoker2EjbName1", ejbRef.getInvokerBinding("invokerProxyBinding2Name"));
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list