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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 13 10:40:16 EST 2006


Author: tfennelly
Date: 2006-12-13 10:40:05 -0500 (Wed, 13 Dec 2006)
New Revision: 8289

Added:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java
Removed:
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.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/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
   labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb.xsd
   labs/jbossesb/trunk/product/lib/ext/jbosesb-config-model.jar
Log:
some more xsd changes

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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -101,11 +101,8 @@
 					XmlValidator validator = new MockXmlValidatorImpl();
 					if (validator.validate(xmlInputSource)) {
 						Generator generator = new Generator(new ByteArrayInputStream(configXml.getBytes()));
-						List<String> servers = generator.getServers();
-						mLogger.log(Priority.INFO, servers);
-						String firstServer = servers.iterator().next();
 						File outputDir = new File(".");
-						generator.generate(firstServer, outputDir);
+						generator.generate(outputDir);
 					} else {
 						mLogger.log(Priority.ERROR, "Could not validate.");
 					}

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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -21,29 +21,44 @@
 
 package org.jboss.soa.esb.listeners.config;
 
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 
 /**
+ * ESB Aware Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the ESB Aware Listeners. 
  * 
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
 class ESBAwareGenerator {
 
 	/**
-	 * @param model
-	 * @param serverName 
+	 * XMLBeans based configuration model instance.
 	 */
-	protected ESBAwareGenerator(XMLBeansModel model, String serverName) {
-		// TODO Auto-generated constructor stub
+	private XMLBeansModel model;
+	
+	/**
+	 * Public constructor.
+	 * @param model XMLBeans based configuration model instance.
+	 */
+	protected ESBAwareGenerator(XMLBeansModel model) {
+		this.model = model;
 	}
 
 	/**
-	 * @return
+	 * Generate the configuration DOM for the target Server.
+	 * @return The configuration DOM.
+	 * @throws ConfigurationException Error creating configuration. 
 	 */
-	protected Document generate() {
-		// TODO Auto-generated method stub
-		return null;
+	protected Document generate() throws ConfigurationException {
+		Document doc = YADOMUtil.createDocument();
+		Element root = YADOMUtil.addElement(doc, "jbossesb");
+
+		
+		return doc;
 	}
 
 }

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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -21,29 +21,46 @@
 
 package org.jboss.soa.esb.listeners.config;
 
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 
 /**
+ * Gateway Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the Gateways Listeners. 
  * 
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
 class GatewayGenerator {
 
 	/**
-	 * @param model
-	 * @param serverName
+	 * XMLBeans based configuration model instance.
 	 */
-	protected GatewayGenerator(XMLBeansModel model, String serverName) {
-		// TODO Auto-generated constructor stub
+	private XMLBeansModel model;
+	
+	/**
+	 * Public constructor.
+	 * @param model XMLBeans based configuration model instance.
+	 */
+	protected GatewayGenerator(XMLBeansModel model) {
+		this.model = model;
 	}
 
 	/**
-	 * @return
+	 * Generate the configuration DOM for the target Server.
+	 * @return The configuration DOM.
+	 * @throws ConfigurationException Error creating configuration. 
 	 */
-	protected Document generate() {
-		// TODO Auto-generated method stub
-		return null;
+	protected Document generate() throws ConfigurationException {
+		Document doc = YADOMUtil.createDocument();
+
+		Element element = YADOMUtil.addElement(doc, "esb-config");
+		
+		// TODO: Add the listener configuration nodes....
+		
+		return doc;
 	}
 
 }

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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/Generator.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -24,13 +24,14 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
 
 import org.apache.xmlbeans.XmlException;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.JbossesbDocument;
-import org.jboss.soa.esb.listeners.config.ServerDocument.Server;
+//import org.jboss.soa.esb.listeners.config.BusDocument.Bus;
+import org.jboss.soa.esb.listeners.config.JbossesbDocument.Jbossesb;
+//import org.jboss.soa.esb.listeners.config.ListenerDocument.Listener;
+//import org.jboss.soa.esb.listeners.config.ServerDocument.Server;
 import org.w3c.dom.Document;
 
 /**
@@ -46,6 +47,14 @@
 public class Generator {
 	
 	/**
+	 * Gateway Listeners config file.
+	 */
+	public static final String ESB_CONFIG_GATEWAY_XML_FILE = "esb-config-gateway.xml";
+	/**
+	 * ESB Aware Listeners config file.
+	 */
+	public static final String ESB_CONFIG_XML_FILE = "esb-config.xml";
+	/**
 	 * Configuration model.
 	 */
 	private XMLBeansModel model;
@@ -75,27 +84,19 @@
 	}
 	
 	/**
-	 * Generate the configuration set for the named server in the supplied output directory.
+	 * Generate the configuration set in the supplied output directory.
 	 * <p/>
-	 * The names of the generated files will be <i>&lt;serverName&gt;</i>-esb-config.xml
-	 * (ESB Aware Listeners configuration) and <i>&lt;serverName&gt;</i>-esb-config-gateway.xml
-	 * (Gateway Listeners configuration).
+	 * The names of the generated files will be esb-config.xml (ESB Aware Listeners configuration)
+	 * and esb-config-gateway.xml (Gateway Listeners configuration).
 	 * 
-	 * @param serverName The server name.
 	 * @param outdir The output directory to where the configuration set is to be generated.
 	 * The directory will be created if it doesn't already exist.
 	 * @throws ConfigurationException Failed to generate configuration set.
 	 */
-	public void generate(String serverName, File outdir) throws ConfigurationException {
-		if(serverName == null) {
-			throw new IllegalArgumentException("null 'serverName' arg in method call.");
-		}
+	public void generate(File outdir) throws ConfigurationException {
 		if(outdir == null) {
 			throw new IllegalArgumentException("null 'outdir' arg in method call.");
 		}
-		if(!model.getServers().contains(serverName)) {
-			throw new IllegalArgumentException("No Server configs found for 'serverName' [" + serverName + "].");
-		}
 		if(!outdir.exists()) {
 			outdir.mkdirs();
 			if(!outdir.exists()) {
@@ -106,27 +107,17 @@
 			throw new IllegalArgumentException("'outdir' exists, but is not a directory.");
 		}
 
-		// Generate the configuration for the ESB Aware listeners...
-		ESBAwareGenerator awareGenerator = new ESBAwareGenerator(model, serverName);
-		@SuppressWarnings("unused")
-		Document awareConfig = awareGenerator.generate();
-		// TODO: serialise config to outDir...
-
-		// Generate the configuration for the ESB Aware listeners...
-		GatewayGenerator gatewayGenerator = new GatewayGenerator(model, serverName);
-		@SuppressWarnings("unused")
+		// Generate and serialise the configuration for the Gateway listeners...
+		GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
 		Document gatewayConfig = gatewayGenerator.generate();
-		// TODO: serialise config to outDir...
+		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();
+		YADOMUtil.serialize(awareConfig, outdir, ESB_CONFIG_XML_FILE);
 	}
 	
-	/**
-	 * Get the list of server names for which the configuration instance (supplied at 
-	 * construction)specifies configurations.
-	 * @return List of server names.
-	 */
-	public List<String> getServers() {
-		return model.getServers();
-	}
 	
 	/**
 	 * XMLBeans based model implementation.
@@ -138,35 +129,14 @@
 		/**
 		 * XMLBeans config model instance.
 		 */
-		private JbossesbDocument xmlBeansDoc;
-		/**
-		 * Cache of server names for the server configs defined in the configuration.
-		 */
-		private List<String> serverNames;
+		private Jbossesb jbossesb;
 		
 		/**
 		 * Constructor.
-		 * @param xmlBeansDoc XMLBeans config model.
+		 * @param jbossesb XMLBeans config model.
 		 */
 		private XMLBeansModel(JbossesbDocument xmlBeansDoc) {
-			this.xmlBeansDoc = xmlBeansDoc;
+			this.jbossesb = xmlBeansDoc.getJbossesb();
 		}
-
-		/**
-		 * Get the list of server names.
-		 * @return List of server names.
-		 */
-		public List<String> getServers() {
-			if(serverNames == null) {
-				Server[] servers = xmlBeansDoc.getJbossesb().getServers().getServerArray();
-				serverNames = new ArrayList<String>();
-				
-				for(Server server : servers) {
-					serverNames.add(server.getName());
-				}
-			}
-			
-			return serverNames;
-		}
 	}
 }

Added: 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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/YADOMUtil.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config;
+
+import java.io.File;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * Yet another set of DOM utility methods. 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+class YADOMUtil {
+
+	// If there are another set of the same utilities somewhere, or another DOMUtil type class
+	// that we can add them too, we should do that :-)
+	
+	/**
+	 * Create a new W3C Document.
+	 * <p/>
+	 * Handles exceptions etc.
+	 * @return The new Document instance.
+	 * @throws ConfigurationException 
+	 */
+	protected static Document createDocument() throws ConfigurationException {
+		Document doc = null;
+		
+		try {
+			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+		} catch (ParserConfigurationException e) {
+			throw new ConfigurationException("Failed to create ESB Configuration Document instance.", e);
+		}
+		
+		return doc;
+	}
+
+	/**
+	 * Add an Element node to the supplied parent name.
+	 * @param parent The parent to to which the new Element node is to be added.
+	 * @param elementName The name of the Element to be added.
+	 * @return The new Element.
+	 */
+	protected static Element addElement(Node parent, String elementName) {
+		Element element = null;
+		
+		if(parent instanceof Document) {
+			element = ((Document)parent).createElement(elementName);
+		} else {
+			element = parent.getOwnerDocument().createElement(elementName);
+		}
+		parent.appendChild(element);
+		
+		return element;
+	}
+
+	/**
+	 * Serialize the supplied Document to the specified file in the specified output directory.
+	 * @param doc The document 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.
+	 */
+	protected static void serialize(Document doc, File outdir, String fileName) throws ConfigurationException {
+		DOMSource domSource = new DOMSource(doc);
+		StreamResult streamRes = new StreamResult(new File(outdir, fileName));
+		
+		try {
+			TransformerFactory.newInstance().newTransformer().transform(domSource, streamRes);
+		} catch (Exception e) {
+			throw new ConfigurationException("Failed to serialize ESB Configuration Document instance.", e);
+		}
+	}
+}

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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java	2006-12-13 15:40:05 UTC (rev 8289)
@@ -23,7 +23,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.List;
 
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.listeners.config.Generator;
@@ -37,8 +36,8 @@
 public class GeneratorUnitTest extends TestCase {
 	
 	private File outdir = new File("test-outdir");
-	private File awareConfig;
 	private File gatewayConfig;
+	private File awareConfig;
 
 	public void test_constructor() throws ConfigurationException, IOException {
 		try {
@@ -49,33 +48,32 @@
 		}
 	}
 	
-	public void test_parse() throws ConfigurationException, IOException {
-		Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_01.xml"));
-		
-		List<String> serverNames = generator.getServers();
-		assertEquals(3, serverNames.size());
-		assertEquals("fileBankServer", serverNames.get(0));
-		assertEquals("inhouse-jboss-4.0.4", serverNames.get(1));
-		assertEquals("loanbroker-listener", serverNames.get(2));
+	public void test_generate_badagrs() throws ConfigurationException, IOException {
+		test_generate_badargs(null, "null 'outdir' arg in method call");
+		test_generate_badargs(new File("build.xml"), "'outdir' exists, but is not a directory");
 	}
 	
-	public void test_generate() throws ConfigurationException, IOException {
-		test_generate_badargs(null, outdir, "");
-
+	public void test_generate_files() throws ConfigurationException, IOException {
 		@SuppressWarnings("unused")
 		Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_01.xml"));
+		
+		generator.generate(outdir);
+		gatewayConfig = new File(outdir, Generator.ESB_CONFIG_GATEWAY_XML_FILE);
+		assertTrue(gatewayConfig.exists());
+		awareConfig = new File(outdir, Generator.ESB_CONFIG_XML_FILE);
+		assertTrue(awareConfig.exists());
 	}
-
-	private void test_generate_badargs(String serverName, File outdir, String expectedMessage) throws ConfigurationException, IOException {
+	
+	private void test_generate_badargs(File outdir, String expectedMessage) throws ConfigurationException, IOException {
 		Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_01.xml"));
 
 		try {
-			generator.generate(serverName, outdir);
+			generator.generate(outdir);
 			fail("Expected IllegalArgumentException.");
 		} catch(IllegalArgumentException e) {
 			// Expected
 			if(!e.getMessage().startsWith(expectedMessage)) {
-				fail("Unexpected exception message.  Expected message to start with [" + expectedMessage + "].  Message was " + e.getMessage());
+				fail("Unexpected exception message.  Expected message to start with [" + expectedMessage + "].  Message was [" + e.getMessage() + "].");
 			}
 		}
 	}

Deleted: 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-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml	2006-12-13 15:40:05 UTC (rev 8289)
@@ -1,41 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://www.jboss.org/soa/esb/listeners/config" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">  
-	<hosts>
-		<host name = "filebank" dnsName = "localhost"/>
-		<host name = "jmsbank" dnsName = "localhost"/>
-		<host name = "loanbroker" dnsName = "localhost"/>
-		<host name = "jms-provider" dnsName = "localhost"/>  
-	</hosts>  
-	<servers>    
-		<server name = "fileBankServer" host = "fileBank" appserver = "jboss-4.0.3SP1">    
-			<properties>    
-				<property name = "java.naming.provider.url" value = "localhost:1099"/>    
-				<property name = "java.naming.factory.initial" value = "org.jnp.interfaces.NamingContextFactory"/>    
-				<property name = "java.naming.factory.url.pkgs" value = "org.jboss.naming:org.jnp.interfaces"/>    
-			</properties>    
-		</server>   
-		<server name = "inhouse-jboss-4.0.4" host = "jms-provider" appserver = "jboss-4.0.4">    
-			<properties>
-				<property name = "java.naming.provider.url" value = "localhost:1099"/>
-				<property name = "java.naming.factory.initial" value = "org.jnp.interfaces.NamingContextFactory"/>
-				<property name = "java.naming.factory.url.pkgs" value = "org.jboss.naming:org.jnp.interfaces"/>    
-			</properties>    
-		</server>    
-		<server name = "loanbroker-listener" host = "loanbroker" appserver = "jbossesb"/>    
-	</servers>    
-	<buses>    
-		<bus name = "bank-jms-channel" server = "fileBankServer" resourceType = "QUEUE" userName = "" password = ""/>    
-		<bus name = "bank-ftp-channel" server = "inhouse-jboss-4.0.4" resourceType = "FTP" userName = "kurt" password = "secret"/>    
-	</buses>    
-	<services>    
-		<service name = "filebank-gateway" category = "gateway" server = "loanbroker-listener" description = "This listener picks up files deposited by the fileBank" class = "org.jboss.soa.esb.FileBankGateway">    	  
-			<listeners>    	    
-				<listener description = "A File-Based listener" bus = "bank-ftp-bus"/>    	    
-				<listener description = "A JMS-Based listener" bus = "bank-jms-bus"/>    	  
-			</listeners>    	  
-			<actions>    	    
-				<action name = "TestDefaultRouteAction" process = "route" class = "org.jboss.soa.esb.actions.CbrProxyAction" service-category = "MessageRouting" service-name = "ContentBasedRoutingService"/>    
-			</actions>    
-		</service>    
-	</services>
-</jbossesb>
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb.xsd
===================================================================
--- labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb.xsd	2006-12-13 15:13:17 UTC (rev 8288)
+++ labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb.xsd	2006-12-13 15:40:05 UTC (rev 8289)
@@ -1,147 +1,91 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--Generated by Turbo XML 2.4.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 	 targetNamespace="http://www.jboss.org/soa/esb/listeners/config"
 	 xmlns:jesb="http://www.jboss.org/soa/esb/listeners/config"
-	 elementFormDefault = "qualified">
-	<xsd:element name = "jbossesb">
+	 elementFormDefault="qualified">
+	
+	
+	<xsd:element name="jbossesb" >
 		<xsd:complexType>
 			<xsd:sequence>
-				<xsd:element ref = "jesb:hosts"/>
-				<xsd:element ref = "jesb:servers"/>
-				<xsd:element ref = "jesb:buses"/>
-				<xsd:element ref = "jesb:services"/>
+				<xsd:element ref="jesb:services" minOccurs="1" maxOccurs="1"/>
 			</xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>
-	<xsd:element name = "hosts">
+	<xsd:element name="services">
 		<xsd:complexType>
 			<xsd:sequence>
-				<xsd:element ref = "jesb:host" maxOccurs = "unbounded"/>
+				<xsd:element ref="jesb:service" minOccurs="1" maxOccurs="unbounded"/>
 			</xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>
-	<xsd:element name = "host">
+	<xsd:element name="service">
 		<xsd:complexType>
-			<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "dnsName" use = "required">
-				<xsd:simpleType>
-					<xsd:restriction base = "xsd:NMTOKEN">
-						<xsd:enumeration value = "localhost"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "servers">
-		<xsd:complexType>
 			<xsd:sequence>
-				<xsd:element ref = "jesb:server" maxOccurs = "unbounded"/>
+				<xsd:element ref="jesb:listeners" minOccurs="1" maxOccurs="1"/>
+				<xsd:element ref="jesb:actions" minOccurs="1" maxOccurs="1"/>
 			</xsd:sequence>
+			<xsd:attribute name="category" use="required" type="xsd:string"/>
+			<xsd:attribute name="name" use="required" type="xsd:string"/>
+			<xsd:attribute name="description" use="required" type="xsd:string"/>
 		</xsd:complexType>
 	</xsd:element>
-	<xsd:element name = "server">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:properties" minOccurs="0"/>
-			</xsd:sequence>
-			<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "host" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "appserver" use = "required" type = "xsd:string"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "properties">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:property" maxOccurs = "unbounded"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "property">
-		<xsd:complexType>
-			<xsd:attribute name = "name" use = "required">
-				<xsd:simpleType>
-					<xsd:restriction base = "xsd:NMTOKEN">
-						<xsd:enumeration value = "java.naming.factory.initial"/>
-						<xsd:enumeration value = "java.naming.provider.url"/>
-						<xsd:enumeration value = "java.naming.factory.url.pkgs"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name = "value" use = "required">
-				<xsd:simpleType>
-					<xsd:restriction base = "xsd:NMTOKEN">
-						<xsd:enumeration value = "org.jnp.interfaces.NamingContextFactory"/>
-						<xsd:enumeration value = "localhost:1099"/>
-						<xsd:enumeration value = "org.jboss.naming:org.jnp.interfaces"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "buses">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:bus" maxOccurs = "unbounded"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "bus">
-		<xsd:complexType>
-			<xsd:attribute name = "password" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "resourceType" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "userName" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "server" use = "required" type = "xsd:string"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "services">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:service"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "service">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:listeners"/>
-				<xsd:element ref = "jesb:actions"/>
-			</xsd:sequence>
-			<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "description" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "category" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "class" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "server" use = "required" type = "xsd:string"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "listeners">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:listener" maxOccurs = "unbounded"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "listener">
-		<xsd:complexType>
-			<xsd:attribute name = "bus" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "description" use = "required" type = "xsd:string"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "actions">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:element ref = "jesb:action"/>
-			</xsd:sequence>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name = "action">
-		<xsd:complexType>
-			<xsd:attribute name = "service-category" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "service-name" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "class" use = "required" type = "xsd:string"/>
-			<xsd:attribute name = "process" use = "required" type = "xsd:string"/>
-		</xsd:complexType>
-	</xsd:element>
+
+	<xsd:element name="actions">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="jesb:action" minOccurs="1" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="action">
+		<xsd:complexType>
+			<xsd:attribute name="name" use="required" type="xsd:string"/>
+			<xsd:attribute name="class" use="required" type="xsd:string"/>
+			<xsd:attribute name="process" type="xsd:string"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="listeners">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="jesb:listener" maxOccurs="unbounded" minOccurs="1"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:complexType name="listener">
+		<xsd:complexContent>
+			<xsd:extension base="xsd:annotated">
+				<xsd:attribute name="name" use="required" type="xsd:string" />
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+	<xsd:element name="listener" type="jesb:listener" abstract="true"/>
+
+	<xsd:element name="jms-listener" substitutionGroup="jesb:listener">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:listener">
+					<xsd:attribute name="name" use="required" type="xsd:string" />
+					<xsd:attribute name="is-gateway" use="required" type="xsd:boolean" />
+					<xsd:attribute name="connection-factory" use="required" type="xsd:string" />
+					<xsd:attribute name="destination-type" use="required">
+						<xsd:simpleType>
+							<xsd:restriction base = "xsd:NMTOKEN">
+								<xsd:enumeration value = "QUEUE"/>
+								<xsd:enumeration value = "TOPIC"/>
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:attribute>
+					<xsd:attribute name="destination-name" use="required" type="xsd:string" />
+					<xsd:attribute name="jndi-context-factory" use="required" type="xsd:string" />
+					<xsd:attribute name="jndi-URL" use="required" type="xsd:anyURI" />
+					<xsd:attribute name="message-selector" type="xsd:string" />
+					<xsd:attribute name="maxThreads" use="required" type="xsd:int" />
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
 </xsd:schema>
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/lib/ext/jbosesb-config-model.jar
===================================================================
(Binary files differ)




More information about the jboss-svn-commits mailing list