You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/06/09 18:19:44 UTC

git commit: making JPA cache limit configurable from server properties

Repository: airavata
Updated Branches:
  refs/heads/master 013a815ce -> a728ab500


making JPA cache limit configurable from server properties


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a728ab50
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a728ab50
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a728ab50

Branch: refs/heads/master
Commit: a728ab5003282f4c7645fa2bf7c40fd7df97f447
Parents: 013a815
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Mon Jun 9 12:19:38 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Mon Jun 9 12:19:38 2014 -0400

----------------------------------------------------------------------
 .../application/catalog/data/util/JPAUtils.java | 14 ++-
 .../main/resources/airavata-server.properties   |  1 +
 .../persistance/registry/jpa/JPAConstants.java  |  2 +-
 .../persistance/registry/jpa/ResourceUtils.java | 27 +++---
 .../registry/jpa/resources/Utils.java           | 94 ++++++--------------
 5 files changed, 45 insertions(+), 93 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a728ab50/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/JPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/JPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/JPAUtils.java
index b7f4a76..7bad1a6 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/JPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/JPAUtils.java
@@ -40,7 +40,7 @@ public class JPAUtils {
     private static final String APPCATALOG_JDBC_USER = "appcatalog.jdbc.user";
     private static final String APPCATALOG_JDBC_PWD = "appcatalog.jdbc.password";
     private static final String APPCATALOG_VALIDATION_QUERY = "appcatalog.validationQuery";
-    private static final String JPA_CONNECTION_PROPERTIES = "jpa.connection.properties";
+    private static final String JPA_CACHE_SIZE = "jpa.cache.size";
     protected static EntityManagerFactory factory;
 
     public static EntityManager getEntityManager() throws ApplicationSettingsException {
@@ -49,22 +49,18 @@ public class JPAUtils {
                     "Url=" + readServerProperties(APPCATALOG_JDBC_URL) + "," +
                     "Username=" + readServerProperties(APPCATALOG_JDBC_USER) + "," +
                     "Password=" + readServerProperties(APPCATALOG_JDBC_PWD) +
-                    ",validationQuery=" + readServerProperties(APPCATALOG_VALIDATION_QUERY) + "," +
-                    readServerProperties(JPA_CONNECTION_PROPERTIES);
+                    ",validationQuery=" + readServerProperties(APPCATALOG_VALIDATION_QUERY);
             System.out.println(connectionProperties);
             Map<String, String> properties = new HashMap<String, String>();
             properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
             properties.put("openjpa.ConnectionProperties", connectionProperties);
             properties.put("openjpa.DynamicEnhancementAgent", "true");
             properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
-            properties.put("openjpa.Log", "SQL=ERROR");
+            properties.put("openjpa.DataCache","true(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE))  + ", SoftReferenceSize=0)");
+            properties.put("openjpa.QueryCache","true(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE))  + ", SoftReferenceSize=0)");
+            properties.put("openjpa.RemoteCommitProvider","sjvm");
             properties.put("openjpa.Log","DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
-            properties.put("openjpa.ReadLockLevel", "none");
-            properties.put("openjpa.WriteLockLevel", "none");
-            properties.put("openjpa.LockTimeout", "30000");
-            properties.put("openjpa.LockManager", "none");
             properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
-            properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72, PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000");
             properties.put("openjpa.jdbc.QuerySQLCache", "false");
             factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties);
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a728ab50/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index d1335f7..98bdcec 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -63,6 +63,7 @@ registry.jdbc.user=airavata
 registry.jdbc.password=airavata
 start.derby.server.mode=true
 validationQuery=SELECT 1 from CONFIGURATION
+jpa.cache.size=5000
 #jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
 # Properties to setup registry service
 default.registry.user=admin

http://git-wip-us.apache.org/repos/asf/airavata/blob/a728ab50/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/JPAConstants.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/JPAConstants.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/JPAConstants.java
index 333e1f4..bba422e 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/JPAConstants.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/JPAConstants.java
@@ -28,5 +28,5 @@ public class JPAConstants {
 	public static final String KEY_JDBC_DRIVER = "registry.jdbc.driver";
 	public static final String KEY_DERBY_START_ENABLE = "start.derby.server.mode";
     public static final String VALIDATION_QUERY = "validationQuery";
-    public static final String CONNECTION_JPA_PROPERTY = "jpa.connection.properties";
+    public static final String JPA_CACHE_SIZE = "jpa.connection.properties";
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a728ab50/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
index 1253020..4c44f00 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
@@ -20,18 +20,6 @@
 */
 package org.apache.airavata.persistance.registry.jpa;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import javax.persistence.Query;
-
 import org.apache.airavata.persistance.registry.jpa.model.*;
 import org.apache.airavata.persistance.registry.jpa.resources.*;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
@@ -39,6 +27,15 @@ import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class ResourceUtils {
     private final static Logger logger = LoggerFactory.getLogger(ResourceUtils.class);
     private static final String PERSISTENCE_UNIT_NAME = "airavata_data";
@@ -52,15 +49,15 @@ public class ResourceUtils {
         if (factory == null) {
             String connectionProperties = "DriverClassName=" + Utils.getJDBCDriver() + "," + "Url=" + Utils.getJDBCURL() + "," +
                     "Username=" + Utils.getJDBCUser() + "," + "Password=" + Utils.getJDBCPassword() + ",validationQuery=" +
-            Utils.getValidationQuery() + "," + Utils.getJPAConnectionProperties();
+            Utils.getValidationQuery();
             System.out.println(connectionProperties);
             Map<String, String> properties = new HashMap<String, String>();
             properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
             properties.put("openjpa.ConnectionProperties", connectionProperties);
             properties.put("openjpa.DynamicEnhancementAgent", "true");
             properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
-            properties.put("openjpa.DataCache","true(CacheSize=5000, SoftReferenceSize=0)");
-            properties.put("openjpa.QueryCache","true(CacheSize=5000, SoftReferenceSize=0)");
+            properties.put("openjpa.DataCache","true(CacheSize=" + Utils.getJPACacheSize() + ", SoftReferenceSize=0)");
+            properties.put("openjpa.QueryCache","true(CacheSize=" + Utils.getJPACacheSize() + ", SoftReferenceSize=0)");
             properties.put("openjpa.RemoteCommitProvider","sjvm");
             properties.put("openjpa.Log","DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
 //            properties.put("openjpa.ReadLockLevel", "none");

http://git-wip-us.apache.org/repos/asf/airavata/blob/a728ab50/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
index 90bcdc5..a94efd5 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
@@ -20,19 +20,17 @@
  */
 package org.apache.airavata.persistance.registry.jpa.resources;
 
-import java.net.URI;
-
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.persistance.registry.jpa.JPAConstants;
 import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
 import org.apache.airavata.persistance.registry.jpa.model.*;
-import org.apache.airavata.registry.api.AiravataRegistryConnectionDataProvider;
-import org.apache.airavata.registry.api.AiravataRegistryFactory;
-import org.apache.airavata.registry.api.exception.RegistrySettingsException;
-import org.apache.airavata.registry.api.util.RegistrySettings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.net.URI;
+
 
 public class Utils {
     private final static Logger logger = LoggerFactory.getLogger(Utils.class);
@@ -47,8 +45,8 @@ public class Utils {
 
     public static String getJDBCURL(){
     	try {
-            return getProvider().getValue(JPAConstants.KEY_JDBC_URL).toString();
-		} catch (RegistrySettingsException e) {
+            return ServerSettings.getSetting(JPAConstants.KEY_JDBC_URL);
+		} catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return null;
         }
@@ -78,6 +76,16 @@ public class Utils {
         }
     }
 
+    public static int getJPACacheSize (){
+        try {
+            String cache = ServerSettings.getSetting(JPAConstants.JPA_CACHE_SIZE, "5000");
+            return Integer.valueOf(cache);
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            return -1;
+        }
+    }
+
     public static String getDBType(){
         try{
             String jdbcURL = getJDBCURL();
@@ -92,36 +100,21 @@ public class Utils {
 
     public static boolean isDerbyStartEnabled(){
         try {
-            String s = getProvider().getValue(JPAConstants.KEY_DERBY_START_ENABLE).toString();
+            String s = ServerSettings.getSetting(JPAConstants.KEY_DERBY_START_ENABLE);
             if("true".equals(s)){
                 return true;
             }
-        } catch (RegistrySettingsException e) {
+        } catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return false;
         }
         return false;
     }
 
-	private static AiravataRegistryConnectionDataProvider getProvider() {
-		return AiravataRegistryFactory.getRegistryConnectionDataProvider();
-	}
-
-    static {
-        if(AiravataRegistryFactory.getRegistryConnectionDataProvider() == null){
-            AiravataRegistryFactory.registerRegistryConnectionDataProvider(new AiravataRegistryConnectionDataProviderImpl());
-        }
-
-    }
-
     public static String getJDBCUser(){
     	try {
-			if (getProvider()!=null){
-				return getProvider().getValue(JPAConstants.KEY_JDBC_USER).toString();
-			} else {
-                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_USER);
-            }
-		} catch (RegistrySettingsException e) {
+		    return ServerSettings.getSetting(JPAConstants.KEY_JDBC_USER);
+		} catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return null;
 		}
@@ -129,35 +122,8 @@ public class Utils {
 
     public static String getValidationQuery(){
     	try {
-			if (getProvider()!=null){
-                if(getProvider().getValue(JPAConstants.VALIDATION_QUERY) != null){
-				    return getProvider().getValue(JPAConstants.VALIDATION_QUERY).toString();
-                }
-			} else {
-                if(getProvider().getValue(JPAConstants.VALIDATION_QUERY) != null){
-                    return RegistrySettings.getSetting(JPAConstants.VALIDATION_QUERY);
-                }
-            }
-            return "";
-		} catch (RegistrySettingsException e) {
-            logger.error(e.getMessage(), e);
-            return null;
-		}
-    }
-
-     public static String getJPAConnectionProperties(){
-    	try {
-			if (getProvider()!=null){
-                if(getProvider().getValue(JPAConstants.CONNECTION_JPA_PROPERTY) != null){
-				    return getProvider().getValue(JPAConstants.CONNECTION_JPA_PROPERTY).toString();
-                }
-			} else {
-                if(getProvider().getValue(JPAConstants.CONNECTION_JPA_PROPERTY) != null){
-                    return RegistrySettings.getSetting(JPAConstants.CONNECTION_JPA_PROPERTY);
-                }
-            }
-            return "";
-		} catch (RegistrySettingsException e) {
+            return ServerSettings.getSetting(JPAConstants.VALIDATION_QUERY);
+		} catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return null;
 		}
@@ -165,12 +131,8 @@ public class Utils {
 
     public static String getJDBCPassword(){
     	try {
-			if (getProvider()!=null){
-				return getProvider().getValue(JPAConstants.KEY_JDBC_PASSWORD).toString();
-			}else {
-                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_PASSWORD);
-            }
-		} catch (RegistrySettingsException e) {
+            return ServerSettings.getSetting(JPAConstants.KEY_JDBC_PASSWORD);
+		} catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return null;
 		}
@@ -179,12 +141,8 @@ public class Utils {
 
     public static String getJDBCDriver(){
     	try {
-			if (getProvider()!=null){
-				return getProvider().getValue(JPAConstants.KEY_JDBC_DRIVER).toString();
-			}  else {
-                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_DRIVER);
-            }
-		} catch (RegistrySettingsException e) {
+            return ServerSettings.getSetting(JPAConstants.KEY_JDBC_DRIVER);
+		} catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             return null;
 		}