[jboss-svn-commits] JBL Code SVN: r18775 - labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 7 17:03:12 EST 2008


Author: tcunning
Date: 2008-03-07 17:03:11 -0500 (Fri, 07 Mar 2008)
New Revision: 18775

Modified:
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
bug:JBESB-1344
Tested and applying patches from Brian Carothers.


Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java	2008-03-07 21:28:38 UTC (rev 18774)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java	2008-03-07 22:03:11 UTC (rev 18775)
@@ -37,6 +37,7 @@
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
@@ -46,6 +47,7 @@
 import org.jboss.soa.esb.listeners.ListenerUtil;
 import org.jboss.soa.esb.listeners.RegistryUtil;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
@@ -66,7 +68,6 @@
 	private static final long serialVersionUID = 1L;
 	private ArrayList<HibernateEventBean> m_events;
 	private final static Logger m_logger = Logger.getLogger(HibernateInterceptor.class);
-	private Courier m_courier;
 	
 	protected Class m_composerClass;
 	protected Method m_processMethod;
@@ -74,7 +75,7 @@
 	protected String m_composerName;
 	protected ConfigTree m_config;
 
-	protected Collection<EPR> m_targetEprs;
+	protected ServiceInvoker m_serviceInvoker;
 	protected String m_targetServiceCategory, m_targetServiceName;
         
 	// Event Strings
@@ -109,14 +110,21 @@
 			if (m_targetServiceName == null)
 				throw new ManagedLifecycleException("No target service name defined!");
 			
-            m_targetEprs = RegistryUtil.getEprs(m_targetServiceCategory,m_targetServiceName);
-            if (null == m_targetEprs || m_targetEprs.size() < 1)
-                throw new ManagedLifecycleException("EPR <" + m_targetServiceName + "> not found in registry") ;
+			Collection<EPR> _targetEprs = RegistryUtil.getEprs(m_targetServiceCategory,
+					m_targetServiceName);
+			if (null == _targetEprs || _targetEprs.size() < 1)
+				throw new ManagedLifecycleException("EPR <"
+						+ m_targetServiceName + "> not found in registry");
+			
+			m_serviceInvoker = new ServiceInvoker(m_targetServiceCategory, m_targetServiceName);
         } catch (ServiceNotFoundException snfe) {
-                throw new ManagedLifecycleException("EPR <" + m_targetServiceName + " "
-                        + m_targetServiceName + "> not found in registry");
+        	throw new ManagedLifecycleException("EPR <" + m_targetServiceName + " "
+        			+ m_targetServiceName + "> not found in registry");
         } catch (final RegistryException re) {
-            throw new ManagedLifecycleException("Unexpected registry exception", re) ;
+        	throw new ManagedLifecycleException("Unexpected registry exception", re);
+        } catch (MessageDeliverException mde) {
+			throw new ManagedLifecycleException("EPR <" + m_targetServiceName + " "
+					+ m_targetServiceName + "> not found in registry", mde);
 		} catch (ManagedLifecycleException ex) {
 			throw ex;
 		}
@@ -203,36 +211,10 @@
 		String text = null;
 
 		try {
-			boolean bSent = false;
-			for (EPR current : m_targetEprs) {
-				m_courier = CourierFactory.getCourier(current);
-
-				try {
-					if (m_courier.deliver(message)) {
-						bSent = true;
-                        break;
-					}
-				} finally {
-					CourierUtil.cleanCourier(m_courier) ;
-				}
-			}
-			
-			if (!bSent) {
-				text = "Target service <" + m_targetServiceCategory + "," + m_targetServiceName + "> is not registered";
-				thrown = new Exception(text);
-			}
-		} catch (ClassCastException e) {
+			m_serviceInvoker.deliverAsync(message);
+		} catch (MessageDeliverException e) {
 			thrown = e;
-			text = "Action class method <" + m_processMethod.getName() + "> returned a non Message object";
-		} catch (CourierException e) {
-			thrown = e;
-			text = "Courier <" + m_courier.getClass().getName() + ".deliverAsync(Message) FAILED";
-		} catch (MalformedEPRException ex) {
-			thrown = ex;
-			text = "Courier <" + m_courier.getClass().getName() + ".deliverAsync(Message) FAILED with malformed EPR.";
-		} catch (IllegalArgumentException e) {
-			thrown = e;
-			text = "Courier <" + m_courier.getClass().getName() + ".deliverAsync(Message) FAILED with IllegalArgumentException.";
+			text = "ServiceInvoker <" + m_targetServiceCategory + " " + m_targetServiceName+ ">.deliverAsync(Message) FAILED";
 		}
 		if (null != thrown) {
 			m_logger.error(text);

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2008-03-07 21:28:38 UTC (rev 18774)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2008-03-07 22:03:11 UTC (rev 18775)
@@ -49,6 +49,7 @@
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.JMSEpr;
+import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
@@ -64,6 +65,7 @@
 import org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleThreadState;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
@@ -88,15 +90,16 @@
      * @throws ManagedLifecycleException for errors while initialisation.
      */
     protected void doInitialise() throws ManagedLifecycleException {
+    	// Needed to retain prior semantics of fail-on-initialise if service lookup fails
         try {
-            _targetEprs = RegistryUtil.getEprs(_targetServiceCategory,
+        	Collection<EPR> _targetEprs = RegistryUtil.getEprs(_targetServiceCategory,
                     _targetServiceName);
             if (null == _targetEprs || _targetEprs.size() < 1)
                 throw new ManagedLifecycleException("EPR <"
                         + _targetServiceName + "> not found in registry");
-       } catch (ServiceNotFoundException snfe) {
-        throw new ManagedLifecycleException("EPR <" + _targetServiceName + " "
-                + _targetServiceName + "> not found in registry");
+        } catch (ServiceNotFoundException snfe) {
+        	throw new ManagedLifecycleException("EPR <" + _targetServiceName + " "
+            + _targetServiceName + "> not found in registry");
        }
         catch (final RegistryException re) {
             throw new ManagedLifecycleException(
@@ -104,6 +107,12 @@
         }
 
         try {
+        	_serviceInvoker = new ServiceInvoker(_targetServiceCategory, _targetServiceName);
+        } catch (MessageDeliverException e) {
+        	throw new ManagedLifecycleException(e);
+        }
+        
+        try {
             prepareMessageReceiver();
         }
         catch (final ConnectionException ce) {
@@ -174,26 +183,8 @@
                     obj = FilterManager.getInstance().doOutputWork((Message) obj, params);
 
                     try {
-                        boolean bSent = false;
-                        for (EPR current : _targetEprs) {
-                            _courier = CourierFactory.getCourier(current);
-                            try {
-                                if (_courier.deliver((Message) obj)) {
-                                    bSent = true;
-                                    break;
-                                }
-                            }
-                            finally {
-                                CourierUtil.cleanCourier(_courier);
-                            }
-                        }
-                        if (!bSent) {
-                            String text = "Target service <"
-                                    + _targetServiceCategory + ","
-                                    + _targetServiceName
-                                    + "> is not registered";
-                            throw new Exception(text);
-                        }
+                    	Message message = (Message) obj;
+                    	_serviceInvoker.deliverAsync(message);
                     }
                     catch (ClassCastException e) {
                         _logger.error("Action class method <"
@@ -203,15 +194,6 @@
 	                    rollbackJMSTransaction();
                         continue;
                     }
-                    catch (CourierException e) {
-                        String text = (null != _courier) ? "Courier <"
-                                + _courier.getClass().getName()
-                                + ".deliverAsync(Message) FAILED"
-                                : "NULL courier can't deliverAsync Message";
-                        _logger.error(text, e);
-	                    rollbackJMSTransaction();
-                        continue;
-                    }
                     continue;
                 }
                 catch (InvocationTargetException e) {
@@ -517,8 +499,8 @@
 
     protected EPR _myEpr;
 
-    protected Collection<EPR> _targetEprs;
-
+    protected ServiceInvoker _serviceInvoker;
+    
     protected String _composerName;
 
     protected Class _composerClass;
@@ -527,8 +509,6 @@
 
     protected Method _processMethod;
 
-    protected Courier _courier;
-
     protected JmsConnectionPool jmsConnectionPool;
 
     /**

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2008-03-07 21:28:38 UTC (rev 18774)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2008-03-07 22:03:11 UTC (rev 18775)
@@ -47,15 +47,12 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
+import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.common.TransactionStrategy;
 import org.jboss.soa.esb.common.TransactionStrategyException;
-import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.couriers.CourierFactory;
-import org.jboss.soa.esb.couriers.CourierUtil;
 import org.jboss.soa.esb.filter.FilterManager;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
@@ -63,10 +60,10 @@
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.ListenerUtil;
 import org.jboss.soa.esb.listeners.RegistryUtil;
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleThreadState;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.MessagePayloadProxy;
 import org.jboss.soa.esb.message.format.MessageFactory;
@@ -120,8 +117,9 @@
      * @throws ManagedLifecycleException for errors while initialisation.
      */
     protected void doInitialise() throws ManagedLifecycleException {
+    	// Needed to retain prior semantics of fail-on-initialise if service lookup fails
         try {
-            _targetEprs = RegistryUtil.getEprs(_targetServiceCategory,
+            Collection<EPR> _targetEprs = RegistryUtil.getEprs(_targetServiceCategory,
                     _targetServiceName);
             if (null == _targetEprs || _targetEprs.size() < 1)
                 throw new ManagedLifecycleException("EPR <"
@@ -132,9 +130,15 @@
                 + _targetServiceName + "> not found in registry");
         }
         catch (final RegistryException re) {
-            throw new ManagedLifecycleException(
-                    "Unexpected registry exception", re);
+        	throw new ManagedLifecycleException("Unexpected registry exception", re);
         }
+        
+        try {
+        	_serviceInvoker = new ServiceInvoker(_targetServiceCategory, _targetServiceName);
+        	_serviceInvoker.loadServiceClusterInfo();
+        } catch (MessageDeliverException mde) {
+        	throw new ManagedLifecycleException(mde);    		
+        }
 
         boolean failure = true;
         try {
@@ -190,28 +194,14 @@
                             params.put(Environment.GATEWAY_CONFIG, _config);
         
                             message = FilterManager.getInstance().doOutputWork(message, params);
-        
-                            boolean bSent = false;
-                            for (EPR current : _targetEprs) {
-                                _courier = CourierFactory.getCourier(current);
-                                try {
-                                    if (_courier.deliver(message)) {
-                                        bSent = true;
-                                        break;
-                                    }
-                                }
-                                finally {
-                                    CourierUtil.cleanCourier(_courier);
-                                }
-                            }
-                            if (!bSent) {
-                                text = "Target service <" + _targetServiceCategory
-                                        + "," + _targetServiceName
-                                        + "> is not registered";
-                                thrown = new Exception(text);
-                            }
-                        }
-                        catch (InvocationTargetException e) {
+                            
+                            _serviceInvoker.deliverAsync(message);
+                        } catch (MessageDeliverException e) {
+                        	thrown = e;
+                        	text = "Target service <" + _targetServiceCategory
+                        		+ "," + _targetServiceName
+                        		+ "> is not registered";
+                    	} catch (InvocationTargetException e) {
                             thrown = e;
                             text = "Problems invoking method <"
                                     + _processMethod.getName() + ">";
@@ -228,16 +218,10 @@
                         }
                         catch (CourierException e) {
                             thrown = e;
-                            text = "Courier <" + _courier.getClass().getName()
-                                    + ".deliverAsync(Message) FAILED";
+                            text = "Message filter FAILED";
                         }
-                        catch (MalformedEPRException ex) {
-                            thrown = ex;
-                            text = "Courier <"
-                                    + _courier.getClass().getName()
-                                    + ".deliverAsync(Message) FAILED with malformed EPR.";
-                        }
-        
+
+                        
                         if (null == thrown) {
                             if (_deleteAfterOK)
                                 deleteCurrentRow();
@@ -861,9 +845,8 @@
 
     protected String _targetServiceCategory, _targetServiceName;
 
-    protected Collection<EPR> _targetEprs;
-
     protected String _composerName;
+    protected ServiceInvoker _serviceInvoker;
 
     protected Class _composerClass;
 
@@ -871,8 +854,6 @@
 
     protected Method _processMethod;
 
-    protected Courier _courier;
-
     protected String _driver, _url, _user, _password, _datasource;
 
     protected String _tableName, _selectFields, _keyFields, _timestamp;




More information about the jboss-svn-commits mailing list