[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><serverName></i>-esb-config.xml
- * (ESB Aware Listeners configuration) and <i><serverName></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