You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2013/01/09 04:09:13 UTC

svn commit: r1430668 - in /airavata/trunk/modules/registry: airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ registry-api/src/main/java/org/apache/airavata/registry/api/ registry-api/src/main/java/org/apache/airava...

Author: samindaw
Date: Wed Jan  9 03:09:13 2013
New Revision: 1430668

URL: http://svn.apache.org/viewvc?rev=1430668&view=rev
Log:
refactor custom registry intiating function

Modified:
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
    airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry2.java
    airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java?rev=1430668&r1=1430667&r2=1430668&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java Wed Jan  9 03:09:13 2013
@@ -66,7 +66,6 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.impl.WorkflowExecutionDataImpl;
 import org.apache.airavata.registry.api.util.RegistryConstants;
 import org.apache.airavata.registry.api.workflow.*;
-import org.apache.airavata.registry.api.workflow.WorkflowExecutionData;
 import org.apache.airavata.registry.api.workflow.WorkflowExecutionStatus.State;
 import org.apache.xmlbeans.XmlException;
 import org.slf4j.Logger;
@@ -96,37 +95,46 @@ public class AiravataJPARegistry extends
     	//present
     	active=true;
 
-        // retrieving user defined registry classes from registry settings
+        initializeCustomRegistries();
+    }
+
+    /**
+     * Initialize the custom registries defined in the registry settings
+     * @throws RegistryException
+     */
+	private void initializeCustomRegistries() throws RegistryException {
+		// retrieving user defined registry classes from registry settings
         try {
-            configurationRegistry = (ConfigurationRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.CONFIGURATION_REGISTRY_ACCESSOR_CLASS);
-            configurationRegistry.setAiravataRegistry(this);
-            descriptorRegistry = (DescriptorRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.DESCRIPTOR_REGISTRY_ACCESSOR_CLASS);
-            descriptorRegistry.setAiravataRegistry(this);
-            projectsRegistry = (ProjectsRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.PROJECT_REGISTRY_ACCESSOR_CLASS);
-            projectsRegistry.setAiravataRegistry(this);
-            provenanceRegistry = (ProvenanceRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.PROVENANCE_REGISTRY_ACCESSOR_CLASS);
-            provenanceRegistry.setAiravataRegistry(this);
-            userWorkflowRegistry = (UserWorkflowRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.USER_WF_REGISTRY_ACCESSOR_CLASS);
-            userWorkflowRegistry.setAiravataRegistry(this);
-            publishedWorkflowRegistry = (PublishedWorkflowRegistry)AiravataRegistryFactory.getRegistryClass(RegistryConstants.PUBLISHED_WF_REGISTRY_ACCESSOR_CLASS);
-            publishedWorkflowRegistry.setAiravataRegistry(this);
-        } catch (RegistryAccessorNotFoundException e) {
-            throw new RegistryException("Airavata Registry custom implementation class not defined in registry settings", e);
-        } catch (RegistryAccessorUndefinedException e) {
-            configurationRegistry = null;
-            descriptorRegistry = null;
-            projectsRegistry = null;
-            provenanceRegistry = null;
-            userWorkflowRegistry = null;
-            publishedWorkflowRegistry = null;
-            logger.debug("Airavata Registry custom implementation class not defined in registry settings");
-        } catch (RegistryAccessorInstantiateException e) {
-            throw new RegistryException("Airavata Registry custom implementation class not defined in registry settings", e);
+            configurationRegistry = (ConfigurationRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.CONFIGURATION_REGISTRY_ACCESSOR_CLASS);
+            descriptorRegistry = (DescriptorRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.DESCRIPTOR_REGISTRY_ACCESSOR_CLASS);
+            projectsRegistry = (ProjectsRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.PROJECT_REGISTRY_ACCESSOR_CLASS);
+            provenanceRegistry = (ProvenanceRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.PROVENANCE_REGISTRY_ACCESSOR_CLASS);
+            userWorkflowRegistry = (UserWorkflowRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.USER_WF_REGISTRY_ACCESSOR_CLASS);
+            publishedWorkflowRegistry = (PublishedWorkflowRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.PUBLISHED_WF_REGISTRY_ACCESSOR_CLASS);
         } catch (AiravataConfigurationException e) {
             throw new RegistryException("Airavata Registry custom implementation class not defined in registry settings", e);
         }
-    }
+	}
 
+    private <T extends AiravataSubRegistry> Object getClassInstance(Class<T> c, String registryAccessorKey) throws AiravataConfigurationException{
+		try {
+			T registryClass = c.cast(AiravataRegistryFactory.getRegistryClass(registryAccessorKey));
+			registryClass.setAiravataRegistry(this);
+			return registryClass;
+		} catch (ClassCastException e){
+			logger.error("The class defined for accessor type "+registryAccessorKey+" MUST be an extention of the interface "+c.getName(),e);
+		} catch (RegistryAccessorNotFoundException e) {
+			logger.error("Error in loading class for registry accessor "+registryAccessorKey,e);
+		} catch (RegistryAccessorUndefinedException e) {
+			// happens when user has not defined an accessor for the registry accessor key
+			// thus ignore error
+		} catch (RegistryAccessorInstantiateException e) {
+			logger.error("Error in instantiating instance from class for registry accessor "+registryAccessorKey,e);
+		} catch (AiravataConfigurationException e) {
+			throw e;
+		}
+		return null;
+    }
 
 	@Override
 	public boolean isActive() {

Modified: airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry2.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry2.java?rev=1430668&r1=1430667&r2=1430668&view=diff
==============================================================================
--- airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry2.java (original)
+++ airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry2.java Wed Jan  9 03:09:13 2013
@@ -40,6 +40,10 @@ public abstract class AiravataRegistry2 
 		setCallback(callback);
 	}
 	
+	/**
+	 * Initialize the Airavata Registry
+	 * @throws RegistryException
+	 */
 	protected abstract void initialize() throws RegistryException;
 	
 	public Gateway getGateway() {

Modified: airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java?rev=1430668&r1=1430667&r2=1430668&view=diff
==============================================================================
--- airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java (original)
+++ airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java Wed Jan  9 03:09:13 2013
@@ -26,7 +26,7 @@ public class RegistryAccessorUndefinedEx
 	private static final long serialVersionUID = -2679914107485739140L;
 
 	public RegistryAccessorUndefinedException() {
-		this("A registry accessor was not defined in the airavata-server.properties");
+		this("A registry accessor was not defined in the registry settings");
 	}
 	
 	public RegistryAccessorUndefinedException(String message) {