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>