2.4.3. 記述子ベースのプロパティー置換
アプリケーションの設定(データソース接続パラメーターなど)は、通常は開発、テスト、および実稼働デプロイメントによって異なります。Java EE 仕様にはこれらの設定を外部化するメソッドが含まれていないため、このような違いはビルドシステムスクリプトで対応することがあります。JBoss EAP 6 では、記述子ベースのプロパティー置換 を使用して設定を外部で管理できます。
記述子ベースのプロパティー置換は、記述子を基にプロパティーを置き換えるため、アプリケーションやビルドチェーンから環境に関する仮定を除外できます。環境固有の設定は、アノテーションやビルドシステムスクリプトでなく、デプロイメント記述子に指定できます。設定はファイルに指定したり、パラメーターとしてコマンドラインで提供したりできます。
記述子ベースのプロパティー置換は、
standalone.xml
または domain.xml
を介してグローバルに有効になります。
例2.9 記述子ベースのプロパティー置換
<subsystem xmlns="urn:jboss:domain:ee:1.2"> <spec-descriptor-property-replacement> true </spec-descriptor-property-replacement> <jboss-descriptor-property-replacement> true </jboss-descriptor-property-replacement> </subsystem>
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<spec-descriptor-property-replacement>
true
</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>
true
</jboss-descriptor-property-replacement>
</subsystem>
Java EE 記述子置換はデフォルトで 無効 になっています。有効にすると、
ejb-jar.xml
および persistence.xml
設定ファイルで記述子を置き換えることができます。
JBoss 固有の記述子置換はデフォルトで 有効 になっています。有効にすると、以下の設定ファイルで記述子を置換できます。
jboss-ejb3.xml
jboss-app.xml
jboss-web.xml
*-jms.xml
*-ds.xml
たとえば、以下のアノテーションを持つ Bean があるとします。
例2.10 アノテーションの例
@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
記述子ベースのプロパティー置換を有効にすると、以下のようにコマンドラインから
connectionParameters
を指定できます。
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
システムプロパティーを使用して同じことを実現するには、literal の値の代わりに 式 を使用します。式は
${パラメーター:default}
の形式を取ります。式が設定で使用されると、そのパラメーターの値がその意味になります。パラメーターが存在しない場合は、代わりに指定されたデフォルト値が使用されます。
例2.11 記述子で式の使用
<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>
<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'}
により、デフォルト値を提供しながらコマンドラインが提供するパラメーターで接続パラメーターを上書きできます。