[jboss-svn-commits] JBL Code SVN: r29510 - in labs/jbossesb/trunk/product: rosetta/src/org/jboss/soa/esb/listeners/config/mappers120 and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 30 04:42:09 EDT 2009


Author: kevin.conner at jboss.com
Date: 2009-09-30 04:42:09 -0400 (Wed, 30 Sep 2009)
New Revision: 29510

Modified:
   labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/ESBAwareGenerator.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/GatewayGenerator.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/MapperUtil.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/UntypedListenerMapper.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
Log:
Fix untyped listener: JBESB-2859

Modified: labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd
===================================================================
--- labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd	2009-09-30 08:42:09 UTC (rev 29510)
@@ -479,7 +479,7 @@
 		<xsd:complexType>
 			<xsd:sequence>
 				<xsd:element maxOccurs="unbounded" minOccurs="1"
-					ref="jesb:listener" />
+					ref="jesb:abstract-listener" />
 			</xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>
@@ -524,7 +524,7 @@
         </xsd:complexContent>
     </xsd:complexType>
 
-    <xsd:complexType abstract="true" name="dual-listener">
+    <xsd:complexType name="dual-listener">
         <xsd:annotation>
             <xsd:documentation xml:lang="en">
                 Listener type that can act as both a message-aware and message-unaware listener (gateway).
@@ -553,8 +553,10 @@
         </xsd:complexContent>
     </xsd:complexType>
 
-    <xsd:element name="listener" type="jesb:listener" />
+    <xsd:element name="abstract-listener" type="jesb:listener" abstract="true"/>
 
+    <xsd:element name="listener" type="jesb:dual-listener" substitutionGroup="jesb:abstract-listener"/>
+
 	<xsd:complexType abstract="true"
 		name="abstract-scheduled-listener">
 		<xsd:annotation>
@@ -601,7 +603,7 @@
 	</xsd:complexType>
 
 	<xsd:element name="scheduled-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				Scheduled listener.
@@ -647,7 +649,7 @@
 			</xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>
-	<xsd:element name="jca-gateway" substitutionGroup="jesb:listener">
+	<xsd:element name="jca-gateway" substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific gateway using JCA inflow.
@@ -904,7 +906,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="jms-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific listener using the jms protocol.
@@ -1060,7 +1062,7 @@
 			</xsd:complexContent>
 		</xsd:complexType>
 	</xsd:element>
-	<xsd:element name="fs-listener" substitutionGroup="jesb:listener">
+	<xsd:element name="fs-listener" substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific listener using the file protocol.
@@ -1310,7 +1312,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="ftp-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific listener using the ftp protocol.
@@ -1509,7 +1511,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="sql-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific listener using the SQL protocol.
@@ -1612,7 +1614,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="hibernate-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				A specific listener using the hibernate protocol.
@@ -1695,7 +1697,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="jbr-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				JBoss Remoting Listener.
@@ -1804,7 +1806,7 @@
 		</xsd:complexType>
 	</xsd:element>
 	<xsd:element name="http-gateway"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				http Listener.
@@ -1903,7 +1905,7 @@
 		Groovy Gateway Type Implementations.
 		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
 	<xsd:element name="groovy-listener"
-		substitutionGroup="jesb:listener">
+		substitutionGroup="jesb:abstract-listener">
 		<xsd:annotation>
 			<xsd:documentation xml:lang="en">
 				Groovy Listener.
@@ -1930,7 +1932,7 @@
 	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
         UDP Gateway Type Implementations.
         88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
-    <xsd:element name="udp-listener" substitutionGroup="jesb:listener">
+    <xsd:element name="udp-listener" substitutionGroup="jesb:abstract-listener">
         <xsd:annotation>
             <xsd:documentation xml:lang="en">
                 UDP Listener that uses Mina.

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/ESBAwareGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/ESBAwareGenerator.java	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/ESBAwareGenerator.java	2009-09-30 08:42:09 UTC (rev 29510)
@@ -29,6 +29,7 @@
 import org.jboss.soa.esb.dom.YADOMUtil;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.AbstractScheduledListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel120.DualListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.JmsProviderType;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Provider;
@@ -146,7 +147,7 @@
         if (service.isSetInvmScope()) {
             return service.getInvmTransacted() ;
         } else if (service.isSetListeners()) {
-            for (Listener listener: service.getListeners().getListenerList()) {
+            for (Listener listener: service.getListeners().getAbstractListenerList()) {
                 if (listener instanceof ScheduledListener) {
                     if (((ScheduledListener)listener).getTransacted())
                         return true ;
@@ -209,8 +210,10 @@
             return;
         } else if (listener instanceof GroovyListener) {
             listenerConfigTree = GroovyListenerMapper.map(root, (GroovyListener)listener, model);
+		} else if (listener instanceof DualListener){
+			listenerConfigTree = UntypedListenerMapper.map(root, (DualListener)listener, model);
 		} else {
-			listenerConfigTree = UntypedListenerMapper.map(root, listener, model);
+			throw new ConfigurationException("Unexpected listener type encountered: " + listener) ;
 		}
 
         if (listener instanceof AbstractScheduledListener) {
@@ -224,4 +227,4 @@
 		ActionMapper.map(listenerConfigTree, listenerService, model);
 		NotificationMapper.map(listenerConfigTree, listenerService, model);
 	}
-}
\ No newline at end of file
+}

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/GatewayGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/GatewayGenerator.java	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/GatewayGenerator.java	2009-09-30 08:42:09 UTC (rev 29510)
@@ -37,6 +37,7 @@
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.ServiceDocument.Service;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.SqlListenerDocument.SqlListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.UdpListenerDocument.UdpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel120.DualListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.JcaGatewayDocument;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.AbstractScheduledListener;
@@ -143,8 +144,10 @@
             listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
         } else if (gateway instanceof UdpListener) {
             listenerConfig = UdpListenerMapper.map(root, (UdpListener) gateway, model);
+        } else if (gateway instanceof DualListener){
+            listenerConfig = UntypedListenerMapper.map(root, (DualListener)gateway, model);
         } else {
-            listenerConfig = UntypedListenerMapper.map(root, gateway, model);
+            throw new ConfigurationException("Unexpected gateway type encountered: " + gateway) ;
         }
 
         if (gateway instanceof AbstractScheduledListener) {

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/MapperUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/MapperUtil.java	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/MapperUtil.java	2009-09-30 08:42:09 UTC (rev 29510)
@@ -52,7 +52,6 @@
         Service service = model.getService(listener);
         boolean isGateway = XMLBeansModel.isGateway(listener);
 
-        // Map maxThreads - appears to be a JMS only attrib...
         if(listener instanceof DualListener) {
             listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, String.valueOf(((DualListener)listener).getMaxThreads()));
         } else {

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/UntypedListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/UntypedListenerMapper.java	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/UntypedListenerMapper.java	2009-09-30 08:42:09 UTC (rev 29510)
@@ -25,10 +25,11 @@
 import org.jboss.soa.esb.dom.YADOMUtil;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel120.DualListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.Provider;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.impl.BusImpl;
-import org.jboss.soa.esb.listeners.config.xbeanmodel120.impl.ListenerImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel120.impl.DualListenerImpl;
 import org.jboss.soa.esb.listeners.config.xbeanmodel120.impl.BusProviderImpl;
 import org.w3c.dom.Element;
 
@@ -54,7 +55,7 @@
 	 * @return The ConfigTree listener configuration node.
 	 * @throws org.jboss.soa.esb.ConfigurationException Invalid listener configuration.
 	 */
-	public static Element map(Element root, Listener listener, XMLBeansModel model) throws ConfigurationException {
+	public static Element map(Element root, DualListener listener, XMLBeansModel model) throws ConfigurationException {
 		Element listenerNode = YADOMUtil.addElement(root, "listener");
 
         listenerNode.setAttribute("name", listener.getName());
@@ -66,7 +67,9 @@
 		// Map the <property> elements targeted at the listener - from the listener itself.
 		MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
 
-		if(listenerNode.getAttribute(ListenerTagNames.IS_GATEWAY_TAG).equals("true")) {
+		if(listener.getIsGateway()) {
+			listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
+			
 			MapperUtil.mapEPRProperties(listener, listenerNode, model);
 		} else {
 			Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
@@ -93,7 +96,7 @@
 
 		// Note we're purposely performing instanceof comparisons here...
 
-		if(listener.getClass() != ListenerImpl.class) {
+		if(listener.getClass() != DualListenerImpl.class) {
 			throw new ConfigurationException("Can only use the " + UntypedListenerMapper.class.getName() + " mapper on the base listener type.  Cannot use on " + listener.getClass().getName());
 		}
 		Bus bus = model.getBus(listener.getBusidref());

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java	2009-09-30 07:55:59 UTC (rev 29509)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java	2009-09-30 08:42:09 UTC (rev 29510)
@@ -100,7 +100,7 @@
             ListenersDocument.Listeners listeners = service.getListeners();
 
             if(listeners != null) {
-                List<Listener> listenerList = listeners.getListenerList();
+                List<Listener> listenerList = listeners.getAbstractListenerList();
 
                 if(listenerList != null) {
                     for(Listener serviceListener : listenerList) {
@@ -264,7 +264,7 @@
             for(Service service: services) {
                 final ListenersDocument.Listeners listeners = service.getListeners() ;
                 if (listeners != null) {
-                    for (Listener listener: listeners.getListenerList()) {
+                    for (Listener listener: listeners.getAbstractListenerList()) {
                         if (listener instanceof AbstractScheduledListener) {
                             count++ ;
                         }
@@ -302,7 +302,7 @@
                 ListenersDocument.Listeners listeners = service.getListeners();
 
                 if(listeners != null) {
-                    for(Listener listener : listeners.getListenerList()) {
+                    for(Listener listener : listeners.getAbstractListenerList()) {
                         if(isGateway(listener) == isGateway) {
                             gateways.add(listener);
                             listenerAdded = true;



More information about the jboss-svn-commits mailing list