diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JavaTopLevelDataSetHandlerV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JavaTopLevelDataSetHandlerV2.java index 87d9da8e753cddd545eb4f7bcaa119da5a27560e..9f63be5ef5672fa3aa42fa9533b8da34b7360d13 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JavaTopLevelDataSetHandlerV2.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JavaTopLevelDataSetHandlerV2.java @@ -42,6 +42,10 @@ public class JavaTopLevelDataSetHandlerV2<T extends DataSetInformation> extends private Class<? extends IJavaDataSetRegistrationDropboxV2> programClass; + private String className; + + private String dropboxName; + /** * @param globalState */ @@ -50,12 +54,14 @@ public class JavaTopLevelDataSetHandlerV2<T extends DataSetInformation> extends { super(globalState); - String className = + className = PropertyUtils.getMandatoryProperty(globalState.getThreadParameters() .getThreadProperties(), PROGRAM_CLASS_KEY); + dropboxName = globalState.getThreadParameters().getThreadName(); + PluginContainer container = - PluginContainer.tryGetInstance(globalState.getThreadParameters().getThreadName()); + PluginContainer.tryGetInstance(dropboxName); if (container != null) { @@ -160,6 +166,22 @@ public class JavaTopLevelDataSetHandlerV2<T extends DataSetInformation> extends { try { + + PluginContainer container = + PluginContainer.tryGetInstance(dropboxName); + + if (container != null) + { + @SuppressWarnings("unchecked") + Class<? extends IJavaDataSetRegistrationDropboxV2> clazz = + (Class<? extends IJavaDataSetRegistrationDropboxV2>) container + .tryGetPluginClassByClassname(className); + if (clazz != null) + { + return clazz.newInstance(); + } + } + return programClass.newInstance(); } catch (InstantiationException ex) {