Я использую Liquibase и Java EE с JBoss. Я настраиваю файл persistence.xml
в проекте, чтобы указать источник данных, который я хочу использовать.Как применить DRY для конфигурации источника данных Liquibase и persistence.xml?
В JBoss конфиги:
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/WebStoriesDS" pool-name="java:jboss/datasources/WebStoriesDS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:postgresql://127.0.0.1:5432/mydatabase</connection-url>
<driver>org.postgresql</driver>
<security>
<user-name>postgres</user-name>
<password>postgres</password>
</security>
</datasource>
<drivers>
<driver name="org.postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
В persistence.xml проекта:
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="PersistenceUnit">
<jta-data-source>java:jboss/datasources/WebStoriesDS</jta-data-source>
</persistence-unit>
</persistence>
И web.xml проекта:
<context-param>
<param-name>liquibase.datasource</param-name>
<param-value>java:jboss/datasources/WebStoriesDS</param-value>
</context-param>
Ну, как вы можете видеть, что я имеют 1 источник данных в JBoss и 2 ссылки в моем проекте. Как мне применить принцип DRY здесь и использовать только 1 ссылку в конфигурациях JBoss и 1 ссылку в моем проекте? Использовать файл свойств для хранения имени источника данных?
Мне нужно просто настроить его таким образом, что, когда мне нужно изменить имя, я меняю только на 2 места: в моем проекте и в конфигурациях JBoss.
Можете ли вы подробнее объяснить, почему явно перечисление источника данных является «логической ссылкой»? Есть ли надежда получить его из коробки (скажем, два режима конфигурации). –
Под «логической ссылкой» я имел в виду, что вы ссылаетесь на источник данных с логическим именем «java: jboss/datasources/WebStoriesDS». Вы можете полностью перенастроить фактическую информацию о подключении, и она может отличаться в разных средах, но WebStoriesDS никогда не изменится. Имея это в рабочем состоянии, это вариант, но есть и другие изменения, которые имеют более высокий приоритет, поэтому я не скоро доберусь. Конечно, вы можете отправить запрос на тяну, и я могу посмотреть на его включение. –