I added support for substitution properties in jboss-esb.xml. At construction time I merge properties from a soa-p.properties file to support host specific changes(sample below). I either look for this file in a directory or load the file from from an embedded .ESB resource in directory name that matches the hostname I'm running on. In order to do this I created a wrapper class which constructs out-of-box actons via reflection.
Perosnally I'd like to refactor and extend this for all config files (jboss-esb.xml, deployment.xml, jbm-queue-service.xml, etc). I think this feature would be helpful to other developers as many of us have development, user testing, staging and production environments where host names, thread settings, JCA retry periods vary from environment to environment. I know I can do this at build time, however it's nicer to have only one .ESB file for all servers.
Can I override the existing loader/provider, or perhaps you can point me to a central point in the SOA-P source where I can make my changes?
<service category="Business Profile Services"
name="AddressHub SOAP Proxy"
description="AddressHub SOAP WebService Proxy"
<property name="maxThreads" value="@maxthreads-addresshub@"/>
<http-gateway name="Index-ahsoap" urlPattern="addresshub/soap/*" />
<property name="guest-class" value="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy" />
<property name="guest-configuration-rethrow" value="false" />
<property name="guest-wsdl" value="http://@addresshub-host@/addresshubWebServices/soap?wsdl" />
<property name="guest-cacheDoc" value="file://@wsdl-cache-directory@/addresshub.html"/>
<property name="guest-docXSL" value="/transforms/wsdl-viewer.xsl"/>
<property name="exceptionMethod" value="exceptionHandler" />
<property name="wsdl" value="file://@wsdl-cache-directory@/addresshub.wsdl">
<http-client-property name="max-total-connections" value="100" />
<http-client-property name="max-connections-per-host" value="50" />