[jboss-cvs] JBossAS SVN: r73932 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/spec and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jun 2 11:31:30 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-06-02 11:31:30 -0400 (Mon, 02 Jun 2008)
New Revision: 73932
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheInvalidationConfigMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/CMPFieldsMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEntityBeanOverrideUnitTestCase.java
Log:
JBMETA-46
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheInvalidationConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheInvalidationConfigMetaData.java 2008-06-02 15:01:24 UTC (rev 73931)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheInvalidationConfigMetaData.java 2008-06-02 15:31:30 UTC (rev 73932)
@@ -131,4 +131,34 @@
throw new IllegalArgumentException("Null invalidationManagerName");
this.invalidationManagerName = invalidationManagerName;
}
+
+ public void merge(CacheInvalidationConfigMetaData override, CacheInvalidationConfigMetaData original)
+ {
+ String originalEjb = null;
+ if(original != null)
+ {
+ originalEjb = original.entityBean != null ? original.entityBean.getEjbName() : null;
+ if(original.invalidationGroupName != null)
+ invalidationGroupName = original.invalidationGroupName;
+ if(original.invalidationManagerName != null)
+ invalidationManagerName = original.invalidationManagerName;
+ }
+
+ if(override != null)
+ {
+ if(override.entityBean != null && originalEjb != null)
+ {
+ if(!originalEjb.equals(override.entityBean.getEjbName()))
+ throw new IllegalArgumentException(
+ "Attempt to merge cache invalidation config for different " +
+ "entity beans: " + originalEjb + " and " +
+ override.entityBean.getEjbName());
+ }
+
+ if(override.invalidationGroupName != null)
+ invalidationGroupName = override.invalidationGroupName;
+ if(override.invalidationManagerName != null)
+ invalidationManagerName = override.invalidationManagerName;
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java 2008-06-02 15:01:24 UTC (rev 73931)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java 2008-06-02 15:31:30 UTC (rev 73932)
@@ -838,4 +838,133 @@
if(joverride != null && joverride.clusterConfig != null)
clusterConfig = joverride.clusterConfig;
}
+
+ public void merge(JBossEnterpriseBeanMetaData overrideEjb, JBossEnterpriseBeanMetaData originalEjb)
+ {
+ super.merge(overrideEjb, originalEjb);
+
+ CMPFieldsMetaData originalFields = null;
+ SecurityRoleRefsMetaData originalRoles = null;
+ ClusterConfigMetaData originalCluster = null;
+ CacheInvalidationConfigMetaData originalCacheInv = null;
+ JBossEntityBeanMetaData original = (JBossEntityBeanMetaData) originalEjb;
+ if(original != null)
+ {
+ if(original.abstractSchemaName != null)
+ abstractSchemaName = original.abstractSchemaName;
+ if(original.cmpVersion != null)
+ cmpVersion = original.cmpVersion;
+ if(original.home != null)
+ home = original.home;
+ if(original.jndiName != null)
+ jndiName = original.jndiName;
+ if(original.local != null)
+ local = original.local;
+ if(original.localHome != null)
+ localHome = original.localHome;
+ if(original.primKeyClass != null)
+ primKeyClass = original.primKeyClass;
+ if(original.primKeyField != null)
+ primKeyField = original.primKeyField;
+ if(original.remote != null)
+ remote = original.remote;
+
+ // boolean should be changed to java.lang.Boolean to differentiate
+ // between the default and non-set value
+ if(original.cacheInvalidation)
+ cacheInvalidation = original.cacheInvalidation;
+ if(original.callByValue)
+ callByValue = original.callByValue;
+ if(original.clustered)
+ clustered = original.clustered;
+ if(original.readOnly)
+ readOnly = original.readOnly;
+ if(original.reentrant)
+ reentrant = original.reentrant;
+
+ if(original.persistenceType != null)
+ persistenceType = original.persistenceType;
+
+ originalFields = original.cmpFields;
+ originalRoles = original.securityRoleRefs;
+ originalCluster = original.clusterConfig;
+ originalCacheInv = original.cacheInvalidationConfig;
+ }
+
+ CMPFieldsMetaData overrideFields = null;
+ SecurityRoleRefsMetaData overrideRoles = null;
+ ClusterConfigMetaData overrideCluster = null;
+ CacheInvalidationConfigMetaData overrideCacheInv = null;
+ JBossEntityBeanMetaData override = (JBossEntityBeanMetaData) overrideEjb;
+ if(override != null)
+ {
+ if(override.abstractSchemaName != null)
+ abstractSchemaName = override.abstractSchemaName;
+ if(override.cmpVersion != null)
+ cmpVersion = override.cmpVersion;
+ if(override.home != null)
+ home = override.home;
+ if(override.jndiName != null)
+ jndiName = override.jndiName;
+ if(override.local != null)
+ local = override.local;
+ if(override.localHome != null)
+ localHome = override.localHome;
+ if(override.primKeyClass != null)
+ primKeyClass = override.primKeyClass;
+ if(override.primKeyField != null)
+ primKeyField = override.primKeyField;
+ if(override.remote != null)
+ remote = override.remote;
+
+ // boolean should be changed to java.lang.Boolean to differentiate
+ // between the default and non-set value
+ if(override.cacheInvalidation)
+ cacheInvalidation = override.cacheInvalidation;
+ if(override.callByValue)
+ callByValue = override.callByValue;
+ if(override.clustered)
+ clustered = override.clustered;
+ if(override.readOnly)
+ readOnly = override.readOnly;
+ if(override.reentrant)
+ reentrant = override.reentrant;
+
+ if(override.persistenceType != null)
+ persistenceType = override.persistenceType;
+
+ overrideFields = override.cmpFields;
+ overrideRoles = override.securityRoleRefs;
+ overrideCluster = override.clusterConfig;
+ overrideCacheInv = override.cacheInvalidationConfig;
+ }
+
+ if(originalFields != null || overrideFields != null)
+ {
+ if(cmpFields == null)
+ cmpFields = new CMPFieldsMetaData();
+ cmpFields.merge(overrideFields, originalFields);
+ }
+
+ if(originalRoles != null || overrideRoles != null)
+ {
+ if(securityRoleRefs == null)
+ securityRoleRefs = new SecurityRoleRefsMetaData();
+ securityRoleRefs.merge(overrideRoles, originalRoles);
+ }
+
+ if(originalCluster != null || overrideCluster != null)
+ {
+ if(clusterConfig == null)
+ clusterConfig = new ClusterConfigMetaData();
+ clusterConfig.merge(overrideCluster, originalCluster);
+ }
+
+ if(originalCacheInv != null || overrideCacheInv != null)
+ {
+ if(cacheInvalidationConfig == null)
+ cacheInvalidationConfig = new CacheInvalidationConfigMetaData();
+ cacheInvalidationConfig.merge(overrideCacheInv, originalCacheInv);
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/CMPFieldsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/CMPFieldsMetaData.java 2008-06-02 15:01:24 UTC (rev 73931)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/CMPFieldsMetaData.java 2008-06-02 15:31:30 UTC (rev 73932)
@@ -41,4 +41,19 @@
{
super("cmp field name");
}
+
+ public void merge(CMPFieldsMetaData override, CMPFieldsMetaData original)
+ {
+ super.merge(override, original);
+ if (original != null)
+ {
+ for (CMPFieldMetaData property : original)
+ add(property);
+ }
+ if (override != null)
+ {
+ for (CMPFieldMetaData property : override)
+ add(property);
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java 2008-06-02 15:01:24 UTC (rev 73931)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java 2008-06-02 15:31:30 UTC (rev 73932)
@@ -43,4 +43,19 @@
{
super("role name for security role ref");
}
+
+ public void merge(SecurityRoleRefsMetaData override, SecurityRoleRefsMetaData original)
+ {
+ super.merge(override, original);
+ if (original != null)
+ {
+ for (SecurityRoleRefMetaData property : original)
+ add(property);
+ }
+ if (override != null)
+ {
+ for (SecurityRoleRefMetaData property : override)
+ add(property);
+ }
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEntityBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEntityBeanOverrideUnitTestCase.java 2008-06-02 15:01:24 UTC (rev 73931)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEntityBeanOverrideUnitTestCase.java 2008-06-02 15:31:30 UTC (rev 73932)
@@ -22,8 +22,15 @@
package org.jboss.test.metadata.ejb;
+import org.jboss.metadata.ejb.jboss.CacheInvalidationConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.spec.CMPFieldMetaData;
+import org.jboss.metadata.ejb.spec.CMPFieldsMetaData;
+import org.jboss.metadata.ejb.spec.PersistenceType;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
/**
@@ -39,4 +46,157 @@
{
simplePropertiesTest(JBossEntityBeanMetaData.class, JBossEnterpriseBeanMetaData.class, null);
}
+
+ public void testPersistenceType() throws Exception
+ {
+ JBossEntityBeanMetaData original = new JBossEntityBeanMetaData();
+ original.setEjbName("entity");
+ original.setPersistenceType(PersistenceType.Container);
+
+ JBossEntityBeanMetaData override = new JBossEntityBeanMetaData();
+ override.setEjbName("entity");
+ override.setPersistenceType(PersistenceType.Bean);
+
+ JBossEntityBeanMetaData merged = new JBossEntityBeanMetaData();
+ merged.merge(override, original);
+ assertEquals("entity", merged.getEjbName());
+ PersistenceType persistenceType = merged.getPersistenceType();
+ assertNotNull(persistenceType);
+ assertEquals(PersistenceType.Bean, persistenceType);
+ }
+
+ public void testCMPFields() throws Exception
+ {
+ JBossEntityBeanMetaData original = new JBossEntityBeanMetaData();
+ original.setEjbName("entity");
+
+ CMPFieldsMetaData cmpFields = new CMPFieldsMetaData();
+ CMPFieldMetaData cmpField = new CMPFieldMetaData();
+ cmpField.setFieldName("field1");
+ cmpFields.add(cmpField);
+ original.setCmpFields(cmpFields);
+
+ JBossEntityBeanMetaData override = new JBossEntityBeanMetaData();
+ override.setEjbName("entity");
+
+ cmpFields = new CMPFieldsMetaData();
+ cmpField = new CMPFieldMetaData();
+ cmpField.setFieldName("field2");
+ cmpFields.add(cmpField);
+ override.setCmpFields(cmpFields);
+
+ JBossEntityBeanMetaData merged = new JBossEntityBeanMetaData();
+ merged.merge(override, original);
+ cmpFields = merged.getCmpFields();
+ assertNotNull(cmpFields);
+
+ // not sure it's right
+ assertEquals(2, cmpFields.size());
+ }
+
+ public void testSecurityRoleRefs() throws Exception
+ {
+ JBossEntityBeanMetaData original = new JBossEntityBeanMetaData();
+ original.setEjbName("entity");
+
+ SecurityRoleRefsMetaData roleRefs = new SecurityRoleRefsMetaData();
+ SecurityRoleRefMetaData roleRef = new SecurityRoleRefMetaData();
+ roleRef.setRoleName("role1");
+ roleRef.setRoleLink(roleRef.getRoleName() + "Original");
+ roleRefs.add(roleRef);
+ roleRef = new SecurityRoleRefMetaData();
+ roleRef.setRoleName("role2");
+ roleRef.setRoleLink(roleRef.getRoleName() + "Original");
+ roleRefs.add(roleRef);
+ original.setSecurityRoleRefs(roleRefs);
+
+ JBossEntityBeanMetaData override = new JBossEntityBeanMetaData();
+ override.setEjbName("entity");
+
+ roleRefs = new SecurityRoleRefsMetaData();
+ roleRef = new SecurityRoleRefMetaData();
+ roleRef.setRoleName("role2");
+ roleRef.setRoleLink(roleRef.getRoleName() + "Override");
+ roleRefs.add(roleRef);
+ roleRef = new SecurityRoleRefMetaData();
+ roleRef.setRoleName("role3");
+ roleRef.setRoleLink(roleRef.getRoleName() + "Override");
+ roleRefs.add(roleRef);
+ override.setSecurityRoleRefs(roleRefs);
+
+ JBossEntityBeanMetaData merged = new JBossEntityBeanMetaData();
+ merged.merge(override, original);
+ roleRefs = merged.getSecurityRoleRefs();
+ assertNotNull(roleRefs);
+ assertEquals(3, roleRefs.size());
+ roleRef = roleRefs.get("role1");
+ assertNotNull(roleRef);
+ assertEquals(roleRef.getRoleName() + "Original", roleRef.getRoleLink());
+ roleRef = roleRefs.get("role2");
+ assertNotNull(roleRef);
+ assertEquals(roleRef.getRoleName() + "Override", roleRef.getRoleLink());
+ roleRef = roleRefs.get("role3");
+ assertNotNull(roleRef);
+ assertEquals(roleRef.getRoleName() + "Override", roleRef.getRoleLink());
+ }
+
+ public void testClusterConfig() throws Exception
+ {
+ JBossEntityBeanMetaData original = new JBossEntityBeanMetaData();
+ original.setEjbName("entity");
+
+ ClusterConfigMetaData clusterConfig = new ClusterConfigMetaData();
+ clusterConfig.setBeanLoadBalancePolicy("beanPolicyOriginal");
+ clusterConfig.setHomeLoadBalancePolicy("homePolicyOriginal");
+ //clusterConfig.setLoadBalancePolicy("policyOriginal");
+ clusterConfig.setPartitionName("partitionOriginal");
+ clusterConfig.setSessionStateManagerJndiName("stateManagerOriginal");
+ original.setClusterConfig(clusterConfig);
+
+ JBossEntityBeanMetaData override = new JBossEntityBeanMetaData();
+ override.setEjbName("entity");
+ clusterConfig = new ClusterConfigMetaData();
+ clusterConfig.setBeanLoadBalancePolicy("beanPolicyOverride");
+ clusterConfig.setHomeLoadBalancePolicy("homePolicyOverride");
+ //clusterConfig.setLoadBalancePolicy("policyOverride");
+ clusterConfig.setPartitionName("partitionOverride");
+ clusterConfig.setSessionStateManagerJndiName("stateManagerOverride");
+ override.setClusterConfig(clusterConfig);
+
+ JBossEntityBeanMetaData merged = new JBossEntityBeanMetaData();
+ merged.merge(override, original);
+ clusterConfig = merged.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertEquals("beanPolicyOverride", clusterConfig.getBeanLoadBalancePolicy());
+ assertEquals("homePolicyOverride", clusterConfig.getHomeLoadBalancePolicy());
+ assertEquals("beanPolicyOverride", clusterConfig.getLoadBalancePolicy());
+ assertEquals("partitionOverride", clusterConfig.getPartitionName());
+ assertEquals("stateManagerOverride", clusterConfig.getSessionStateManagerJndiName());
+ }
+
+ public void testCacheInvalidation() throws Exception
+ {
+ JBossEntityBeanMetaData original = new JBossEntityBeanMetaData();
+ original.setEjbName("entity");
+
+ CacheInvalidationConfigMetaData cacheInv = new CacheInvalidationConfigMetaData();
+ cacheInv.setInvalidationGroupName("originalGroup");
+ cacheInv.setInvalidationManagerName("originalManager");
+ original.setCacheInvalidationConfig(cacheInv);
+
+ JBossEntityBeanMetaData override = new JBossEntityBeanMetaData();
+ override.setEjbName("entity");
+
+ cacheInv = new CacheInvalidationConfigMetaData();
+ //cacheInv.setInvalidationGroupName("overrideGroup");
+ cacheInv.setInvalidationManagerName("overrideManager");
+ override.setCacheInvalidationConfig(cacheInv);
+
+ JBossEntityBeanMetaData merged = new JBossEntityBeanMetaData();
+ merged.merge(override, original);
+ cacheInv = merged.getCacheInvalidationConfig();
+ assertNotNull(cacheInv);
+ assertEquals("originalGroup", cacheInv.getInvalidationGroupName());
+ assertEquals("overrideManager", cacheInv.getInvalidationManagerName());
+ }
}
More information about the jboss-cvs-commits
mailing list