Bonjour à tous,
J'ai un petit pb avec la configuration d'hibernate et c3pO.
J'utilise JBoss 4.2.3/EJB3 et hibernate pour mon projet.
En fait, tout fonctionne comme je le souhaite. Mais le problème est que je suis obligé de renseigner le mot de passe et le login de la base à la fois dans le fichier de définition du datasource: postgresql-ds.xml (présent dans le répoertoire deploy de jboss) et dans le fichier persistence.xml pour la configuration de c3pO.
C'est un problème pour moi car à chaque fois que je distribue le projet, je suis obligé de re générer l'archiver EAR avec le fichier persistence.xml qui contient le bon login et mot de passe en plus de mettre à jour le fichier postgresql-ds.xml
J'ai beau chercher ci et là, mais je n'ai pas réussi à trouver de solution pour centraliser cette configuration.
Voici mes deux fichiers de configuration:
postgresql-ds.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>testDS</jndi-name>
<connection-url>jdbc:postgresql://127.0.0.1:5432/database</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>username</user-name>
<password>password</password>
<!-- the minimum size of the connection pool -->
<min-pool-size>1</min-pool-size>
<!-- The maximum connections in a pool/sub-pool -->
<max-pool-size>4</max-pool-size>
</local-tx-datasource>
</datasources>
persistence.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
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_1_0.xsd"
version="1.0">
<persistence-unit name="MetierPU">
<jta-data-source>java:/testDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.bytecode.use_reflection_optimizer" value="false" />
<!-- propriétés OSCache -->
<property name="hibernate.cache.provider_class" value="com.opensymphony.oscache.hibernate.OSCacheProvider" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<!-- propriétés DataSource c3p0 -->
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.min_size" value="1" />
<property name="hibernate.c3p0.max_size" value="10" />
<property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.idle_test_period" value="0" />
<!-- propriétés de connexion -->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.url" value="jdbc:postgresql://127.0.0.1:5432/database" />
<property name="hibernate.connection.username" value="username" />
<property name="hibernate.connection.password" value="password" />
</properties>
</persistence-unit>
</persistence>
Je vous remercie pour votre aide et vos conseils.
Bal.