From 30c4b7299f5dc5abc6dc9add21d7662734d295bf Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Fri, 6 Nov 2015 20:44:20 +0000
Subject: [PATCH] added api factory class

---
 .../aps/dm/portal/utilities/DmApiFactory.java | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DmApiFactory.java

diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DmApiFactory.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DmApiFactory.java
new file mode 100644
index 00000000..efd7fe28
--- /dev/null
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DmApiFactory.java
@@ -0,0 +1,27 @@
+package gov.anl.aps.dm.portal.utilities;
+
+import gov.anl.aps.dm.api.ExperimentDsApi;
+import gov.anl.aps.dm.common.constants.DmProperty;
+import gov.anl.aps.dm.common.exceptions.ConfigurationError;
+import gov.anl.aps.dm.common.exceptions.DmException;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.Scanner;
+import org.apache.log4j.Logger;
+
+public class DmApiFactory {
+    private static final Logger logger = Logger.getLogger(DmApiFactory.class.getName());
+
+    public static ExperimentDsApi getExperimentDsApi() throws DmException {
+        String webServiceUrl = ConfigurationUtility.getPortalProperty(DmProperty.DS_WEB_SERVICE_URL_PROPERTY_NAME);
+        String loginUsername = ConfigurationUtility.getPortalProperty(DmProperty.SYSTEM_USER_PROPERTY_NAME);
+        String loginPasswordFileName = ConfigurationUtility.getPortalProperty(DmProperty.SYSTEM_PASSWORD_FILE_PROPERTY_NAME);
+        try {
+            String loginPassword = new Scanner(new File(loginPasswordFileName)).useDelimiter("\\Z").next();
+            return new ExperimentDsApi(webServiceUrl, loginUsername, loginPassword);
+        } catch (FileNotFoundException ex) {
+            logger.error("Cannot find system password file: " + loginPasswordFileName);
+            throw new ConfigurationError(ex);
+        }   
+    }
+}
-- 
GitLab