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) {