keycloak-memoizeit
Changes
pom.xml 41(+41 -0)
Details
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaModelProvider.java b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaModelProvider.java
index 629f795..56b0a90 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaModelProvider.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaModelProvider.java
@@ -1,5 +1,9 @@
package org.keycloak.models.jpa;
+import java.util.Map;
+import java.util.Properties;
+
+import org.jboss.resteasy.logging.Logger;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.ModelProvider;
@@ -12,6 +16,8 @@ import javax.persistence.Persistence;
*/
public class JpaModelProvider implements ModelProvider {
+ private static final Logger logger = Logger.getLogger(JpaModelProvider.class);
+
@Override
public String getId() {
return "jpa";
@@ -19,8 +25,22 @@ public class JpaModelProvider implements ModelProvider {
@Override
public KeycloakSessionFactory createFactory() {
- EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa-keycloak-identity-store");
+ EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa-keycloak-identity-store", getHibernateProperties());
+ logger.info("RDBMS connection url: " + emf.getProperties().get("hibernate.connection.url"));
return new JpaKeycloakSessionFactory(emf);
}
+
+ // Allows to override some properties in persistence.xml by system properties
+ protected Properties getHibernateProperties() {
+ Properties result = new Properties();
+
+ for (Object property : System.getProperties().keySet()) {
+ if (property.toString().startsWith("hibernate.")) {
+ String propValue = System.getProperty(property.toString());
+ result.put(property, propValue);
+ }
+ }
+ return result;
+ }
}
pom.xml 41(+41 -0)
diff --git a/pom.xml b/pom.xml
index 2f4bab5..21f7d6c 100755
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,8 @@
<hibernate.javax.persistence.version>1.0.1.Final</hibernate.javax.persistence.version>
<hibernate.entitymanager.version>4.0.1.Final</hibernate.entitymanager.version>
<h2.version>1.3.161</h2.version>
+ <mysql.version>5.1.29</mysql.version>
+ <postgresql.version>9.3-1100-jdbc41</postgresql.version>
<dom4j.version>1.6.1</dom4j.version>
<mysql.version>5.1.25</mysql.version>
<slf4j.version>1.6.1</slf4j.version>
@@ -544,5 +546,44 @@
<module>distribution</module>
</modules>
</profile>
+
+ <!-- MySQL -->
+ <profile>
+ <activation>
+ <property>
+ <name>hibernate.connection.driver_class</name>
+ <value>com.mysql.jdbc.Driver</value>
+ </property>
+ </activation>
+ <id>mysql</id>
+ <dependencies>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${mysql.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+
+ <!-- PostgreSQL -->
+ <profile>
+ <activation>
+ <property>
+ <name>hibernate.connection.driver_class</name>
+ <value>org.postgresql.Driver</value>
+ </property>
+ </activation>
+ <id>postgresql</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>postgresql.version</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+
</profiles>
</project>