Перемещение реквизитов конфигурации из META-INF/context.xml из веб-приложения

Я работаю с древним унаследованным веб-приложением, которое нужно подготовить к непрерывной интеграции, отделив конфигурацию ресурса от самого приложения (чтобы мы могли создать один WAR-файл, который работает в любой среде, предполагая наличие файла конфигурации в некоторых заранее определенных местах файловой системы за пределами сервер приложений).

В отличие от наших других, более современных веб-приложений, которые используют Spring контекст, этот получает свою конфигурацию базы данных через контекст сервера приложения, и он находится в META-INF/context.xml, который выглядит примерно так

<?xml version='1.0' encoding='utf-8'?>
<!--
    Context configuration file for the Tomcat Administration Web App
-->

<Context docBase="axis2" reloadable="true" crossContext="true">
    <Resource 
        name="jdbc/GWSDEV" 
        auth="Container"
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
        username="myuser" 
        password="mypasswd"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://my.server.com/mydb" 
        maxActive="100"
        maxIdle="30" 
        maxWait="10000" />
</Context>

Я хотел бы переместить эту конфигурацию куда-нибудь за пределы приложения Tomcat и перенастроить приложение для загрузки файла свойств из чего-то вроде /etc/myancientapp/datasource.props так что я могу создать один файл WAR без встроенной конфигурации в Jenkins и развернуть одну и ту же войну в каждой среде, и мне не придется создавать отдельный файл для каждой среды, отличающейся только в этом одном файле. Тогда конфигурация будет отличаться в каждой среде, но я могу жить с фиксированным путем (/etc/myancientapp/datasource.props).

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

0 ответов

Другие вопросы по тегам