[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