You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/11/06 16:47:38 UTC

[airavata] 02/03: AIRAVATA-2872 Fixing tests broken by loaded nulls strategy

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit cc4437e48f205d03a15df0490e4fe13bb366f57e
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Nov 6 09:24:38 2018 -0500

    AIRAVATA-2872 Fixing tests broken by loaded nulls strategy
---
 .../registry/core/entities/appcatalog/AppEnvironmentEntity.java   | 4 ++--
 .../registry/core/entities/expcatalog/ExperimentStatusEntity.java | 4 ++--
 .../airavata/registry/core/entities/expcatalog/ProcessEntity.java | 4 ++--
 .../airavata/registry/core/entities/expcatalog/TaskEntity.java    | 4 ++--
 .../core/entities/replicacatalog/DataReplicaLocationEntity.java   | 4 ++--
 .../airavata/registry/core/utils/ObjectMapperSingleton.java       | 8 ++++----
 .../repositories/expcatalog/ExperimentStatusRepositoryTest.java   | 1 +
 7 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/AppEnvironmentEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/AppEnvironmentEntity.java
index 597d148..cbeec0b 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/AppEnvironmentEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/AppEnvironmentEntity.java
@@ -49,8 +49,8 @@ public class AppEnvironmentEntity implements Serializable {
     @Column(name = "ENV_ORDER")
     private int envPathOrder;
 
-    @ManyToOne(targetEntity = ApplicationDeploymentEntity.class, cascade = CascadeType.MERGE)
-    @JoinColumn(name = "DEPLOYMENT_ID")
+    @ManyToOne(targetEntity = ApplicationDeploymentEntity.class)
+    @JoinColumn(name = "DEPLOYMENT_ID", nullable = false, updatable = false)
     @ForeignKey(deleteAction = ForeignKeyAction.CASCADE)
     private ApplicationDeploymentEntity applicationDeployment;
 
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
index 91ec10f..5ef5a0a 100644
--- 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
@@ -54,8 +54,8 @@ public class ExperimentStatusEntity implements Serializable {
     @Column(name = "REASON")
     private String reason;
 
-    @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
-    @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+    @ManyToOne(targetEntity = ExperimentEntity.class, fetch = FetchType.LAZY)
+    @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID", nullable = false, updatable = false)
     private ExperimentEntity experiment;
 
     public ExperimentStatusEntity() {
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
index b5c5ab7..3e3c378 100644
--- 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
@@ -120,8 +120,8 @@ public class ProcessEntity implements Serializable {
             mappedBy = "process", fetch = FetchType.EAGER)
     private List<TaskEntity> tasks;
 
-    @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
-    @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
+    @ManyToOne(targetEntity = ExperimentEntity.class, fetch = FetchType.LAZY)
+    @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID", nullable = false, updatable = false)
     private ExperimentEntity experiment;
 
     public ProcessEntity() {
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
index fb37e87..90dfa79 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
@@ -73,8 +73,8 @@ public class TaskEntity implements Serializable {
             mappedBy = "task", fetch = FetchType.EAGER)
     private List<JobEntity> jobs;
 
-    @ManyToOne(targetEntity = ProcessEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
-    @JoinColumn(name = "PARENT_PROCESS_ID", referencedColumnName = "PROCESS_ID")
+    @ManyToOne(targetEntity = ProcessEntity.class, fetch = FetchType.LAZY)
+    @JoinColumn(name = "PARENT_PROCESS_ID", referencedColumnName = "PROCESS_ID", nullable = false, updatable = false)
     private ProcessEntity process;
 
     public TaskEntity() {
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
index 458119c..ca0360b 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
@@ -78,8 +78,8 @@ public class DataReplicaLocationEntity implements Serializable {
     @Column(name = "METADATA_VALUE")
     private Map<String, String> replicaMetadata;
 
-    @ManyToOne(targetEntity = DataProductEntity.class, cascade = CascadeType.MERGE)
-    @JoinColumn(name = "PRODUCT_URI")
+    @ManyToOne(targetEntity = DataProductEntity.class)
+    @JoinColumn(name = "PRODUCT_URI", nullable = false, updatable = false)
     private DataProductEntity dataProduct;
 
     public String getReplicaId() {
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/ObjectMapperSingleton.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/ObjectMapperSingleton.java
index 8ff15c4..ab5ffe9 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/ObjectMapperSingleton.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/ObjectMapperSingleton.java
@@ -46,16 +46,16 @@ public class ObjectMapperSingleton extends DozerBeanMapper{
                     new ArrayList<String>(){{
                         add("dozer_mapping.xml");
                     }});
-            instance.setCustomFieldMapper(new MyCustomFieldMapper());
+            instance.setCustomFieldMapper(new SkipUnsetPrimitiveFieldMapper());
         }
         return instance;
     }
 
-    private static class MyCustomFieldMapper implements CustomFieldMapper {
+    private static class SkipUnsetPrimitiveFieldMapper implements CustomFieldMapper {
         @Override
         public boolean mapField(Object source, Object destination, Object sourceFieldValue, ClassMap classMap, FieldMap fieldMap) {
-            // Just skipping mapping field if not set on Thrift source model and it is primitive
-            if (isSourceUnsetThriftField(source, fieldMap) && ClassUtils.isPrimitiveOrWrapper(source.getClass())) {
+            // Just skipping mapping field if not set on Thrift source model and the field's value is primitive
+            if (isSourceUnsetThriftField(source, fieldMap) && sourceFieldValue != null && ClassUtils.isPrimitiveOrWrapper(sourceFieldValue.getClass())) {
                 logger.debug("Skipping field " + fieldMap.getSrcFieldName() + " since it is unset thrift field and is primitive");
                 return true;
             }
diff --git a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentStatusRepositoryTest.java b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentStatusRepositoryTest.java
index a2e628a..f6dc02a 100644
--- a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentStatusRepositoryTest.java
+++ b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentStatusRepositoryTest.java
@@ -89,6 +89,7 @@ public class ExperimentStatusRepositoryTest extends TestBase {
 
         ExperimentStatus updatedExecutingStatus = new ExperimentStatus(ExperimentState.EXECUTING);
         updatedExecutingStatus.setReason("updated reason");
+        updatedExecutingStatus.setTimeOfStateChange(experimentStatus.getTimeOfStateChange());
         String updatedExperimentStatusId = experimentStatusRepository.updateExperimentStatus(updatedExecutingStatus, experimentId);
 
         ExperimentStatus retrievedExpStatus = experimentStatusRepository.getExperimentStatus(experimentId);