diff --git a/common/.classpath b/common/.classpath
index 0e991397ea162ba5546835e45755a41e3a403d13..95414b5a5c89f89439ef677b3f0423b7d1b1b187 100644
--- a/common/.classpath
+++ b/common/.classpath
@@ -44,5 +44,7 @@
 	<classpathentry kind="lib" path="/libraries/poi/poi-ooxml.jar"/>
 	<classpathentry kind="lib" path="/libraries/poi/poi.jar"/>
 	<classpathentry kind="lib" path="/libraries/jmock/hamcrest/hamcrest-integration.jar"/>
+	<classpathentry kind="lib" path="/libraries/eodsql/eodsql.jar" sourcepath="/libraries/eodsql/eodsql_src.zip"/>
+	<classpathentry kind="lib" path="/libraries/fastutil/fastutil.jar" sourcepath="/libraries/fastutil/fastutil-src.zip"/>
 	<classpathentry kind="output" path="targets/classes"/>
 </classpath>
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractSQLArray.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/AbstractSQLArray.java
similarity index 97%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractSQLArray.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/AbstractSQLArray.java
index 5b5dae8f3aed635b6fc1b2df363266565e56fb8c..a84b8ca8dee8f4d8044d673e8935e314f032ea56 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractSQLArray.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/AbstractSQLArray.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.sql.Array;
 import java.sql.ResultSet;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ByteArrayMapper.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/ByteArrayMapper.java
similarity index 96%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ByteArrayMapper.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/ByteArrayMapper.java
index d5bdf9a91a882fe0b1c652f54044ba35eb156eac..b3c73a03ba7262532b3b419d8a4994f4dda77d5b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ByteArrayMapper.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/ByteArrayMapper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongArrayMapper.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/LongArrayMapper.java
similarity index 96%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongArrayMapper.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/LongArrayMapper.java
index 03e031ba6ecd928514a5c27bffaf5d0fbb530518..cf92073b0ffb1acca996536b8c5d6f1f2dd38d32 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongArrayMapper.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/LongArrayMapper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongSetMapper.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/LongSetMapper.java
similarity index 96%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongSetMapper.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/LongSetMapper.java
index 79298a8323bbce3057c2167e3d6d4deef9089b36..4650ec62e58f521f7dd6bfb8668274e849c271b7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/LongSetMapper.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/LongSetMapper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SerializableObjectMapper.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/SerializableObjectMapper.java
similarity index 96%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SerializableObjectMapper.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/SerializableObjectMapper.java
index bd8833e6f7d5c83d1fa8670c9832bca8a13f4ed8..7e0dd1c8785e32f8dbcb29d4eb78a65dfe4e83c2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SerializableObjectMapper.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/SerializableObjectMapper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.io.Serializable;
 import java.sql.PreparedStatement;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLLongArray.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLLongArray.java
similarity index 97%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLLongArray.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLLongArray.java
index f9bb0fb5173f9dc2bd75ec6601f6bee5b71a50cc..8c54767290a224a0b6fc7354f31bf9bb93cca954 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLLongArray.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLLongArray.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import it.unimi.dsi.fastutil.longs.LongSet;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArray.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArray.java
similarity index 97%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArray.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArray.java
index 26566348dd79a750f89c0f0c1928d4bdb7030adb..25a2c2dfbfe8fe4b653a10a4a6a521aae686115c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArray.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArray.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.sql.SQLException;
 import java.sql.Types;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArrayString.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArrayString.java
similarity index 95%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArrayString.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArrayString.java
index 116cf71a474406aa83712d10af42df2fcc1673a3..884300935f9e3ad6cd710c21f949e0368e4527a1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SimpleSQLStringArrayString.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/SimpleSQLStringArrayString.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 
 /**
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/StringArrayMapper.java b/common/source/java/ch/systemsx/cisd/common/db/mapper/StringArrayMapper.java
similarity index 96%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/StringArrayMapper.java
rename to common/source/java/ch/systemsx/cisd/common/db/mapper/StringArrayMapper.java
index c6e397f15b86a885928f8a40914071146bdf2daf..53b68c76881b9e18983a047ca781520208a7931c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/StringArrayMapper.java
+++ b/common/source/java/ch/systemsx/cisd/common/db/mapper/StringArrayMapper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
+package ch.systemsx.cisd.common.db.mapper;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
diff --git a/common/source/java/ch/systemsx/cisd/common/test/ArrayContainsExactlyMatcher.java b/common/source/java/ch/systemsx/cisd/common/test/ArrayContainsExactlyMatcher.java
new file mode 100644
index 0000000000000000000000000000000000000000..c31433dbb9a5a79e6bd08e62ba4488d708056498
--- /dev/null
+++ b/common/source/java/ch/systemsx/cisd/common/test/ArrayContainsExactlyMatcher.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2012 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.common.test;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.hamcrest.Description;
+import org.hamcrest.TypeSafeMatcher;
+
+/**
+ * @author pkupczyk
+ */
+public class ArrayContainsExactlyMatcher<T> extends TypeSafeMatcher<T[]>
+{
+
+    private T[] expectedArray;
+
+    public ArrayContainsExactlyMatcher(T... expected)
+    {
+        this.expectedArray = expected;
+    }
+
+    @Override
+    public void describeTo(Description description)
+    {
+        description.appendText("A collection containing exactly items " + expectedArray.toString());
+    }
+
+    @Override
+    public boolean matchesSafely(T[] actualArray)
+    {
+        if (actualArray.length != expectedArray.length)
+        {
+            return false;
+        }
+
+        Collection<T> actualCollection = new HashSet<T>(Arrays.asList(actualArray));
+        Collection<T> expectedCollection = new HashSet<T>(Arrays.asList(actualArray));
+
+        return actualCollection.equals(expectedCollection);
+    }
+
+    public static <T> ArrayContainsExactlyMatcher<T> containsExactly(T... items)
+    {
+        return new ArrayContainsExactlyMatcher<T>(items);
+    }
+
+}
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAO.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAO.java
index 3886f15f9d6005bce6a803fb53b10a83960c5555..dc48225d93e99e5710c805e5dfedd415927a38fc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAO.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAO.java
@@ -20,12 +20,12 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
+
 import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TransactionQuery;
 import net.lemnik.eodsql.Update;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
-
 /**
  * Data Access Object for feeding and updating pathinfo database.
  * 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathEntryDTO.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathEntryDTO.java
index 61c2f1095d0002818daf62721ed6f3149e0540eb..a73e753dcb5ba235e37e6bc3321207e8c3d4037e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathEntryDTO.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathEntryDTO.java
@@ -57,8 +57,7 @@ public class PathEntryDTO
     @ResultColumn("data_set_code")
     private String dataSetCode;
 
-    @SuppressWarnings("unused")
-    private PathEntryDTO()
+    public PathEntryDTO()
     {
     }
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask.java
index ef8c02d24fa8d98926bca4c14370d6ffbe287405..a6b5325d96a5071329358b91885a62dabc6ad0c8 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask.java
@@ -50,6 +50,16 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask impl
 
     private IPathsInfoDAO dao;
 
+    public FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask()
+    {
+    }
+
+    public FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask(IEncapsulatedOpenBISService service, IPathsInfoDAO dao)
+    {
+        this.service = service;
+        this.dao = dao;
+    }
+
     @Override
     public void setUp(String pluginName, Properties properties)
     {
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..26333827a1c843bb24b2ef6a7d0b1cf70a2a7068
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2014 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.etlserver.plugins;
+
+import static ch.systemsx.cisd.common.test.ArrayContainsExactlyMatcher.containsExactly;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.testng.annotations.Test;
+
+import ch.systemsx.cisd.etlserver.path.IPathsInfoDAO;
+import ch.systemsx.cisd.etlserver.path.PathEntryDTO;
+import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
+
+/**
+ * @author pkupczyk
+ */
+public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest
+{
+
+    @Test
+    public void test()
+    {
+        Mockery context = new Mockery();
+        final IEncapsulatedOpenBISService service = context.mock(IEncapsulatedOpenBISService.class);
+        final IPathsInfoDAO dao = context.mock(IPathsInfoDAO.class);
+
+        final SimpleDataSetInformationDTO dataSet1 = new SimpleDataSetInformationDTO();
+        dataSet1.setDataSetCode("DS_1");
+        final SimpleDataSetInformationDTO dataSet2 = new SimpleDataSetInformationDTO();
+        dataSet2.setDataSetCode("DS_2");
+        final SimpleDataSetInformationDTO dataSet3 = new SimpleDataSetInformationDTO();
+        dataSet3.setDataSetCode("DS_3");
+
+        final PathEntryDTO entry1 = new PathEntryDTO();
+        entry1.setDataSetCode("DS_1");
+        entry1.setSizeInBytes(123L);
+
+        final PathEntryDTO entry2 = new PathEntryDTO();
+        entry2.setDataSetCode("DS_2");
+
+        context.checking(new Expectations()
+            {
+                {
+                    one(service).listPhysicalDataSetsWithUnknownSize();
+                    will(returnValue(Arrays.asList(dataSet1, dataSet2, dataSet3)));
+
+                    one(dao).listDataSetsSize(
+                            with(containsExactly(dataSet1.getDataSetCode(), dataSet2.getDataSetCode(), dataSet3
+                                    .getDataSetCode())));
+                    will(returnValue(Arrays.asList(entry1, entry2)));
+
+                    Map<String, Long> sizeMap = new HashedMap<String, Long>();
+                    sizeMap.put("DS_1", 123L);
+                    one(service).updatePhysicalDataSetsSize(sizeMap);
+                }
+            });
+
+        FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask task =
+                new FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask(service, dao);
+        task.execute();
+
+        context.assertIsSatisfied();
+    }
+}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ExperimentListPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ExperimentListPredicate.java
index 791df168cb106f031c92c21390981afc0a42d048..48a6ac2fee464ed2b060f0374c5b1de1d3d46060 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ExperimentListPredicate.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/ExperimentListPredicate.java
@@ -27,12 +27,12 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.QueryTool;
 import net.lemnik.eodsql.Select;
 
+import ch.systemsx.cisd.common.db.mapper.LongArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ShouldFlattenCollections;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongArrayMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleListPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleListPredicate.java
index 6e797a91cb1e529003974a9ad74c4538e5f125f6..0e573ebf57b1a06032f2f6c784da98c9fb6ebd24 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleListPredicate.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleListPredicate.java
@@ -27,13 +27,13 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.QueryTool;
 import net.lemnik.eodsql.Select;
 
+import ch.systemsx.cisd.common.db.mapper.LongArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider;
 import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ShouldFlattenCollections;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongArrayMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ISecondaryEntityListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ISecondaryEntityListingQuery.java
index 64ffe1bea3601cf2e2218c6f10c57cd7ace8db5d..4dfdbaaf7b6ba9fcde3e54b67d3c94c66ed41627 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ISecondaryEntityListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ISecondaryEntityListingQuery.java
@@ -23,7 +23,7 @@ import net.lemnik.eodsql.Select;
 
 import ch.rinn.restrictions.Friend;
 import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java
index fdbde2d471a7f0b93e9e08dd7028753a55392ff1..5bafe710d77c355f25e9136abccaecb447ed9b40 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java
@@ -29,14 +29,14 @@ import net.lemnik.eodsql.TypeMapper;
 
 import ch.rinn.restrictions.Friend;
 import ch.rinn.restrictions.Private;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.CodeRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IPropertyListingQuery;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.VocabularyTermRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.MetaProjectWithEntityId;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 
 /**
  * A {@link TransactionQuery} interface for obtaining large sets of dataset-related entities from the database.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/IDataSetListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/IDataSetListingQuery.java
index e6e398623e147295f3d2e4538b5935262034d918..961556727b8bb4a3eaa1a382f65a74c8a032ba89 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/IDataSetListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/IDataSetListingQuery.java
@@ -21,7 +21,7 @@ import java.util.List;
 import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.Select;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 
 /**
  * @author pkupczyk
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/experimentlister/IExperimentListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/experimentlister/IExperimentListingQuery.java
index 988cd675a7e8878b6e9c71ca93f529328fd97e61..0e2c3217fa09e9838311e3aac242d205e14dcacc 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/experimentlister/IExperimentListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/experimentlister/IExperimentListingQuery.java
@@ -20,7 +20,7 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.DataIterator;
 import net.lemnik.eodsql.Select;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 
 /**
  * @author pkupczyk
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
index 8ba3dc549f96bb02f8aa7c20b8a78c7a9d7c2a66..fe0d1b14bafcdfea3e73e683da8e562d9d8790a0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
@@ -24,10 +24,10 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TypeMapper;
 
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.EntityMetaprojectRelationRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.MetaprojectRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.PropertyRecord;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
 
 /**
  * @author Franz-Josef Elmer
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/materiallister/IMaterialListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/materiallister/IMaterialListingQuery.java
index 035c8e0a671d1de818d78c3e808bd56862b80afc..296c53b51a185bc7b71367a99f1f6b5a78fa94df 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/materiallister/IMaterialListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/materiallister/IMaterialListingQuery.java
@@ -27,13 +27,13 @@ import net.lemnik.eodsql.TransactionQuery;
 import net.lemnik.eodsql.TypeMapper;
 
 import ch.rinn.restrictions.Private;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IPropertyListingQuery;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.VocabularyTermRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.MetaProjectWithEntityId;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 
 /**
  * A {@link TransactionQuery} interface for obtaining large sets of material-related entities from the database.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java
index 0ab0206c5298f84744f5ddee580d0708699fb738..9f7491ea3416c326c24d76b4607912a6070eb738 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java
@@ -32,14 +32,14 @@ import net.lemnik.eodsql.spi.util.NonUpdateCapableDataObjectBinding;
 
 import ch.rinn.restrictions.Friend;
 import ch.rinn.restrictions.Private;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IPropertyListingQuery;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.VocabularyTermRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.common.entity.ExperimentProjectSpaceCodeRecord;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.fetchoptions.common.MetaProjectWithEntityId;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
 
 /**
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/IExternalDataAdaptorRelationsQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/IExternalDataAdaptorRelationsQuery.java
index cfb33ec28e98927243429fc58be51c0b8c9609f6..b2ca78bf262484d8b8454f90ec210b599db92393 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/IExternalDataAdaptorRelationsQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/IExternalDataAdaptorRelationsQuery.java
@@ -24,7 +24,7 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TypeMapper;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
 
 /**
  * @author pkupczyk
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/ISampleAdaptorRelationsQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/ISampleAdaptorRelationsQuery.java
index 0025036d9cf438e20da211dac9debc700a78220f..1630b8ccca91bc53c736165b1eb793f98f9cc45a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/ISampleAdaptorRelationsQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/ISampleAdaptorRelationsQuery.java
@@ -24,7 +24,7 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TypeMapper;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
 import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
 
 /**
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java
index 54b793c807300c92eb5e7c1ac19dba3a96f6404f..8274ac3f60fd0d27f17fb597b30e76b1f126a83a 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IProteinQueryDAO.java
@@ -22,7 +22,7 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.DataSet;
 import net.lemnik.eodsql.Select;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongSetMapper;
+import ch.systemsx.cisd.common.db.mapper.LongSetMapper;
 import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein;
 import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IndistinguishableProtein;
 import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.PeptideWithModification;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingQueryDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingQueryDAO.java
index a0501f8e160bba0883dcd5ae19c57b6455628f84..28be9afa88a76c84833c09ddde29b0b000a15f1d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingQueryDAO.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingQueryDAO.java
@@ -23,7 +23,7 @@ import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TransactionQuery;
 import net.lemnik.eodsql.Update;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ByteArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.ByteArrayMapper;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingReadonlyQueryDAO;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgAcquiredImageDTO;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgAnalysisDatasetDTO;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/authorization/ScreeningPlateListReadOnlyPredicate.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/authorization/ScreeningPlateListReadOnlyPredicate.java
index 3c4e8bfb14336961f67df271a8bc23a980331502..6713aa0bf97b6eaffcd76535669ae8bb7e95c034 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/authorization/ScreeningPlateListReadOnlyPredicate.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/authorization/ScreeningPlateListReadOnlyPredicate.java
@@ -26,11 +26,11 @@ import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.QueryTool;
 import net.lemnik.eodsql.Select;
 
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ShouldFlattenCollections;
 import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.AbstractSpacePredicate;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.exception.UndefinedSpaceException;
 import ch.systemsx.cisd.openbis.generic.shared.util.SpaceCodeHelper;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningQuery.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningQuery.java
index 1e5b3656278f410eb654f97be0ccbe4ac2de27c4..0f1feaf2c812cfe47af5128661d27e4dfaceab8e 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningQuery.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningQuery.java
@@ -23,8 +23,8 @@ import net.lemnik.eodsql.DataIterator;
 import net.lemnik.eodsql.Select;
 import net.lemnik.eodsql.TypeMapper;
 
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongArrayMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.LongArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 
 /**
  * Screening specific queries on openbis database.
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
index 80c793e445c6b062abdb45d4009cfd226fee200d..000a5a96cef12f265c69ed81808788e9239e4d06 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
@@ -21,9 +21,9 @@ import java.util.List;
 import net.lemnik.eodsql.BaseQuery;
 import net.lemnik.eodsql.Select;
 
+import ch.systemsx.cisd.common.db.mapper.LongArrayMapper;
+import ch.systemsx.cisd.common.db.mapper.StringArrayMapper;
 import ch.systemsx.cisd.hcs.Location;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.LongArrayMapper;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.StringArrayMapper;
 
 /**
  * Operations on imaging database which are read-only.<br>
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/TransformerFactoryMapper.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/TransformerFactoryMapper.java
index ddcbfdc955113ac0f2ee1aa88a80e32b0e6995b7..9e06b0640c8f1e1a4df06a4c2017b5a2eb9dd473 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/TransformerFactoryMapper.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/TransformerFactoryMapper.java
@@ -22,7 +22,7 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 
 import ch.systemsx.cisd.base.image.IImageTransformerFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SerializableObjectMapper;
+import ch.systemsx.cisd.common.db.mapper.SerializableObjectMapper;
 
 import net.lemnik.eodsql.TypeMapper;