[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