[jboss-cvs] JBossAS SVN: r73831 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/spec and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri May 30 05:46:49 EDT 2008


Author: alex.loubyansky at jboss.com
Date: 2008-05-30 05:46:49 -0400 (Fri, 30 May 2008)
New Revision: 73831

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
Log:
JBMETA-20. complete JBossEnterpriseBeanMetaData merge/override

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-05-30 09:01:31 UTC (rev 73830)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2008-05-30 09:46:49 UTC (rev 73831)
@@ -1765,6 +1765,7 @@
       IgnoreDependencyMetaData originalIgnoreDependency = null;
       PoolConfigMetaData originalPool = null;
       JndiRefsMetaData originalJndiRefs = null;
+      SecurityIdentityMetaData originalSecId = null;
       if(original != null)
       {
          if(original.aopDomainName != null)
@@ -1787,11 +1788,13 @@
             securityDomain = original.securityDomain;
          if(original.securityProxy != null)
             securityProxy = original.securityProxy;
+         if(original.transactionType != null)
+            transactionType = original.transactionType;
 
          // boolean wrapper should be used to differentiate between default and not set values
          timerPersistence = original.timerPersistence;
          exceptionOnRollback = original.exceptionOnRollback;
-
+         
          originalAnnotations = original.annotations;
          originalInvokers = original.invokers;
          originalEnv = original.jndiEnvironmentRefsGroup;
@@ -1799,6 +1802,7 @@
          originalIgnoreDependency = original.ignoreDependency;
          originalPool = original.poolConfig;
          originalJndiRefs = original.jndiRefs;
+         originalSecId = original.securityIdentity;
          
          // not merged currently but overriden
          if(original.iorSecurityConfig != null)
@@ -1812,6 +1816,7 @@
       IgnoreDependencyMetaData overrideIgnoreDependency = null;
       PoolConfigMetaData overridePool = null;
       JndiRefsMetaData overrideJndiRefs = null;
+      SecurityIdentityMetaData overrideSecId = null;
       if(override != null)
       {         
          if(override.aopDomainName != null)
@@ -1834,6 +1839,9 @@
             securityDomain = override.securityDomain;
          if(override.securityProxy != null)
             securityProxy = override.securityProxy;
+         if(override.transactionType != null)
+            transactionType = override.transactionType;
+         
          timerPersistence = override.timerPersistence;
          exceptionOnRollback = override.exceptionOnRollback;
          
@@ -1844,6 +1852,7 @@
          overrideIgnoreDependency = override.ignoreDependency;
          overridePool = override.poolConfig;
          overrideJndiRefs = override.jndiRefs;
+         overrideSecId = override.securityIdentity;
 
          if(override.iorSecurityConfig != null)
             iorSecurityConfig = override.iorSecurityConfig;
@@ -1897,6 +1906,13 @@
             jndiRefs = new JndiRefsMetaData();
          jndiRefs.merge(overrideJndiRefs, originalJndiRefs);
       }
+      
+      if(originalSecId != null || overrideSecId != null)
+      {
+         if(securityIdentity == null)
+            securityIdentity = new SecurityIdentityMetaData();
+         securityIdentity.merge(overrideSecId, originalSecId);
+      }
    }
    
    public void checkValid()

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2008-05-30 09:01:31 UTC (rev 73830)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2008-05-30 09:46:49 UTC (rev 73831)
@@ -163,7 +163,7 @@
       else if(original != null && original.getRunAs() != null)
          setRunAs(original.getRunAs());
       if(override != null && override.getRunAsPrincipal() != null)
-         setRunAsPrincipal(getRunAsPrincipal());
+         setRunAsPrincipal(override.getRunAsPrincipal());
       else if(original != null && original.getRunAsPrincipal() != null)
          setRunAsPrincipal(original.getRunAsPrincipal());
    }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-05-30 09:01:31 UTC (rev 73830)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-05-30 09:46:49 UTC (rev 73831)
@@ -29,6 +29,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import javax.ejb.TransactionManagementType;
+
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
@@ -41,6 +43,7 @@
 import org.jboss.metadata.ejb.jboss.MethodAttributeMetaData;
 import org.jboss.metadata.ejb.jboss.MethodAttributesMetaData;
 import org.jboss.metadata.ejb.jboss.PoolConfigMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.metadata.javaee.jboss.AnnotationMetaData;
 import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
@@ -53,6 +56,7 @@
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EmptyMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
@@ -68,6 +72,7 @@
 import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
 import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
 import org.jboss.util.Classes;
 
 
@@ -839,4 +844,59 @@
       assertNotNull(jndiRef);
       assertEquals(jndiRef.getJndiRefName() + "Override", jndiRef.getJndiName());
    }
+
+   public void testSecurityIdentity() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+
+      SecurityIdentityMetaData secId = new SecurityIdentityMetaData();
+      RunAsMetaData runAs = new RunAsMetaData();
+      runAs.setRoleName("originalRole");
+      secId.setRunAs(runAs);
+      secId.setRunAsPrincipal("originalPrincipal");
+      secId.setUseCallerIdentity(new EmptyMetaData());
+      original.setSecurityIdentity(secId);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+
+      //runAs = new RunAsMetaData();
+      //runAs.setRoleName("overrideRole");
+      //secId.setRunAs(runAs);
+      secId.setRunAsPrincipal("overridePrincipal");
+      override.setSecurityIdentity(secId);
+      
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+
+      secId = merged.getSecurityIdentity();
+      assertNotNull(secId);
+      runAs = secId.getRunAs();
+      assertNotNull(runAs);
+      assertEquals("originalRole", runAs.getRoleName());
+      assertEquals("overridePrincipal", secId.getRunAsPrincipal());
+      assertNotNull(secId.getUseCallerIdentity()); // is this right?
+   }
+
+   public void testTransactionType() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+      original.setTransactionType(TransactionManagementType.CONTAINER);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+      override.setTransactionType(TransactionManagementType.BEAN);
+
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+      TransactionManagementType txType = merged.getTransactionType();
+      assertNotNull(txType);
+      assertEquals(TransactionManagementType.BEAN, txType);
+   }
 }




More information about the jboss-cvs-commits mailing list