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 0000000000000000000000000000000000000000..efd7fe283f8830c69e72dd561ba7d127a0e61d44 --- /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); + } + } +}