[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