[jboss-svn-commits] JBL Code SVN: r14335 - in labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config: mappers and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 17 16:17:09 EDT 2007
Author: tcunning
Date: 2007-08-17 16:17:08 -0400 (Fri, 17 Aug 2007)
New Revision: 14335
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
Log:
bug:JBESB-847
Logging full stack trace warnings if the service names are not unique
with an esb package's <services> tag, or if actio names are not unique
within a service.
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java 2007-08-17 14:30:16 UTC (rev 14334)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java 2007-08-17 20:17:08 UTC (rev 14335)
@@ -21,8 +21,10 @@
package org.jboss.soa.esb.listeners.config;
+import java.util.HashMap;
import java.util.List;
+import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.config.xbeanmodel.FsListenerDocument.FsListener;
@@ -32,6 +34,7 @@
import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateListenerDocument.HibernateListener;
import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrListenerDocument.JbrListener;
import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlListenerDocument.SqlListener;
import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
import org.jboss.soa.esb.listeners.config.xbeanmodel.JcaGatewayDocument;
@@ -48,6 +51,8 @@
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
public class GatewayGenerator {
+
+ private static final Logger logger = Logger.getLogger(GatewayGenerator.class);
/**
* XMLBeans based configuration model instance.
@@ -78,6 +83,21 @@
root = YADOMUtil.addElement(doc, "jbossesb-gateways");
root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
+ try {
+ List<Service> services = model.getServices();
+ HashMap<String, String> hm = new HashMap();
+ for (Service service : services) {
+ if (hm.containsKey(service.getName())) {
+ throw new ConfigurationException("Service names must be unique. The service name " + service.getName()
+ + " is already defined within the <services> tag.");
+ } else {
+ hm.put(service.getName(), service.getName());
+ }
+ }
+ } catch (ConfigurationException ce) {
+ logger.error("", ce);
+ }
+
// Iterate over all the gateway configs and map them to the gateway configuration...
List<Listener> gateways = model.getGatewayListeners();
for (Listener gateway : gateways) {
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java 2007-08-17 14:30:16 UTC (rev 14334)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java 2007-08-17 20:17:08 UTC (rev 14335)
@@ -21,8 +21,11 @@
package org.jboss.soa.esb.listeners.config.mappers;
+import java.util.HashMap;
import java.util.List;
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument.Action;
@@ -38,19 +41,34 @@
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
public class ActionMapper {
+ private static final Logger logger = Logger.getLogger(ActionMapper.class);
/**
- * Perform the mapping.
+ * Perform the mapping. Checks to ensure that action names are unique, and throws a ConfigurationException if
+ * a duplicate action name is registered.
* @param listenerConfigTree The listener ConfigTree to which the actions are to be added.
* @param listenerService The Service to which the listener is bound. The Service defines the actions.
* @param model The configuration model from which the mapping is being performed.
+ * @throws ConfigurationException
*/
- public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) {
+ public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) throws ConfigurationException {
if (listenerService.getActions()!=null) {
List<Action> actions = listenerService.getActions().getActionList();
- for(Action action : actions) {
- mapAction(listenerConfigTree, action);
+ try {
+ HashMap<String,String> hm = new HashMap<String,String>();
+ for(Action action : actions) {
+ mapAction(listenerConfigTree, action);
+ if (hm.containsKey(action.getName())) {
+ throw new ConfigurationException("Tried to register a duplicate action name. Service "
+ + listenerService.getName() + " already contains an action named "
+ + action.getName() + ". Action names must be unique per service.");
+ } else {
+ hm.put(action.getName(), action.getName());
+ }
+ }
+ } catch (ConfigurationException ce) {
+ logger.error("", ce);
}
}
}
More information about the jboss-svn-commits
mailing list