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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 19 10:54:23 EST 2006


Author: tfennelly
Date: 2006-12-19 10:54:17 -0500 (Tue, 19 Dec 2006)
New Revision: 8408

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/MapperUtil.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.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_esbaware.xml
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml
Log:
Updates to reflect the new MessageAwareListner arch + EPR configurations.

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-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java	2006-12-19 15:54:17 UTC (rev 8408)
@@ -30,7 +30,6 @@
 import org.jboss.soa.esb.listeners.config.JmsListenerDocument.JmsListener;
 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;
 import org.w3c.dom.Element;
@@ -67,17 +66,6 @@
 			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!");
 		}
 		
-		// Map the standard listener attributes - common across all listener types...
-		MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
-		// Map the <property> elements targeted at the listener.
-		MapperUtil.mapProperties(listener, listenerNode, model);
-		
-		if(listener.getIsGateway()) {
-			listenerNode.setAttribute("gatewayClass", JmsGatewayListener.class.getName());			
-		} else {
-			listenerNode.setAttribute("listenerClass", JmsQueueListener.class.getName());			
-		}
-
 		JmsMessageFilter messageFilter = listener.getJmsMessageFilter();
 		if(messageFilter == null) {
 			messageFilter = bus.getJmsMessageFilter();
@@ -86,16 +74,43 @@
 			}
 		}
 		
-		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());
+		// Map the standard listener attributes - common across all listener types...
+		MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+		// Map the <property> elements targeted at the listener - from the listener itself.
+		MapperUtil.mapProperties(listener.getPropertyArray(), listenerNode);
+		// Map maxThreads - appears to be a JMS only attrib...
+		listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, Integer.toString(listener.getMaxThreads()));			
 		
+		if(listener.getIsGateway()) {
+			listenerNode.setAttribute("gatewayClass", JmsGatewayListener.class.getName());
+			// Map EPR related attributes onto the listener - from the bus and provider and listener.
+			// Note: This will change - the Gateways will also support the EPR element...
+			mapJmsEprProperties(listenerNode, provider, messageFilter);
+			MapperUtil.mapEPRProperties(listener, listenerNode, model);
+		} else {
+			Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+			// Map EPR related attributes onto the EPR - from the bus and provider and listener...
+			mapJmsEprProperties(eprNode, provider, messageFilter);
+			eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, JMSEpr.JMS_PROTOCOL);
+			MapperUtil.mapEPRProperties(listener, eprNode, model);
+			// Remove any empty attributes set on the EPR config...
+			YADOMUtil.removeEmptyAttributes(eprNode);
+		}
+		
 		// Remove any empty attributes set on the listener config...
 		YADOMUtil.removeEmptyAttributes(listenerNode);
 		
 		return listenerNode;
 	}
+
+	private static void mapJmsEprProperties(Element toElement, JmsProvider provider, JmsMessageFilter messageFilter) {
+		toElement.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, messageFilter.getDestType().toString().toLowerCase());
+		toElement.setAttribute(JMSEpr.DESTINATION_NAME_TAG, messageFilter.getDestName());
+		toElement.setAttribute(JMSEpr.MESSAGE_SELECTOR_TAG, messageFilter.getSelector());
+		toElement.setAttribute(JMSEpr.CONNECTION_FACTORY_TAG, provider.getConnectionFactory());
+		toElement.setAttribute(JMSEpr.JNDI_CONTEXT_FACTORY, provider.getJndiContextFactory());
+		toElement.setAttribute(JMSEpr.JNDI_PKG_PREFIX_TAG, provider.getJndiPkgPrefix());
+		toElement.setAttribute(JMSEpr.JNDI_URL_TAG, provider.getJndiURL());
+	}
 }

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java	2006-12-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java	2006-12-19 15:54:17 UTC (rev 8408)
@@ -33,6 +33,8 @@
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.PropertyDocument.Property;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.message.JmsQueueListener;
+import org.jboss.soa.esb.listeners.message.MessageAwareListener;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.Attributes;
@@ -60,10 +62,10 @@
 			target.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());			
 			target.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service.getName());			
 		} else {
+			target.setAttribute("listenerClass", MessageAwareListener.class.getName());			
 			target.setAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, service.getCategory());			
 			target.setAttribute(ListenerTagNames.SERVICE_NAME_TAG, service.getName());			
 			target.setAttribute(ListenerTagNames.SERVICE_DESCRIPTION_TAG, service.getDescription());			
-			target.setAttribute(ListenerTagNames.EPR_DESCRIPTION_TAG, listener.getName());			
 		}
 	}
 	
@@ -76,7 +78,7 @@
 	 * @param model The model.
 	 * @throws ConfigurationException Bad bis configuration. 
 	 */
-	protected static void mapProperties(Listener listener, Element target, XMLBeansModel model) throws ConfigurationException {
+	protected static void mapEPRProperties(Listener listener, Element target, XMLBeansModel model) throws ConfigurationException {
 		Bus bus = model.getBus(listener.getBusidref());
 		Provider provider = model.getProvider(bus);
 		
@@ -84,8 +86,11 @@
 		mapProperties(provider.getPropertyArray(), target);
 		// Map the properties from the bus config...
 		mapProperties(bus.getPropertyArray(), target);
-		// Map the properties from the listener config...
-		mapProperties(listener.getPropertyArray(), target);		
+
+		if(!listener.getIsGateway()) {
+			// And the EPR description.
+			target.setAttribute(ListenerTagNames.EPR_DESCRIPTION_TAG, listener.getName());
+		}
 	}
 	
 	/**
@@ -93,7 +98,7 @@
 	 * @param target The target DOM element.
 	 * @param properties The properties to be mapped.
 	 */
-	private static void mapProperties(Property[] properties, Element target) {
+	protected static void mapProperties(Property[] properties, Element target) {
 		// Map the property elements to actions attributes...
 		for(Property property : properties) {
 			target.setAttribute(property.getName(), property.getValue());

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java	2006-12-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java	2006-12-19 15:54:17 UTC (rev 8408)
@@ -22,6 +22,7 @@
 package org.jboss.soa.esb.listeners.config.mappers;
 
 import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.Listener;
 import org.jboss.soa.esb.listeners.config.YADOMUtil;
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
@@ -54,8 +55,17 @@
 		
 		// Map the standard listener attributes - common across all listener types...
 		MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
-		// Map the <property> elements targeted at the listener.
-		MapperUtil.mapProperties(listener, listenerNode, model);
+		// Map the <property> elements targeted at the listener - from the listener itself.
+		MapperUtil.mapProperties(listener.getPropertyArray(), listenerNode);
+
+		if(listener.getIsGateway()) {
+			MapperUtil.mapEPRProperties(listener, listenerNode, model);
+		} else {
+			Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+			MapperUtil.mapEPRProperties(listener, eprNode, model);
+			// Remove any empty attributes set on the EPR config...
+			YADOMUtil.removeEmptyAttributes(eprNode);
+		}
 		
 		// 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-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-19 15:54:17 UTC (rev 8408)
@@ -69,12 +69,16 @@
 		gatewayConfig = new File(outdir, Generator.ESB_CONFIG_GATEWAY_XML_FILE);
 		assertTrue(gatewayConfig.exists());
 		String expectedGatewayConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_gateways.xml")));
-		assertEquals(expectedGatewayConfig, FileUtil.readTextFile(gatewayConfig));
+		String actualGatewayConfig = FileUtil.readTextFile(gatewayConfig);
+		System.out.println("[" + actualGatewayConfig + "]");
+		assertEquals(expectedGatewayConfig, actualGatewayConfig);
 		
 		awareConfig = new File(outdir, Generator.ESB_CONFIG_XML_FILE);
 		assertTrue(awareConfig.exists());
 		String expectedESBAwareConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_esbaware.xml")));
-		assertEquals(expectedESBAwareConfig, FileUtil.readTextFile(awareConfig));
+		String actualESBAwareConfig = FileUtil.readTextFile(awareConfig);
+		System.out.println("[" + actualESBAwareConfig + "]");
+		assertEquals(expectedESBAwareConfig, actualESBAwareConfig);
 	}
 	
 	public void test_model() throws ConfigurationException, IOException {

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml	2006-12-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml	2006-12-19 15:54:17 UTC (rev 8408)
@@ -4,7 +4,8 @@
 	This file was auto-generated.
 -->
 <jbossesb-listeners>
-<jms-listener-config connection-factory="ConnectionFactory" destination-name="queue/B" destination-type="topic" epr-description="Bank-Listener" jndi-URL="jnp://localhost:1099" listenerClass="org.jboss.soa.esb.listeners.message.JmsQueueListener" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<jms-listener-config listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" maxThreads="2" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<EPR connection-factory="ConnectionFactory" destination-name="queue/B" destination-type="topic" epr-description="Bank-Listener" jndi-URL="jnp://localhost:1099" message-selector="service='Reconciliation'" protocol="jms"/>
 <action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.CbrProxyAction" process="route" propName="propValue">
 						This is some complex..
 						<!-- property -->
@@ -16,7 +17,8 @@
 						 Some CDATA data...
 					</action>
 </jms-listener-config>
-<listener-config epr-description="Bank-Listener-Generic" my-generic-bus="my-generic-bus#someattribvalue" my-generic-listener="my-generic-listener#someattribvalue" my-generic-provider="my-generic-provider#someattribvalue" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<listener-config listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" my-generic-listener="my-generic-listener#someattribvalue" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<EPR epr-description="Bank-Listener-Generic" my-generic-bus="my-generic-bus#someattribvalue" my-generic-provider="my-generic-provider#someattribvalue"/>
 <action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.CbrProxyAction" process="route" propName="propValue">
 						This is some complex..
 						<!-- property -->

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml	2006-12-19 15:30:58 UTC (rev 8407)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml	2006-12-19 15:54:17 UTC (rev 8408)
@@ -4,5 +4,5 @@
 	This file was auto-generated.
 -->
 <jbossesb-gateways>
-<jms-listener-config connection-factory="com.xyz.provider.XYZConnectionFactory" destination-name="queue/A" destination-type="queue" gatewayClass="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener" jndi-URL="xyz://server1:9876" jndi-context-factory="com.xyz.provider.NamingContextFactory" jndi-pkg-prefix="com.xyz" target-service-category="Bank" target-service-name="Reconciliation"/>
+<jms-listener-config connection-factory="com.xyz.provider.XYZConnectionFactory" destination-name="queue/A" destination-type="queue" gatewayClass="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener" jndi-URL="xyz://server1:9876" jndi-context-factory="com.xyz.provider.NamingContextFactory" jndi-pkg-prefix="com.xyz" maxThreads="1" message-selector="service='Reconciliation'" target-service-category="Bank" target-service-name="Reconciliation"/>
 </jbossesb-gateways>




More information about the jboss-svn-commits mailing list