From a173486aad2d3d39e9e64649574f1e592c2263b8 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Tue, 5 Oct 2010 12:45:14 +0000
Subject: [PATCH] LMS-1780 Moved some classes/interfaces around to satisfy the
 dependency checker.

SVN: 18148
---
 .../openbis/dss/generic/server/DataStoreServer.java  |  1 +
 .../server/DssServiceRpcAuthorizationAdvisor.java    |  6 +++---
 .../generic/server/api/v1/DssServiceRpcGeneric.java  |  2 +-
 .../authorization}/DataSetCodeStringPredicate.java   |  3 +--
 .../api/authorization}/DataSetFileDTOPredicate.java  |  3 +--
 .../authorization/IAuthorizationGuardPredicate.java  | 12 ++++++++++++
 .../IDssServiceRpcGenericInternal.java               |  3 ++-
 .../api/authorization}/NewDataSetPredicate.java      |  3 +--
 .../generic/shared/api/v1/IDssServiceRpcGeneric.java |  6 +++---
 .../dss/client/api/v1/impl/DssComponentTest.java     |  2 +-
 .../dss/generic/server/DssServiceRpcV1Test.java      |  3 ++-
 11 files changed, 28 insertions(+), 16 deletions(-)
 rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/DataSetCodeStringPredicate.java (90%)
 rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/DataSetFileDTOPredicate.java (91%)
 rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/IDssServiceRpcGenericInternal.java (91%)
 rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/NewDataSetPredicate.java (96%)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
index 4460cb1e4af..5e0ba9043b8 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
@@ -59,6 +59,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters.PluginServle
 import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataStoreApiUrlUtilities;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java
index f183acec8a5..dc99cbe01e1 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java
@@ -76,17 +76,17 @@ public class DssServiceRpcAuthorizationAdvisor extends DefaultPointcutAdvisor
      * 
      * @param methodInterceptor
      */
-    DssServiceRpcAuthorizationAdvisor(MethodInterceptor methodInterceptor)
+    public DssServiceRpcAuthorizationAdvisor(MethodInterceptor methodInterceptor)
     {
         super(new AnnotationMatchingPointcut(null, DataSetAccessGuard.class), methodInterceptor);
     }
 
     /**
-     * Package visible class for verifying authorization.
+     * Class for verifying authorization. Made public so it can be extended in tests.
      * 
      * @author Chandrasekhar Ramakrishnan
      */
-    static class DssServiceRpcAuthorizationMethodInterceptor implements MethodInterceptor
+    public static class DssServiceRpcAuthorizationMethodInterceptor implements MethodInterceptor
     {
         /**
          * Get the session token and any guarded parameters and invoke the guards on those
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
index f82007a7c93..4a15b239513 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
@@ -25,8 +25,8 @@ import java.util.ArrayList;
 import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
 import ch.systemsx.cisd.etlserver.api.v1.PutDataSetService;
 import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDssServiceRpc;
-import ch.systemsx.cisd.openbis.dss.generic.server.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java
similarity index 90%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java
index d93a912ad21..3906b6c795e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.server;
+package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization;
 
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate;
 
 /**
  * Predicate for checking that the current user has access to a data set specified by code.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java
similarity index 91%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java
index 494639b2bd9..3317fc860f5 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.server;
+package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization;
 
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO;
 
 /**
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java
index 8a8fc37c074..b31739a7812 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java
@@ -21,10 +21,22 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 
 /**
  * Interface for objects that can function as guardClasses in an AuthorizationGuard.
+ * <p>
+ * Predicates should return Status.OK if the user is authorized for the action; they should return a
+ * status with an appropriate error message if the user is not authorized.
  * 
  * @author Chandrasekhar Ramakrishnan
  */
 public interface IAuthorizationGuardPredicate<T /* Receiver */, D /* Argument */>
 {
+
+    /**
+     * Evaluate the predicate for the receiver object, sessionToken, and predicate argument.
+     * 
+     * @param receiver The object on which the guarded method was called
+     * @param sessionToken A token identifying the user
+     * @param argument The argument to the predicate
+     * @return Status.OK if the action is allowed, Status.createError(<a message>) otherwise.
+     */
     public Status evaluate(T receiver, String sessionToken, D argument) throws UserFailureException;
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java
similarity index 91%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java
index 4c261c5c362..c84a710d73e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.server;
+package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization;
 
 import java.io.File;
 
+import ch.systemsx.cisd.openbis.dss.generic.server.DataStoreServer;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.IDssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java
similarity index 96%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java
index 20e64f4025d..977ed3cd686 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.server;
+package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization;
 
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO.DataSetOwner;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java
index d6769be8931..7976c9bf308 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java
@@ -20,11 +20,11 @@ import java.io.InputStream;
 
 import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
 import ch.systemsx.cisd.common.api.IRpcService;
-import ch.systemsx.cisd.openbis.dss.generic.server.DataSetCodeStringPredicate;
-import ch.systemsx.cisd.openbis.dss.generic.server.DataSetFileDTOPredicate;
-import ch.systemsx.cisd.openbis.dss.generic.server.NewDataSetPredicate;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.AuthorizationGuard;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetAccessGuard;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetCodeStringPredicate;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetFileDTOPredicate;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.NewDataSetPredicate;
 
 /**
  * Generic functionality for interacting with the DSS.
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java
index 835039f3a5e..b0a95c7523c 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java
@@ -46,9 +46,9 @@ import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.openbis.dss.client.api.v1.IDataSetDss;
 import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDssServiceRpc;
 import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor;
-import ch.systemsx.cisd.openbis.dss.generic.server.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataStoreApiUrlUtilities;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder;
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java
index 56ecc3ec170..79e1ad71fe8 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java
@@ -57,6 +57,7 @@ import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor.DssServiceRpcAuthorizationMethodInterceptor;
 import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO;
@@ -499,7 +500,7 @@ public class DssServiceRpcV1Test extends AbstractFileSystemTestCase
     private static class TestMethodInterceptor extends DssServiceRpcAuthorizationMethodInterceptor
             implements MethodInterceptor
     {
-        boolean methodInvoked = false;
+        private boolean methodInvoked = false;
 
         @Override
         public Object invoke(MethodInvocation methodInvocation) throws Throwable
-- 
GitLab