From d113ed8345cd87535222337249a6769f06ca8bd0 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Fri, 6 Nov 2015 20:43:27 +0000
Subject: [PATCH] refactored utilities; use classes from common area wherever
 possible; added web service notification when experiment users get notified

---
 .../controllers/ExperimentController.java       | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
index e3cf4ade..edb47262 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
@@ -1,6 +1,8 @@
 
 package gov.anl.aps.dm.portal.controllers;
 
+import gov.anl.aps.dm.api.ExperimentDsApi;
+import gov.anl.aps.dm.common.exceptions.DmException;
 import gov.anl.aps.dm.portal.constants.RoleTypeName;
 import gov.anl.aps.dm.portal.exceptions.DmPortalException;
 import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
@@ -22,7 +24,8 @@ import gov.anl.aps.dm.portal.model.entities.PolicyType;
 import gov.anl.aps.dm.portal.model.entities.RoleType;
 import gov.anl.aps.dm.portal.model.entities.UserExperimentRole;
 import gov.anl.aps.dm.portal.model.entities.UserInfo;
-import gov.anl.aps.dm.portal.utilities.CollectionUtility;
+import gov.anl.aps.dm.common.utilities.CollectionUtility;
+import gov.anl.aps.dm.portal.utilities.DmApiFactory;
 import gov.anl.aps.dm.portal.utilities.SessionUtility;
 import java.util.ArrayList;
 import java.util.Date;
@@ -356,7 +359,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     boolean initialized = false;
     private List<MissingPolicyType> missingPolicyTypes = new ArrayList<>();
     private final Map<Integer, String> experimentPropertiesMap = new HashMap<>();
-    private List<String> notEditableTypes = new ArrayList<>();
+    private final List<String> notEditableTypes = new ArrayList<>();
     { notEditableTypes.add("ESAF"); }
 
     public ExperimentController() {
@@ -579,6 +582,16 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
                 }
             }
         }
+        
+        // Notify DS Web Service
+        try {
+            ExperimentDsApi api = DmApiFactory.getExperimentDsApi();
+            api.updateExperiment(getCurrent().getName());
+        }
+        catch (DmException ex) {
+            logger.error("Could not notify Data Storage Service: " + ex);
+            SessionUtility.addErrorMessage("Error", "Unable to notify Data Storage Service: " + ex.getErrorMessage());
+        }
         clear();
         return super.update();
     }
-- 
GitLab