[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