[jboss-svn-commits] JBL Code SVN: r7662 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 16 15:50:41 EST 2006


Author: estebanschifman
Date: 2006-11-16 15:50:38 -0500 (Thu, 16 Nov 2006)
New Revision: 7662

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
Fix registry access problems in gateways

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-11-16 20:41:17 UTC (rev 7661)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-11-16 20:50:38 UTC (rev 7662)
@@ -30,8 +30,10 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.net.URI;
+import java.util.Collection;
 
 import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
@@ -42,7 +44,6 @@
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.util.Util;
-import org.jboss.soa.esb.ConfigurationException;
 
 /**
  * 
@@ -105,7 +106,21 @@
 	        			_logger.warn("Action class method <"+_processMethod.getName()+"> returned a null object");
 	        			continue;
 	        		}
-	        		_courier.deliver((org.jboss.soa.esb.message.Message)obj);
+        			boolean bSent = false;
+	        		for (EPR current : _targetEprs)
+	        		{
+	        			_courier = CourierFactory.getCourier(current);
+	        			if (_courier.deliver((org.jboss.soa.esb.message.Message)obj))
+	        			{
+	        				bSent = true;
+	        				break;
+	        			}
+	        		}
+	        		if (! bSent)
+	        		{
+	        			text = "Target service <"+_targetServiceCategory+","+_targetServiceName+"> is not registered";
+	        			thrown = new Exception(text);
+	        		}
 	            }
 
 		            catch (InvocationTargetException e)	
@@ -127,7 +142,10 @@
 	        		catch (CourierException e)
 	        		{
 	        			thrown = e;
-	        			text = "Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED";
+	        			if (null!=_courier)
+	        				text = "Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED";
+	        			else
+	        				text = "NULL courier can't deliver Message";
 	        		}
         		
         		if (null==thrown)
@@ -169,10 +187,9 @@
         // Third arg is null - Exception will be thrown if attribute is not found
     	_targetServiceCategory	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, null);
     	_targetServiceName	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_NAME_TAG, null);
-    	_targetEpr		= _controller.getEprByName(_targetServiceName);
-    	if (null==_targetEpr)
+    	_targetEprs		= _controller.getEprs(_targetServiceCategory,_targetServiceName);
+    	if (null==_targetEprs || _targetEprs.size()<1)
         	throw new ConfigurationException("EPR <"+_targetServiceName+"> not found in registry");
-        _courier		= CourierFactory.getCourier(_targetEpr);
 
         // Polling interval
         String sAux = _config.getAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG);
@@ -337,7 +354,8 @@
 
     protected String			_serviceCategory, _serviceName;
     protected String			_targetServiceCategory ,_targetServiceName;
-    protected EPR				_myEpr		,_targetEpr;
+    protected EPR				_myEpr;
+    protected Collection<EPR>	_targetEprs;
 
     protected String			_composerName;
     protected Class 			_composerClass;

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java	2006-11-16 20:41:17 UTC (rev 7661)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java	2006-11-16 20:50:38 UTC (rev 7662)
@@ -25,6 +25,8 @@
 import java.io.IOException;
 import java.lang.reflect.Constructor;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -501,12 +503,21 @@
 		return EPRManager.getInstance(sDir);
 	}
 	
-	public EPR getEprByName (String serviceName) throws IOException
+	public Collection<EPR> getEprs (String category, String name) throws RegistryException
 	{
-		return getEprManager().loadEPR(serviceName);
-	} // ________________________________
-
-
+		if ("eprManager".equals(category))
+		{
+			Collection<EPR>ret = new ArrayList<EPR>();
+			try 
+			{ 
+				ret.add(getEprManager().loadEPR(name)); 
+				return ret;
+			}
+			catch(IOException e) {throw new RegistryException("No EPRs found for <"+category+"><"+name+">");}
+		}
+		return RegistryFactory.getRegistry().findEPRs(category, name);
+	}
+	
 	/**
 	 * @deprecated use register (ConfigTree config, EPR address) instead.
 	 * @param name

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2006-11-16 20:41:17 UTC (rev 7661)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2006-11-16 20:50:38 UTC (rev 7662)
@@ -26,6 +26,7 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Collection;
 
 import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
 import javax.jms.BytesMessage;
@@ -87,7 +88,21 @@
         		// to the target service
         		try 
         		{ 
-        			_courier.deliver((org.jboss.soa.esb.message.Message)obj); 
+        			boolean bSent = false;
+	        		for (EPR current : _targetEprs)
+	        		{
+	        			_courier = CourierFactory.getCourier(current);
+	        			if (_courier.deliver((org.jboss.soa.esb.message.Message)obj))
+	        			{
+	        				bSent = true;
+	        				break;
+	        			}
+	        		}
+	        		if (! bSent)
+	        		{
+	        			String text = "Target service <"+_targetServiceCategory+","+_targetServiceName+"> is not registered";
+	        			throw new Exception(text);
+	        		}
         		}
         		catch (ClassCastException e)
         		{
@@ -96,7 +111,11 @@
         		}
         		catch (CourierException e)
         		{
-        			_logger.error("Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED");
+        			String text = (null!=_courier) ?
+        				"Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED"
+        			:
+        				"NULL courier can't deliver Message";
+        			_logger.error(text);
         			continue;
         		}
             	continue;
@@ -143,8 +162,8 @@
         // Third arg is null - Exception will be thrown if attribute is not found
     	_targetServiceCategory	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, null);
     	_targetServiceName	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_NAME_TAG, null);
-    	_targetEpr		= _controller.getEprByName(_targetServiceName);
-    	if (null==_targetEpr)
+    	_targetEprs		= _controller.getEprs(_targetServiceCategory,_targetServiceName);
+    	if (null==_targetEprs || _targetEprs.size() < 1)
         	throw new ConfigurationException("EPR <"+_targetServiceName+"> not found in registry");
 
     	_queueName 	= _controller.obtainAtt(_config, JMSEpr.DESTINATION_NAME_TAG, null);
@@ -154,8 +173,6 @@
         // No problem if selector is null - everything in queue will be returned
         _messageSelector = _config.getAttribute(JMSEpr.MESSAGE_SELECTOR_TAG);
         
-        _courier		= CourierFactory.getCourier(_targetEpr);
-        
         prepareMessageReceiver();
     } // ________________________________
     
@@ -304,7 +321,8 @@
 
     protected String			_serviceCategory	,_serviceName;
     protected String			_targetServiceCategory	,_targetServiceName;
-    protected EPR				_myEpr		,_targetEpr;
+    protected EPR				_myEpr;
+    protected Collection<EPR>	_targetEprs;
 
     protected String			_composerName;
     protected Class 			_composerClass;

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2006-11-16 20:41:17 UTC (rev 7661)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2006-11-16 20:50:38 UTC (rev 7662)
@@ -29,6 +29,7 @@
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -137,7 +138,21 @@
 	            		props.setProperty(JDBCEpr.PASSWORD_TAG	, _password);
 	        			
 	        		}
-	        		_courier.deliver(message);
+	        		boolean bSent = false;
+	        		for (EPR current : _targetEprs)
+	        		{
+	        			_courier = CourierFactory.getCourier(current);
+	        			if (_courier.deliver((org.jboss.soa.esb.message.Message)obj))
+	        			{
+	        				bSent = true;
+	        				break;
+	        			}
+	        		}
+	        		if (! bSent)
+	        		{
+	        			text = "Target service <"+_targetServiceCategory+","+_targetServiceName+"> is not registered";
+	        			thrown = new Exception(text);
+	        		}
 	            }
 
 	            catch (InvocationTargetException e)	
@@ -198,10 +213,9 @@
         // Third arg is null - Exception will be thrown if attribute is not found
     	_targetServiceCategory	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, null);
     	_targetServiceName	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_NAME_TAG, null);
-    	_targetEpr		= _controller.getEprByName(_targetServiceName);
-    	if (null==_targetEpr)
+    	_targetEprs		= _controller.getEprs(_targetServiceCategory,_targetServiceName);
+    	if (null==_targetEprs || _targetEprs.size()<1)
         	throw new ConfigurationException("EPR <"+_targetServiceName+"> not found in registry");
-        _courier		= CourierFactory.getCourier(_targetEpr);
 
         // Polling interval
         String sAux = _config.getAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG);
@@ -600,7 +614,8 @@
 
     protected String			_serviceCategory, _serviceName;
     protected String			_targetServiceCategory ,_targetServiceName;
-    protected EPR				_myEpr		,_targetEpr;
+    protected EPR				_myEpr;
+    protected Collection<EPR> 	_targetEprs;
 
     protected String			_composerName;
     protected Class 			_composerClass;




More information about the jboss-svn-commits mailing list