Hybrisプロパティファイルに環境変数を参照する方法があるのだろうかと思います。Hybrisの環境変数local.properties
例えば、local.propertiesに: my.property = ${MY_ENVIRONMENT_VARIABLE}
私の検索では、この春に可能であると結論しているが、HYBRISで動作するように表示されません。
どのような考えにも感謝します。
Hybrisプロパティファイルに環境変数を参照する方法があるのだろうかと思います。Hybrisの環境変数local.properties
例えば、local.propertiesに: my.property = ${MY_ENVIRONMENT_VARIABLE}
私の検索では、この春に可能であると結論しているが、HYBRISで動作するように表示されません。
どのような考えにも感謝します。
いいえ、できません。
実際にハイブリース使用org.apache.commons.configuration
パッケージ。 documentationでは、環境変数を使用することが可能です。
user.file = ${sys:user.home}/settings.xml
action.key = ${const:java.awt.event.KeyEvent.VK_CANCEL}
java.home = ${env:JAVA_HOME}
残念ながらHYBRISは、私が説明できない何かを行っている、彼らは、デフォルトの実装をoveriddedし、全ての補間機能を削除しました。
さらに問題を分析すると、使用される構成クラスはHybrisConfiguration
となります。このクラスはApache Commons ConfigurationからAbstractConfiguration
まで拡張します。 getProperty
メソッドは、ConfigIntf
という別のインターフェイスを使用します。実装はクラスAbstractConfig
にあります。そこにはすべてgetString
getInteger
などのメソッドがオーバーライドされています。あなたがApacheのAPIのすべての機能を使用したい場合は
例えば、文字列のために、そして、そう...
StringUtils.isEmpty(value) ? def : value;
の方法はinterpolateメソッドを呼び出すことはありませんが、代わりに、あなたは本当に簡単に見つけることができますハイブリースの実装を置き換えてみてください...しかし、私はそこに注入できる豆がないので、プラットフォームを変更することなくそれを行うことはそれほど簡単ではないと思います。
Hybris Expertsにあなたの質問に関連するこれが見つかりました。それが役に立てば幸い。
local.propertiesファイル内のシェル環境変数にアクセスすることはできません。回避策としてプラットフォームを起動する前にecho "my.property = $ MY_ENVIRONMENT_VARIABLE" >> local.propertiesを実行できます。
ありがとう@ alain.janinm、私は実際にHYBRIS_DIRが定義されているのと同じファイルに環境に似た変数を追加できることを発見しました...しかし、あなたが言うには、システムが実行されるまで使用可能でないため、制御されたプロパティーファイルは使用できません。 – rohrlach