Ears, Depends and Deployment ordering
bwallis42 Apr 4, 2006 10:00 PMI have an ear file with a -service.xml file containing a system properties service that loads some properties that I want to use to configure a -ds.xml file that defines a resource adaptor service. (the service and ds files are included below)
If I deploy the ear file the properties are not substituted into the -ds.xml file when the resource adaptor is deployed. But if I move the property service outside of the ear file then it all deploys OK.
It looks like the substitution of the system properties into the -ds.xml file is happening before the system property service is deployed. I have a dependency in the -ds on the property service but that doesn't seem to help.
Is there any way to get this to work as expected? I think the expansion of the -ds.xml file is happening too soon when it is included in the ear file.
I'm running a 3.2.3 jboss server.
----------------------------
<server> <mbean code="org.jboss.varia.property.SystemPropertiesService" name="ot.javacommon.commonutils:type=Service,name=SystemProperties"> <!-- Load properties from each of the given comma seperated URLs --> <attribute name="URLList">./properties/javacommon.commonutils.properties</attribute> </mbean> </server>
------------------------------
<?xml version="1.0" encoding="UTF-8"?> <!-- $Copyright (c) 2005 Open Telecommunications Ltd A.C.N. 056 010 121 $ --> <!-- Connection Manager setup for jboss 3.2.0 and later --> <datasources> <no-tx-connection-factory> <adapter-display-name>OpenCIConnection</adapter-display-name> <!-- JNDI Name to find this adapters connection factory --> <jndi-name>OpenCI/Connection</jndi-name> <!-- openCI System connection parameters --> <config-property name="LocatorHost" type="java.lang.String">${javacommon.commonutils.OPENCIHOST}</config-property> <config-property name="LocatorPort" type="java.lang.Integer">${javacommon.commonutils.OPENCIPORT}</config-property> <config-property name="SystemName" type="java.lang.String">${javacommon.commonutils.OPENCISYSTEM}</config-property> <config-property name="ReadWrite" type="java.lang.Boolean">true</config-property> <config-property name="Username" type="java.lang.String">${javacommon.commonutils.OPENCIUSER}</config-property> <config-property name="Password" type="java.lang.String">${javacommon.commonutils.OPENCIPASSWD}</config-property> <!--pooling parameters--> <!-- Minimum size for the pool, how many (idle) connections to keep open --> <min-pool-size>${javacommon.commonutils.MINOPENCICONNECTIONS}</min-pool-size> <!-- Maximum size for the pool, how many simultaneous connections are allowed --> <max-pool-size>${javacommon.commonutils.MAXOPENCICONNECTIONS}</max-pool-size> <!-- Timeout for getConnection() callers to wait for an available connection, if one doesn't become available in this time getConnection() throws an exception --> <blocking-timeout-millis>240000</blocking-timeout-millis> <!-- Timeout for an idle connection (in the pool) before it closes the connection (logs out) --> <idle-timeout-minutes>60</idle-timeout-minutes> <!-- In the bad old days of *-xervice.xml files there was a criteria tag in ManagedConnectionPool definition that told the pool how to compare connections in the pool for equvalence. The Criteria attribute indicated if Subject (from security domain) or app supplied parameters (such as from getConnection(user, pw)) are used to distinguish connections in the pool. Choices were - ByContainerAndApplication (use both), - ByContainer (use Subject), - ByApplication (use app supplied params only), - ByNothing (all connections are equivalent, usually if adapter supports reauthentication) These values are now deduced from two elements in the *-ds file. - If the application-managed-security element is present then the criteria is ByApplication - If the security-domain element is present then the criteria is ByContainerAndApplication - Otherwise the criteria is ByNothing There is no way of defining ByContainer pool management now. Currently we are using ByNothing. --> <application-managed-security/> <!--security-domain>opentel</security-domain--> <depends>ot.javacommon.commonutils:type=Service,name=SystemProperties</depends> </no-tx-connection-factory> </datasources>