From 48bf757c2b4714b0b5155605424eb106cbe4693a Mon Sep 17 00:00:00 2001 From: gakin <gakin> Date: Mon, 27 Jun 2016 11:41:50 +0000 Subject: [PATCH] SSDM-3820 : S233 DLCM OpenbisSync - Changes necessary for DLCM data source servlet SVN: 36754 --- .../dss/generic/server/ConfigParameters.java | 2 +- .../server/oaipmh/JythonBasedRequestHandler.java | 14 ++++++++++++-- .../dss/generic/server/oaipmh/OaipmhServlet.java | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java index 1ee1f6f31ca..ef6ccbacc89 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java @@ -88,7 +88,7 @@ public final class ConfigParameters implements IServletPropertiesManager static final String PLUGIN_SERVICE_CLASS_KEY = "class"; - static final String PLUGIN_SERVICE_PATH_KEY = "path"; + public static final String PLUGIN_SERVICE_PATH_KEY = "path"; /** * The path that contains the jars for webstart applications. This is used to initialize ResourceHandler, which is used to serve the jars. diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/JythonBasedRequestHandler.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/JythonBasedRequestHandler.java index 3acdc7bb0c8..c0ff128f8e9 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/JythonBasedRequestHandler.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/JythonBasedRequestHandler.java @@ -68,7 +68,9 @@ public class JythonBasedRequestHandler implements IRequestHandler private static final String PROPERTIES_VARIABLE_NAME = "properties"; - private Properties properties; + private static final String USER_SESSION_TOKEN = "userSessionToken"; + + protected Properties properties; private String scriptPath; @@ -122,7 +124,9 @@ public class JythonBasedRequestHandler implements IRequestHandler new HashMap<String, String>(), service.createEMailClient(), session.getUserName(), session.getUserEmail(), session.getSessionToken()); IRequestHandlerPluginScriptRunner runner = factory.createRequestHandlerPluginRunner(context); - runner.setVariable(PROPERTIES_VARIABLE_NAME, properties); + + setVariables(runner, session); + runner.handle(req, resp); } finally { @@ -130,6 +134,12 @@ public class JythonBasedRequestHandler implements IRequestHandler } } + protected void setVariables(IRequestHandlerPluginScriptRunner runner, SessionContextDTO session) + { + runner.setVariable(PROPERTIES_VARIABLE_NAME, properties); + runner.setVariable(USER_SESSION_TOKEN, session.getSessionToken()); + } + protected IPluginScriptRunnerFactory getScriptRunnerFactory(String scriptPath) { return new PluginScriptRunnerFactory(scriptPath); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/OaipmhServlet.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/OaipmhServlet.java index 48f61c3ea3b..8e231923cb4 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/OaipmhServlet.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/oaipmh/OaipmhServlet.java @@ -26,6 +26,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** @@ -104,6 +105,10 @@ public class OaipmhServlet extends HttpServlet Enumeration<String> parameterNames = config.getInitParameterNames(); String handlerParameterNamePrefix = handlerParameterName + "."; + // pass in the mandatory service plugin property "path" + properties.setProperty("path", config.getInitParameter(ConfigParameters.PLUGIN_SERVICE_PATH_KEY)); + + // pass in request-handler plugin properties while (parameterNames.hasMoreElements()) { String parameterName = parameterNames.nextElement(); -- GitLab