[jboss-svn-commits] JBL Code SVN: r8383 - in labs/jbossesb/trunk/product: core/listeners/src/org/jboss/soa/esb/listeners/config core/listeners/src/org/jboss/soa/esb/listeners/config/mappers core/listeners/tests/src/org/jboss/soa/esb/listeners/config etc/schemas/xml

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 18 10:03:15 EST 2006


Author: tfennelly
Date: 2006-12-18 10:03:08 -0500 (Mon, 18 Dec 2006)
New Revision: 8383

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml
   labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd
Log:
Updated config code to reflect xsd changes (introduction of the providers and provider nodes).

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java	2006-12-18 13:22:37 UTC (rev 8382)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java	2006-12-18 15:03:08 UTC (rev 8383)
@@ -30,11 +30,9 @@
 import org.apache.xmlbeans.XmlException;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.JbossesbDocument;
-//import org.jboss.soa.esb.listeners.config.BusDocument.Bus;
 import org.jboss.soa.esb.listeners.config.JbossesbDocument.Jbossesb;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
-//import org.jboss.soa.esb.listeners.config.ListenerDocument.Listener;
-//import org.jboss.soa.esb.listeners.config.ServerDocument.Server;
+import org.jboss.soa.esb.listeners.config.Provider;
 import org.w3c.dom.Document;
 
 /**
@@ -192,16 +190,41 @@
 		 * @throws ConfigurationException Unknown busid reference value.
 		 */
 		public Bus getBus(String busid) throws ConfigurationException {
-			Bus[] buses = jbossesb.getBuses().getBusArray();
+			Provider[] providers = jbossesb.getProviders().getProviderArray();
 			
-			for(Bus bus : buses) {
-				if(bus.getBusid().equals(busid)) {
-					return bus;
+			for(Provider provider : providers) {
+				Bus[] buses = provider.getBusArray();
+				
+				for(Bus bus : buses) {
+					if(bus.getBusid().equals(busid)) {
+						return bus;
+					}
 				}
 			}
 			
 			throw new ConfigurationException("Invalid ESB Configuration: No <bus> configuration matching busid reference value [" + busid + "].");
 		}
+
+		/**
+		 * Get the &lt;provider&gt; configuration containing the supplied Bus configuration instance.
+		 * @param bus The Bus config instance whose Provider is being sought.
+		 * @return The Provider configuration instance.
+		 */
+		public Provider getProvider(Bus bus) {
+			Provider[] providers = jbossesb.getProviders().getProviderArray();
+			
+			for(Provider provider : providers) {
+				Bus[] buses = provider.getBusArray();
+				
+				for(Bus installedBus : buses) {
+					if(installedBus == bus) {
+						return provider;
+					}
+				}
+			}
+			
+			throw new IllegalStateException("No Provider instance found for the supplied Bus config instance.  This should not be possible if the Bus instance was provided by this configuration.  Where has this Bus instance come from?");
+		}
 		
 		/**
 		 * Get the list of ESB Listeners based on their Gateway flag.

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java	2006-12-18 13:22:37 UTC (rev 8382)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java	2006-12-18 15:03:08 UTC (rev 8383)
@@ -28,7 +28,8 @@
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.JmsBusDocument.JmsBus;
 import org.jboss.soa.esb.listeners.config.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.JmsMessageDocument.JmsMessage;
+import org.jboss.soa.esb.listeners.config.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.JmsProviderDocument.JmsProvider;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
 import org.jboss.soa.esb.listeners.gateway.JmsGatewayListener;
 import org.jboss.soa.esb.listeners.message.JmsQueueListener;
@@ -54,12 +55,18 @@
 		Element listenerNode = YADOMUtil.addElement(root, "listener-config");
 		Service service = model.getService(listener);
 		JmsBus bus;
+		JmsProvider provider;
 		
 		try {
 			bus = (JmsBus) model.getBus(listener.getBusidref());
-		}catch (ClassCastException e) {
+		} catch (ClassCastException e) {
 			throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "].  A <jms-listener> must reference a <jms-bus>.");
 		}
+		try {
+			provider = (JmsProvider) model.getProvider(bus);
+		} catch (ClassCastException e) {
+			throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "].  Should be contained within a <jms-provider> instance.  Unexpected exception - this should have caused a validation error!");
+		}
 		
 		if(listener.getIsGateway()) {
 			listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());			
@@ -73,20 +80,20 @@
 			listenerNode.setAttribute(ListenerTagNames.EPR_DESCRIPTION_TAG, listener.getName());			
 		}
 
-		JmsMessage destination = listener.getJmsMessage();
-		if(destination == null) {
-			destination = bus.getJmsMessage();
-			if(destination == null) {
+		JmsMessageFilter messageFilter = listener.getJmsMessageFilter();
+		if(messageFilter == null) {
+			messageFilter = bus.getJmsMessageFilter();
+			if(messageFilter == null) {
 				throw new ConfigurationException("No <jms-detination> defined on either <jms-listener> [" + listener.getName() + "] or <jms-bus> [" + bus.getBusid() + "].");
 			}
 		}
 		
-		listenerNode.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, destination.getDestType().toString().toLowerCase());
-		listenerNode.setAttribute(JMSEpr.DESTINATION_NAME_TAG, destination.getDestName());
-		listenerNode.setAttribute(JMSEpr.CONNECTION_FACTORY_TAG, bus.getConnectionFactory());
-		listenerNode.setAttribute(JMSEpr.JNDI_CONTEXT_FACTORY, bus.getJndiContextFactory());
-		listenerNode.setAttribute(JMSEpr.JNDI_PKG_PREFIX_TAG, bus.getJndiPkgPrefix());
-		listenerNode.setAttribute(JMSEpr.JNDI_URL_TAG, bus.getJndiURL());
+		listenerNode.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, messageFilter.getDestType().toString().toLowerCase());
+		listenerNode.setAttribute(JMSEpr.DESTINATION_NAME_TAG, messageFilter.getDestName());
+		listenerNode.setAttribute(JMSEpr.CONNECTION_FACTORY_TAG, provider.getConnectionFactory());
+		listenerNode.setAttribute(JMSEpr.JNDI_CONTEXT_FACTORY, provider.getJndiContextFactory());
+		listenerNode.setAttribute(JMSEpr.JNDI_PKG_PREFIX_TAG, provider.getJndiPkgPrefix());
+		listenerNode.setAttribute(JMSEpr.JNDI_URL_TAG, provider.getJndiURL());
 		
 		// Remove any empty attributes set on the listener config...
 		YADOMUtil.removeEmptyAttributes(listenerNode);

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-18 13:22:37 UTC (rev 8382)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-18 15:03:08 UTC (rev 8383)
@@ -31,7 +31,8 @@
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.JmsBusDocument.JmsBus;
 import org.jboss.soa.esb.listeners.config.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.JmsMessageDocument.JmsMessage;
+import org.jboss.soa.esb.listeners.config.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.JmsProviderDocument.JmsProvider;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
 import org.jboss.soa.esb.testutils.FileUtil;
 
@@ -78,14 +79,15 @@
 		XMLBeansModel model = generator.getModel();
 
 		JmsBus bus = (JmsBus)model.getBus("server1-jms");
+		JmsProvider provider = (JmsProvider) model.getProvider(bus);
 		assertEquals("server1-jms", bus.getBusid());
-		assertEquals("com.xyz.provider.XYZConnectionFactory", bus.getConnectionFactory());
-		assertEquals("com.xyz.provider.NamingContextFactory", bus.getJndiContextFactory());
-		assertEquals("xyz://server1:9876", bus.getJndiURL());
-		assertEquals("com.xyz", bus.getJndiPkgPrefix());
-		JmsMessage busDestination = bus.getJmsMessage();
+		assertEquals("com.xyz.provider.XYZConnectionFactory", provider.getConnectionFactory());
+		assertEquals("com.xyz.provider.NamingContextFactory", provider.getJndiContextFactory());
+		assertEquals("xyz://server1:9876", provider.getJndiURL());
+		assertEquals("com.xyz", provider.getJndiPkgPrefix());
+		JmsMessageFilter busDestination = bus.getJmsMessageFilter();
 		assertEquals("queue/A", busDestination.getDestName());
-		assertEquals(JmsMessage.DestType.QUEUE, busDestination.getDestType());
+		assertEquals(JmsMessageFilter.DestType.QUEUE, busDestination.getDestType());
 		assertEquals("service='Reconciliation'", busDestination.getSelector());
 
 		List<Listener> gateways = model.getGatewayListeners();
@@ -103,9 +105,9 @@
 		assertEquals("local-jms", awareListener.getBusidref());
 		assertTrue(!awareListener.getIsGateway());
 		assertEquals(2, awareListener.getMaxThreads());
-		JmsMessage listenerDestination = awareListener.getJmsMessage();
+		JmsMessageFilter listenerDestination = awareListener.getJmsMessageFilter();
 		assertEquals("queue/B", listenerDestination.getDestName());
-		assertEquals(JmsMessage.DestType.TOPIC, listenerDestination.getDestType());
+		assertEquals(JmsMessageFilter.DestType.TOPIC, listenerDestination.getDestType());
 		assertEquals("service='Reconciliation'", listenerDestination.getSelector());
 		
 		Service gatewayService = model.getService(gatewayListener);

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml	2006-12-18 13:22:37 UTC (rev 8382)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml	2006-12-18 15:03:08 UTC (rev 8383)
@@ -1,18 +1,20 @@
 <?xml version = "1.0" encoding = "UTF-8"?>
 <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd">
 
-	<buses>
-		<jms-bus busid="local-jms" 
-					connection-factory="ConnectionFactory" 
-					jndi-URL="jnp://localhost:1099" />
-		<jms-bus busid="server1-jms" 
-					connection-factory="com.xyz.provider.XYZConnectionFactory" 
+	<providers>
+		<jms-provider connection-factory="ConnectionFactory" jndi-URL="jnp://localhost:1099">
+			<jms-bus busid="local-jms" />
+		</jms-provider>
+		
+		<jms-provider connection-factory="com.xyz.provider.XYZConnectionFactory" 
 					jndi-context-factory="com.xyz.provider.NamingContextFactory"
 					jndi-URL="xyz://server1:9876" 
 					jndi-pkg-prefix="com.xyz">
-			<jms-message dest-type="QUEUE" dest-name="queue/A" selector="service='Reconciliation'" />
-		</jms-bus>
-	</buses>
+			<jms-bus busid="server1-jms">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/A" selector="service='Reconciliation'" />
+			</jms-bus>
+		</jms-provider>
+	</providers>
 	<services>    
 		<service category="Bank" name="Reconciliation" description="Bank Reconciliation Service">
 		
@@ -25,7 +27,7 @@
 							is-gateway="false"
 							busidref="local-jms"
 							maxThreads="2">
-					<jms-message dest-type="TOPIC" dest-name="queue/B" selector="service='Reconciliation'" />
+					<jms-message-filter dest-type="TOPIC" dest-name="queue/B" selector="service='Reconciliation'" />
 				</jms-listener>
 			</listeners>    	
 			  

Modified: labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd
===================================================================
--- labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd	2006-12-18 13:22:37 UTC (rev 8382)
+++ labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd	2006-12-18 15:03:08 UTC (rev 8383)
@@ -6,63 +6,46 @@
 	 targetNamespace="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd"
 	 elementFormDefault="qualified">
 	
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+			Document root.
+		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
 	
 	<xsd:element name="jbossesb" >
 		<xsd:complexType>
 			<xsd:sequence>
-			    <xsd:element ref="jesb:buses" minOccurs="1" maxOccurs="1"/>
+			    <xsd:element ref="jesb:providers" minOccurs="1" maxOccurs="1"/>
 				<xsd:element ref="jesb:services" minOccurs="1" maxOccurs="1"/>
 			</xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>
+	
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+			Provider and Bus base types.
+		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="providers">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="jesb:provider" maxOccurs="unbounded" minOccurs="1"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:complexType name="provider">
+		<xsd:sequence>
+			<xsd:element ref="jesb:bus" maxOccurs="unbounded" minOccurs="1"/>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="provider" type="jesb:provider" abstract="true"/>
 	
-	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
-			Bus types.
-		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
-
-	<xsd:element name="buses">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref="jesb:bus" maxOccurs="unbounded" minOccurs="1"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
 	<xsd:complexType name="bus">
 		<xsd:attribute name="busid" use="required" type="xsd:string" />
 	</xsd:complexType>
 	<xsd:element name="bus" type="jesb:bus" abstract="true"/>
+	
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+			Service and Action types.
+		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
 	
-	<xsd:element name="jms-message">
-		<xsd:complexType>
-			<xsd:attribute name="dest-name" use="required" type="xsd:string" />
-			<xsd:attribute name="dest-type" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base = "xsd:NMTOKEN">
-						<xsd:enumeration value = "QUEUE"/>
-						<xsd:enumeration value = "TOPIC"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="selector" type="xsd:string" />
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="jms-bus" substitutionGroup="jesb:bus">
-		<xsd:complexType>
-			<xsd:complexContent>
-				<xsd:extension base="jesb:bus">
-					<xsd:sequence>
-						<xsd:element ref="jesb:jms-message" maxOccurs="1" minOccurs="0"/>
-					</xsd:sequence>
-					<xsd:attribute name="connection-factory" use="required" type="xsd:string" />
-					<xsd:attribute name="jndi-context-factory" type="xsd:string" />
-					<xsd:attribute name="jndi-pkg-prefix" type="xsd:string" />
-					<xsd:attribute name="jndi-URL" use="required" type="xsd:anyURI" />
-				</xsd:extension>
-			</xsd:complexContent>
-		</xsd:complexType>
-	</xsd:element>
-	
-	
 	<xsd:element name="services">
 		<xsd:complexType>
 			<xsd:sequence>
@@ -107,7 +90,7 @@
 	</xsd:element>
 
 	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
-			Listener types.
+			Listener base types.
 		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
 
 	<xsd:element name="listeners">
@@ -123,12 +106,53 @@
 	</xsd:complexType>
 	<xsd:element name="listener" type="jesb:listener" abstract="true"/>
 
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+			JMS Type Implementations.
+		 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="jms-message-filter">
+		<xsd:complexType>
+			<xsd:attribute name="dest-name" use="required" type="xsd:string" />
+			<xsd:attribute name="dest-type" use="required">
+				<xsd:simpleType>
+					<xsd:restriction base = "xsd:NMTOKEN">
+						<xsd:enumeration value = "QUEUE"/>
+						<xsd:enumeration value = "TOPIC"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="selector" type="xsd:string" />
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jms-bus" substitutionGroup="jesb:bus">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element ref="jesb:jms-message-filter" maxOccurs="1" minOccurs="0"/>
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jms-provider" substitutionGroup="jesb:provider">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:provider">
+					<xsd:attribute name="connection-factory" use="required" type="xsd:string" />
+					<xsd:attribute name="jndi-context-factory" type="xsd:string" />
+					<xsd:attribute name="jndi-pkg-prefix" type="xsd:string" />
+					<xsd:attribute name="jndi-URL" use="required" type="xsd:anyURI" />
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
 	<xsd:element name="jms-listener" substitutionGroup="jesb:listener">
 		<xsd:complexType>
 			<xsd:complexContent>
 				<xsd:extension base="jesb:listener">
 					<xsd:sequence>
-						<xsd:element ref="jesb:jms-message" maxOccurs="1" minOccurs="0"/>
+						<xsd:element ref="jesb:jms-message-filter" maxOccurs="1" minOccurs="0"/>
 					</xsd:sequence>
 					<xsd:attribute name="busidref" use="required" type="xsd:string" />
 					<xsd:attribute name="maxThreads" use="required" type="xsd:int" />




More information about the jboss-svn-commits mailing list