[jboss-svn-commits] JBL Code SVN: r7383 - in labs/jbossesb/trunk/product/core: listeners/src/org/jboss/soa/esb/actions listeners/src/org/jboss/soa/esb/listeners/message services/src/org/jboss/internal/soa/esb/services/routing/cbr

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 3 15:33:39 EST 2006


Author: kurt.stam at jboss.com
Date: 2006-11-03 15:33:35 -0500 (Fri, 03 Nov 2006)
New Revision: 7383

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java
   labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
Log:
CBR 

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-03 20:14:06 UTC (rev 7382)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-03 20:33:35 UTC (rev 7383)
@@ -22,10 +22,23 @@
 
 package org.jboss.soa.esb.actions;
 
+import java.util.Collection;
+import java.util.Iterator;
+
 import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.addressing.EPR;
+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.helpers.*;
 import org.jboss.soa.esb.notification.*;
+import org.jboss.soa.esb.services.registry.Registry;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.registry.RegistryFactory;
+import org.jboss.soa.esb.services.routing.MessageRouter;
 
 
 /**
@@ -39,7 +52,7 @@
 
 	private static Logger _logger = Logger.getLogger(CbrProxyAction.class);
 
-	protected Message 		_message;
+	protected Message 		_message; //Why is this a class variable?
 	protected ConfigTree	_config;
 	
     public CbrProxyAction(ConfigTree config) { _config = config; } 
@@ -48,9 +61,26 @@
     public Message process(Message message) 
     {
     	_message = message;
-    	//Service,
-    	//Send message to service
-    	
+    	try {
+	    	//Can we make this static for optimization?
+	    	Registry registry = RegistryFactory.getRegistry(); 
+	    	String serviceCategoryName = _config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
+	    	String serviceName         = _config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+			Collection<EPR> eprs = registry.findEPRs(serviceCategoryName, serviceName);
+			for (Iterator<EPR> eprIterator=eprs.iterator();eprIterator.hasNext();){
+				//Just use the first EPR in the list.
+				EPR epr = eprIterator.next();
+				Courier courier = CourierFactory.getCourier(epr);
+				//If not successful try the next EPR
+				if (courier.deliver(message)) {
+					break;
+				}
+			}
+    	} catch (RegistryException re) {
+    		_logger.error("Could not access the registry. " + re.getLocalizedMessage(), re);
+    	} catch (CourierException ce) {
+    		_logger.error("Could not send to the CBR. " + ce.getLocalizedMessage(), ce);
+    	}
         _logger.info("Process was called.");
         return message;
     } // ________________________________
@@ -68,8 +98,6 @@
     	return null;
     }
     
-    
- 
     public void exceptionCallback(Message message, Throwable t)
     {
     	String sMsg = new StringBuilder(" ExceptionTrower.exceptionCallback CALLED ")
@@ -81,8 +109,13 @@
     	// Here you can send notifications to everybody
     }
     
-    public void okMethod(Message message){
+    public void okMethod(Message message)
+    {
+    	Collection destinationServices 
+    		= (Collection) message.getProperties().getProperty(MessageRouter.ROUTING_DESTINATION_SERVICE_LIST);
     	//Do something with the callBack info
+    	_logger.log(Priority.INFO, destinationServices);
+    	
     }
     
 } // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java	2006-11-03 20:14:06 UTC (rev 7382)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java	2006-11-03 20:33:35 UTC (rev 7383)
@@ -22,6 +22,8 @@
 
 package org.jboss.soa.esb.listeners.message;
 
+import java.util.Collection;
+
 import org.apache.log4j.Logger;
 import org.apache.log4j.Priority;
 import org.jboss.soa.esb.ConfigurationException;
@@ -29,6 +31,7 @@
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.routing.MessageRouter;
 import org.jboss.soa.esb.services.routing.MessageRouterException;
 import org.jboss.soa.esb.services.routing.cbr.ContentBasedRouter;
 import org.jboss.soa.esb.services.routing.cbr.ContentBasedRouterFactory;
@@ -78,13 +81,18 @@
 	        	if (null!=message) {
 	        		if (ruleSet!=null) {
 	        			_logger.log(Priority.DEBUG, "Sending message to the Content Based Router.");
-		        		cbr.route(ruleSet, message);
+	        			Collection<String> destinationServices = cbr.route(ruleSet, message);
+	        			_logger.log(Priority.INFO, destinationServices);
+	        			if (Boolean.FALSE.equals(message.getProperties().getProperty(MessageRouter.DELIVER_MESSAGES))) {
+	        				//CallBack to the action processor.
+	        			}
 	        		} else {
 	        			//TODO allow for getting the ruleSet from the message and not from the configuration
 	        			//String messageRuleSet = message.getRuleSet();
 	        			String messageRuleset=null;
 	                    if (messageRuleset!=null) {
-	                    	cbr.route(messageRuleset, message);
+	                    	Collection<String> destinationServices = cbr.route(messageRuleset, message);
+	                    	_logger.log(Priority.INFO, destinationServices);
 	                    } else {
 	                    	_logger.log(Priority.ERROR, "Ruleset could not be obtained from the message.");
 	                    }

Modified: labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java	2006-11-03 20:14:06 UTC (rev 7382)
+++ labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java	2006-11-03 20:33:35 UTC (rev 7383)
@@ -73,7 +73,7 @@
 			logger.log(Priority.DEBUG, "Destination Services List: " + destinationServices);
 			Boolean deliverMessages = (Boolean) message.getProperties().getProperty(MessageRouter.DELIVER_MESSAGES);
 			//Only actuall deliver the message if this is set in the message
-			if (Boolean.TRUE.equals(deliverMessages)) {
+			if (!Boolean.FALSE.equals(deliverMessages)) {
 				deliverMessages(destinationServices, message);
 			}
 		} catch (Exception e) {




More information about the jboss-svn-commits mailing list