Я работаю над довольно большим веб-сайтом электронной коммерции J2EE (оборот 3 миллиарда), и нам, разработчикам, немного надоело то, как мы обращаемся со свойствами и конфигурацией log4j.
На самом деле у нас много приложений, некоторые из них используют основное приложение. У каждого приложения есть дополнительные версии, и каждая версия имеет конфигурацию properties/log4j, которая обрабатывает множество сред (dev/packaging/integration/tests/pre-production/production). Мы не можем поместить свойства непосредственно в SCM. Свойства, о которых я говорю, не находятся в файлах ear/war.
Мы скажем, что приложение B-App использует основное приложение App-A, и у нас есть версии 1.0 и 2.0.
Дело в том, что наш инструмент работает, но совершенно не интуитивно понятен, а слияния часто забывают или делают неправильно, потому что процесс трудно соблюдать... поэтому, когда мы запускаем минорную версию в производство, иногда бывают некоторые сюрпризы.. .свойство или регистратор исчезают, обновление свойства откатывается...
Пример: я добавляю свойство xxx.yyy в основное приложение App-A 1.0. Затем, если слияние выполнено неправильно, этого свойства не будет, когда мы запустим App-A 2.0 в производство. И приложение-B, которое обычно также должно использовать xxx.yyy, также не могло иметь свойство, даже в версии 1.0 (это должно оставаться ручным процессом, поскольку все свойства приложения-A не используются в приложении-B).
Интересно, есть ли инструмент с открытым исходным кодом, чтобы хорошо справиться с этим, с историзацией, разрешениями пользователя... Возможно, мне стоит его запустить...