diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
index 82ab6f80121d297de02f002baf8d50f5944735d0..db46139bd040d44682a06309e2fee59e22a46caa 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
@@ -62,6 +62,7 @@ import ch.systemsx.cisd.common.utilities.ISelfTestable;
 import ch.systemsx.cisd.common.utilities.IStopSignaler;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.common.utilities.SystemExit;
+import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSourceQueryService;
 import ch.systemsx.cisd.etlserver.validation.DataSetValidator;
 import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.BuildAndEnvironmentInfo;
@@ -69,6 +70,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IncomingShareIdProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.QueueingDataSetStatusUpdaterService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSourceQueryService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetCodesWithStatus;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.SegmentedStoreUtils;
@@ -224,6 +226,7 @@ public final class ETLDaemon
         IDataSetValidator dataSetValidator = new DataSetValidator(properties);
         final Properties mailProperties = Parameters.createMailProperties(properties);
         final IMailClient mailClient = new MailClient(mailProperties);
+        final IDataSourceQueryService dataSourceQueryService = new DataSourceQueryService();
         File storeRootDir = DssPropertyParametersUtil.getStoreRootDir(parameters.getProperties());
         File[] shares = SegmentedStoreUtils.getShares(storeRootDir);
         List<String> incomingShares = new ArrayList<String>();
@@ -235,7 +238,7 @@ public final class ETLDaemon
             operationLog.info("[" + threadParameters.getThreadName() + "]: Data sets drop into '"
                     + incomingDataDirectory + "' will be stored in share " + shareId + ".");
             createProcessingThread(parameters, threadParameters, shareId, openBISService,
-                    highwaterMarkWatcher, mailClient, dataSetValidator,
+                    highwaterMarkWatcher, mailClient, dataSetValidator, dataSourceQueryService,
                     notifySuccessfulRegistration);
         }
         IncomingShareIdProvider.add(incomingShares);
@@ -286,13 +289,15 @@ public final class ETLDaemon
             final ThreadParameters threadParameters, String shareId,
             final IEncapsulatedOpenBISService authorizedLimsService,
             final HighwaterMarkWatcher highwaterMarkWatcher, final IMailClient mailClient,
-            final IDataSetValidator dataSetValidator, final boolean notifySuccessfulRegistration)
+            final IDataSetValidator dataSetValidator,
+            IDataSourceQueryService dataSourceQueryService,
+            final boolean notifySuccessfulRegistration)
     {
         final File incomingDataDirectory = threadParameters.getIncomingDataDirectory();
         final ITopLevelDataSetRegistrator pathHandler =
                 createTopLevelDataSetRegistrator(parameters.getProperties(), threadParameters,
                         shareId, authorizedLimsService, mailClient, dataSetValidator,
-                        notifySuccessfulRegistration);
+                        dataSourceQueryService, notifySuccessfulRegistration);
         final HighwaterMarkDirectoryScanningHandler directoryScanningHandler =
                 createDirectoryScanningHandler(pathHandler, highwaterMarkWatcher,
                         incomingDataDirectory, threadParameters.reprocessFaultyDatasets());
@@ -314,15 +319,17 @@ public final class ETLDaemon
     public static ITopLevelDataSetRegistrator createTopLevelDataSetRegistrator(
             final Properties properties, final ThreadParameters threadParameters, String shareId,
             final IEncapsulatedOpenBISService openBISService, final IMailClient mailClient,
-            final IDataSetValidator dataSetValidator, final boolean notifySuccessfulRegistration)
+            final IDataSetValidator dataSetValidator,
+            IDataSourceQueryService dataSourceQueryService,
+            final boolean notifySuccessfulRegistration)
     {
         final File storeRootDir = DssPropertyParametersUtil.getStoreRootDir(properties);
         migrateStoreRootDir(storeRootDir, openBISService.getHomeDatabaseInstance());
         String dssCode = DssPropertyParametersUtil.getDataStoreCode(properties);
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState(dssCode, shareId, storeRootDir,
-                        openBISService, mailClient, dataSetValidator, notifySuccessfulRegistration,
-                        threadParameters);
+                        openBISService, mailClient, dataSetValidator, dataSourceQueryService,
+                        notifySuccessfulRegistration, threadParameters);
 
         ITopLevelDataSetRegistrator registrator =
                 ClassUtils.create(ITopLevelDataSetRegistrator.class, threadParameters
@@ -338,7 +345,9 @@ public final class ETLDaemon
     public static ITopLevelDataSetRegistrator createTopLevelDataSetRegistrator(
             final Properties properties, final ThreadParameters threadParameters, String shareId,
             final IEncapsulatedOpenBISService openBISService, final IMailClient mailClient,
-            final IDataSetValidator dataSetValidator, final boolean notifySuccessfulRegistration,
+            final IDataSetValidator dataSetValidator,
+            IDataSourceQueryService dataSourceQueryService,
+            final boolean notifySuccessfulRegistration,
             boolean useIsFinishedMarkerFile, boolean deleteUnidentified,
             String preRegistrationScriptOrNull, String postRegistrationScriptOrNull,
             String[] validationScriptsOrNull, Class<?> defaultTopLevelDataSetRegistratorClass)
@@ -348,10 +357,10 @@ public final class ETLDaemon
         String dssCode = DssPropertyParametersUtil.getDataStoreCode(properties);
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState(dssCode, shareId, storeRootDir,
-                        openBISService, mailClient, dataSetValidator, notifySuccessfulRegistration,
-                        threadParameters, useIsFinishedMarkerFile, deleteUnidentified,
-                        preRegistrationScriptOrNull, postRegistrationScriptOrNull,
-                        validationScriptsOrNull);
+                        openBISService, mailClient, dataSetValidator, dataSourceQueryService,
+                        notifySuccessfulRegistration, threadParameters, useIsFinishedMarkerFile,
+                        deleteUnidentified, preRegistrationScriptOrNull,
+                        postRegistrationScriptOrNull, validationScriptsOrNull);
 
         ITopLevelDataSetRegistrator registrator =
                 ClassUtils
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
index e16edbb0e15de02f107391d4f8469f41e33ec765..1dacb21c6408720eddcf9309665470486b6dfa45 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
@@ -25,6 +25,7 @@ import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.mail.IMailClient;
 import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSourceQueryService;
 
 /**
  * Global state needed by top level data set registrators.
@@ -49,6 +50,8 @@ public class TopLevelDataSetRegistratorGlobalState
 
     private final IDataSetValidator dataSetValidator;
 
+    private final IDataSourceQueryService dataSourceQueryService;
+
     private final boolean notifySuccessfulRegistration;
 
     private final ThreadParameters threadParameters;
@@ -77,10 +80,12 @@ public class TopLevelDataSetRegistratorGlobalState
      */
     public TopLevelDataSetRegistratorGlobalState(String dssCode, String shareId, File storeRootDir,
             IEncapsulatedOpenBISService openBisService, IMailClient mailClient,
-            IDataSetValidator dataSetValidator, boolean notifySuccessfulRegistration,
+            IDataSetValidator dataSetValidator, IDataSourceQueryService dataSourceQueryService,
+            boolean notifySuccessfulRegistration,
             ThreadParameters threadParameters)
     {
         this(dssCode, shareId, storeRootDir, openBisService, mailClient, dataSetValidator,
+                dataSourceQueryService,
                 notifySuccessfulRegistration, threadParameters, threadParameters
                         .useIsFinishedMarkerFile(), threadParameters.deleteUnidentified(),
                 threadParameters.tryGetPreRegistrationScript(), threadParameters
@@ -89,10 +94,11 @@ public class TopLevelDataSetRegistratorGlobalState
 
     public TopLevelDataSetRegistratorGlobalState(String dssCode, String shareId, File storeRootDir,
             IEncapsulatedOpenBISService openBisService, IMailClient mailClient,
-            IDataSetValidator dataSetValidator, boolean notifySuccessfulRegistration,
-            ThreadParameters threadParameters, boolean useIsFinishedMarkerFile,
-            boolean deleteUnidentified, String preRegistrationScriptOrNull,
-            String postRegistrationScriptOrNull, String[] validationScriptsOrNull)
+            IDataSetValidator dataSetValidator, IDataSourceQueryService dataSourceQueryService,
+            boolean notifySuccessfulRegistration, ThreadParameters threadParameters,
+            boolean useIsFinishedMarkerFile, boolean deleteUnidentified,
+            String preRegistrationScriptOrNull, String postRegistrationScriptOrNull,
+            String[] validationScriptsOrNull)
     {
         this.dssCode = dssCode;
         this.shareId = shareId;
@@ -100,6 +106,7 @@ public class TopLevelDataSetRegistratorGlobalState
         this.openBisService = openBisService;
         this.mailClient = mailClient;
         this.dataSetValidator = dataSetValidator;
+        this.dataSourceQueryService = dataSourceQueryService;
         this.notifySuccessfulRegistration = notifySuccessfulRegistration;
         this.threadParameters = threadParameters;
         this.useIsFinishedMarkerFile = useIsFinishedMarkerFile;
@@ -139,6 +146,11 @@ public class TopLevelDataSetRegistratorGlobalState
         return dataSetValidator;
     }
 
+    public IDataSourceQueryService getDataSourceQueryService()
+    {
+        return dataSourceQueryService;
+    }
+
     public boolean isNotifySuccessfulRegistration()
     {
         return notifySuccessfulRegistration;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/DataSetTypeToRegistratorMapper.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/DataSetTypeToRegistratorMapper.java
index 2c94112d8d0b411d763b97d18b349c3ebcfcf4b1..507c3fe06dc08dcc86654e13efe9254334238757 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/DataSetTypeToRegistratorMapper.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/DataSetTypeToRegistratorMapper.java
@@ -155,15 +155,16 @@ class DataSetTypeToRegistratorMapper
             if (null == defaultThread)
             {
                 return ETLDaemon.createTopLevelDataSetRegistrator(params.getProperties(),
-                        firstThread, shareId, openBISService, mailClient, dataSetValidator, false,
+                        firstThread, shareId, openBISService, mailClient, dataSetValidator, null,
+                        false,
                         false, false, firstThread.tryGetPreRegistrationScript(),
                         firstThread.tryGetPostRegistrationScript(),
                         firstThread.tryGetValidationScripts(), PutDataSetServerPluginHolder.class);
             }
 
             return ETLDaemon.createTopLevelDataSetRegistrator(params.getProperties(),
-                    defaultThread, shareId, openBISService, mailClient, dataSetValidator, false,
-                    false, false, defaultThread.tryGetPreRegistrationScript(),
+                    defaultThread, shareId, openBISService, mailClient, dataSetValidator, null,
+                    false, false, false, defaultThread.tryGetPreRegistrationScript(),
                     defaultThread.tryGetPostRegistrationScript(),
                     defaultThread.tryGetValidationScripts(), PutDataSetServerPluginHolder.class);
         }
@@ -184,7 +185,7 @@ class DataSetTypeToRegistratorMapper
                 {
                     map.put(key.toUpperCase(), ETLDaemon.createTopLevelDataSetRegistrator(
                             params.getProperties(), threadParams, shareId, openBISService,
-                            mailClient, dataSetValidator, false));
+                            mailClient, dataSetValidator, null, false));
                 }
             }
             return map;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
index 5dee8f28cdf417b5fee69232a524f1bcb4121ff8..c4f52b1bec5ca3081a5ecfbaee78d83172dd2f46 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
@@ -38,9 +38,7 @@ import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState;
 import ch.systemsx.cisd.etlserver.registrator.IDataSetOnErrorActionDecision.ErrorType;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetRegistrationTransaction;
-import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSourceQueryService;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction;
-import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSourceQueryService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 
 /**
@@ -70,8 +68,6 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements
 
     private final ITopLevelDataSetRegistratorDelegate delegate;
 
-    private final IDataSourceQueryService queryService;
-
     static private final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
             DataSetRegistrationService.class);
 
@@ -116,8 +112,6 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements
         }
 
         transactions = new ArrayList<DataSetRegistrationTransaction<T>>();
-
-        this.queryService = new DataSourceQueryService();
     }
 
     public OmniscientTopLevelDataSetRegistratorState getRegistratorContext()
@@ -192,11 +186,6 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements
         return rollbacker.doRollback();
     }
 
-    public IDataSourceQueryService getDataSourceQueryService()
-    {
-        return queryService;
-    }
-
     public void didRollbackTransaction(DataSetRegistrationTransaction<T> transaction,
             DataSetStorageAlgorithmRunner<T> algorithm, Throwable ex, ErrorType errorType)
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetRegistrationService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetRegistrationService.java
index b27546de2ab458ac0eafa3517576ad65e41ee047..9bdbaea4d9ff4e945daba5ba127014d43c948f49 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetRegistrationService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetRegistrationService.java
@@ -19,7 +19,6 @@ package ch.systemsx.cisd.etlserver.registrator;
 import java.io.File;
 
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetRegistrationTransaction;
-import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSourceQueryService;
 
 /**
  * Functionality used in registering data sets.
@@ -54,9 +53,4 @@ public interface IDataSetRegistrationService
      */
     public File moveIncomingToError(String dataSetTypeCodeOrNull);
 
-    /**
-     * Return a service that can be used to query data sources.
-     */
-    public IDataSourceQueryService getDataSourceQueryService();
-
 }
\ No newline at end of file
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSourceQueryService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSourceQueryService.java
index 20e563478adb915843d6ccc4d46dfbc80272d374..ecb01a806f80ea020e99d3eb32e881ea3547ebb0 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSourceQueryService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSourceQueryService.java
@@ -23,9 +23,9 @@ import javax.sql.DataSource;
 import net.lemnik.eodsql.DataSet;
 import net.lemnik.eodsql.QueryTool;
 
-import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSourceQueryService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.DataSourceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSourceQueryService;
 
 /**
  * @author Chandrasekhar Ramakrishnan
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSourceQueryService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IDataSourceQueryService.java
similarity index 97%
rename from datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSourceQueryService.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IDataSourceQueryService.java
index 31e177260948134bcc997f451e9801395b6a3f7a..492bd6d741010ecf683b96d0b2eaf51ad0be7f87 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSourceQueryService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IDataSourceQueryService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.etlserver.registrator.api.v1;
+package ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1;
 
 import java.util.Map;
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
index 3f1f8aff8bb65c9345992240709f816708b80010..bcfa123f2a5d3168ac2cb1d2ce518f45639e9d6a 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
@@ -286,7 +286,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss", ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
                         workingDirectory, authorizedLimsService, mailClient, dataSetValidator,
-                        true, threadParameters);
+                        null, true, threadParameters);
 
         context.checking(new Expectations()
             {
@@ -803,7 +803,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss", ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
                         workingDirectory, authorizedLimsService, mailClient, dataSetValidator,
-                        true, threadParameters);
+                        null, true, threadParameters);
         context.checking(new Expectations()
             {
                 {
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
index f91df095fc3013171ff4983d00662b7b69b6329a..926c0f0ffd7f1ce821aa8ff0a54518995893c4fa 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
@@ -40,15 +40,14 @@ import ch.systemsx.cisd.common.mail.IMailClient;
 import ch.systemsx.cisd.common.utilities.ExtendedProperties;
 import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult;
 import ch.systemsx.cisd.etlserver.IStorageProcessorTransactional;
-import ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate;
 import ch.systemsx.cisd.etlserver.ITypeExtractor;
 import ch.systemsx.cisd.etlserver.ThreadParameters;
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.JythonTopLevelDataSetHandler.JythonDataSetRegistrationService;
-import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSourceQueryService;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction;
 import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSourceQueryService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.AtomicEntityOperationDetails;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
@@ -81,6 +80,8 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
 
     protected IDataSetValidator dataSetValidator;
 
+    protected IDataSourceQueryService dataSourceQueryService;
+
     protected File stagingDirectory;
 
     protected File incomingDataSetFile;
@@ -113,6 +114,7 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
         openBisService = context.mock(IEncapsulatedOpenBISService.class);
         dataSetValidator = context.mock(IDataSetValidator.class);
         mailClient = context.mock(IMailClient.class);
+        dataSourceQueryService = context.mock(IDataSourceQueryService.class);
 
         stagingDirectory = new File(workingDirectory, "staging");
     }
@@ -165,18 +167,12 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
 
     protected void createHandler(Properties threadProperties, final boolean registrationShouldFail,
             boolean shouldReThrowException)
-    {
-        createHandler(threadProperties, registrationShouldFail, shouldReThrowException, null);
-    }
-
-    protected void createHandler(Properties threadProperties, final boolean registrationShouldFail,
-            boolean shouldReThrowException, IDataSourceQueryService queryServiceOrNull)
     {
         TopLevelDataSetRegistratorGlobalState globalState = createGlobalState(threadProperties);
 
         handler =
                 new TestingDataSetHandler(globalState, registrationShouldFail,
-                        shouldReThrowException, queryServiceOrNull);
+                        shouldReThrowException);
     }
 
     private TopLevelDataSetRegistratorGlobalState createGlobalState(Properties threadProperties)
@@ -187,8 +183,8 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss",
                         ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
-                        workingDirectory, openBisService, mailClient, dataSetValidator, true,
-                        threadParameters);
+                        workingDirectory, openBisService, mailClient, dataSetValidator,
+                        dataSourceQueryService, true, threadParameters);
         return globalState;
     }
 
@@ -299,18 +295,14 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
     {
         private final boolean shouldRegistrationFail;
 
-        private final IDataSourceQueryService queryServiceOrNull;
-
         private final boolean shouldReThrowRollbackException;
 
         public TestingDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState,
-                boolean shouldRegistrationFail, boolean shouldReThrowRollbackException,
-                IDataSourceQueryService queryServiceOrNull)
+                boolean shouldRegistrationFail, boolean shouldReThrowRollbackException)
         {
             super(globalState);
             this.shouldRegistrationFail = shouldRegistrationFail;
             this.shouldReThrowRollbackException = shouldReThrowRollbackException;
-            this.queryServiceOrNull = queryServiceOrNull;
         }
 
         @Override
@@ -357,19 +349,6 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
             }
         }
 
-        @Override
-        protected JythonDataSetRegistrationService<DataSetInformation> createJythonDataSetRegistrationService(
-                File aDataSetFile, DataSetInformation userProvidedDataSetInformationOrNull,
-                IDelegatedActionWithResult<Boolean> cleanAfterwardsAction,
-                ITopLevelDataSetRegistratorDelegate delegate, PythonInterpreter interpreter)
-        {
-            JythonDataSetRegistrationService<DataSetInformation> service =
-                    new TestDataRegistrationService(this, aDataSetFile,
-                            userProvidedDataSetInformationOrNull, cleanAfterwardsAction,
-                            interpreter, queryServiceOrNull, shouldRegistrationFail);
-            return service;
-        }
-
     }
 
     protected static class TestDataRegistrationService extends
@@ -377,8 +356,6 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
     {
         private final boolean shouldRegistrationFail;
 
-        private final IDataSourceQueryService queryServiceOrNull;
-
         /**
          * @param registrator
          * @param globalCleanAfterwardsAction
@@ -388,14 +365,12 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
                 JythonTopLevelDataSetHandler<DataSetInformation> registrator, File aDataSetFile,
                 DataSetInformation userProvidedDataSetInformationOrNull,
                 IDelegatedActionWithResult<Boolean> globalCleanAfterwardsAction,
-                PythonInterpreter interpreter, IDataSourceQueryService queryServiceOrNull,
-                boolean shouldRegistrationFail)
+                PythonInterpreter interpreter, boolean shouldRegistrationFail)
         {
             super(registrator, aDataSetFile, userProvidedDataSetInformationOrNull,
                     globalCleanAfterwardsAction,
                     new AbstractOmniscientTopLevelDataSetRegistrator.NoOpDelegate(), interpreter);
             this.shouldRegistrationFail = shouldRegistrationFail;
-            this.queryServiceOrNull = queryServiceOrNull;
         }
 
         @Override
@@ -404,18 +379,6 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
             return new TestEntityOperationService(getRegistrator(), shouldRegistrationFail);
         }
 
-        @Override
-        public IDataSourceQueryService getDataSourceQueryService()
-        {
-            if (queryServiceOrNull == null)
-            {
-                return super.getDataSourceQueryService();
-            } else
-            {
-                return queryServiceOrNull;
-            }
-        }
-
     }
 
     protected static class TestEntityOperationService extends
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java
index dc6ec7ab4a92b9d0b6964df540a8708667eddc60..095fe884dcd37284cd88f4eb4646db608d3be8ae 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java
@@ -111,7 +111,7 @@ public class DataSetStorageRollbackerTest extends AbstractFileSystemTestCase
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss",
                         ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
-                        workingDirectory, openBisService, mailClient, dataSetValidator, true,
+                        workingDirectory, openBisService, mailClient, dataSetValidator, null, true,
                         threadParameters);
         return globalState;
     }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
index 20a57a9c641e469dd53960350eb884de38162542..9b6bd4919c131a1a1eb2d20b6aabf82945f49aef 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
@@ -930,7 +930,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractFileSystemTest
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss",
                         ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
-                        workingDirectory, openBisService, mailClient, dataSetValidator, true,
+                        workingDirectory, openBisService, mailClient, dataSetValidator, null, true,
                         threadParameters);
         return globalState;
     }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java
index c9176d967fa64ef63e53c9bf206f40a6d7dbb594..ed641945656c7a1c7b55b051abdf83d7d0534b0b 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java
@@ -420,7 +420,7 @@ public class DataSetRegistrationTransactionTest extends AbstractFileSystemTestCa
         TopLevelDataSetRegistratorGlobalState globalState =
                 new TopLevelDataSetRegistratorGlobalState("dss",
                         ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
-                        workingDirectory, openBisService, mailClient, dataSetValidator, true,
+                        workingDirectory, openBisService, mailClient, dataSetValidator, null, true,
                         threadParameters);
         return globalState;
     }