Configuration - normalization
kurtstam Dec 5, 2006 12:51 PMHi guys,
Currently we have 2 config files for each esb node (server). The jbossesb-listener.xml and the jbossesb-gateway.xml.
1. Firstly, this can result in a LOT of files if you have a few nodes.
2. And secondly there is a lot of duplication in these files.
I'm proposing to normalize the configuration. Basically I want to front the collection of these files with 1 master file from which we can generate the config files for each esb node. Later we can offer a bottum approach too, if we think this is needed.
The point is that the user can debug the configuration by just looking at one file. For this file we can build an xsd (which is not possible for the individual files at the moment). The format of this file will facilitate the generation of wizzards, as they can build on organized information. Also we can easiliy generate a global deployment picture from this file.
Here is an example XML:
<jbossesb> <hosts> <host name="filebank" dnsName="localhost"/> <host name="jmsbank" dnsName="localhost"/> <host name="loanbroker" dnsName="localhost"/> <host name="jms-provider" dnsName="localhost"/> </hosts> <servers> <server name="fileBankServer" host="fileBank" appserver="jboss-4.0.3SP1"> <properties> <property name="java.naming.provider.url" value="localhost:1099"/> <property name="java.naming.factory.initial" value="org.jnp.interfaces.NamingContextFactory"/> <property name="java.naming.factory.url.pkgs" value="org.jboss.naming:org.jnp.interfaces"/> </properties> </server> <server name="inhouse-jboss-4.0.4" host="jms-provider" appserver="jboss-4.0.4"> <properties> <property name="java.naming.provider.url" value="localhost:1099"/> <property name="java.naming.factory.initial" value="org.jnp.interfaces.NamingContextFactory"/> <property name="java.naming.factory.url.pkgs" value="org.jboss.naming:org.jnp.interfaces"/> </properties> </server> <server name="loanbroker-listener" host="loanbroker" appserver="jbossesb"/> </servers> <buses> <bus name="bank-jms-channel" server="fileBankServer" resourceType="QUEUE" userName="" password=""/> <bus name="bank-ftp-channel" server="inhouse-jboss-4.0.4" resourceType="FTP" userName="kurt" password="secret"/> </channels> <buses> <service name="filebank-gateway" category="gateway" server="loanbroker-listener" description="This listener picks up files deposited by the fileBank" class="org.jboss.soa.esb.FileBankGateway"> <listeners> <listener description="A File-Based listener" bus="bank-ftp-bus"/> <listener description="A JMS-Based listener" bus="bank-jms-bus"/> </listeners> <actions> <action name="TestDefaultRouteAction" process="route" class="org.jboss.soa.esb.actions.CbrProxyAction" service-category="MessageRouting" service-name="ContentBasedRoutingService" /> </actions> </service> </services> </jbossesb>
Yes I posted this xml before, but this time I replaced 'channel' by 'bus' as Mark seems to like this better :). I'm sure the Brits amongst us will want to spell buses with 3 s'es.
Note that I'm proposing this for GA. After GA our configuration may change again (however this file may stay the same, and we could just change the xslt script to break it up).
--Kurt