2017-01-17 3 views
2

Мне интересно, есть ли в файле свойств Hybris способ ссылки на переменные окружения.Переменные окружения в Hybris local.properties

Например, в local.properties: my.property = ${MY_ENVIRONMENT_VARIABLE}

Мой поиск заключил, что это возможно весной, но не появляется на работе в Hybris.

Любые мысли будут оценены.

ответ

1

Нет, это невозможно.

Фактически 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. Этот класс расширяет AbstractConfiguration от конфигурации Apache Commons. Метод getProperty использует другой интерфейс под названием ConfigIntf. Реализация найдена в классе AbstractConfig. Там каждый getStringgetInteger и т. Д. Методы переопределены.

Например, для строки, этот метод не вызывается метод interpolate, но вместо этого вы найдете очень простой ...

StringUtils.isEmpty(value) ? def : value; 

Так что, если вы хотите использовать все возможности Apache API, то попробуйте заменить реализацию гибридов ... Однако я думаю, что это будет не так просто сделать, не изменяя платформу, так как я не вижу никаких компонентов, которые могут быть введены.

+1

Спасибо @ alain.janinm, я на самом деле обнаружил, что вы можете добавить переменные окружения в том же файле, что и HYBRIS_DIR ... Но это не поможет, если вы хотите сказать, переместите пароли базы данных из версии так как они недоступны до тех пор, пока ПОСЛЕ системы не будет запущена. – rohrlach

0

Это было связано с вашим вопросом на Hybris Experts. Надеюсь, поможет.

Невозможно получить доступ к переменным среды оболочки внутри файла local.properties. В качестве обходного пути вы можете сделать echo «my.property = $ MY_ENVIRONMENT_VARIABLE» >> local.properties перед запуском платформы.

Смежные вопросы