[jboss-svn-commits] JBL Code SVN: r8401 - in labs/jbossesb/trunk/product: core/listeners/src/org/jboss/soa/esb/listeners/config core/listeners/src/org/jboss/soa/esb/listeners/config/mappers core/listeners/tests/src/org/jboss/soa/esb/listeners/config etc/schemas/xml

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 19 08:26:37 EST 2006


Author: tfennelly
Date: 2006-12-19 08:26:25 -0500 (Tue, 19 Dec 2006)
New Revision: 8401

Added:
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml
Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml
   labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd
Log:
Some more config updates.

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -53,6 +53,8 @@
 	private StreamSource mValidationInputSource;
 	private File mConfigDirectory;
 	private long mPreviousFileTimestamp;
+	private boolean ended = false;
+	
 	/**
 	 * Start the Controller externally.
 	 * @param args - arg[0] - the parameter file name
@@ -91,6 +93,7 @@
 				validationInputStream = new FileInputStream(validationFile);
 			} catch (FileNotFoundException e) {
 				mLogger.error(e.getMessage(),e);
+				throw new IllegalStateException("ESB configuration file [" + (new File(configFileName)).getAbsolutePath() + "] not found.", e);
 			}
 		}
 		if (validationInputStream==null) {
@@ -107,50 +110,66 @@
      */
 	public void run() 
 	{
-		if (mConfigFileName!=null) {
-			while (!mIsEndRequested) {
-				if (isReloadNeeded()) { 
+		mLogger.info("Configuration Controller instance started.");
+		try {
+			if (mConfigFileName!=null) {
+				while (!mIsEndRequested) {
+					if (isReloadNeeded()) { 
+						try {
+							mLogger.info("loading configuration..");
+							String configXml = ParamRepositoryFactory.getInstance().get(mConfigFileName);
+							mLogger.debug("Start validation on configXml=" + configXml);
+							InputSource xmlInputSource = new InputSource(new StringReader(configXml));
+							XmlValidator validator = new XmlValidatorImpl();
+							if (validator.validate(xmlInputSource, mValidationInputSource)) {
+								mLogger.debug("Configuration file " + mConfigFileName + " passed validation. Starting " +
+										" the generation process of the jbossesb-listener.xml and the jbossesb-gateway.xml.");
+								Generator generator = new Generator(new ByteArrayInputStream(configXml.getBytes()));
+								generator.generate(mConfigDirectory);
+							} else {
+								StringBuffer buffer = new StringBuffer("The configuration file "
+										+ mConfigFileName + "\n did not pass validation for the following reasons: \n");
+								int i=0;
+							    for (String error: validator.getValidationResults())
+								{
+									buffer.append("** " + ++i + ". "+ error + "\n");
+								}
+							    System.out.println(buffer);
+							    mLogger.error(buffer);
+								mLogger.info("The current configuration is kept in place until "
+										+ " validation passes.");
+							}
+						} catch (Exception e) {
+							mLogger.error("The current versions of the jbossesb-listener.xml and/or"
+									    + " jbossesb-gateway.xml are kept in place until the following error is resolved: "
+									    +  e.getMessage(), e);
+						    System.out.println(e.getMessage());
+						} 
+					}
 					try {
-						mLogger.info("loading configuration..");
-						String configXml = ParamRepositoryFactory.getInstance().get(mConfigFileName);
-						mLogger.debug("Start validation on configXml=" + configXml);
-						InputSource xmlInputSource = new InputSource(new StringReader(configXml));
-						XmlValidator validator = new XmlValidatorImpl();
-						if (validator.validate(xmlInputSource, mValidationInputSource)) {
-							mLogger.debug("Configuration file " + mConfigFileName + " passed validation. Starting " +
-									" the generation process of the jbossesb-listener.xml and the jbossesb-gateway.xml.");
-							Generator generator = new Generator(new ByteArrayInputStream(configXml.getBytes()));
-							generator.generate(mConfigDirectory);
-						} else {
-							StringBuffer buffer = new StringBuffer("The configuration file "
-									+ mConfigFileName + "\n did not pass validation for the following reasons: \n");
-							int i=0;
-						    for (String error: validator.getValidationResults())
-							{
-								buffer.append("** " + ++i + ". "+ error + "\n");
-							}
-						    mLogger.error(buffer);
-							mLogger.info("The current configuration is kept in place until "
-									+ " validation passes.");
-						}
-					} catch (Exception e) {
-						mLogger.error("The current versions of the jbossesb-listener.xml and/or"
-								    + " jbossesb-gateway.xml are kept in place until the following error is resolved: "
-								    +  e.getMessage(), e);
-					} 
-				}
-				try {
-					Thread.sleep(SLEEP_MILLIS);
-				} catch (InterruptedException ie) {
-					mLogger.warn("Could not sleep." + ie.getMessage(),ie);
-				}
-			} 
-		} else {
-			mLogger.fatal("The name of the configuran file was null: " + mConfigFileName);
+						Thread.sleep(SLEEP_MILLIS);
+					} catch (InterruptedException ie) {
+						mLogger.warn("Could not sleep." + ie.getMessage(),ie);
+					}
+				} 
+			} else {
+				mLogger.fatal("The name of the configuran file was null: " + mConfigFileName);
+			}
+		} finally {
+			mLogger.info("Exiting Config Controller...");
+			ended = true;
 		}
-		mLogger.info("Exiting Config Controller...");
 	}
+
 	/**
+	 * Has the controller instance ended.
+	 * @return True if this controller instance has ended, otherwise false..
+	 */
+	public boolean hasEnded() {
+		return ended;
+	}
+	
+	/**
 	 * Setter, to request the end of processing.
 	 * @param isEndRequested
 	 */

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -64,8 +64,11 @@
 	 */
 	protected Document generate() throws ConfigurationException {
 		Document doc = YADOMUtil.createDocument();
-		Element root = YADOMUtil.addElement(doc, "jbossesb-listeners");
+		Element root;
 		
+		doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+		root = YADOMUtil.addElement(doc, "jbossesb-listeners");
+		
 		// Iterate over all the ESB Aware listner configs and map them to the listener configuration...
 		List<Listener> listeners = model.getESBAwareListeners();
 		for(Listener listener : listeners) {

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -61,8 +61,11 @@
 	 */
 	protected Document generate() throws ConfigurationException {
 		Document doc = YADOMUtil.createDocument();
-		Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+		Element root;
 		
+		doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+		root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+		
 		// 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/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -27,6 +27,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.log4j.Logger;
 import org.apache.xmlbeans.XmlException;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.JbossesbDocument;
@@ -47,6 +48,8 @@
  */
 public class Generator {
 	
+	private static Logger logger = Logger.getLogger(Generator.class);
+	
 	/**
 	 * Gateway Listeners config file.
 	 */
@@ -111,11 +114,15 @@
 		// Generate and serialise the configuration for the Gateway listeners...
 		GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
 		Document gatewayConfig = gatewayGenerator.generate();
+		
+		logger.info("Serialising ESB Aware Listener 'ConfigTree' configuration to [" + (new File(outdir, ESB_CONFIG_GATEWAY_XML_FILE)).getAbsolutePath() + "].");
 		YADOMUtil.serialize(gatewayConfig, outdir, ESB_CONFIG_GATEWAY_XML_FILE);
 
 		// Generate and serialise the configuration for the ESB Aware listeners...
 		ESBAwareGenerator awareGenerator = new ESBAwareGenerator(model);
 		Document awareConfig = awareGenerator.generate();
+
+		logger.info("Serialising ESB Gateway Listener 'ConfigTree' configuration to [" + (new File(outdir, ESB_CONFIG_GATEWAY_XML_FILE)).getAbsolutePath() + "].");
 		YADOMUtil.serialize(awareConfig, outdir, ESB_CONFIG_XML_FILE);
 	}
 

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -109,15 +109,24 @@
 	}
 
 	/**
-	 * Serialize the supplied Document to the specified file in the specified output directory.
-	 * @param doc The document to be serialised.
+	 * Serialize the supplied DOM node to the specified file in the specified output directory.
+	 * @param node The DOM node to be serialised.
 	 * @param outdir The directory into which the file is to be serialised.
 	 * @param fileName The name of the file.
-	 * @throws ConfigurationException Unable to serialise the document.
+	 * @throws ConfigurationException Unable to serialise the node.
 	 */
-	public static void serialize(Document doc, File outdir, String fileName) throws ConfigurationException {
-		DOMSource domSource = new DOMSource(doc);
-		StreamResult streamRes = new StreamResult(new File(outdir, fileName));
+	public static void serialize(Node node, File outdir, String fileName) throws ConfigurationException {
+		serialize(node, new StreamResult(new File(outdir, fileName)));
+	}
+
+	/**
+	 * Serialize the supplied DOM node to the supplied DOM StreamResult instance.
+	 * @param node The DOM node to be serialised.
+	 * @param streamRes The StreamResult into which the node is to be serialised.
+	 * @throws ConfigurationException Unable to serialise the node.
+	 */
+	public static void serialize(Node node, StreamResult streamRes) throws ConfigurationException {
+		DOMSource domSource = new DOMSource(node);
 		
 		try {
 			Transformer transformer = TransformerFactory.newInstance().newTransformer();

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -21,12 +21,23 @@
 
 package org.jboss.soa.esb.listeners.config.mappers;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor.TokenType;
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.YADOMUtil;
 import org.jboss.soa.esb.listeners.config.ActionDocument.Action;
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.PropertyDocument.Property;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
+import org.milyn.xml.DomUtils;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 /**
@@ -63,13 +74,21 @@
 		actionConfigTree.setAttribute(ListenerTagNames.ACTION_ELEMENT_TAG, action.getName());
 		actionConfigTree.setAttribute(ListenerTagNames.ACTION_CLASS_TAG, action.getClass1());
 		actionConfigTree.setAttribute(ListenerTagNames.PROCESS_METHOD_TAG, action.getProcess());
-		// TODO: What will we do about the "okMethods" and "exceptionMethod" attributes supported by the ConfigTree model??
+		// The "okMethods" and "exceptionMethod" attributes are supported by adding them as child <property> elements.
 		
-		// Map the property elements to actions attributes...
+		// Map the property elements to action attributes...
 		for(Property property : properties) {
-			actionConfigTree.setAttribute(property.getName(), property.getValue());
+			Element propertyElement = listenerConfigTree.getOwnerDocument().createElement("property");
+			
+			MapperUtil.serialize(property, propertyElement);
 
-			// TODO: Add support for CDATA or xsd:anyType property contents...
+			// If the property has child content, add that directy to the action.  Of course it only really
+			// makes sense to do this with one property!
+			if(propertyElement.hasChildNodes()) {
+				DomUtils.copyChildNodes(propertyElement, actionConfigTree);
+			} else {
+				actionConfigTree.setAttribute(property.getName(), property.getValue());
+			}
 		}
 		
 		// Remove any empty attributes set on the action config...

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -48,7 +48,7 @@
 	 * @param root The "ConfigTree" configuration root node.
 	 * @param listener The Jmslistener to be mapped into the ConfigTree.
 	 * @param model The configuration model from which the mapping is being performed.
-	 * @param The ConfigTree listener configuration node.
+	 * @return The ConfigTree listener configuration node.
 	 * @throws ConfigurationException Invalid listener configuration.
 	 */
 	public static Element map(Element root, JmsListener listener, XMLBeansModel model) throws ConfigurationException {

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -21,6 +21,9 @@
 
 package org.jboss.soa.esb.listeners.config.mappers;
 
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor.TokenType;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.listeners.config.Bus;
@@ -30,7 +33,13 @@
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.PropertyDocument.Property;
 import org.jboss.soa.esb.listeners.config.ServiceDocument.Service;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
 
 /**
  * Mapper utility methods.
@@ -89,8 +98,61 @@
 		for(Property property : properties) {
 			target.setAttribute(property.getName(), property.getValue());
 		}
+	}
+
+	/**
+	 * Serialise the supplied {@link XmlObject} instance to the supplied element.
+	 * @param xmlObject The XmlObject instance.
+	 * @param toElement The element to which the cursor is to be serialised.
+	 */
+	protected static void serialize(XmlObject xmlObject, Element toElement) {
+		XmlCursor cursor = xmlObject.newCursor();
 		
-		// Remove any empty attributes set on the action config...
-		YADOMUtil.removeEmptyAttributes(target);
+		// Note there are methods on the XmlObject that "looked" as though they might be able
+		// to do this for us (save, newDomNode etc), but they kept throwing exceptions.
+		
+		serialize(cursor, toElement);
+		cursor.dispose();
 	}
+
+	/**
+	 * Serialise the XML content behind the supplied XmlCursor instance to the supplied
+	 * target element.
+	 * @param cursor The cursor instance.
+	 * @param toElement The target DOM Element.
+	 */
+	private static void serialize(XmlCursor cursor, Element toElement) {
+		TokenType token;
+		Document doc = toElement.getOwnerDocument();
+
+		while(true) {
+			token = cursor.toNextToken();
+			
+			switch (token.intValue()) {
+			case TokenType.INT_ATTR:
+				toElement.setAttribute(cursor.getName().getLocalPart(), cursor.getTextValue());
+				break;
+			case TokenType.INT_COMMENT:
+				toElement.appendChild(doc.createComment(cursor.getTextValue()));
+				break;
+			case TokenType.INT_START:
+				Element childElement = doc.createElement(cursor.getName().getLocalPart());
+				toElement.appendChild(childElement);
+				serialize(cursor, childElement);
+				break;
+			case TokenType.INT_TEXT:
+				toElement.appendChild(doc.createTextNode(cursor.getChars()));
+				break;
+			case TokenType.INT_END:
+			case TokenType.INT_STARTDOC:
+			case TokenType.INT_ENDDOC:
+			case TokenType.INT_NONE:
+				return;
+			case TokenType.INT_PROCINST:
+			case TokenType.INT_NAMESPACE:
+			default:
+				break;
+			}
+		}
+	}
 }

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -34,17 +34,20 @@
  * defined using the base &lt;listener&gt; type, mapping all it's associated
  * &lt;property&gt; values (including those of the associated bus and provider) onto the listener
  * ConfigTree as attributes.
+ * <p/>
+ * This is effectively like the base transform - if we don't have a mapper for the listener, this one is applied.
  * 
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
 public class UntypedListenerMapper {
 
 	/**
-	 * @param root
-	 * @param listener
-	 * @param model
-	 * @return
-	 * @throws ConfigurationException 
+	 * Perform the mapping.
+	 * @param root The "ConfigTree" configuration root node.
+	 * @param listener The listener to be mapped into the ConfigTree.
+	 * @param model The configuration model from which the mapping is being performed.
+	 * @return The ConfigTree listener configuration node.
+	 * @throws ConfigurationException Invalid listener configuration.
 	 */
 	public static Element map(Element root, Listener listener, XMLBeansModel model) throws ConfigurationException {
 		Element listenerNode = YADOMUtil.addElement(root, "listener-config");
@@ -54,6 +57,9 @@
 		// Map the <property> elements targeted at the listener.
 		MapperUtil.mapProperties(listener, listenerNode, model);
 		
+		// Remove any empty attributes set on the listener config...
+		YADOMUtil.removeEmptyAttributes(listenerNode);
+		
 		return listenerNode;
 	}
 }

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -75,14 +75,14 @@
 		controller.start();
 		int deciSeconds=0;
 		//wait till the file files are there, or timeout after 8 seconds
-		while (true) {
+		while (!configurationController.hasEnded()) {
 			if (listenerFile.exists() && (gatewayFile.exists())){
 				break;
 			} else {
-				if (deciSeconds++>80) {
+				if (deciSeconds++>8) {
 					break;
 				} else {
-					Thread.sleep(100);
+					Thread.sleep(1000);
 				}
 			}	
 		}

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-19 13:26:25 UTC (rev 8401)
@@ -27,6 +27,7 @@
 
 import junit.framework.TestCase;
 
+import org.jboss.internal.soa.esb.util.StreamUtils;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.jboss.soa.esb.listeners.config.JmsBusDocument.JmsBus;
@@ -67,11 +68,13 @@
 		
 		gatewayConfig = new File(outdir, Generator.ESB_CONFIG_GATEWAY_XML_FILE);
 		assertTrue(gatewayConfig.exists());
-		System.out.println(FileUtil.readTextFile(gatewayConfig));
+		String expectedGatewayConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_gateways.xml")));
+		assertEquals(expectedGatewayConfig, FileUtil.readTextFile(gatewayConfig));
 		
 		awareConfig = new File(outdir, Generator.ESB_CONFIG_XML_FILE);
 		assertTrue(awareConfig.exists());
-		System.out.println(FileUtil.readTextFile(awareConfig));
+		String expectedESBAwareConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_esbaware.xml")));
+		assertEquals(expectedESBAwareConfig, FileUtil.readTextFile(awareConfig));
 	}
 	
 	public void test_model() throws ConfigurationException, IOException {

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml	2006-12-19 13:26:25 UTC (rev 8401)
@@ -50,6 +50,16 @@
 			<actions>    	    
 				<action name="TestDefaultRouteAction" process="route" class="org.jboss.soa.esb.actions.CbrProxyAction">
 					<property name="propName" value="propValue" />
+					<property name="propName">
+						This is some complex..
+						<!-- property -->
+						value.
+						<xxxx>
+							boooo
+							<yyyy/>
+						</xxxx>
+						<![CDATA[ Some CDATA data...]]>
+					</property>
 				</action>
 			</actions>
 			

Added: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_esbaware.xml	2006-12-19 13:26:25 UTC (rev 8401)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	NOTE: DO NOT MODIFY
+	This file was auto-generated.
+-->
+<jbossesb-listeners>
+<jms-listener-config connection-factory="ConnectionFactory" destination-name="queue/B" destination-type="topic" epr-description="Bank-Listener" jndi-URL="jnp://localhost:1099" listenerClass="org.jboss.soa.esb.listeners.message.JmsQueueListener" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.CbrProxyAction" process="route" propName="propValue">
+						This is some complex..
+						<!-- property -->
+						value.
+						<xxxx>
+							boooo
+							<yyyy/>
+						</xxxx>
+						 Some CDATA data...
+					</action>
+</jms-listener-config>
+<listener-config epr-description="Bank-Listener-Generic" my-generic-bus="my-generic-bus#someattribvalue" my-generic-listener="my-generic-listener#someattribvalue" my-generic-provider="my-generic-provider#someattribvalue" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation">
+<action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.CbrProxyAction" process="route" propName="propValue">
+						This is some complex..
+						<!-- property -->
+						value.
+						<xxxx>
+							boooo
+							<yyyy/>
+						</xxxx>
+						 Some CDATA data...
+					</action>
+</listener-config>
+</jbossesb-listeners>

Added: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01_gateways.xml	2006-12-19 13:26:25 UTC (rev 8401)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	NOTE: DO NOT MODIFY
+	This file was auto-generated.
+-->
+<jbossesb-gateways>
+<jms-listener-config connection-factory="com.xyz.provider.XYZConnectionFactory" destination-name="queue/A" destination-type="queue" gatewayClass="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener" jndi-URL="xyz://server1:9876" jndi-context-factory="com.xyz.provider.NamingContextFactory" jndi-pkg-prefix="com.xyz" target-service-category="Bank" target-service-name="Reconciliation"/>
+</jbossesb-gateways>

Modified: labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd
===================================================================
--- labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd	2006-12-19 12:29:48 UTC (rev 8400)
+++ labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd	2006-12-19 13:26:25 UTC (rev 8401)
@@ -27,8 +27,12 @@
 	    	<xsd:documentation xml:lang="en">A simple name-value pair.</xsd:documentation>
 	    </xsd:annotation>
 		<xsd:complexType>
-			<xsd:attribute name="name" use="required" type="xsd:string"/>
-			<xsd:attribute name="value" type="xsd:string"/>
+			<xsd:complexContent>
+				<xsd:extension base="xsd:anyType">
+					<xsd:attribute name="name" use="required" type="xsd:string"/>
+					<xsd:attribute name="value" type="xsd:string"/>
+				</xsd:extension>
+			</xsd:complexContent>
 		</xsd:complexType>
 	</xsd:element>
 	
@@ -38,7 +42,7 @@
 
 	<xsd:element name="providers">
 	    <xsd:annotation>
-	    <xsd:documentation xml:lang="en">A container for the providers referenced in the jbossesb configfile</xsd:documentation>
+	    <xsd:documentation xml:lang="en">A container for the providers referenced in the jbossesb config file</xsd:documentation>
 	    </xsd:annotation>
 		<xsd:complexType>
 			<xsd:sequence>
@@ -59,14 +63,14 @@
 	
 	<xsd:complexType name="bus">
 	    <xsd:annotation>
-	    	<xsd:documentation xml:lang="en">A bus (also called channel by others) is a how a one application communicates with another application (JMS, FTP, HTTP, etc)</xsd:documentation>
+	    	<xsd:documentation xml:lang="en">A bus (also called "channel" by others) is a means by which Services communicate with each other (JMS, FTP, HTTP, etc).</xsd:documentation>
 	    </xsd:annotation>
 		<xsd:sequence>
 			<xsd:element ref="jesb:property" minOccurs="0" maxOccurs="unbounded"/>
 		</xsd:sequence>
 		<xsd:attribute name="busid" use="required" type="xsd:string">
 			<xsd:annotation>
-				<xsd:documentation xml:lang="en">An id such that this bus can be referenced by services.</xsd:documentation><xsd:appinfo>
+				<xsd:documentation xml:lang="en">An id such that this bus can be referenced by Service listn.</xsd:documentation><xsd:appinfo>
 			</xsd:appinfo></xsd:annotation>
 		</xsd:attribute>
 	</xsd:complexType>




More information about the jboss-svn-commits mailing list