Языки расширения свойств (DSL) - существуют ли они? - PullRequest
1 голос
/ 03 августа 2009

Вот моя проблема: у нас есть N приложений, работающих в M различных средах (qa / prod / etc.) С P-серверами на среду. Умноженное число уникальных конфигураций исчисляется сотнями. Каждое из этих приложений имеет набор свойств, относящихся к среде (общедоступное имя хоста, порт прослушивания, максимальный объем памяти и т. Д.).

Умножается, есть тысячи свойств для установки. Однако фактические правила, определяющие, какими должны быть свойства, значительно проще. Например, в производственных средах с двумя экземплярами приложения на физический сервер одно приложение связывается с портом 8080, а другое с 8081.

Вот что я хочу: язык (DSL), с помощью которого я могу указать правила, определяющие, какими должны быть настройки свойств. Я хотел бы избежать повторения. Язык должен быть декларативным. Мы в значительной степени ориентированы на Java, но все, что мне нужно, - это создавать пары имя / значение, поэтому я не хотел бы ограничивать себя.

Существует ли такая вещь? Я ничего не нашел.

Полагаю, я мог бы использовать Drools или другой движок правил, но это очень тяжело для этой цели. Файлы свойств являются наименьшим общим знаменателем. Мы можем поместить их в файлы war / ear, использовать их для замены шаблонов во время сборок и т. Д. Конечно, есть более элегантные способы решения проблем такого рода, но мы немного застряли с нашими архитектурами, по крайней мере, в краткосрочный.

...