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