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 <[email protected]>
Authored: Mon Jun 9 12:19:38 2014 -0400
Committer: Chathuri Wimalasena <[email protected]>
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;
                }

Reply via email to