You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/05/30 19:08:34 UTC
[4/4] airavata git commit: adding missing files back again from an
old commit
adding missing files back again from an old commit
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/208e5d38
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/208e5d38
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/208e5d38
Branch: refs/heads/registry-refactoring
Commit: 208e5d3873debed16f27a236f7739e3b811cb9ab
Parents: 94d8ac2
Author: scnakandala <su...@gmail.com>
Authored: Tue May 30 15:08:27 2017 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Tue May 30 15:08:27 2017 -0400
----------------------------------------------------------------------
modules/registry-refactoring/pom.xml | 150 +++---
.../registry/core/RegistryException.java | 28 ++
.../ComputeResourceSchedulingEntity.java | 170 +++++++
.../entities/expcatalog/ExperimentEntity.java | 224 +++++++++
.../expcatalog/ExperimentErrorEntity.java | 118 +++++
.../entities/expcatalog/ExperimentErrorPK.java | 75 +++
.../expcatalog/ExperimentInputEntity.java | 174 +++++++
.../entities/expcatalog/ExperimentInputPK.java | 74 +++
.../expcatalog/ExperimentOutputEntity.java | 165 +++++++
.../entities/expcatalog/ExperimentOutputPK.java | 74 +++
.../expcatalog/ExperimentStatusEntity.java | 83 ++++
.../entities/expcatalog/ExperimentStatusPK.java | 74 +++
.../core/entities/expcatalog/JobEntity.java | 165 +++++++
.../entities/expcatalog/JobStatusEntity.java | 83 ++++
.../core/entities/expcatalog/JobStatusPK.java | 74 +++
.../core/entities/expcatalog/ProcessEntity.java | 276 +++++++++++
.../entities/expcatalog/ProcessErrorEntity.java | 118 +++++
.../entities/expcatalog/ProcessErrorPK.java | 75 +++
.../entities/expcatalog/ProcessInputEntity.java | 174 +++++++
.../entities/expcatalog/ProcessInputPK.java | 74 +++
.../expcatalog/ProcessOutputEntity.java | 165 +++++++
.../entities/expcatalog/ProcessOutputPK.java | 70 +++
.../ProcessResourceSchedulingEntity.java | 170 +++++++
.../expcatalog/ProcessStatusEntity.java | 83 ++++
.../entities/expcatalog/ProcessStatusPK.java | 74 +++
.../core/entities/expcatalog/TaskEntity.java | 147 ++++++
.../entities/expcatalog/TaskErrorEntity.java | 118 +++++
.../core/entities/expcatalog/TaskErrorPK.java | 75 +++
.../entities/expcatalog/TaskStatusEntity.java | 83 ++++
.../core/entities/expcatalog/TaskStatusPK.java | 74 +++
.../expcatalog/UserConfigurationEntity.java | 131 +++++
.../workspacecatalog/GatewayEntity.java | 221 +++++++++
.../workspacecatalog/NSFDemographicsEntity.java | 94 ++++
.../workspacecatalog/NotificationEntity.java | 110 +++++
.../workspacecatalog/ProjectEntity.java | 92 ++++
.../workspacecatalog/UserProfileEntity.java | 247 ++++++++++
.../core/repositories/AbstractRepository.java | 98 ++++
.../expcatalog/ExperimentRepository.java | 101 ++++
.../ComponentStatusRepository.java | 37 ++
.../workflowcatalog/EdgeRepository.java | 38 ++
.../workflowcatalog/WorkflowRepository.java | 37 ++
.../workspacecatalog/GatewayRepository.java | 36 ++
.../NotificationRepository.java | 35 ++
.../workspacecatalog/ProjectRepository.java | 35 ++
.../workspacecatalog/UserProfileRepository.java | 88 ++++
.../airavata/registry/core/utils/Committer.java | 27 +
.../airavata/registry/core/utils/JPAUtils.java | 82 ++++
.../core/utils/ObjectMapperSingleton.java | 39 ++
.../src/main/resources/META-INF/persistence.xml | 131 +++++
.../src/main/resources/experiment_catalog.sql | 285 +++++++++++
.../src/main/resources/workspace_catalog.sql | 125 +++++
.../repositories/ExperimentRepositoryTest.java | 247 +++++-----
.../ReplicaCatalogRepositoryTest.java | 200 ++++----
.../repositories/WorkflowRepositoryTest.java | 193 ++++----
.../repositories/WorkspaceRepositoryTest.java | 491 ++++++++++---------
55 files changed, 6092 insertions(+), 635 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/pom.xml b/modules/registry-refactoring/pom.xml
index 7939a45..b794349 100644
--- a/modules/registry-refactoring/pom.xml
+++ b/modules/registry-refactoring/pom.xml
@@ -1,26 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.airavata</groupId>
@@ -29,112 +11,104 @@
<relativePath>../../pom.xml</relativePath>
</parent>
- <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.airavata</groupId>
<artifactId>registry-refactoring</artifactId>
- <packaging>pom</packaging>
- <name>Airavata Registry Refactoring</name>
- <url>http://airavata.apache.org/</url>
+
+ <properties>
+ <derby.version>10.11.1.1</derby.version>
+ <surefire.version>2.18.1</surefire.version>
+ <skipTests>false</skipTests>
+ <mysql.connector.version>5.1.34</mysql.connector.version>
+ </properties>
<dependencies>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.airavata</groupId>
- <artifactId>airavata-commons</artifactId>
+ <artifactId>airavata-data-models</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- Test -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <scope>test</scope>
- </dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <scope>test</scope>
+ <groupId>net.sf.dozer</groupId>
+ <artifactId>dozer</artifactId>
+ <version>5.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-all</artifactId>
- <version>2.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.airavata</groupId>
- <artifactId>airavata-data-models</artifactId>
- <version>${project.version}</version>
+ <version>2.3.0</version>
</dependency>
+
<dependency>
- <groupId>org.apache.airavata</groupId>
- <artifactId>airavata-registry-cpi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!--dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
- </dependency-->
+ </dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>${derby.version}</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbynet</artifactId>
<version>${derby.version}</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>${derby.version}</version>
- <scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.airavata</groupId>
- <artifactId>airavata-server-configuration</artifactId>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
- <!--<plugin>-->
- <!--<groupId>org.apache.maven.plugins</groupId>-->
- <!--<artifactId>maven-antrun-plugin</artifactId>-->
- <!--<version>${antrun.version}</version>-->
- <!--<executions>-->
- <!--<execution>-->
- <!--<phase>process-classes</phase>-->
- <!--<configuration>-->
- <!--<tasks>-->
- <!--<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="maven.compile.classpath" />-->
- <!--<openjpac>-->
- <!--<classpath refid="maven.compile.classpath" />-->
- <!--</openjpac>-->
- <!--</tasks>-->
- <!--</configuration>-->
- <!--<goals>-->
- <!--<goal>run</goal>-->
- <!--</goals>-->
- <!--</execution>-->
- <!--</executions>-->
- <!--</plugin>-->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.openjpa</groupId>
+ <artifactId>openjpa-maven-plugin</artifactId>
+ <version>2.2.0</version>
+ <configuration>
+ <includes>**/entities/*.class</includes>
+ <excludes>**/entities/XML*.class</excludes>
+ <addDefaultConstructor>true</addDefaultConstructor>
+ <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
+ </configuration>
+ <executions>
+ <execution>
+ <id>enhancer</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>enhance</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openjpa</groupId>
+ <artifactId>openjpa</artifactId>
+ <version>2.2.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
@@ -142,12 +116,12 @@
<inherited>true</inherited>
<configuration>
<failIfNoTests>false</failIfNoTests>
- <skipTests>${skipTests}</skipTests>
+ <!--<skipTests>${skipTests}</skipTests>-->
+ <skipTests>true</skipTests>
<workingDirectory>${project.build.testOutputDirectory}</workingDirectory>
- <!-- making sure that the sure-fire plugin doesn't run the integration tests-->
- <!-- Integration tests are run using the fail-safe plugin in the module pom-->
</configuration>
</plugin>
</plugins>
</build>
-</project>
+
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/RegistryException.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/RegistryException.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/RegistryException.java
new file mode 100644
index 0000000..8893b34
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/RegistryException.java
@@ -0,0 +1,28 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RegistryException extends Exception {
+ private final static Logger logger = LoggerFactory.getLogger(RegistryException.class);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ComputeResourceSchedulingEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ComputeResourceSchedulingEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ComputeResourceSchedulingEntity.java
new file mode 100644
index 0000000..bfbb3e2
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ComputeResourceSchedulingEntity.java
@@ -0,0 +1,170 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "EXPCAT_COMPUTE_RESOURCE_SCHEDULING")
+public class ComputeResourceSchedulingEntity {
+ private String experimentId;
+ private String resourceHostId;
+ private int totalCPUCount;
+ private int nodeCount;
+ private int numberOfThreads;
+ private String queueName;
+ private int wallTimeLimit;
+ private int totalPhysicalMemory;
+ private String chessisNumber;
+ private String staticWorkingDir;
+ private String overrideLoginUserName;
+ private String overrideScratchLocation;
+ private String overrideAllocationProjectNumber;
+ private UserConfigurationEntity userConfiguration;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Column(name = "RESOURCE_HOST_ID")
+ public String getResourceHostId() {
+ return resourceHostId;
+ }
+
+ public void setResourceHostId(String resourceHostId) {
+ this.resourceHostId = resourceHostId;
+ }
+
+ @Column(name = "CPU_COUNT")
+ public int getTotalCPUCount() {
+ return totalCPUCount;
+ }
+
+ public void setTotalCPUCount(int totalCPUCount) {
+ this.totalCPUCount = totalCPUCount;
+ }
+
+ @Column(name = "NODE_COUNT")
+ public int getNodeCount() {
+ return nodeCount;
+ }
+
+ public void setNodeCount(int nodeCount) {
+ this.nodeCount = nodeCount;
+ }
+
+ @Column(name = "NUMBER_OF_THREADS")
+ public int getNumberOfThreads() {
+ return numberOfThreads;
+ }
+
+ public void setNumberOfThreads(int numberOfThreads) {
+ this.numberOfThreads = numberOfThreads;
+ }
+
+ @Column(name = "QUEUE_NAME")
+ public String getQueueName() {
+ return queueName;
+ }
+
+ public void setQueueName(String queueName) {
+ this.queueName = queueName;
+ }
+
+ @Column(name = "WALL_TIME_LIMIT")
+ public int getWallTimeLimit() {
+ return wallTimeLimit;
+ }
+
+ public void setWallTimeLimit(int wallTimeLimit) {
+ this.wallTimeLimit = wallTimeLimit;
+ }
+
+ @Column(name = "TOTAL_PHYSICAL_MEMORY")
+ public int getTotalPhysicalMemory() {
+ return totalPhysicalMemory;
+ }
+
+ public void setTotalPhysicalMemory(int totalPhysicalMemory) {
+ this.totalPhysicalMemory = totalPhysicalMemory;
+ }
+
+ @Column(name = "CHESSIS_NUMBER")
+ public String getChessisNumber() {
+ return chessisNumber;
+ }
+
+ public void setChessisNumber(String chessisNumber) {
+ this.chessisNumber = chessisNumber;
+ }
+
+ @Column(name = "STATIC_WORKING_DIRECTORY")
+ public String getStaticWorkingDir() {
+ return staticWorkingDir;
+ }
+
+ public void setStaticWorkingDir(String staticWorkingDir) {
+ this.staticWorkingDir = staticWorkingDir;
+ }
+
+ @Column(name = "OVERRIDE_LOGIN_USERNAME")
+ public String getOverrideLoginUserName() {
+ return overrideLoginUserName;
+ }
+
+ public void setOverrideLoginUserName(String overrideLoginUserName) {
+ this.overrideLoginUserName = overrideLoginUserName;
+ }
+
+ @Column(name = "OVERRIDE_SCRATCH_LOCATION")
+ public String getOverrideScratchLocation() {
+ return overrideScratchLocation;
+ }
+
+ public void setOverrideScratchLocation(String overrideScratchLocation) {
+ this.overrideScratchLocation = overrideScratchLocation;
+ }
+
+ @Column(name = "OVERRIDE_ALLOCATION_PROJECT_NUMBER")
+ public String getOverrideAllocationProjectNumber() {
+ return overrideAllocationProjectNumber;
+ }
+
+ public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+ this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+ }
+
+ @OneToOne(targetEntity = UserConfigurationEntity.class, cascade = CascadeType.ALL)
+ @PrimaryKeyJoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public UserConfigurationEntity getUserConfiguration() {
+ return userConfiguration;
+ }
+
+ public void setUserConfiguration(UserConfigurationEntity userConfiguration) {
+ this.userConfiguration = userConfiguration;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentEntity.java
new file mode 100644
index 0000000..e7ea3f6
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentEntity.java
@@ -0,0 +1,224 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Table(name = "EXPCAT_EXPERIMENT")
+public class ExperimentEntity {
+ public String experimentId;
+ public String projectId;
+ public String gatewayId;
+ public String experimentType;
+ public String userName;
+ public String experimentName;
+ public long creationTime;
+ public String description;
+ public String executionId;
+ public String gatewayExecutionId;
+ public String gatewayInstanceId;
+ public boolean enableEmailNotification;
+ public List<String> emailAddresses;
+
+ private List<ExperimentInputEntity> experimentInputs;
+ private List<ExperimentOutputEntity> experimentOutputs;
+ private List<ExperimentErrorEntity> experimentErrors;
+ private List<ExperimentStatusEntity> experimentStatuses;
+
+ private UserConfigurationEntity userConfigurationData;
+
+ private List<ProcessEntity> processes;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Column(name = "PROJECT_ID")
+ public String getProjectId() {
+ return projectId;
+ }
+
+ public void setProjectId(String projectId) {
+ this.projectId = projectId;
+ }
+
+ @Column(name = "GATEWAY_ID")
+ public String getGatewayId() {
+ return gatewayId;
+ }
+
+ public void setGatewayId(String gatewayId) {
+ this.gatewayId = gatewayId;
+ }
+
+ @Column(name = "EXPERIMENT_TYPE")
+ public String getExperimentType() {
+ return experimentType;
+ }
+
+ public void setExperimentType(String experimentType) {
+ this.experimentType = experimentType;
+ }
+
+ @Column(name = "USER_NAME")
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ @Column(name = "EXPERIMENT_NAME")
+ public String getExperimentName() {
+ return experimentName;
+ }
+
+ public void setExperimentName(String experimentName) {
+ this.experimentName = experimentName;
+ }
+
+ @Column(name = "CREATION_TIME")
+ public long getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ @Column(name = "DESCRIPTION")
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Column(name = "EXECUTION_ID")
+ public String getExecutionId() {
+ return executionId;
+ }
+
+ public void setExecutionId(String executionId) {
+ this.executionId = executionId;
+ }
+
+ @Column(name = "GATEWAY_EXECUTION_ID")
+ public String getGatewayExecutionId() {
+ return gatewayExecutionId;
+ }
+
+ public void setGatewayExecutionId(String gatewayExecutionId) {
+ this.gatewayExecutionId = gatewayExecutionId;
+ }
+
+ @Column(name = "GATEWAY_INSTANCE_ID")
+ public String getGatewayInstanceId() {
+ return gatewayInstanceId;
+ }
+
+ public void setGatewayInstanceId(String gatewayInstanceId) {
+ this.gatewayInstanceId = gatewayInstanceId;
+ }
+
+ @Column(name = "ENABLE_EMAIL_NOTIFICATION")
+ public boolean isEnableEmailNotification() {
+ return enableEmailNotification;
+ }
+
+ public void setEnableEmailNotification(boolean enableEmailNotification) {
+ this.enableEmailNotification = enableEmailNotification;
+ }
+
+ @ElementCollection
+ @CollectionTable(name="EXPCAT_EXPERIMENT_EMAIL", joinColumns = @JoinColumn(name="EXPERIMENT_ID"))
+ public List<String> getEmailAddresses() {
+ return emailAddresses;
+ }
+
+ public void setEmailAddresses(List<String> emailAddresses) {
+ this.emailAddresses = emailAddresses;
+ }
+
+ @OneToOne(targetEntity = UserConfigurationEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public UserConfigurationEntity getUserConfigurationData() {
+ return userConfigurationData;
+ }
+
+ public void setUserConfigurationData(UserConfigurationEntity userConfiguration) {
+ this.userConfigurationData = userConfiguration;
+ }
+
+ @OneToMany(targetEntity = ExperimentInputEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public List<ExperimentInputEntity> getExperimentInputs() {
+ return experimentInputs;
+ }
+
+ public void setExperimentInputs(List<ExperimentInputEntity> experimentInputs) {
+ this.experimentInputs = experimentInputs;
+ }
+
+ @OneToMany(targetEntity = ExperimentOutputEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public List<ExperimentOutputEntity> getExperimentOutputs() {
+ return experimentOutputs;
+ }
+
+ public void setExperimentOutputs(List<ExperimentOutputEntity> experimentOutputs) {
+ this.experimentOutputs = experimentOutputs;
+ }
+
+ @OneToMany(targetEntity = ExperimentErrorEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public List<ExperimentErrorEntity> getExperimentErrors() {
+ return experimentErrors;
+ }
+
+ public void setExperimentErrors(List<ExperimentErrorEntity> experimentErrors) {
+ this.experimentErrors = experimentErrors;
+ }
+
+ @OneToMany(targetEntity = ExperimentStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public List<ExperimentStatusEntity> getExperimentStatuses() {
+ return experimentStatuses;
+ }
+
+ public void setExperimentStatuses(List<ExperimentStatusEntity> experimentStatuses) {
+ this.experimentStatuses = experimentStatuses;
+ }
+
+ @OneToMany(targetEntity = ProcessEntity.class, cascade = CascadeType.ALL, mappedBy = "experiment")
+ public List<ProcessEntity> getProcesses() {
+ return processes;
+ }
+
+ public void setProcesses(List<ProcessEntity> processes) {
+ this.processes = processes;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorEntity.java
new file mode 100644
index 0000000..37df525
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorEntity.java
@@ -0,0 +1,118 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Table(name = "EXPCAT_EXPERIMENT_ERROR")
+@IdClass(ExperimentErrorPK.class)
+public class ExperimentErrorEntity {
+ private String errorId;
+ private String experimentId;
+ private long creationTime;
+ private String actualErrorMessage;
+ private String userFriendlyMessage;
+ private boolean transientOrPersistent;
+ private List<String> rootCauseErrorIdList;
+
+ private ExperimentEntity experiment;
+
+ @Id
+ @Column(name = "ERROR_ID")
+ public String getErrorId() {
+ return errorId;
+ }
+
+ public void setErrorId(String errorId) {
+ this.errorId = errorId;
+ }
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Column(name = "CREATION_TIME")
+ public long getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ @Column(name = "ACTUAL_ERROR_MESSAGE")
+ public String getActualErrorMessage() {
+ return actualErrorMessage;
+ }
+
+ public void setActualErrorMessage(String actualErrorMessage) {
+ this.actualErrorMessage = actualErrorMessage;
+ }
+
+ @Column(name = "USER_FRIENDLY_MESSAGE")
+ public String getUserFriendlyMessage() {
+ return userFriendlyMessage;
+ }
+
+ public void setUserFriendlyMessage(String userFriendlyMessage) {
+ this.userFriendlyMessage = userFriendlyMessage;
+ }
+
+
+ @Column(name = "TRANSIENT_OR_PERSISTENT")
+ public boolean isTransientOrPersistent() {
+ return transientOrPersistent;
+ }
+
+ public void setTransientOrPersistent(boolean transientOrPersistent) {
+ this.transientOrPersistent = transientOrPersistent;
+ }
+
+
+ @ElementCollection
+ @CollectionTable(name="EXPERIMENT_ERROR_ROOT_CAUSE_ERROR_ID", joinColumns = @JoinColumn(name="ERROR_ID"))
+ public List<String> getRootCauseErrorIdList() {
+ return rootCauseErrorIdList;
+ }
+
+ public void setRootCauseErrorIdList(List<String> rootCauseErrorIdList) {
+ this.rootCauseErrorIdList = rootCauseErrorIdList;
+ }
+
+
+ @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public ExperimentEntity getExperiment() {
+ return experiment;
+ }
+
+ public void setExperiment(ExperimentEntity experiment) {
+ this.experiment = experiment;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorPK.java
new file mode 100644
index 0000000..add5616
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentErrorPK.java
@@ -0,0 +1,75 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ExperimentErrorPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(ExperimentErrorPK.class);
+ private String errorId;
+ private String experimentId;
+
+ @Column(name = "ERROR_ID")
+ @Id
+ public String getErrorId() {
+ return errorId;
+ }
+
+ public void setErrorId(String errorId) {
+ this.errorId = errorId;
+ }
+
+ @Column(name = "EXPERIMENT_ID")
+ @Id
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ExperimentErrorPK that = (ExperimentErrorPK) o;
+
+ if (getErrorId() != null ? !getErrorId().equals(that.getErrorId()) : that.getErrorId() != null) return false;
+ if (getExperimentId() != null ? !getExperimentId().equals(that.getExperimentId()) : that.getExperimentId() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getErrorId() != null ? getErrorId().hashCode() : 0;
+ result = 31 * result + (getExperimentId() != null ? getExperimentId().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
new file mode 100644
index 0000000..4a9b2c0
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
@@ -0,0 +1,174 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "EXPCAT_EXPERIMENT_INPUT")
+@IdClass(ExperimentInputPK.class)
+public class ExperimentInputEntity {
+ private String experimentId;
+ public String name;
+ public String value;
+ public String type;
+ public String applicationArgument;
+ public boolean standardInput;
+ public String userFriendlyDescription;
+ public String metaData;
+ public int inputOrder;
+ public boolean isRequired;
+ public boolean requiredToAddedToCommandLine;
+ public boolean dataStaged;
+ public String storageResourceId;
+
+ private ExperimentEntity experiment;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Id
+ @Column(name = "INPUT_NAME")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Column(name = "INPUT_VALUE")
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ @Column(name = "INPUT_TYPE")
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Column(name = "APPLICATION_ARGUMENT")
+ public String getApplicationArgument() {
+ return applicationArgument;
+ }
+
+ public void setApplicationArgument(String applicationArgument) {
+ this.applicationArgument = applicationArgument;
+ }
+
+ @Column(name = "STANDARD_INPUT")
+ public boolean isStandardInput() {
+ return standardInput;
+ }
+
+ public void setStandardInput(boolean standardInput) {
+ this.standardInput = standardInput;
+ }
+
+ @Column(name = "USER_FRIENDLY_DESCRIPTION")
+ public String getUserFriendlyDescription() {
+ return userFriendlyDescription;
+ }
+
+ public void setUserFriendlyDescription(String userFriendlyDescription) {
+ this.userFriendlyDescription = userFriendlyDescription;
+ }
+
+ @Lob
+ @Column(name = "METADATA")
+ public String getMetaData() {
+ return metaData;
+ }
+
+ public void setMetaData(String metaData) {
+ this.metaData = metaData;
+ }
+
+ @Column(name = "INPUT_ORDER")
+ public int getInputOrder() {
+ return inputOrder;
+ }
+
+ public void setInputOrder(int inputOrder) {
+ this.inputOrder = inputOrder;
+ }
+
+ @Column(name = "REQUIRED")
+ public boolean isRequired() {
+ return isRequired;
+ }
+
+ public void setRequired(boolean isRequired) {
+ this.isRequired = isRequired;
+ }
+
+ @Column(name = "REQUIRED_TO_ADDED_TO_COMMANDLINE")
+ public boolean isRequiredToAddedToCommandLine() {
+ return requiredToAddedToCommandLine;
+ }
+
+ public void setRequiredToAddedToCommandLine(boolean requiredToAddedToCommandLine) {
+ this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
+ }
+
+ @Column(name = "DATA_STAGED")
+ public boolean isDataStaged() {
+ return dataStaged;
+ }
+
+ public void setDataStaged(boolean dataStaged) {
+ this.dataStaged = dataStaged;
+ }
+
+ @Column(name = "STORAGE_RESOURCE_ID")
+ public String getStorageResourceId() {
+ return storageResourceId;
+ }
+
+ public void setStorageResourceId(String storageResourceId) {
+ this.storageResourceId = storageResourceId;
+ }
+
+ @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public ExperimentEntity getExperiment() {
+ return experiment;
+ }
+
+ public void setExperiment(ExperimentEntity experiment) {
+ this.experiment = experiment;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputPK.java
new file mode 100644
index 0000000..3479878
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ExperimentInputPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(ExperimentInputPK.class);
+ private String experimentId;
+ private String name;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Id
+ @Column(name = "INPUT_NAME")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ExperimentInputPK that = (ExperimentInputPK) o;
+
+ if (getExperimentId() != null ? !getExperimentId().equals(that.getExperimentId()) : that.getExperimentId() != null) return false;
+ if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getExperimentId() != null ? getExperimentId().hashCode() : 0;
+ result = 31 * result + (getName() != null ? getName().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
new file mode 100644
index 0000000..871fcd7
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
@@ -0,0 +1,165 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "EXPCAT_EXPERIMENT_OUTPUT")
+@IdClass(ExperimentOutputPK.class)
+public class ExperimentOutputEntity {
+ private String experimentId;
+ public String name;
+ public String value;
+ public String type;
+ public String applicationArgument;
+ public boolean isRequired;
+ public boolean requiredToAddedToCommandLine;
+ public boolean dataMovement;
+ public String location;
+ public String searchQuery;
+ public boolean outputStreaming;
+ public String storageResourceId;
+
+ private ExperimentEntity experiment;
+
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Id
+ @Column(name = "OUTPUT_NAME")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Column(name = "OUTPUT_VALUE")
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ @Column(name = "OUTPUT_TYPE")
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Column(name = "APPLICATION_ARGUMENT")
+ public String getApplicationArgument() {
+ return applicationArgument;
+ }
+
+ public void setApplicationArgument(String applicationArgument) {
+ this.applicationArgument = applicationArgument;
+ }
+
+ @Column(name = "REQUIRED")
+ public boolean isRequired() {
+ return isRequired;
+ }
+
+ public void setRequired(boolean isRequired) {
+ this.isRequired = isRequired;
+ }
+
+
+ @Column(name = "REQUIRED_TO_ADDED_TO_COMMANDLINE")
+ public boolean isRequiredToAddedToCommandLine() {
+ return requiredToAddedToCommandLine;
+ }
+
+ public void setRequiredToAddedToCommandLine(boolean requiredToAddedToCommandLine) {
+ this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
+ }
+
+ @Column(name = "DATA_MOVEMENT")
+ public boolean isDataMovement() {
+ return dataMovement;
+ }
+
+ public void setDataMovement(boolean dataMovement) {
+ this.dataMovement = dataMovement;
+ }
+
+ @Column(name = "LOCATION")
+ public String getLocation() {
+ return location;
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+ @Column(name = "SEARCH_QUERY")
+ public String getSearchQuery() {
+ return searchQuery;
+ }
+
+ public void setSearchQuery(String searchQuery) {
+ this.searchQuery = searchQuery;
+ }
+
+ @Column(name = "OUTPUT_STREAMING")
+ public boolean isOutputStreaming() {
+ return outputStreaming;
+ }
+
+ public void setOutputStreaming(boolean outputStreaming) {
+ this.outputStreaming = outputStreaming;
+ }
+
+ @Column(name = "STORAGE_RESOURCE_ID")
+ public String getStorageResourceId() {
+ return storageResourceId;
+ }
+
+ public void setStorageResourceId(String storageResourceId) {
+ this.storageResourceId = storageResourceId;
+ }
+
+ @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public ExperimentEntity getExperiment() {
+ return experiment;
+ }
+
+ public void setExperiment(ExperimentEntity experiment) {
+ this.experiment = experiment;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputPK.java
new file mode 100644
index 0000000..da2864c
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ExperimentOutputPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(ExperimentOutputPK.class);
+ private String experimentId;
+ private String name;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Id
+ @Column(name = "OUTPUT_NAME")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ExperimentOutputPK that = (ExperimentOutputPK) o;
+
+ if (getExperimentId() != null ? !getExperimentId().equals(that.getExperimentId()) : that.getExperimentId() != null) return false;
+ if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getExperimentId() != null ? getExperimentId().hashCode() : 0;
+ result = 31 * result + (getName() != null ? getName().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusEntity.java
new file mode 100644
index 0000000..7a73e78
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusEntity.java
@@ -0,0 +1,83 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "EXPCAT_EXPERIMENT_STATUS")
+@IdClass(ExperimentStatusPK.class)
+public class ExperimentStatusEntity {
+ private String experimentId;
+ private String state;
+ private long timeOfStateChange;
+ private String reason;
+
+ private ExperimentEntity experiment;
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Id
+ @Column(name = "STATE")
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ @Column(name = "TIME_OF_STATE_CHANGE")
+ public long getTimeOfStateChange() {
+ return timeOfStateChange;
+ }
+
+ public void setTimeOfStateChange(long timeOfStateChange) {
+ this.timeOfStateChange = timeOfStateChange;
+ }
+
+ @Column(name = "REASON")
+ public String getReason() {
+ return reason;
+ }
+
+ public void setReason(String reason) {
+ this.reason = reason;
+ }
+
+ @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public ExperimentEntity getExperiment() {
+ return experiment;
+ }
+
+ public void setExperiment(ExperimentEntity experiment) {
+ this.experiment = experiment;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusPK.java
new file mode 100644
index 0000000..4c52ec6
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentStatusPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ExperimentStatusPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(ExperimentStatusPK.class);
+ private String state;
+ private String experimentId;
+
+ @Id
+ @Column(name = "STATUS_ID")
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ @Id
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ExperimentStatusPK that = (ExperimentStatusPK) o;
+
+ if (getState() != null ? !getState().equals(that.getState()) : that.getState() != null) return false;
+ if (getExperimentId() != null ? !getExperimentId().equals(that.getExperimentId()) : that.getExperimentId() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getState() != null ? getState().hashCode() : 0;
+ result = 31 * result + (getExperimentId() != null ? getExperimentId().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
new file mode 100644
index 0000000..763f5da
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
@@ -0,0 +1,165 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Table(name = "EXPCAT_JOB")
+public class JobEntity {
+ private String jobId;
+ private String taskId;
+ private String processId;
+ private String jobDescription;
+ private long creationTime;
+ private String computeResourceConsumed;
+ private String jobName;
+ private String workingDir;
+ private String stdOut;
+ private String stdErr;
+ private int exitCode;
+
+ private List<JobStatusEntity> jobStatuses;
+
+ private TaskEntity task;
+
+ @Id
+ @Column(name = "JOB_ID")
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ @Column(name = "TASK_ID")
+ public String getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+
+ @Column(name = "PROCESS_ID")
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ @Column(name = "JOB_DESCRIPTION")
+ public String getJobDescription() {
+ return jobDescription;
+ }
+
+ public void setJobDescription(String jobDescription) {
+ this.jobDescription = jobDescription;
+ }
+
+ @Column(name = "CREATION_TIME")
+ public long getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ @Column(name = "COMPUTE_RESOURCE_CONSUMED")
+ public String getComputeResourceConsumed() {
+ return computeResourceConsumed;
+ }
+
+ public void setComputeResourceConsumed(String computeResourceConsumed) {
+ this.computeResourceConsumed = computeResourceConsumed;
+ }
+
+ @Column(name = "JOB_NAME")
+ public String getJobName() {
+ return jobName;
+ }
+
+ public void setJobName(String jobName) {
+ this.jobName = jobName;
+ }
+
+ @Column(name = "WORKING_DIR")
+ public String getWorkingDir() {
+ return workingDir;
+ }
+
+ public void setWorkingDir(String workingDir) {
+ this.workingDir = workingDir;
+ }
+
+ @Lob
+ @Column(name = "STDOUT")
+ public String getStdOut() {
+ return stdOut;
+ }
+
+ public void setStdOut(String stdOut) {
+ this.stdOut = stdOut;
+ }
+
+ @Lob
+ @Column(name = "STDERR")
+ public String getStdErr() {
+ return stdErr;
+ }
+
+ public void setStdErr(String stdErr) {
+ this.stdErr = stdErr;
+ }
+
+ @Column(name = "EXIT_CODE")
+ public int getExitCode() {
+ return exitCode;
+ }
+
+ public void setExitCode(int exitCode) {
+ this.exitCode = exitCode;
+ }
+
+ @OneToMany(targetEntity = JobStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "job")
+ public List<JobStatusEntity> getJobStatuses() {
+ return jobStatuses;
+ }
+
+ public void setJobStatuses(List<JobStatusEntity> jobStatus) {
+ this.jobStatuses = jobStatus;
+ }
+
+ @ManyToOne(targetEntity = TaskEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "TASK_ID", referencedColumnName = "TASK_ID")
+ public TaskEntity getTask() {
+ return task;
+ }
+
+ public void setTask(TaskEntity task) {
+ this.task = task;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusEntity.java
new file mode 100644
index 0000000..bcc902b
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusEntity.java
@@ -0,0 +1,83 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "EXPCAT_JOB_STATUS")
+@IdClass(JobStatusPK.class)
+public class JobStatusEntity {
+ private String jobId;
+ private String state;
+ private long timeOfStateChange;
+ private String reason;
+
+ private JobEntity job;
+
+ @Id
+ @Column(name = "JOB_ID")
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ @Id
+ @Column(name = "STATE")
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ @Column(name = "TIME_OF_STATE_CHANGE")
+ public long getTimeOfStateChange() {
+ return timeOfStateChange;
+ }
+
+ public void setTimeOfStateChange(long timeOfStateChange) {
+ this.timeOfStateChange = timeOfStateChange;
+ }
+
+ @Column(name = "REASON")
+ public String getReason() {
+ return reason;
+ }
+
+ public void setReason(String reason) {
+ this.reason = reason;
+ }
+
+ @ManyToOne(targetEntity = JobEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "JOB_ID", referencedColumnName = "JOB_ID")
+ public JobEntity getJob() {
+ return job;
+ }
+
+ public void setJob(JobEntity job) {
+ this.job = job;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusPK.java
new file mode 100644
index 0000000..fa8964f
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobStatusPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class JobStatusPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(JobStatusPK.class);
+ private String state;
+ private String jobId;
+
+ @Id
+ @Column(name = "STATUS_ID")
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ @Id
+ @Column(name = "JOB_ID")
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ JobStatusPK that = (JobStatusPK) o;
+
+ if (getState() != null ? !getState().equals(that.getState()) : that.getState() != null) return false;
+ if (getJobId() != null ? !getJobId().equals(that.getJobId()) : that.getJobId() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getState() != null ? getState().hashCode() : 0;
+ result = 31 * result + (getJobId() != null ? getJobId().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
new file mode 100644
index 0000000..a379ef6
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
@@ -0,0 +1,276 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Table(name = "EXPCAT_PROCESS")
+public class ProcessEntity {
+ private String processId;
+ private String experimentId;
+ private long creationTime;
+ private long lastUpdateTime;
+ private String processDetail;
+ private String applicationInterfaceId;
+ private String applicationDeploymentId;
+ private String computeResourceId;
+ private String taskDag;
+ private String gatewayExecutionId;
+ private boolean enableEmailNotification;
+ private List<String> emailAddresses;
+ private String storageResourceId;
+ private String userDn;
+ private boolean generateCert;
+ private String experimentDataDir;
+ private String userName;
+
+ private List<ProcessStatusEntity> processStatuses;
+ private List<ProcessErrorEntity> processErrors;
+ private List<ProcessInputEntity> processInputs;
+ private List<ProcessOutputEntity> processOutputs;
+ private ProcessResourceSchedulingEntity processResourceSchedule;
+ private List<TaskEntity> tasks;
+
+ private ExperimentEntity experiment;
+
+ @Id
+ @Column(name = "PROCESS_ID")
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ @Column(name = "EXPERIMENT_ID")
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ @Column(name = "CREATION_TIME")
+ public long getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ @Column(name = "LAST_UPDATE_TIME")
+ public long getLastUpdateTime() {
+ return lastUpdateTime;
+ }
+
+ public void setLastUpdateTime(long lastUpdateTime) {
+ this.lastUpdateTime = lastUpdateTime;
+ }
+
+ @Column(name = "PROCESS_DETAIL")
+ public String getProcessDetail() {
+ return processDetail;
+ }
+
+ public void setProcessDetail(String processDetail) {
+ this.processDetail = processDetail;
+ }
+
+ @Column(name = "APPLICATION_INTERFACE_ID")
+ public String getApplicationInterfaceId() {
+ return applicationInterfaceId;
+ }
+
+ public void setApplicationInterfaceId(String applicationInterfaceId) {
+ this.applicationInterfaceId = applicationInterfaceId;
+ }
+
+ @Column(name = "APPLICATION_DEPLOYMENT_ID")
+ public String getApplicationDeploymentId() {
+ return applicationDeploymentId;
+ }
+
+ public void setApplicationDeploymentId(String applicationDeploymentId) {
+ this.applicationDeploymentId = applicationDeploymentId;
+ }
+
+
+ @Column(name = "COMPUTE_RESOURCE_ID")
+ public String getComputeResourceId() {
+ return computeResourceId;
+ }
+
+ public void setComputeResourceId(String computeResourceId) {
+ this.computeResourceId = computeResourceId;
+ }
+
+ @Column(name = "TASK_DAG")
+ public String getTaskDag() {
+ return taskDag;
+ }
+
+ public void setTaskDag(String taskDag) {
+ this.taskDag = taskDag;
+ }
+
+ @Column(name = "GATEWAY_EXECUTION_ID")
+ public String getGatewayExecutionId() {
+ return gatewayExecutionId;
+ }
+
+ public void setGatewayExecutionId(String gatewayExecutionId) {
+ this.gatewayExecutionId = gatewayExecutionId;
+ }
+
+ @Column(name = "ENABLE_EMAIL_NOTIFICATION")
+ public boolean isEnableEmailNotification() {
+ return enableEmailNotification;
+ }
+
+ public void setEnableEmailNotification(boolean enableEmailNotification) {
+ this.enableEmailNotification = enableEmailNotification;
+ }
+
+ @ElementCollection
+ @CollectionTable(name="PROCESS_EMAIL", joinColumns = @JoinColumn(name="PROCESS_ID"))
+ public List<String> getEmailAddresses() {
+ return emailAddresses;
+ }
+
+ public void setEmailAddresses(List<String> emailAddresses) {
+ this.emailAddresses = emailAddresses;
+ }
+
+ @Column(name = "STORAGE_RESOURCE_ID")
+ public String getStorageResourceId() {
+ return storageResourceId;
+ }
+
+ public void setStorageResourceId(String storageResourceId) {
+ this.storageResourceId = storageResourceId;
+ }
+
+ @Column(name = "USER_DN")
+ public String getUserDn() {
+ return userDn;
+ }
+
+ public void setUserDn(String userDn) {
+ this.userDn = userDn;
+ }
+
+ @Column(name = "GENERATE_CERT")
+ public boolean isGenerateCert() {
+ return generateCert;
+ }
+
+ public void setGenerateCert(boolean generateCert) {
+ this.generateCert = generateCert;
+ }
+
+ @Column(name = "EXPERIMENT_DATA_DIR")
+ public String getExperimentDataDir() {
+ return experimentDataDir;
+ }
+
+ public void setExperimentDataDir(String experimentDataDir) {
+ this.experimentDataDir = experimentDataDir;
+ }
+
+ @Column(name = "USER_NAME")
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ @OneToMany(targetEntity = ProcessStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public List<ProcessStatusEntity> getProcessStatuses() {
+ return processStatuses;
+ }
+
+ public void setProcessStatuses(List<ProcessStatusEntity> processStatus) {
+ this.processStatuses = processStatus;
+ }
+
+ @OneToMany(targetEntity = ProcessErrorEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public List<ProcessErrorEntity> getProcessErrors() {
+ return processErrors;
+ }
+
+ public void setProcessErrors(List<ProcessErrorEntity> processError) {
+ this.processErrors = processError;
+ }
+
+ @OneToMany(targetEntity = ProcessInputEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public List<ProcessInputEntity> getProcessInputs() {
+ return processInputs;
+ }
+
+ public void setProcessInputs(List<ProcessInputEntity> processInputs) {
+ this.processInputs = processInputs;
+ }
+
+ @OneToMany(targetEntity = ProcessOutputEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public List<ProcessOutputEntity> getProcessOutputs() {
+ return processOutputs;
+ }
+
+ public void setProcessOutputs(List<ProcessOutputEntity> processOutputs) {
+ this.processOutputs = processOutputs;
+ }
+
+ @OneToOne(targetEntity = ProcessResourceSchedulingEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public ProcessResourceSchedulingEntity getProcessResourceSchedule() {
+ return processResourceSchedule;
+ }
+
+ public void setProcessResourceSchedule(ProcessResourceSchedulingEntity proceeResourceSchedule) {
+ this.processResourceSchedule = proceeResourceSchedule;
+ }
+
+ @OneToMany(targetEntity = TaskEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
+ public List<TaskEntity> getTasks() {
+ return tasks;
+ }
+
+ public void setTasks(List<TaskEntity> tasks) {
+ this.tasks = tasks;
+ }
+
+ @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+ public ExperimentEntity getExperiment() {
+ return experiment;
+ }
+
+ public void setExperiment(ExperimentEntity experiment) {
+ this.experiment = experiment;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorEntity.java
new file mode 100644
index 0000000..60ad9b2
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorEntity.java
@@ -0,0 +1,118 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Table(name = "EXPCAT_PROCESS_ERROR")
+@IdClass(ProcessErrorPK.class)
+public class ProcessErrorEntity {
+ private String errorId;
+ private String processId;
+ private long creationTime;
+ private String actualErrorMessage;
+ private String userFriendlyMessage;
+ private boolean transientOrPersistent;
+ private List<String> rootCauseErrorIdList;
+
+ private ProcessEntity process;
+
+ @Id
+ @Column(name = "ERROR_ID")
+ public String getErrorId() {
+ return errorId;
+ }
+
+ public void setErrorId(String errorId) {
+ this.errorId = errorId;
+ }
+
+ @Id
+ @Column(name = "PROCESS_ID")
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ @Column(name = "CREATION_TIME")
+ public long getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ @Column(name = "ACTUAL_ERROR_MESSAGE")
+ public String getActualErrorMessage() {
+ return actualErrorMessage;
+ }
+
+ public void setActualErrorMessage(String actualErrorMessage) {
+ this.actualErrorMessage = actualErrorMessage;
+ }
+
+ @Column(name = "USER_FRIENDLY_MESSAGE")
+ public String getUserFriendlyMessage() {
+ return userFriendlyMessage;
+ }
+
+ public void setUserFriendlyMessage(String userFriendlyMessage) {
+ this.userFriendlyMessage = userFriendlyMessage;
+ }
+
+
+ @Column(name = "TRANSIENT_OR_PERSISTENT")
+ public boolean isTransientOrPersistent() {
+ return transientOrPersistent;
+ }
+
+ public void setTransientOrPersistent(boolean transientOrPersistent) {
+ this.transientOrPersistent = transientOrPersistent;
+ }
+
+
+ @ElementCollection
+ @CollectionTable(name="EXPCAT_EXPERIMENT_ERROR_ROOT_CAUSE_ERROR_ID", joinColumns = @JoinColumn(name="ERROR_ID"))
+ public List<String> getRootCauseErrorIdList() {
+ return rootCauseErrorIdList;
+ }
+
+ public void setRootCauseErrorIdList(List<String> rootCauseErrorIdList) {
+ this.rootCauseErrorIdList = rootCauseErrorIdList;
+ }
+
+
+ @ManyToOne(targetEntity = ProcessEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID")
+ public ProcessEntity getProcess() {
+ return process;
+ }
+
+ public void setProcess(ProcessEntity process) {
+ this.process = process;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/208e5d38/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorPK.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorPK.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorPK.java
new file mode 100644
index 0000000..e7cc6ee
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessErrorPK.java
@@ -0,0 +1,75 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ProcessErrorPK implements Serializable {
+ private final static Logger logger = LoggerFactory.getLogger(ProcessErrorPK.class);
+ private String errorId;
+ private String processId;
+
+ @Column(name = "ERROR_ID")
+ @Id
+ public String getErrorId() {
+ return errorId;
+ }
+
+ public void setErrorId(String errorId) {
+ this.errorId = errorId;
+ }
+
+ @Column(name = "PROCESS_ID")
+ @Id
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ProcessErrorPK that = (ProcessErrorPK) o;
+
+ if (getErrorId() != null ? !getErrorId().equals(that.getErrorId()) : that.getErrorId() != null) return false;
+ if (getProcessId() != null ? !getProcessId().equals(that.getProcessId()) : that.getProcessId() != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getErrorId() != null ? getErrorId().hashCode() : 0;
+ result = 31 * result + (getProcessId() != null ? getProcessId().hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file