2017-01-17 7 views
2

Hybrisプロパティファイルに環境変数を参照する方法があるのだろうかと思います。Hybrisの環境変数local.properties

例えば、local.propertiesに: my.property = ${MY_ENVIRONMENT_VARIABLE}

私の検索では、この春に可能であると結論しているが、HYBRISで動作するように表示されません。

どのような考えにも感謝します。

答えて

1

いいえ、できません。

実際にハイブリース使用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にあります。そこにはすべてgetStringgetIntegerなどのメソッドがオーバーライドされています。あなたがApacheのAPIのすべての機能を使用したい場合は

例えば、文字列のために、そして、そう...

StringUtils.isEmpty(value) ? def : value; 

の方法はinterpolateメソッドを呼び出すことはありませんが、代わりに、あなたは本当に簡単に見つけることができますハイブリースの実装を置き換えてみてください...しかし、私はそこに注入できる豆がないので、プラットフォームを変更することなくそれを行うことはそれほど簡単ではないと思います。

+1

ありがとう@ alain.janinm、私は実際にHYBRIS_DIRが定義されているのと同じファイルに環境に似た変数を追加できることを発見しました...しかし、あなたが言うには、システムが実行されるまで使用可能でないため、制御されたプロパティーファイルは使用できません。 – rohrlach

0

Hybris Expertsにあなたの質問に関連するこれが見つかりました。それが役に立てば幸い。

local.propertiesファイル内のシェル環境変数にアクセスすることはできません。回避策としてプラットフォームを起動する前にecho "my.property = $ MY_ENVIRONMENT_VARIABLE" >> local.propertiesを実行できます。