Конфигурация Modeshape - объединить XML + программно? - PullRequest
0 голосов
/ 16 марта 2012

Я сконфигурировал рабочую область Modeshape на своем компьютере разработчика с использованием XML, указав:

workspaceRootPath="C:/jcr/modeshape/dev/..."

Я разверну в Linux рабочую область, смонтированную на другом томе:

workspaceRootPath="/jcr/modeshape/prod/..."

Можно ли использовать переменную среды для настройки этого или мне нужно прибегнуть к программной конфигурации?Есть ли подход, рекомендованный командой Modeshape?

Спасибо

1 Ответ

1 голос
/ 16 марта 2012

Если вы используете более поздние версии ModeShape, вы можете использовать переменную в файле конфигурации, которая будет заменена во время загрузки конфигурации значением свойства System с тем же именем.Например, если вы используете следующее:

workspaceRootPath="${myWorkspaceDirectory}"

и для свойства System "myWorkspaceDirectory" установлено значение "/ foo / bar", то, когда ModeShape загружает конфигурацию, она преобразует переменную в эквивалент:

workspaceRootPath="/foo/bar"

Конечно, переменная может быть просто частью значения атрибута, и вы даже можете использовать несколько переменных (если они не вложены).Например, это также допустимо:

workspaceRootPath="${my.system.root.path}/modeshape/${my.system.deploymentType}"

Наконец, грамматика каждой переменной:

"${" systemPropName { "," systemPropName } [ ":" defaultValue ] "}"

Это допускает 1 или более имен системных свойстви необязательное значение по умолчанию, которое должно быть указано в одной переменной.Имена системных свойств оцениваются слева направо, и будут использоваться первые, имеющие соответствующее реальное системное свойство.Вот еще один надуманный пример:

workspaceRootPath="${my.system.path1,my.system.path2,my.system.path3:/default/path}/modeshape/${my.system.deploymentType}"
...