[jboss-cvs] JBossAS SVN: r66847 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/jboss and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Nov 7 22:30:17 EST 2007
Author: bstansberry at jboss.com
Date: 2007-11-07 22:30:16 -0500 (Wed, 07 Nov 2007)
New Revision: 66847
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ClusterConfigMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
Log:
[JBAS-4947] Externalize ClusterConfigMetaData defaults
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ClusterConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ClusterConfigMetaData.java 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ClusterConfigMetaData.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -68,7 +68,7 @@
*/
public String getPartitionName()
{
- return getDelegate().determinePartitionName();
+ return getDelegate().getPartitionName();
}
/**
@@ -78,7 +78,7 @@
*/
public String getHomeLoadBalancePolicy()
{
- return getDelegate().determineHomeLoadBalancingPolicy();
+ return getDelegate().getHomeLoadBalancePolicy();
}
/**
@@ -88,7 +88,7 @@
*/
public String getBeanLoadBalancePolicy()
{
- return getDelegate().determineBeanLoadBalancingPolicy();
+ return getDelegate().getBeanLoadBalancePolicy();
}
/**
@@ -98,6 +98,6 @@
*/
public String getHaSessionStateName()
{
- return getDelegate().determineSessionStateManagerJndiName();
+ return getDelegate().getSessionStateManagerJndiName();
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -37,18 +37,6 @@
/** The serialVersionUID */
private static final long serialVersionUID = -614188513386783204L;
- /** The jndi prefix for the sesssion state */
- public final static String JNDI_PREFIX_FOR_SESSION_STATE = "/HASessionState/";
-
- /** The default session state name */
- public final static String DEFAULT_SESSION_STATE_NAME = JNDI_PREFIX_FOR_SESSION_STATE + "Default";
-
- /** The first available load balancing policy */
- public static final String FIRST_AVAILABLE = "org.jboss.ha.framework.interfaces.FirstAvailable";
-
- /** The round robin load balancing policy */
- public static final String ROUND_ROBIN = "org.jboss.ha.framework.interfaces.RoundRobin";
-
/** The partition name */
private String partitionName;
@@ -61,23 +49,7 @@
/** The state manager jndi */
private String sessionStateManagerJndiName;
- /** The enterprise bean */
- private JBossEnterpriseBeanMetaData enterpriseBeanMetaData;
-
/**
- * Set the enterpriseBeanMetaData.
- *
- * @param enterpriseBeanMetaData the enterpriseBeanMetaData.
- * @throws IllegalArgumentException for a null enterpriseBeanMetaData
- */
- void setEnterpriseBeanMetaData(JBossEnterpriseBeanMetaData enterpriseBeanMetaData)
- {
- if (enterpriseBeanMetaData == null)
- throw new IllegalArgumentException("Null enterpriseBeanMetaData");
- this.enterpriseBeanMetaData = enterpriseBeanMetaData;
- }
-
- /**
* Get the beanLoadBalancingPolicy.
*
* @return the beanLoadBalancingPolicy.
@@ -88,26 +60,6 @@
}
/**
- * Determine the beanLoadBalancingPolicy.
- *
- * @return the beanLoadBalancingPolicy.
- */
- public String determineBeanLoadBalancingPolicy()
- {
- if (beanLoadBalancePolicy == null && enterpriseBeanMetaData != null)
- {
- if (enterpriseBeanMetaData.isSession())
- {
- JBossSessionBeanMetaData session = (JBossSessionBeanMetaData) enterpriseBeanMetaData;
- if (session.isStateless())
- return ROUND_ROBIN;
- }
- return FIRST_AVAILABLE;
- }
- return beanLoadBalancePolicy;
- }
-
- /**
* Set the beanLoadBalancingPolicy.
*
* @param beanLoadBalancePolicy the beanLoadBalancingPolicy.
@@ -131,20 +83,6 @@
}
/**
- * Determine the homeLoadBalancingPolicy.
- *
- * @return the homeLoadBalancingPolicy.
- */
- public String determineHomeLoadBalancingPolicy()
- {
- if (homeLoadBalancePolicy == null && enterpriseBeanMetaData != null)
- {
- return ROUND_ROBIN;
- }
- return homeLoadBalancePolicy;
- }
-
- /**
* Set the homeLoadBalancingPolicy.
*
* @param homeLoadBalancePolicy the homeLoadBalancingPolicy.
@@ -168,16 +106,6 @@
}
/**
- * Determine the partitionName.
- *
- * @return the partitionName.
- */
- public String determinePartitionName()
- {
- return partitionName;
- }
-
- /**
* Set the partitionName.
*
* @param partitionName the partitionName.
@@ -201,18 +129,6 @@
}
/**
- * Determine the sessionStateManagerJndiName.
- *
- * @return the sessionStateManagerJndiName.
- */
- public String determineSessionStateManagerJndiName()
- {
- if (sessionStateManagerJndiName == null)
- return DEFAULT_SESSION_STATE_NAME;
- return sessionStateManagerJndiName;
- }
-
- /**
* Set the sessionStateManagerJndiName.
*
* @param sessionStateManagerJndiName the sessionStateManagerJndiName.
@@ -224,4 +140,29 @@
throw new IllegalArgumentException("Null sessionStateManagerJndiName");
this.sessionStateManagerJndiName = sessionStateManagerJndiName;
}
+
+ public void merge(ClusterConfigMetaData override, ClusterConfigMetaData original)
+ {
+ super.merge(override, original);
+
+ if (override != null)
+ {
+ partitionName = override.getPartitionName();
+ beanLoadBalancePolicy = override.getBeanLoadBalancePolicy();
+ homeLoadBalancePolicy = override.getHomeLoadBalancePolicy();
+ sessionStateManagerJndiName = override.getSessionStateManagerJndiName();
+ }
+
+ if (original != null)
+ {
+ if (partitionName == null)
+ partitionName = original.getPartitionName();
+ if (beanLoadBalancePolicy == null)
+ beanLoadBalancePolicy = original.getBeanLoadBalancePolicy();
+ if (homeLoadBalancePolicy == null)
+ homeLoadBalancePolicy = original.getHomeLoadBalancePolicy();
+ if (sessionStateManagerJndiName == null)
+ sessionStateManagerJndiName = original.getSessionStateManagerJndiName();
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -73,7 +73,14 @@
{
ClusterConfigMetaData md = primary.getClusterConfig();
if (md == null && defaults != null)
+ {
md = defaults.getClusterConfig();
+ }
+ else if (defaults != null)
+ {
+ md = new ClusterConfigMetaData();
+ md.merge(primary.getClusterConfig(), defaults.getClusterConfig());
+ }
return md;
}
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 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -656,17 +656,15 @@
*/
public ClusterConfigMetaData determineClusterConfig()
{
- if (determinedClusterConfig != null)
- return determinedClusterConfig;
- determinedClusterConfig = clusterConfig;
if (determinedClusterConfig == null)
- {
+ {
+ ClusterConfigMetaData containerDefaults = null;
ContainerConfigurationMetaData container = determineContainerConfiguration();
if (container != null)
- determinedClusterConfig = container.getClusterConfig();
- }
- if (determinedClusterConfig == null)
+ containerDefaults = container.getClusterConfig();
determinedClusterConfig = new ClusterConfigMetaData();
+ determinedClusterConfig.merge(clusterConfig, containerDefaults);
+ }
return determinedClusterConfig;
}
@@ -680,7 +678,6 @@
{
if (clusterConfig == null)
throw new IllegalArgumentException("Null clusterConfig");
- clusterConfig.setEnterpriseBeanMetaData(this);
this.clusterConfig = clusterConfig;
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -21,7 +21,6 @@
*/
package org.jboss.metadata.ejb.jboss;
-import java.util.ArrayList;
import java.util.List;
import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
@@ -753,24 +752,14 @@
*/
public ClusterConfigMetaData determineClusterConfig()
{
- if (determinedClusterConfig != null)
- return determinedClusterConfig;
- determinedClusterConfig = clusterConfig;
if (determinedClusterConfig == null)
- {
+ {
+ ClusterConfigMetaData containerDefaults = null;
ContainerConfigurationMetaData container = determineContainerConfiguration();
if (container != null)
- {
- determinedClusterConfig = container.getClusterConfig();
- // Here we don't assign ourself as the EnterpriseBeanMetaData,
- // as the ContainerConfigurationMetaData.clusterConfig is
- // a shared object across containers.
- }
- }
- if (determinedClusterConfig == null)
- {
+ containerDefaults = container.getClusterConfig();
determinedClusterConfig = new ClusterConfigMetaData();
- determinedClusterConfig.setEnterpriseBeanMetaData(this);
+ determinedClusterConfig.merge(clusterConfig, containerDefaults);
}
return determinedClusterConfig;
}
@@ -785,7 +774,6 @@
{
if (clusterConfig == null)
throw new IllegalArgumentException("Null clusterConfig");
- clusterConfig.setEnterpriseBeanMetaData(this);
this.clusterConfig = clusterConfig;
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java 2007-11-08 02:25:27 UTC (rev 66846)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java 2007-11-08 03:30:16 UTC (rev 66847)
@@ -227,6 +227,51 @@
expectedInvokerNames.add("containerConfiguration1InvokerProxyBindingName2-override");
assertEquals(expectedInvokerNames, invokerNames);
}
+
+ public void testClusterConfigOverride() throws Exception
+ {
+ JBoss50MetaData overrideData = unmarshal();
+ JBoss50MetaData baseData = unmarshal("JBoss5xEverything_testClusterConfigBase.xml", JBoss50MetaData.class, null);
+ // Override JBoss5xEverything_testBaseData.xml with JBoss5xEverything_testOverride.xml
+ JBossMetaDataWrapper jbossMetaData = new JBossMetaDataWrapper(overrideData, baseData);
+
+ JBossEnterpriseBeansMetaData enterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
+ assertNotNull(enterpriseBeansMetaData);
+ assertEquals(4, enterpriseBeansMetaData.size());
+
+ String beanId = "bean1";
+ JBossSessionBeanMetaData session = assertJBossSessionBean(beanId, jbossMetaData);
+ ClusterConfigMetaData config = session.determineClusterConfig();
+
+ assertPartitionName(config, "bean");
+ assertHomeLoadBalancePolicy(config, "container");
+ assertBeanLoadBalancePolicy(config, "standard");
+ assertSessionStateManagerJndiName(config, null);
+
+ beanId = "bean2";
+ session = assertJBossSessionBean(beanId, jbossMetaData);
+ config = session.determineClusterConfig();
+ assertPartitionName(config, "container");
+ assertHomeLoadBalancePolicy(config, "standard");
+ assertBeanLoadBalancePolicy(config, null);
+ assertSessionStateManagerJndiName(config, "bean");
+
+ beanId = "bean3";
+ session = assertJBossSessionBean(beanId, jbossMetaData);
+ config = session.determineClusterConfig();
+ assertPartitionName(config, "standard");
+ assertHomeLoadBalancePolicy(config, null);
+ assertBeanLoadBalancePolicy(config, "bean");
+ assertSessionStateManagerJndiName(config, "container");
+
+ beanId = "bean4";
+ session = assertJBossSessionBean(beanId, jbossMetaData);
+ config = session.determineClusterConfig();
+ assertPartitionName(config, null);
+ assertHomeLoadBalancePolicy(config, "bean");
+ assertBeanLoadBalancePolicy(config, "container");
+ assertSessionStateManagerJndiName(config, "standard");
+ }
public void assertCacheConfig(String prefix, int num, CacheConfigMetaData cacheConfig)
{
@@ -1174,6 +1219,38 @@
assertEquals(11, (int) poolConfig.getTimeout());
}
+ private void assertPartitionName(ClusterConfigMetaData config, String expectedSource)
+ {
+ String value= config.getPartitionName();
+ assertExpectedSource(value, expectedSource, "PartitionName");
+ }
+
+ private void assertHomeLoadBalancePolicy(ClusterConfigMetaData config, String expectedSource)
+ {
+ String value = config.getHomeLoadBalancePolicy();
+ assertExpectedSource(value, expectedSource, "HomeLoadBalancePolicy");
+ }
+
+ private void assertBeanLoadBalancePolicy(ClusterConfigMetaData config, String expectedSource)
+ {
+ String value = config.getBeanLoadBalancePolicy();
+ assertExpectedSource(value, expectedSource, "BeanLoadBalancePolicy");
+ }
+
+ private void assertSessionStateManagerJndiName(ClusterConfigMetaData config, String expectedSource)
+ {
+ String value = config.getSessionStateManagerJndiName();
+ assertExpectedSource(value, expectedSource, "SessionStateManagerJndiName");
+ }
+
+ private void assertExpectedSource(String value, String expectedPrefix, String suffix)
+ {
+ if (expectedPrefix == null)
+ assertNull(value);
+ else
+ assertEquals(expectedPrefix + "Configuration" + suffix, value);
+ }
+
@Override
protected void assertResourceGroup(String prefix, ResourceInjectionMetaData resourceInjectionMetaData, boolean full, boolean first, Mode mode)
{
More information about the jboss-cvs-commits
mailing list