You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by pa...@apache.org on 2011/09/08 23:33:41 UTC

svn commit: r1166915 - in /incubator/airavata/trunk/modules/gfac-core: ./ src/main/java/org/apache/airavata/core/gfac/factory/ src/main/java/org/apache/airavata/core/gfac/services/impl/ src/main/resources/ src/test/resources/

Author: patanachai
Date: Thu Sep  8 21:33:41 2011
New Revision: 1166915

URL: http://svn.apache.org/viewvc?rev=1166915&view=rev
Log:
Change to Apache Commons Configuration

Modified:
    incubator/airavata/trunk/modules/gfac-core/pom.xml
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java
    incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties
    incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties

Modified: incubator/airavata/trunk/modules/gfac-core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/pom.xml?rev=1166915&r1=1166914&r2=1166915&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/pom.xml (original)
+++ incubator/airavata/trunk/modules/gfac-core/pom.xml Thu Sep  8 21:33:41 2011
@@ -54,6 +54,12 @@
             <artifactId>bcprov-jdk15</artifactId>
             <version>143</version>
         </dependency>
+        
+        <dependency>
+            <groupId>commons-configuration</groupId>
+            <artifactId>commons-configuration</artifactId>
+            <version>1.6</version>
+        </dependency>
 
         <!-- Logging -->
         <dependency>

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java?rev=1166915&r1=1166914&r2=1166915&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java Thu Sep  8 21:33:41 2011
@@ -21,29 +21,27 @@
 
 package org.apache.airavata.core.gfac.factory;
 
-import java.util.Properties;
-
 import org.apache.airavata.core.gfac.services.GenericService;
 import org.apache.airavata.core.gfac.services.impl.PropertiesBasedServiceImpl;
 
 public class PropertyServiceFactory extends AbstractServiceFactory {
 
     private GenericService service;
-    private Properties properties;
+    private String fileName;
 
     public PropertyServiceFactory(){        
     }
     
-    public PropertyServiceFactory(Properties prop){
-        this.properties = prop;
+    public PropertyServiceFactory(String fileName){
+        this.fileName = fileName;
     }
     
     public GenericService getGenericService() {
         if (service == null) {
-            if(this.properties == null){
+            if(this.fileName == null){
                 service = new PropertiesBasedServiceImpl();
             }else{
-                service = new PropertiesBasedServiceImpl(this.properties);
+                service = new PropertiesBasedServiceImpl(this.fileName);
             }
         }
         return service;

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java?rev=1166915&r1=1166914&r2=1166915&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java Thu Sep  8 21:33:41 2011
@@ -21,10 +21,9 @@
 
 package org.apache.airavata.core.gfac.services.impl;
 
-import java.io.IOException;
 import java.lang.reflect.Array;
-import java.net.URL;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 
@@ -42,6 +41,9 @@ import org.apache.airavata.core.gfac.ext
 import org.apache.airavata.core.gfac.extension.PreExecuteChain;
 import org.apache.airavata.core.gfac.scheduler.Scheduler;
 import org.apache.airavata.core.gfac.utils.LogUtils;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,7 +60,7 @@ public class PropertiesBasedServiceImpl 
     /*
      * default properties file location
      */
-    private static final String FILENAME = "service.properties";
+    private static final String DEFAULT_FILENAME = "service.properties";
 
     /*
      * context name
@@ -96,13 +98,15 @@ public class PropertiesBasedServiceImpl 
     public static final String MYPROXY_PASS = "myproxy.pass";
     public static final String MYPROXY_LIFE = "myproxy.life";
 
-    private Properties properties;
+    
     private Scheduler scheduler;
     private PreExecuteChain[] preChain;
     private PostExecuteChain[] postChain;
     private DataServiceChain[] dataChain;
-
     private Registry registryService;
+    
+    private String fileName = DEFAULT_FILENAME;
+    private Configuration config;
 
     /**
      * Default constructor
@@ -112,14 +116,13 @@ public class PropertiesBasedServiceImpl 
     }
 
     /**
-     * Constructor with passing properties
+     * Constructor with passing file
      * 
      * @param prop
      */
-    public PropertiesBasedServiceImpl(Properties prop) {
-        this.properties = prop;
-        log.debug("Create PropertiesBasedServiceImpl with Properties");
-        LogUtils.displayProperties(log, prop);
+    public PropertiesBasedServiceImpl(String fileName) {
+        this.fileName = fileName;
+        log.debug("Create PropertiesBasedServiceImpl with Filename");
     }
 
     /*
@@ -135,17 +138,13 @@ public class PropertiesBasedServiceImpl 
             /*
              * Load properties only it is not loaded
              */
-            if (this.properties == null) {
-                log.info("try to load default properties: " + FILENAME);
-                URL url = this.getClass().getClassLoader().getResource(FILENAME);
-
-                this.properties = new Properties();
-                this.properties.load(url.openStream());
+            if (this.config == null || this.config.isEmpty()) {
+                this.config = new PropertiesConfiguration(this.fileName);
 
                 log.info("Properties loaded");
-                LogUtils.displayProperties(log, properties);
+                LogUtils.displayProperties(log, getProperties());
             }
-        } catch (IOException e) {
+        } catch (ConfigurationException e) {
             throw new GfacException("Error initialize the PropertiesBasedServiceImpl", e);
         }
     }
@@ -214,7 +213,7 @@ public class PropertiesBasedServiceImpl 
                 /*
                  * Remove unnecessary key
                  */
-                Map<String, String> map = new HashMap<String, String>((Map) this.properties);
+                Map<String, String> map = new HashMap<String, String>((Map)getProperties());
                 map.remove(JCR_CLASS);
                 map.remove(JCR_USER);
                 map.remove(JCR_PASS);
@@ -334,6 +333,16 @@ public class PropertiesBasedServiceImpl 
         return dataChain;
     }
 
+    private Properties getProperties(){
+        Properties prop = new Properties();
+        for (Iterator iterator = this.config.getKeys(); iterator.hasNext();) {
+            String key = (String) iterator.next();
+            prop.put(key, this.config.getString(key));            
+        }
+        return prop;
+    }
+    
+    
     /**
      * 
      * @param propertyName
@@ -342,7 +351,7 @@ public class PropertiesBasedServiceImpl 
      * @throws GfacException
      */
     private String loadFromProperty(String propertyName, boolean required) throws ServiceException {
-        String propValue = this.properties.getProperty(propertyName);
+        String propValue = this.config.getString(propertyName);
         if (propValue == null) {
             if (required)
                 throw new ServiceException("Property \"" + propertyName + "\" is not found");
@@ -367,7 +376,7 @@ public class PropertiesBasedServiceImpl 
         /*
          * get class names
          */
-        String classNames[] = this.properties.getProperty(propertyName).split(",");
+        String classNames[] = this.config.getStringArray(propertyName);
 
         /*
          * init instance of that class

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties?rev=1166915&r1=1166914&r2=1166915&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties Thu Sep  8 21:33:41 2011
@@ -26,9 +26,13 @@ jcr.user=admin
 jcr.pass=admin
 
 scheduler.class= org.apache.airavata.core.gfac.scheduler.impl.SchedulerImpl
-datachain.classes=org.apache.airavata.core.gfac.extension.data.RegistryDataService
-prechain.classes=org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging, org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
-postchain.classes=org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
+
+datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService
+
+prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging 
+prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
+
+postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
 
 #SSH key
 #ssh.key=/home/user/.ssh/id_rsa

Modified: incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties?rev=1166915&r1=1166914&r2=1166915&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties Thu Sep  8 21:33:41 2011
@@ -21,17 +21,18 @@
 
 jcr.class=org.apache.jackrabbit.core.RepositoryFactoryImpl
 #jcr.class=org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory
-#org.apache.jackrabbit.repository.uri=http://localhost:8081/rmi
+#org.apache.jackrabbit.repository.uri=http://localhost:8080/rmi
 jcr.user=admin
 jcr.pass=admin
 
 scheduler.class= org.apache.airavata.core.gfac.scheduler.impl.SchedulerImpl
 
-datachain.classes=org.apache.airavata.core.gfac.extension.data.RegistryDataService
+datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService
 
-prechain.classes=org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging, org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
+prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging 
+prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
 
-postchain.classes=org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
+postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
 
 #SSH key
 #ssh.key=/home/user/.ssh/id_rsa