From 90c0ac9053d80ef96b701d94264725d8226bfde6 Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Wed, 22 Jun 2011 11:04:48 +0000
Subject: [PATCH] refactoring: moved a "getMaterialInfo" from IGenericServer to
 ICommonServer

SVN: 21803
---
 .../web/client/ICommonClientService.java      |  5 ++++
 .../web/client/ICommonClientServiceAsync.java |  5 ++++
 .../web/server/CommonClientService.java       | 15 +++++++++++
 .../openbis/generic/server/CommonServer.java  | 11 ++++++++
 .../generic/server/CommonServerLogger.java    |  6 +++++
 .../openbis/generic/shared/ICommonServer.java |  7 +++++
 .../web/client/IGenericClientService.java     |  6 -----
 .../client/IGenericClientServiceAsync.java    |  7 -----
 .../material/GenericMaterialEditForm.java     |  2 +-
 .../material/GenericMaterialViewer.java       |  2 +-
 .../web/server/GenericClientService.java      | 15 -----------
 .../plugin/generic/server/GenericServer.java  | 13 ----------
 .../generic/server/GenericServerLogger.java   |  7 -----
 .../plugin/generic/shared/IGenericServer.java |  8 ------
 .../web/server/CommonClientServiceTest.java   | 26 +++++++++++++++++++
 .../shared/ICommonServer.java.expected        |  7 +++++
 .../web/server/GenericClientServiceTest.java  | 26 -------------------
 .../shared/IGenericServer.java.expected       |  8 ------
 ...atchMaterialRegistrationAndUpdateTest.java |  2 +-
 .../detailviewers/ImagingMaterialViewer.java  |  6 ++---
 .../screening/server/ScreeningServer.java     |  2 +-
 21 files changed, 88 insertions(+), 98 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
index cbc4486a436..c1a28f807e3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
@@ -784,6 +784,11 @@ public interface ICommonClientService extends IClientService
      */
     public Material getMaterialInfo(MaterialIdentifier identifier) throws UserFailureException;
 
+    /**
+     * For given {@link MaterialIdentifier} returns the corresponding {@link Material}.
+     */
+    public Material getMaterialInfo(TechId techId) throws UserFailureException;
+
     /**
      * For given {@link MaterialIdentifier} returns the corresponding
      * {@link IEntityInformationHolderWithPermId}.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
index eadc781f655..a0e87eb0d62 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
@@ -692,6 +692,11 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync
     public void getMaterialInfo(MaterialIdentifier materialIdentifier,
             AsyncCallback<Material> callback);
 
+    /**
+     * @see ICommonClientService#getMaterialInfo(TechId)
+     */
+    public Material getMaterialInfo(TechId techId, AsyncCallback<Material> callback);
+
     /**
      * @see ICommonClientService#getMaterialInformationHolder(MaterialIdentifier)
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
index 42797c1e693..56cd5a3ac38 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
@@ -1955,6 +1955,21 @@ public final class CommonClientService extends AbstractClientService implements
         }
     }
 
+    public Material getMaterialInfo(TechId techId)
+            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
+    {
+        final String sessionToken = getSessionToken();
+        try
+        {
+            final Material material = commonServer.getMaterialInfo(sessionToken, techId);
+            transformXML(material);
+            return material;
+        } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e)
+        {
+            throw UserFailureExceptionTranslator.translate(e);
+        }
+    }
+
     public String getTemplate(EntityKind entityKind, String type, boolean autoGenerate,
             boolean withExperiments, BatchOperationKind operationKind)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index 9715122a24d..13a98bf0008 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -183,6 +183,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.GridCustomFilterPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityInformationHolderDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityInformationWithPropertiesHolder;
+import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewRoleAssignment;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
@@ -1586,6 +1587,16 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
         return MaterialTranslator.translate(materialBO.getMaterial());
     }
 
+    public Material getMaterialInfo(final String sessionToken, final TechId materialId)
+    {
+        final Session session = getSession(sessionToken);
+        final IMaterialBO materialBO = businessObjectFactory.createMaterialBO(session);
+        materialBO.loadDataByTechId(materialId);
+        materialBO.enrichWithProperties();
+        final MaterialPE material = materialBO.getMaterial();
+        return MaterialTranslator.translate(material, true);
+    }
+
     public IEntityInformationHolderWithPermId getMaterialInformationHolder(String sessionToken,
             MaterialIdentifier identifier)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
index 9a003a8c76b..02a46f3ade1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
@@ -767,6 +767,12 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe
         return null;
     }
 
+    public Material getMaterialInfo(final String sessionToken, final TechId materialId)
+    {
+        logAccess(sessionToken, "get_material_info", "ID(%s)", materialId);
+        return null;
+    }
+
     public Date updateMaterial(String sessionToken, TechId materialId,
             List<IEntityProperty> properties, Date version)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
index c1ed9bd8b4c..d4a129d61d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
@@ -1020,6 +1020,13 @@ public interface ICommonServer extends IServer
     @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
     public Material getMaterialInfo(String sessionToken, MaterialIdentifier identifier);
 
+    /**
+     * For given {@link TechId} returns the corresponding {@link Material}.
+     */
+    @Transactional(readOnly = true)
+    @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
+    public Material getMaterialInfo(String sessionToken, TechId materialId);
+
     /**
      * For given {@link MaterialIdentifier} returns the corresponding
      * {@link IEntityInformationHolder}.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
index 1363d956e8e..effeb4fef16 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientService.java
@@ -32,7 +32,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdates;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
@@ -107,11 +106,6 @@ public interface IGenericClientService extends IClientService
     public List<BatchRegistrationResult> updateExperiments(final ExperimentType experimentType,
             final String sessionKey) throws UserFailureException;
 
-    /**
-     * For given {@link TechId} returns corresponding {@link Material}.
-     */
-    public Material getMaterialInfo(final TechId materialId) throws UserFailureException;
-
     /**
      * For given {@link TechId} returns corresponding {@link ExternalData}.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
index fb626504f1a..293c940df31 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/IGenericClientServiceAsync.java
@@ -34,7 +34,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdates;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
@@ -90,12 +89,6 @@ public interface IGenericClientServiceAsync extends IClientServiceAsync
             final AsyncCallback<List<BatchRegistrationResult>> asyncCallback)
             throws UserFailureException;
 
-    /**
-     * @see IGenericClientService#getMaterialInfo(TechId)
-     */
-    public void getMaterialInfo(TechId materialId,
-            final AsyncCallback<Material> materialInfoCallback);
-
     /**
      * @see IGenericClientService#getDataSetInfo(TechId)
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialEditForm.java
index a60486cf728..c4a482d3fe2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialEditForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialEditForm.java
@@ -132,7 +132,7 @@ public final class GenericMaterialEditForm extends
     @Override
     protected void loadForm()
     {
-        viewContext.getService().getMaterialInfo(techIdOrNull,
+        viewContext.getCommonService().getMaterialInfo(techIdOrNull,
                 new MaterialInfoCallback(viewContext));
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
index 886203b9194..9311ef27986 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
@@ -83,7 +83,7 @@ abstract public class GenericMaterialViewer extends AbstractViewerWithVerticalSp
                 protected void loadMaterialInfo(TechId materialTechId,
                         AsyncCallback<Material> material)
                 {
-                    viewContext.getService().getMaterialInfo(materialTechId, material);
+                    viewContext.getCommonService().getMaterialInfo(materialTechId, material);
                 }
             };
         viewer.reloadAllData();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
index 64a0e121dc3..8121483e16e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java
@@ -50,7 +50,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdates;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSetsWithTypes;
@@ -187,20 +186,6 @@ public class GenericClientService extends AbstractClientService implements IGene
 
     }
 
-    public final Material getMaterialInfo(final TechId materialId)
-    {
-        try
-        {
-            final String sessionToken = getSessionToken();
-            final Material material = genericServer.getMaterialInfo(sessionToken, materialId);
-            transformXML(material);
-            return material;
-        } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e)
-        {
-            throw UserFailureExceptionTranslator.translate(e);
-        }
-    }
-
     public final ExternalData getDataSetInfo(final TechId datasetId)
     {
         try
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
index e538f35ff99..4ed12dc9945 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
@@ -42,7 +42,6 @@ import ch.systemsx.cisd.openbis.generic.server.batch.BatchOperationExecutor;
 import ch.systemsx.cisd.openbis.generic.server.batch.IBatchOperation;
 import ch.systemsx.cisd.openbis.generic.server.business.IPropertiesBatchManager;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IProjectBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO;
@@ -89,7 +88,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentBatchUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleBatchUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
@@ -107,7 +105,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFa
 import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.translator.AttachmentTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
-import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTypeTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.util.ServerUtils;
@@ -235,16 +232,6 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen
                 ExperimentTranslator.LoadableFields.ATTACHMENTS);
     }
 
-    public Material getMaterialInfo(final String sessionToken, final TechId materialId)
-    {
-        final Session session = getSession(sessionToken);
-        final IMaterialBO materialBO = businessObjectFactory.createMaterialBO(session);
-        materialBO.loadDataByTechId(materialId);
-        materialBO.enrichWithProperties();
-        final MaterialPE material = materialBO.getMaterial();
-        return MaterialTranslator.translate(material, true);
-    }
-
     public ExternalData getDataSetInfo(final String sessionToken, final TechId datasetId)
     {
         return commonServer.getDataSetInfo(sessionToken, datasetId);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerLogger.java
index 4b0fb1eb2c3..da756e54b76 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerLogger.java
@@ -33,7 +33,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSetsWithTypes;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
@@ -93,12 +92,6 @@ final class GenericServerLogger extends AbstractServerLogger implements IGeneric
                 newSample.getSampleType(), newSample.getIdentifier(), attachments.size());
     }
 
-    public Material getMaterialInfo(final String sessionToken, final TechId materialId)
-    {
-        logAccess(sessionToken, "get_material_info", "ID(%s)", materialId);
-        return null;
-    }
-
     public ExternalData getDataSetInfo(final String sessionToken, final TechId datasetId)
     {
         logAccess(sessionToken, "get_data_set_info", "ID(%s)", datasetId);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java
index 7027063db24..60370725b4c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java
@@ -48,7 +48,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSetsWithTypes;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
@@ -101,13 +100,6 @@ public interface IGenericServer extends IServer
             @AuthorizationGuard(guardClass = NewSamplePredicate.class) final NewSample newSample,
             final Collection<NewAttachment> attachments);
 
-    /**
-     * For given {@link TechId} returns the corresponding {@link Material}.
-     */
-    @Transactional(readOnly = true)
-    @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
-    public Material getMaterialInfo(String sessionToken, TechId materialId);
-
     /**
      * For given {@link TechId} returns the corresponding {@link ExternalData}.
      */
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
index 13f04c7e468..20a416851eb 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
@@ -64,6 +64,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomColumn;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewVocabulary;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
@@ -577,6 +578,31 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         context.assertIsSatisfied();
     }
 
+    @Test
+    public void testGetMaterialInfo()
+    {
+        final TechId id = new TechId(4711L);
+        context.checking(new Expectations()
+            {
+                {
+                    prepareGetSessionToken(this);
+
+                    one(commonServer).getMaterialInfo(SESSION_TOKEN, id);
+                    Material material = new Material();
+                    material.setProperties(Arrays.asList(createXmlProperty()));
+                    will(returnValue(material));
+                }
+            });
+
+        Material info = commonClientService.getMaterialInfo(id);
+
+        IEntityProperty transformedXMLProperty = info.getProperties().get(0);
+        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><b>hello</b>",
+                transformedXMLProperty.tryGetAsString());
+        assertEquals("<root>hello</root>", transformedXMLProperty.tryGetOriginalValue());
+        context.assertIsSatisfied();
+    }
+
     @Test
     public void testLogout()
     {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java.expected
index c1ed9bd8b4c..d4a129d61d2 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java.expected
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java.expected
@@ -1020,6 +1020,13 @@ public interface ICommonServer extends IServer
     @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
     public Material getMaterialInfo(String sessionToken, MaterialIdentifier identifier);
 
+    /**
+     * For given {@link TechId} returns the corresponding {@link Material}.
+     */
+    @Transactional(readOnly = true)
+    @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
+    public Material getMaterialInfo(String sessionToken, TechId materialId);
+
     /**
      * For given {@link MaterialIdentifier} returns the corresponding
      * {@link IEntityInformationHolder}.
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientServiceTest.java
index bd40ba91d54..4ef6d6c1358 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientServiceTest.java
@@ -49,7 +49,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
@@ -212,31 +211,6 @@ public final class GenericClientServiceTest extends AbstractClientServiceTest
         context.assertIsSatisfied();
     }
 
-    @Test
-    public void testGetMaterialInfo()
-    {
-        final TechId id = new TechId(4711L);
-        context.checking(new Expectations()
-            {
-                {
-                    prepareGetSessionToken(this);
-
-                    one(genericServer).getMaterialInfo(SESSION_TOKEN, id);
-                    Material material = new Material();
-                    material.setProperties(Arrays.asList(createXmlProperty()));
-                    will(returnValue(material));
-                }
-            });
-
-        Material info = genericClientService.getMaterialInfo(id);
-
-        IEntityProperty transformedXMLProperty = info.getProperties().get(0);
-        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><b>hello</b>",
-                transformedXMLProperty.tryGetAsString());
-        assertEquals("<root>hello</root>", transformedXMLProperty.tryGetOriginalValue());
-        context.assertIsSatisfied();
-    }
-
     @Test
     public final void testRegisterSample()
     {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java.expected
index 7027063db24..60370725b4c 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java.expected
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/shared/IGenericServer.java.expected
@@ -48,7 +48,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentUpdateResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSetsWithTypes;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
@@ -101,13 +100,6 @@ public interface IGenericServer extends IServer
             @AuthorizationGuard(guardClass = NewSamplePredicate.class) final NewSample newSample,
             final Collection<NewAttachment> attachments);
 
-    /**
-     * For given {@link TechId} returns the corresponding {@link Material}.
-     */
-    @Transactional(readOnly = true)
-    @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
-    public Material getMaterialInfo(String sessionToken, TechId materialId);
-
     /**
      * For given {@link TechId} returns the corresponding {@link ExternalData}.
      */
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/BatchMaterialRegistrationAndUpdateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/BatchMaterialRegistrationAndUpdateTest.java
index 578497dee94..aa57e311269 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/BatchMaterialRegistrationAndUpdateTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/BatchMaterialRegistrationAndUpdateTest.java
@@ -188,7 +188,7 @@ public class BatchMaterialRegistrationAndUpdateTest extends SystemTestCase
             IEntityInformationHolderWithPermId m =
                     commonClientService.getMaterialInformationHolder(new MaterialIdentifier(code,
                             MATERIAL_TYPE));
-            Material materialInfo = genericClientService.getMaterialInfo(new TechId(m.getId()));
+            Material materialInfo = commonClientService.getMaterialInfo(new TechId(m.getId()));
             assertEquals(code, materialInfo.getCode());
             Collections.sort(materialInfo.getProperties(), new Comparator<IEntityProperty>()
                 {
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
index 5854c2f0432..ca934c964df 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImagingMaterialViewer.java
@@ -26,11 +26,10 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.TabContent
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.GenericViewContext;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.material.GenericMaterialViewer;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchByProjectCriteria;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.ExperimentSearchCriteria;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCriteria.SingleExperimentSearchCriteria;
 
 /**
@@ -70,8 +69,7 @@ public class ImagingMaterialViewer extends GenericMaterialViewer
     @Override
     protected void loadMaterialInfo(TechId materialTechId, AsyncCallback<Material> callback)
     {
-        new GenericViewContext(screeningViewContext.getCommonViewContext()).getService()
-                .getMaterialInfo(materialTechId, callback);
+        screeningViewContext.getCommonService().getMaterialInfo(materialTechId, callback);
     }
 
     @Override
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
index d93b2bcac28..37460453df3 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
@@ -264,7 +264,7 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl
 
     public Material getMaterialInfo(String sessionToken, TechId materialId)
     {
-        return genericServer.getMaterialInfo(sessionToken, materialId);
+        return commonServer.getMaterialInfo(sessionToken, materialId);
     }
 
     public Vocabulary getVocabulary(String sessionToken, String code) throws UserFailureException
-- 
GitLab