diff --git a/datastore_server/dist/autosymlink.sh b/datastore_server/dist/autosymlink.sh new file mode 100755 index 0000000000000000000000000000000000000000..86510941218a054fc061c26afdf2a728f8d5a97c --- /dev/null +++ b/datastore_server/dist/autosymlink.sh @@ -0,0 +1,27 @@ +#!/bin/bash +pushd . > /dev/null +cd `dirname $0` + +deleted="false" +java -cp "lib/datastore_server.jar:lib/*" ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil 2>/dev/null|while read line +do + + if [ "$deleted" = "false" ]; + then + rm -f lib/autolink-*.jar; + deleted="true"; + fi; + + dropbox=`echo $line|cut -d" " -f1`; + folder=`echo $line|cut -d" " -f2`; + + if [ -d ${folder}/lib ]; + then + for jar in `ls ${folder}/lib/*.jar`; + do + echo "# ln -s $jar `pwd`/lib/autolink-${dropbox}-`basename $jar`"; + ln -s $jar `pwd`/lib/autolink-${dropbox}-`basename $jar`; + done; + fi; +done +popd > /dev/null diff --git a/datastore_server/dist/datastore_server.sh b/datastore_server/dist/datastore_server.sh index b8e1260d79029a930fea1afa517181089be27f57..8eb4c74317b7280dbc748aa8dae113dadc99e219 100755 --- a/datastore_server/dist/datastore_server.sh +++ b/datastore_server/dist/datastore_server.sh @@ -161,6 +161,7 @@ case "$command" in echo -n "Starting Data Store Server " rotateLogFiles $LOGFILE $MAXLOGS + ./autosymlink.sh shift 1 ${CMD} "$@" > $STARTUPLOG 2>&1 & echo $! > $PIDFILE if [ $? -eq 0 ]; then diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java index 477c3ed80cf29c584261e2185536992669d50f49..dc5e695b48441bbafa0b5f39ddd7907452388403 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.dss.generic.shared.utils; import java.io.File; +import java.io.IOException; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; @@ -257,4 +258,29 @@ public class DssPropertyParametersUtil ConfigurationFailureException e = new ConfigurationFailureException(template.createText()); return e; } + + public static void main(String[] args) + { + ExtendedProperties properties = + DssPropertyParametersUtil + .loadProperties(DssPropertyParametersUtil.SERVICE_PROPERTIES_FILE); + CorePluginsUtils.addCorePluginsProperties(properties, ScannerType.DSS); + ExtendedProperties serviceProperties = + DssPropertyParametersUtil.extendProperties(properties); + CorePluginsInjector injector = + new CorePluginsInjector(ScannerType.DSS, DssPluginType.values()); + Map<String, File> pluginFolders = + injector.injectCorePlugins(serviceProperties); + + try + { + for (String key : pluginFolders.keySet()) + { + System.out.println(key + " " + pluginFolders.get(key).getCanonicalPath()); + } + } catch (IOException ex) + { + ex.printStackTrace(); + } + } }