[jboss-cvs] JBossAS SVN: r67308 - in projects/metadata/trunk/src: main/resources/schema and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Nov 20 16:18:36 EST 2007
Author: bstansberry at jboss.com
Date: 2007-11-20 16:18:35 -0500 (Tue, 20 Nov 2007)
New Revision: 67308
Added:
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss50_testEjbthreeClusterConfig.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java
projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
Log:
[EJBTHREE-1110] Support configuring home-load-balancy-policy
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-20 21:16:56 UTC (rev 67307)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java 2007-11-20 21:18:35 UTC (rev 67308)
@@ -96,7 +96,8 @@
}
/**
- * Get the EJB 3.x bean LoadBalancePolicy.
+ * Get the EJB 3.x bean LoadBalancePolicy. This is an alias
+ * for {@link #getBeanLoadBalancePolicy()}.
*
* @return the loadBalancePolicy.
*/
@@ -106,7 +107,8 @@
}
/**
- * Set the EJB 3.x bean LoadBalancePolicy.
+ * Set the EJB 3.x bean LoadBalancePolicy. This is an alias
+ * for {@link #setBeanLoadBalancePolicy(String)}.
*
* @param loadBalancePolicy The loadBalancePolicy to set.
*/
Modified: projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd
===================================================================
--- projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd 2007-11-20 21:16:56 UTC (rev 67307)
+++ projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd 2007-11-20 21:18:35 UTC (rev 67308)
@@ -1627,7 +1627,11 @@
<xsd:sequence>
<xsd:element name="partition-name" type="jboss:partition-nameType" minOccurs="0"/>
- <xsd:element name="load-balance-policy" type="jboss:load-balance-policyType" minOccurs="0"/>
+ <xsd:element name="home-load-balance-policy" type="jboss:load-balance-policyType" minOccurs="0"/>
+ <xsd:choice>
+ <xsd:element name="bean-load-balance-policy" type="jboss:bean-load-balance-policyType" minOccurs="0"/>
+ <xsd:element name="load-balance-policy" type="jboss:load-balance-policyType" minOccurs="0"/>
+ </xsd:choice>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
</xsd:complexType>
@@ -1638,8 +1642,9 @@
<xsd:annotation>
<xsd:documentation> The partition-name element indicates the name of the HAPartition to be
used by the container to exchange clustering information. This is a name and *not* a JNDI
- name. Given name will be prefixed by "/HASessionState/" by the container to get the actual
- JNDI name of the HAPartition. If not, jboss will assume partition-name = "DefaultPartition".
+ name. Given name will be prefixed by "/HAPartition/" by the container to get the actual
+ JNDI name of the HAPartition. If not set, jboss will default to the value of system
+ property "jboss.partition.name", or "DefaultPartition" if that system property is not set.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
@@ -1649,11 +1654,52 @@
<!-- **************************************************** -->
+ <xsd:complexType name="home-load-balance-policyType">
+ <xsd:annotation>
+ <xsd:documentation> The home-load-balance-policy element indicates the
+ name of the java class to be used to load balance calls in an EJB's
+ home proxy. If not set, jboss will assume
+ home-load-balance-policy = "org.jboss.ha.client.loadbalance.RandomRobin".
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="bean-load-balance-policyType">
+ <xsd:annotation>
+ <xsd:documentation> The bean-load-balance-policy element indicates the
+ name of the java class to be used to load balance calls in the
+ bean proxy. If not set, for stateless beans jboss will assume
+ bean-load-balance-policy="org.jboss.ha.client.loadbalance.RandomRobin"
+ and for stateful beans it will assume
+ bean-load-balance-policy="org.jboss.ha.client.loadbalance.FirstAvailable".
+ The bean-load-balance-policy element and the load-balance-policy
+ element specify the same thing; configurations should choose one or
+ the other; which is chosen doesn't matter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
<xsd:complexType name="load-balance-policyType">
<xsd:annotation>
- <xsd:documentation> The home-load-balance-policy element indicates the java class name to be
- used to load balance calls in the home proxy. If not, jboss will assume
- home-load-balance-policy = "org.jboss.ha.framework.interfaces.RoundRobin".
+ <xsd:documentation> The load-balance-policy element indicates the
+ name of the java class to be used to load balance calls in the
+ bean proxy. If not set, for stateless beans jboss will assume
+ load-balance-policy="org.jboss.ha.client.loadbalance.RandomRobin"
+ and for stateful beans it will assume
+ load-balance-policy="org.jboss.ha.client.loadbalance.FirstAvailable".
+ The bean-load-balance-policy element and the load-balance-policy
+ element specify the same thing; configurations should choose one or
+ the other; which is chosen doesn't matter.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java 2007-11-20 21:16:56 UTC (rev 67307)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java 2007-11-20 21:18:35 UTC (rev 67308)
@@ -32,6 +32,7 @@
import org.jboss.metadata.ApplicationMetaData;
import org.jboss.metadata.BeanMetaData;
import org.jboss.metadata.ConfigurationMetaData;
+import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
import org.jboss.metadata.ejb.jboss.InvokerBindingsMetaData;
@@ -864,7 +865,54 @@
assertEquals("port.component.name", portComponent.getPortComponentName());
assertEquals("port/component/uri", portComponent.getPortComponentURI());
}
+
+ public void testEjbthreeClusterConfig() throws Exception
+ {
+ JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+ xbdelegate.setValidateSchema(true);
+ JBossMetaData jbossXmlMetaData = unmarshal();
+ JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
+ assertNotNull(enterpriseBeans);
+ assertEquals(4, enterpriseBeans.size());
+
+ JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) enterpriseBeans.get("SimpleBean");
+ assertNotNull(bean);
+ ClusterConfigMetaData clusterConfig = bean.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+ assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
+ assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
+ assertNull(clusterConfig.getHomeLoadBalancePolicy());
+
+ bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndBeanBean");
+ assertNotNull(bean);
+ clusterConfig = bean.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+ assertEquals("BeanLBP", clusterConfig.getLoadBalancePolicy());
+ assertEquals("BeanLBP", clusterConfig.getBeanLoadBalancePolicy());
+ assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+
+ bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndSimpleBean");
+ assertNotNull(bean);
+ clusterConfig = bean.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+ assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
+ assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
+ assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+
+ bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeOnlyBean");
+ assertNotNull(bean);
+ clusterConfig = bean.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertNull(clusterConfig.getPartitionName());
+ assertNull(clusterConfig.getLoadBalancePolicy());
+ assertNull(clusterConfig.getBeanLoadBalancePolicy());
+ assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+ }
+
private <T> Set<T> toSet(T ... obj)
{
Set<T> set = new HashSet<T>();
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss50_testEjbthreeClusterConfig.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss50_testEjbthreeClusterConfig.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss50_testEjbthreeClusterConfig.xml 2007-11-20 21:18:35 UTC (rev 67308)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss xmlns="http://www.jboss.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+ version="3.0">
+ <enterprise-beans>
+ <session>
+ <ejb-name>SimpleBean</ejb-name>
+ <cluster-config>
+ <partition-name>ClusterConfigPartition</partition-name>
+ <load-balance-policy>SimpleLBP</load-balance-policy>
+ </cluster-config>
+ </session>
+ <session>
+ <ejb-name>HomeAndBeanBean</ejb-name>
+ <cluster-config>
+ <partition-name>ClusterConfigPartition</partition-name>
+ <home-load-balance-policy>HomeLBP</home-load-balance-policy>
+ <bean-load-balance-policy>BeanLBP</bean-load-balance-policy>
+ </cluster-config>
+ </session>
+ <session>
+ <ejb-name>HomeAndSimpleBean</ejb-name>
+ <cluster-config>
+ <partition-name>ClusterConfigPartition</partition-name>
+ <home-load-balance-policy>HomeLBP</home-load-balance-policy>
+ <load-balance-policy>SimpleLBP</load-balance-policy>
+ </cluster-config>
+ </session>
+ <session>
+ <ejb-name>HomeOnlyBean</ejb-name>
+ <cluster-config>
+ <home-load-balance-policy>HomeLBP</home-load-balance-policy>
+ </cluster-config>
+ </session>
+ </enterprise-beans>
+</jboss>
More information about the jboss-cvs-commits
mailing list