Show Table of Contents
2.4.2. Descriptor-based Property Replacement
Application configuration - for example, datasource connection parameters - typically varies between development, testing, and production deployments. This variance is sometimes accommodated by build system scripts, as the Java EE specification does not contain a method to externalize these configurations.
With JBoss Enterprise Application Platform 6 you can use Descriptor-based property replacement to manage configuration externally.
Descriptor-based property replacement substitutes properties based on descriptors, allowing you to remove assumptions about the environment from the application and the build chain. Environment-specific configurations can by specified in deployment descriptors rather than annotations or build system scripts. You can provide configuration in files or as parameters at the command line.
Descriptor-based property replacement is enabled globally through
standalone.xml or domain.xml:
<subsystem xmlns="urn:jboss:domain:ee:1.1">
<spec-descriptor-property-replacement>
true
</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>
true
</jboss-descriptor-property-replacement>
</subsystem>
Java EE descriptors in
ejb-jar.xml and persistence.xml can be replaced. By default this is disabled.
JBoss-specific descriptor replacement is enabled by default. Descriptors can be replaced in:
jboss-ejb3.xmljboss-app.xmljboss-web.xml*-jms.xml*-ds.xml
For example, given a Bean with the following annotation:
@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
With descriptor-based property replacement enabled, the
connectionParameters can be specified via the command-line as:
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
To accomplish the same via system properties:
<activation-config>
<activation-config-property>
<activation-config-property-name>
connectionParameters
</activation-config-property-name>
<activation-config-property-value>
${jms.connection.parameters:'host=10.10.64.1;port=5445'}
</activation-config-property-value>
</activation-config-property>
</activation-config>${jms.connection.parameters:'host=10.10.64.1;port=5445'} allows the connection parameters to be overridden by a command-line supplied parameter, while providing a default value.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.