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 <[email protected]> Authored: Tue May 30 15:08:27 2017 -0400 Committer: scnakandala <[email protected]> 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
