[jboss-svn-commits] JBL Code SVN: r16211 - in labs/jbossesb/trunk/product: rosetta/src/org/jboss/soa/esb/listeners/config/mappers and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Oct 31 13:28:56 EDT 2007
Author: kevin.conner at jboss.com
Date: 2007-10-31 13:28:56 -0400 (Wed, 31 Oct 2007)
New Revision: 16211
Modified:
labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/META-INF/jboss-esb.xml
Log:
Added transactional SQL gateway: JBESB-1188
Modified: labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd
===================================================================
--- labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd 2007-10-31 17:19:59 UTC (rev 16210)
+++ labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd 2007-10-31 17:28:56 UTC (rev 16211)
@@ -1,1136 +1,1528 @@
<?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:jesb="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+<xsd:schema
+ xmlns:jesb="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Document root + some basic types.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Document root + some basic types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="jbossesb">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The jbossesb configuration for a single instance.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:providers"/>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:services"/>
- </xsd:sequence>
- <xsd:attribute default="180" name="parameterReloadSecs" use="optional"/>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="jbossesb">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The jbossesb configuration for a single instance.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:providers" />
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:services" />
+ </xsd:sequence>
+ <xsd:attribute default="180" name="parameterReloadSecs"
+ use="optional" />
+ </xsd:complexType>
+ </xsd:element>
- <xsd:element name="property">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A simple name-value pair.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="xsd:anyType">
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- <xsd:attribute name="value" type="xsd:string"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="property">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A simple name-value pair.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="xsd:anyType">
+ <xsd:attribute name="name" type="xsd:string"
+ use="required" />
+ <xsd:attribute name="value" type="xsd:string" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Provider and Bus base types.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Provider and Bus base types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="providers">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A container for the providers referenced in the jbossesb config file
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:provider"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:complexType abstract="true" name="provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Abstract provider.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property"/>
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- </xsd:complexType>
- <xsd:element abstract="true" name="provider" type="jesb:provider"/>
+ <xsd:element name="providers">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for the providers referenced in the jbossesb
+ config file
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:provider" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType abstract="true" name="provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Abstract provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ <xsd:element abstract="true" name="provider" type="jesb:provider" />
- <xsd:complexType name="bus-provider">
- <xsd:complexContent>
- <xsd:extension base="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A provider of a bus. So for instance you can have a jms-provider (JBossMQ) or an ftp-provider.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:bus"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="bus-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Generic Bus Provider.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:complexType name="bus-provider">
+ <xsd:complexContent>
+ <xsd:extension base="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A provider of a bus. So for instance you can
+ have a jms-provider (JBossMQ) or an
+ ftp-provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:bus" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="bus-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Generic Bus Provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:complexType name="bus">
- <xsd:annotation>
- <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 maxOccurs="unbounded" minOccurs="0" ref="jesb:property"/>
- </xsd:sequence>
- <xsd:attribute name="busid" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">An id such that this bus can be referenced by Service listn.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- <xsd:element name="bus" type="jesb:bus"/>
+ <xsd:complexType name="bus">
+ <xsd:annotation>
+ <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 maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="busid" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An id such that this bus can be referenced by
+ Service listn.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element name="bus" type="jesb:bus" />
- <xsd:element name="schedule-provider" substitutionGroup="jesb:provider">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:provider">
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:schedule"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="schedule-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:provider">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:schedule" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:complexType abstract="true" name="schedule">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule Configuration.</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property"/>
- </xsd:sequence>
- <xsd:attribute name="scheduleid" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">An id such that this schedule can be referenced by Service listner.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="startDate" type="xsd:dateTime" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule start time and date.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="endDate" type="xsd:dateTime" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule end time and date.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- <xsd:element abstract="true" name="schedule" type="jesb:schedule"/>
+ <xsd:complexType abstract="true" name="schedule">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule Configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="scheduleid" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An id such that this schedule can be referenced by
+ Service listner.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="startDate" type="xsd:dateTime"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule start time and date.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="endDate" type="xsd:dateTime"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule end time and date.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element abstract="true" name="schedule" type="jesb:schedule" />
- <xsd:element name="simple-schedule" substitutionGroup="jesb:schedule">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:schedule">
- <xsd:attribute default="10" name="frequency" type="xsd:long" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule frequency, in seconds.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="-1" name="execCount" type="xsd:int" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule execution count. -1 to execute indefinitely.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="simple-schedule"
+ substitutionGroup="jesb:schedule">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:schedule">
+ <xsd:attribute default="10" name="frequency"
+ type="xsd:long" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule frequency, in seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="-1" name="execCount"
+ type="xsd:int" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule execution count. -1 to execute
+ indefinitely.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:element name="cron-schedule" substitutionGroup="jesb:schedule">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:schedule">
- <xsd:attribute name="cronExpression" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Schedule CRON expression.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="cron-schedule"
+ substitutionGroup="jesb:schedule">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:schedule">
+ <xsd:attribute name="cronExpression"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule CRON expression.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Service and Action types.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Service and Action types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="services">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A container for services.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:service"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="service">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A service has listener or gateways and a list of actions.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="1" ref="jesb:listeners"/>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:actions"/>
- </xsd:sequence>
- <xsd:attribute name="category" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The service category which will be used to store a reference to
- this service in the registry.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="name" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The service name which will be used to store a reference to this
- service in the registry.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="description" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The service description which stored with this service in the
- registry, so that the purpose of this service can be understood by a human.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="services">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for services.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:service" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="service">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A service has listener or gateways and a list of
+ actions.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="1"
+ ref="jesb:listeners" />
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:actions" />
+ </xsd:sequence>
+ <xsd:attribute name="category" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service category which will be used to store
+ a reference to this service in the registry.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="name" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service name which will be used to store a
+ reference to this service in the registry.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="description" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service description which stored with this
+ service in the registry, so that the purpose of
+ this service can be understood by a human.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:simpleType name="mepType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="RequestResponse"/>
- <xsd:enumeration value="OneWay"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:element name="actions">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A container for actions belonging to this service.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1"
- ref="jesb:action" />
- </xsd:sequence>
- <xsd:attribute name="mep" type="jesb:mepType"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="action">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">An action which will act on the message when it is received by the service.
- Actions can be chained. Hence you can specify a list of actions. Action are 'pluggable' and can be
- custom code, however
- JBossESB comes with a list of predefined actions.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property"/>
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The logical name of the action.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="class" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The full classname of the java class in which this action is
- defined.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="process" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The name of the method on the action that needs to be called when
- the message is received.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
+ <xsd:simpleType name="mepType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="RequestResponse" />
+ <xsd:enumeration value="OneWay" />
+ </xsd:restriction>
+ </xsd:simpleType>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Listener base types.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="actions">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for actions belonging to this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:action" />
+ </xsd:sequence>
+ <xsd:attribute name="mep" type="jesb:mepType" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="action">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An action which will act on the message when it is
+ received by the service. Actions can be chained. Hence
+ you can specify a list of actions. Action are
+ 'pluggable' and can be custom code, however JBossESB
+ comes with a list of predefined actions.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The logical name of the action.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="class" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The full classname of the java class in which
+ this action is defined.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="process" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The name of the method on the action that needs
+ to be called when the message is received.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:element name="listeners">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A container for all listener for a service.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:listener"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:complexType name="listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A listener is a listener or a gateway. The listener defines to which bus
- the service is listening. The service can simultaneniously listen to multiple buses.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property"/>
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The logical name of the listener.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="$not-defined$" name="busidref" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A reference to an existing bus, as defined in the 'buses' section of
- this jbossesb config.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="1" name="maxThreads" type="xsd:int" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The number of threads which will be started for this listener.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="false" name="is-gateway" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">true if the listener is a gateway. A gateway is an ESB-Unware listener,
- while a
- listener is ESB-aware and as such expects jbossesb formatted messages.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- <xsd:element name="listener" type="jesb:listener"/>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Listener base types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:complexType abstract="true" name="abstract-scheduled-listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Abstract scheduled listener.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:attribute default="-1" name="poll-frequency-seconds" type="xsd:int" use="optional"> <!-- Purposely defaults to -1 -->
- <xsd:annotation>
- <xsd:documentation xml:lang="en">DEPRECATED (use "schedule-frequency" or "scheduleidref"): The frequency with which this listener is scheduled (in seconds). Defaults to 10 seconds.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="-1" name="schedule-frequency" type="xsd:int" use="optional"> <!-- Purposely defaults to -1 -->
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The frequency with which this listener is scheduled (in seconds). Defaults to 10 seconds.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="scheduleidref" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The id reference for the schedule that's driving this scheduled listener.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
+ <xsd:element name="listeners">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for all listener for a service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:listener" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A listener is a listener or a gateway. The listener
+ defines to which bus the service is listening. The
+ service can simultaneniously listen to multiple buses.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The logical name of the listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="$not-defined$" name="busidref"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A reference to an existing bus, as defined in the
+ 'buses' section of this jbossesb config.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="1" name="maxThreads" type="xsd:int"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The number of threads which will be started for this
+ listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="false" name="is-gateway"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ true if the listener is a gateway. A gateway is an
+ ESB-Unware listener, while a listener is ESB-aware
+ and as such expects jbossesb formatted messages.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element name="listener" type="jesb:listener" />
- <xsd:element name="scheduled-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Scheduled listener.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:abstract-scheduled-listener">
- <xsd:attribute name="event-processor" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Message Composer class name.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="transacted" type="xsd:boolean">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Should the schedule execute in a transacted environment?</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:complexType abstract="true"
+ name="abstract-scheduled-listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Abstract scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:attribute default="-1"
+ name="poll-frequency-seconds" type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ DEPRECATED (use "schedule-frequency" or
+ "scheduleidref"): The frequency with which
+ this listener is scheduled (in seconds).
+ Defaults to 10 seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="-1" name="schedule-frequency"
+ type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The frequency with which this listener is
+ scheduled (in seconds). Defaults to 10
+ seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="scheduleidref" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The id reference for the schedule that's
+ driving this scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
- <!-- JCA Types -->
- <xsd:element name="activation-config">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Activation configuration for jca bus or listener.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:property"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="jca-gateway" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific gateway using JCA inflow.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:activation-config"/>
- </xsd:sequence>
- <xsd:attribute name="adapter" type="xsd:string" use="required"/>
- <xsd:attribute name="endpointClass" type="xsd:string" use="required"/>
- <xsd:attribute name="messagingType" type="xsd:string" use="optional"/>
- <xsd:attribute name="jcaBridge" type="xsd:string" use="optional"/>
- <xsd:attribute name="transacted" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="scheduled-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:attribute name="event-processor"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Message Composer class name.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Should the schedule execute in a
+ transacted environment?
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- JMS Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <!-- JCA Types -->
+ <xsd:element name="activation-config">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Activation configuration for jca bus or listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:property" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jca-gateway" substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific gateway using JCA inflow.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:activation-config" />
+ </xsd:sequence>
+ <xsd:attribute name="adapter" type="xsd:string"
+ use="required" />
+ <xsd:attribute name="endpointClass"
+ type="xsd:string" use="required" />
+ <xsd:attribute name="messagingType"
+ type="xsd:string" use="optional" />
+ <xsd:attribute name="jcaBridge" type="xsd:string"
+ use="optional" />
+ <xsd:attribute name="transacted" type="xsd:string"
+ use="optional" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <xsd:element name="jms-message-filter">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A JMS filter can add information to a Queue, or Topic. For example you
- can defined a message-selector. However, you can also push the queue name and type into this
- filter given you did not already specify them in the jms-bus.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="dest-name" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Name of the Queue of Topic.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="dest-type" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A Queue delivers a message once, a topic broadcasts a message to
- all registered listeners.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:simpleType>
- <xsd:restriction base="xsd:NMTOKEN">
- <xsd:enumeration value="QUEUE"/>
- <xsd:enumeration value="TOPIC"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="selector" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A message-selector allows multiple listeners to register with the
- same queue/topic, but
- they will filter on this message-selector.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="persistent" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If false, JMS messages will be sent non-persistent. Default is to send messages with DeliveryMode.PERSISTENT.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="AUTO_ACKNOWLEDGE" name="acknowledge-mode" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">
- JMS Session acknowledge mode. Can be on of AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE, or
- DUPS_OK_ACKNOWLEDGE.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="jms-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A JMS-Bus is a specific instance of a bus using the JMS protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:jms-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:complexType name="jms-provider-type">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing JMS.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider">
- <xsd:attribute name="connection-factory" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The connection-factory used to lookup queues/topics in a
- naming directory (JNDI)
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="jndi-context-factory" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The context factory class the JBossESB will use to do
- naming lookups.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="jndi-pkg-prefix" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The pkg-prefix which will be used to do naming lookups. It
- is left empty by default.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="jndi-URL" type="xsd:anyURI">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The URL used to do naming lookups.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="jms-provider" substitutionGroup="jesb:provider" type="jesb:jms-provider-type"/>
-
- <xsd:element name="jms-jca-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing JMS through JCA inflow.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:jms-provider-type">
- <xsd:attribute name="adapter" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The artifact containing the resource adapter.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="endpointClass" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The class name of the JCA endpoint.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="messagingType" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The class name of the messaging specific interface.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="jcaBridge" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The class name of the JCA Bridge.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="transacted" type="xsd:boolean">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The transacted flag.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="jms-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific listener using the jms protocol.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:jms-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ JMS Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- FS Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="fs-message-filter">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A FS filter.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="directory" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file share that is monitored for incoming new files.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="input-suffix" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix used to filter files targeted for comsumption by
- the ESB (note: add the dot, so something like '.esbIn').
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbInProcess" name="work-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix used while the file is being process, so that
- another thread or process won't pick it up too.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="post-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, the file will be deleted after it is processed. Note that
- in that case post-directory and post-suffix have no effect.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="processed" name="post-directory" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file share to which the file will be moved after it is
- processed by the ESB
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbDone" name="post-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix which will be added to the file name after it is
- processed.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="error-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, the file will be deleted if an error occurs during
- processing. Note that in that case error-directory and error-suffix have no effect.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="processed" name="error-directory" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file share to which the file will be moved after when an error
- occurs during processing.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbERROR" name="error-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix which will be added to the file name after an error
- occurs during processing.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="fs-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A Fs-Bus is a specific instance of a bus using the File protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:fs-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="fs-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing a file system (local fileshare
- or NAS).
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="fs-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific listener using the file protocol.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:abstract-scheduled-listener">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:fs-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- FTP Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="ftp-message-filter">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A FTP filter.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="directory" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The ftp directory that is monitored for incoming new files.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="username" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The username used to access the ftp server</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="password" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The password used to access the ftp server.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="input-suffix" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix used to filter files targeted for comsumption by
- the ESB (note: add the dot, so something like '.esbIn').
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbInProcess" name="work-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix used while the file is being process, so that
- another thread or process won't pick it up too.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="post-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, the file will be deleted after it is processed. Note that
- in that case post-directory and post-suffix have no effect.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="post-directory" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The ftp directory to which the file will be moved after it is
- processed by the ESB
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbDone" name="post-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix which will be added to the file name after it is
- processed.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="error-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, the file will be deleted if an error occurs during
- processing. Note that in that case error-directory and error-suffix have no effect.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="processed" name="error-directory" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The ftp directory to which the file will be moved after when an
- error occurs during processing.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default=".esbERROR" name="error-suffix" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The file suffix which will be added to the file name after an error
- occurs during processing.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="passive" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">This is an ftp server setting which may vary per session.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="ftp" name="protocol" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The protocol, can be sftp (SSH File Transfer Protocol), ftps (FTP
- over SLL) and ftp (to which it defaults).
- </xsd:documentation>
- </xsd:annotation>
- <xsd:simpleType>
- <xsd:restriction base="xsd:NMTOKEN">
- <xsd:enumeration value="ftp"/>
- <xsd:enumeration value="ftps"/>
- <xsd:enumeration value="sftp"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="certificate-url" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The url to a certificate, which can be needed for secure protocols
- (sftp and ftps).
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="false" name="read-only" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, the ftp server does not permit write opertations on files.
- Note that in this case the following properties have no effect: work-suffix, post-delete,
- post-directory, post-suffix, error-delete, error-directory, and error-suffix.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="ftp-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A FTP-Bus is a specific instance of a bus using the FTP protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:ftp-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="ftp-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing a ftp service.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider">
- <xsd:attribute name="hostname" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The ftp hostname, as it can be resolved by DNS.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="ftp-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific listener using the ftp protocol.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:abstract-scheduled-listener">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:ftp-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element name="jms-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A JMS filter can add information to a Queue, or Topic.
+ For example you can defined a message-selector. However,
+ you can also push the queue name and type into this
+ filter given you did not already specify them in the
+ jms-bus.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="dest-name" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Name of the Queue of Topic.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="dest-type" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Queue delivers a message once, a topic
+ broadcasts a message to all registered
+ listeners.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="QUEUE" />
+ <xsd:enumeration value="TOPIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="selector" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A message-selector allows multiple listeners to
+ register with the same queue/topic, but they
+ will filter on this message-selector.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="persistent"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If false, JMS messages will be sent
+ non-persistent. Default is to send messages with
+ DeliveryMode.PERSISTENT.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="AUTO_ACKNOWLEDGE"
+ name="acknowledge-mode" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JMS Session acknowledge mode. Can be on of
+ AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE,
+ or DUPS_OK_ACKNOWLEDGE.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jms-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A JMS-Bus is a specific instance of a bus using the JMS
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:jms-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="jms-provider-type">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing JMS.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="connection-factory"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The connection-factory used to lookup
+ queues/topics in a naming directory (JNDI)
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-context-factory"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The context factory class the JBossESB will
+ use to do naming lookups.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-pkg-prefix"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The pkg-prefix which will be used to do
+ naming lookups. It is left empty by default.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-URL" type="xsd:anyURI">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The URL used to do naming lookups.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="jms-provider" substitutionGroup="jesb:provider"
+ type="jesb:jms-provider-type" />
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- SQL Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="sql-message-filter">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A SQL filter.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="tablename" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The table in which esb message are stored.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="message_id" name="message-id-column" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A unique key (PK) in the table.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="message" name="message-column" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The field that holds the serialized message.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="status" name="status-column" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">This column contents ('P', 'W', 'E' or 'D') indicates if the row is
- pending (P), in process (W), in error(E) or done (D) if postDelete and/or errorDelete are 'true'
- rows might be deleted
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="where-condition" use="optional" type="xsd:string" default="">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A where clause, not including the word where, which is applied
- to the query.
+ <xsd:element name="jms-jca-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing JMS through
+ JCA inflow.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:jms-provider-type">
+ <xsd:attribute name="adapter" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The artifact containing the resource
+ adapter.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="endpointClass"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the JCA endpoint.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="messagingType"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the messaging specific
+ interface.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jcaBridge" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the JCA Bridge.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The transacted flag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jms-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the jms protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:jms-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ FS Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="fs-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FS filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="directory" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share that is monitored for incoming
+ new files.
</xsd:documentation>
- </xsd:annotation>
+ </xsd:annotation>
</xsd:attribute>
- <xsd:attribute name="order-by" use="optional" type="xsd:string" default="">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A where clause, not including the word where, which is applied
- to the query.
+ <xsd:attribute name="input-suffix" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
</xsd:documentation>
- </xsd:annotation>
+ </xsd:annotation>
</xsd:attribute>
- <xsd:attribute name="insert-timestamp-column" use="optional" type="xsd:string" default="insert_timestamp">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Holds the timestamp when the record was inserted.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="post-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, records will be deleted after processing.((e.g. no rows
- with a 'D' for done, in column defined in 'status_column')
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="true" name="error-delete" type="xsd:boolean" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">If true, records in error will be deleted after attempted picked up
- for processing.(e.g. no rows with a 'E' for error, in column defined in 'status_column')
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="sql-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A SQL-Bus is a specific instance of a bus using the SQL protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:sql-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="sql-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing a db service.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider">
- <xsd:attribute name="datasource" type="xsd:string" use="optional">
+ <xsd:attribute default=".esbInProcess" name="work-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="post-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share to which the file will be moved
+ after it is processed by the ESB
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbDone" name="post-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after it is processed.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="error-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share to which the file will be moved
+ after when an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbERROR" name="error-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Fs-Bus is a specific instance of a bus using the File
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:fs-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-provider" substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a file
+ system (local fileshare or NAS).
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-listener" substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the file protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:fs-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ FTP Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="ftp-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FTP filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="directory" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory that is monitored for incoming
+ new files.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="username" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The username used to access the ftp server
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="password" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The password used to access the ftp server.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="input-suffix" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbInProcess" name="work-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="post-directory" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory to which the file will be
+ moved after it is processed by the ESB
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbDone" name="post-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after it is processed.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="error-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory to which the file will be
+ moved after when an error occurs during
+ processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbERROR" name="error-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="passive" type="xsd:boolean"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This is an ftp server setting which may vary per
+ session.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="ftp" name="protocol"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The protocol, can be sftp (SSH File Transfer
+ Protocol), ftps (FTP over SLL) and ftp (to which
+ it defaults).
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="ftp" />
+ <xsd:enumeration value="ftps" />
+ <xsd:enumeration value="sftp" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="certificate-url" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The url to a certificate, which can be needed
+ for secure protocols (sftp and ftps).
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="false" name="read-only"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the ftp server does not permit write
+ opertations on files. Note that in this case the
+ following properties have no effect:
+ work-suffix, post-delete, post-directory,
+ post-suffix, error-delete, error-directory, and
+ error-suffix.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FTP-Bus is a specific instance of a bus using the FTP
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:ftp-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a ftp
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="hostname" type="xsd:string"
+ use="required">
<xsd:annotation>
- <xsd:documentation xml:lang="en">The name of the datasource.</xsd:documentation>
+ <xsd:documentation xml:lang="en">
+ The ftp hostname, as it can be resolved
+ by DNS.
+ </xsd:documentation>
</xsd:annotation>
</xsd:attribute>
- <xsd:attribute name="url" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The url needed to connect to the db.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="driver" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The driver needed to connect to the db.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="username" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The username used to access the database.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute name="password" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The password used to access the database.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="sql-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific listener using the SQL protocol.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:sql-message-filter"/>
- </xsd:sequence>
- <xsd:attribute default="10" name="poll-frequency-seconds" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The frequency with which this listener polls the db in
- seconds. Defaults to 10 seconds.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:simpleType>
- <xsd:restriction base="xsd:integer">
- <xsd:minExclusive value="0"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the ftp protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:ftp-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Hibernate Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="hibernate-message-filter">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A Hibernate filter.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name="classname" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The class name to monitor.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- <xsd:attribute default="message_id" name="event" type="xsd:string" use="optional">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A comma-separated list of events to intercept.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="hibernate-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A hibernate-bus is a specific instance of a bus using the Hibernate protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="1" ref="jesb:hibernate-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="hibernate-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific instance of a provider, providing a hibernate service.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider">
- <xsd:attribute name="hibernate-cfg-file" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The Hibernate configuration file to use.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="hibernate-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">A specific listener using the hibernate protocol.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:sequence>
- <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:hibernate-message-filter"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ SQL Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="sql-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A SQL filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="tablename" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The table in which esb message are stored.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="message_id" name="message-id-column"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A unique key (PK) in the table.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="message" name="message-column"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The field that holds the serialized message.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="status" name="status-column"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This column contents ('P', 'W', 'E' or 'D')
+ indicates if the row is pending (P), in process
+ (W), in error(E) or done (D) if postDelete
+ and/or errorDelete are 'true' rows might be
+ deleted
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="where-condition" use="optional"
+ type="xsd:string" default="">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A where clause, not including the word where,
+ which is applied to the query.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="order-by" use="optional"
+ type="xsd:string" default="">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A where clause, not including the word where,
+ which is applied to the query.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="insert-timestamp-column" use="optional"
+ type="xsd:string" default="insert_timestamp">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Holds the timestamp when the record was
+ inserted.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, records will be deleted after
+ processing.((e.g. no rows with a 'D' for done,
+ in column defined in 'status_column')
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, records in error will be deleted after
+ attempted picked up for processing.(e.g. no rows
+ with a 'E' for error, in column defined in
+ 'status_column')
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A SQL-Bus is a specific instance of a bus using the SQL
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:sql-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a db
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="datasource" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The name of the datasource.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="url" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The url needed to connect to the db.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="driver" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The driver needed to connect to the db.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="username" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The username used to access the
+ database.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="password" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The password used to access the
+ database.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The transacted flag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the SQL protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:sql-message-filter" />
+ </xsd:sequence>
+ <xsd:attribute default="10"
+ name="poll-frequency-seconds" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The frequency with which this listener
+ polls the db in seconds. Defaults to 10
+ seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:integer">
+ <xsd:minExclusive value="0" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Hibernate Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="hibernate-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Hibernate filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="classname" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name to monitor.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="message_id" name="event"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A comma-separated list of events to intercept.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A hibernate-bus is a specific instance of a bus using
+ the Hibernate protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:hibernate-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a hibernate
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="hibernate-cfg-file"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The Hibernate configuration file to use.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the hibernate protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:hibernate-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- JBoss Remoting Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="jbr-bus" substitutionGroup="jesb:bus">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">JBoss Remoting Bus</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus">
- <xsd:attribute name="port" type="xsd:int" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">JBoss Remoting Server listen port.</xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="jbr-provider" substitutionGroup="jesb:provider">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">JBoss Remoting Provider.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:bus-provider">
- <xsd:attribute name="protocol" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Jboss Remoting Listener/Server protocol.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:simpleType>
- <xsd:restriction base="xsd:NMTOKEN">
- <xsd:enumeration value="http"/>
- <xsd:enumeration value="socket"/>
- </xsd:restriction>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="host" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">JBoss Remoting Server bind address. When not specified,
- defaults to InetAddress.getLocalHost().getHostName().
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="jbr-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">JBoss Remoting Listener.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener"/>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
- Groovy Gateway Type Implementations.
- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
- <xsd:element name="groovy-listener" substitutionGroup="jesb:listener">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">Groovy Listener.</xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="jesb:listener">
- <xsd:attribute name="script" type="xsd:string" use="required">
- <xsd:annotation>
- <xsd:documentation xml:lang="en">The path (classpath) to the Groovy Gateway script. Or, the
- alias for the pre-packaged Groovy Gateway script.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:attribute>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
-
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ JBoss Remoting Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="jbr-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Bus
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:attribute name="port" type="xsd:int"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Server listen port.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jbr-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="protocol" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Jboss Remoting Listener/Server protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="http" />
+ <xsd:enumeration value="socket" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="host" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Server bind address. When
+ not specified, defaults to
+ InetAddress.getLocalHost().getHostName().
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jbr-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Groovy Gateway Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="groovy-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Groovy Listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:attribute name="script" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The path (classpath) to the Groovy
+ Gateway script. Or, the alias for the
+ pre-packaged Groovy Gateway script.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
</xsd:schema>
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java 2007-10-31 17:19:59 UTC (rev 16210)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java 2007-10-31 17:28:56 UTC (rev 16211)
@@ -94,6 +94,9 @@
}
}
listenerNode.setAttribute("pollLatencySeconds", String.valueOf(listener.getPollFrequencySeconds()));
+ if (provider.isSetTransacted()) {
+ listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(provider.getTransacted())) ;
+ }
// Map the standard listener attributes - common across all listener types...
MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
// Map the <property> elements targeted at the listener - from the listener itself.
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2007-10-31 17:19:59 UTC (rev 16210)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2007-10-31 17:28:56 UTC (rev 16211)
@@ -49,6 +49,8 @@
import org.jboss.soa.esb.addressing.MalformedEPRException;
import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.TransactionStrategy;
+import org.jboss.soa.esb.common.TransactionStrategyException;
import org.jboss.soa.esb.couriers.Courier;
import org.jboss.soa.esb.couriers.CourierException;
import org.jboss.soa.esb.couriers.CourierFactory;
@@ -95,6 +97,11 @@
*/
private static final long serialVersionUID = -4394272471377134121L;
+ /**
+ * The current transaction strategy
+ */
+ private TransactionStrategy transactionStrategy ;
+
public SqlTableGatewayListener(ConfigTree config)
throws ConfigurationException {
super(config);
@@ -150,93 +157,107 @@
+ Thread.currentThread().getName());
}
- do {
- for (Map<String, Object> row : pollForCandidates()) {
- _currentRow = row;
- // Try to mark as 'in process' - if unsuccessful, somebody else
- // got it first
- if (!changeStatusToWorking())
- continue;
-
- Throwable thrown = null;
- String text = null;
+ try {
+ do {
+ transactionStrategy.begin() ;
+ boolean rollbackOnly = true ;
try {
- Object obj = _processMethod.invoke(_composer, new Object[]
- {_currentRow});
- if (null == obj) {
- _logger.warn("Action class method <"
- + _processMethod.getName()
- + "> returned a null object");
- continue;
- }
- Message message = (Message) obj;
- Map<String, Object> params = new HashMap<String, Object>();
-
- params.put(Environment.GATEWAY_CONFIG, _config);
-
- message = FilterManager.getInstance().doOutputWork(message, params);
-
- boolean bSent = false;
- for (EPR current : _targetEprs) {
- _courier = CourierFactory.getCourier(current);
+ for (Map<String, Object> row : pollForCandidates()) {
+ _currentRow = row;
+ // Try to mark as 'in process' - if unsuccessful, somebody else
+ // got it first
+ if (!changeStatusToWorking())
+ continue;
+
+ Throwable thrown = null;
+ String text = null;
try {
- if (_courier.deliver(message)) {
- bSent = true;
- break;
+ Object obj = _processMethod.invoke(_composer, new Object[]
+ {_currentRow});
+ if (null == obj) {
+ _logger.warn("Action class method <"
+ + _processMethod.getName()
+ + "> returned a null object");
+ continue;
}
+ Message message = (Message) obj;
+ Map<String, Object> params = new HashMap<String, Object>();
+
+ params.put(Environment.GATEWAY_CONFIG, _config);
+
+ message = FilterManager.getInstance().doOutputWork(message, params);
+
+ boolean bSent = false;
+ for (EPR current : _targetEprs) {
+ _courier = CourierFactory.getCourier(current);
+ try {
+ if (_courier.deliver(message)) {
+ bSent = true;
+ break;
+ }
+ }
+ finally {
+ CourierUtil.cleanCourier(_courier);
+ }
+ }
+ if (!bSent) {
+ text = "Target service <" + _targetServiceCategory
+ + "," + _targetServiceName
+ + "> is not registered";
+ thrown = new Exception(text);
+ }
}
- finally {
- CourierUtil.cleanCourier(_courier);
+ catch (InvocationTargetException e) {
+ thrown = e;
+ text = "Problems invoking method <"
+ + _processMethod.getName() + ">";
}
+ catch (IllegalAccessException e) {
+ thrown = e;
+ text = "Problems invoking method <"
+ + _processMethod.getName() + ">";
+ }
+ catch (ClassCastException e) {
+ thrown = e;
+ text = "Action class method <" + _processMethod.getName()
+ + "> returned a non Message object";
+ }
+ catch (CourierException e) {
+ thrown = e;
+ text = "Courier <" + _courier.getClass().getName()
+ + ".deliverAsync(Message) FAILED";
+ }
+ catch (MalformedEPRException ex) {
+ thrown = ex;
+ text = "Courier <"
+ + _courier.getClass().getName()
+ + ".deliverAsync(Message) FAILED with malformed EPR.";
+ }
+
+ if (null == thrown) {
+ if (_deleteAfterOK)
+ deleteCurrentRow();
+ else
+ changeStatusToDone();
+ } else {
+ _logger.error(text);
+ _logger.debug(text, thrown);
+ changeStatusToError();
+ }
}
- if (!bSent) {
- text = "Target service <" + _targetServiceCategory
- + "," + _targetServiceName
- + "> is not registered";
- thrown = new Exception(text);
+ rollbackOnly = false ;
+ } finally {
+ if (rollbackOnly) {
+ transactionStrategy.rollbackOnly() ;
}
+ transactionStrategy.terminate() ;
}
- catch (InvocationTargetException e) {
- thrown = e;
- text = "Problems invoking method <"
- + _processMethod.getName() + ">";
- }
- catch (IllegalAccessException e) {
- thrown = e;
- text = "Problems invoking method <"
- + _processMethod.getName() + ">";
- }
- catch (ClassCastException e) {
- thrown = e;
- text = "Action class method <" + _processMethod.getName()
- + "> returned a non Message object";
- }
- catch (CourierException e) {
- thrown = e;
- text = "Courier <" + _courier.getClass().getName()
- + ".deliverAsync(Message) FAILED";
- }
- catch (MalformedEPRException ex) {
- thrown = ex;
- text = "Courier <"
- + _courier.getClass().getName()
- + ".deliverAsync(Message) FAILED with malformed EPR.";
- }
-
- if (null == thrown) {
- if (_deleteAfterOK)
- deleteCurrentRow();
- else
- changeStatusToDone();
- } else {
- _logger.error(text);
- _logger.debug(text, thrown);
- changeStatusToError();
- }
}
+ while (!waitForRunningStateChange(ManagedLifecycleThreadState.STOPPING,
+ _sleepBetweenPolls));
+ } catch (final TransactionStrategyException tse) {
+ _logger.warn("Unexpected transaction strategy exception", tse) ;
}
- while (!waitForRunningStateChange(ManagedLifecycleThreadState.STOPPING,
- _sleepBetweenPolls));
if (_logger.isDebugEnabled()) {
_logger
@@ -379,6 +400,9 @@
}
}
}
+
+ final boolean transacted = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;
+ transactionStrategy = TransactionStrategy.getTransactionStrategy(transacted) ;
} // ________________________________
protected void prepareStatements() throws SQLException {
Modified: labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/META-INF/jboss-esb.xml 2007-10-31 17:19:59 UTC (rev 16210)
+++ labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/META-INF/jboss-esb.xml 2007-10-31 17:28:56 UTC (rev 16211)
@@ -5,14 +5,15 @@
-->
<providers>
- <jms-jca-provider name="Default-JMS-JCA-Provider" connection-factory="ConnectionFactory">
+ <!-- change the following element to jms-jca-provider to enable transactional context -->
+ <jms-provider name="DeadMessageQueue-JMS-Provider" connection-factory="ConnectionFactory">
<jms-bus busid="DeadMessageQueue">
<jms-message-filter
dest-type="QUEUE"
dest-name="queue/DeadMessageQueue"
/>
</jms-bus>
- </jms-jca-provider>
+ </jms-provider>
<jms-provider name="Default-JMS-Provider" connection-factory="ConnectionFactory">
<jms-bus busid="DataCollectorQueue">
<jms-message-filter
@@ -113,8 +114,9 @@
</service>
<service category="JBossESB-Internal" name="RedeliverService" description="Scheduled Service to Redeliver Messages">
<listeners>
+ <!-- add transacted="true" attribute to enable transacted redelivery -->
<scheduled-listener name="redeliver-scheduled-listener" scheduleidref="5-min-trigger"
- event-processor="org.jboss.soa.esb.schedule.RedeliverEventMessageComposer" transacted="true"/>
+ event-processor="org.jboss.soa.esb.schedule.RedeliverEventMessageComposer"/>
</listeners>
<actions mep="OneWay">
<action name="RedeliverMessagesAction" class="org.jboss.soa.esb.actions.MessageRedeliverer">
More information about the jboss-svn-commits
mailing list