2017-01-17 5 views
2

Ich frage mich, ob es in einer Hybris-Eigenschaftendatei eine Möglichkeit gibt, auf Umgebungsvariablen zu verweisen.Umgebungsvariablen in Hybris local.properties

Zum Beispiel in local.properties: my.property = ${MY_ENVIRONMENT_VARIABLE}

Meine Suche hat festgestellt, dass dies im Frühjahr möglich ist, scheint aber nicht in Hybris zu arbeiten.

Alle Gedanken würden geschätzt werden.

Antwort

1

Nein, das ist nicht möglich.

Eigentlich hybris verwenden org.apache.commons.configuration Paket. In der documentation finden Sie, dass es möglich ist, Umgebungsvariable zu verwenden.

user.file = ${sys:user.home}/settings.xml 
action.key = ${const:java.awt.event.KeyEvent.VK_CANCEL} 
java.home = ${env:JAVA_HOME} 

Leider hat hybris etwas getan, was ich nicht erklären kann, haben sie die Standardimplementierung und entfernt alle Interpolation Funktionen overidded. Wenn das Problem weiter analysiert wird, heißt die verwendete Konfigurationsklasse HybrisConfiguration. Diese Klasse erweitert AbstractConfiguration von Apache Commons Configuration. Die Methode getProperty verwendet eine andere Schnittstelle mit der Bezeichnung ConfigIntf. Die Implementierung befindet sich in der Klasse AbstractConfig. Dort sind alle getStringgetInteger, etc ... Methoden übergangen.

Zum Beispiel für String, wird das Verfahren der interpolate Methode nicht nennen, sondern es eine wirklich einfache finden ...

StringUtils.isEmpty(value) ? def : value; 

Also, wenn Sie alle Funktionen von Apache API verwenden möchten, dann versuche, die hybris-implementierung zu ersetzen ... Aber ich denke, dass es nicht so einfach sein wird, das zu tun, ohne die Plattform zu ändern, da ich dort keine Bohnen sehe, die injiziert werden könnten.

+1

Dank @ alain.janinm, ich habe tatsächlich festgestellt, dass Sie Umgebungs-ähnliche Variablen in der gleichen Datei wie HYBRIS_DIR definiert werden können ... Aber das hilft nicht, wenn Sie sagen möchten, Datenbankkennwörter aus einer Version verschieben kontrollierte Eigenschaftendatei, da sie erst verfügbar sind, nachdem das System ausgeführt wurde. – rohrlach

0

Ich fand das im Zusammenhang mit Ihrer Frage auf Hybris Experts. Ich hoffe es hilft.

Es ist nicht möglich, auf Shell-Umgebungsvariablen in der Datei local.properties zuzugreifen. Als Workaround können Sie vor dem Starten der Plattform das Echo "my.property = $ MY_ENVIRONMENT_VARIABLE" >> local.properties ausführen.

Verwandte Themen