You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/02/24 02:01:42 UTC
airavata git commit: disabling the cache back
Repository: airavata
Updated Branches:
refs/heads/develop deda93758 -> af4a04ec6
disabling the cache back
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/af4a04ec
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/af4a04ec
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/af4a04ec
Branch: refs/heads/develop
Commit: af4a04ec6f7e920cd4d244f8fbbefdf81aeeb27c
Parents: deda937
Author: scnakandala <su...@gmail.com>
Authored: Thu Feb 23 21:01:38 2017 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Thu Feb 23 21:01:38 2017 -0500
----------------------------------------------------------------------
.../sharing/registry/db/utils/JPAUtils.java | 8 +-
.../airavata/sharing/registry/CipresTest.java | 616 +++++++++++++++++++
2 files changed, 620 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/af4a04ec/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/utils/JPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/utils/JPAUtils.java b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/utils/JPAUtils.java
index 103cc95..209bb08 100644
--- a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/utils/JPAUtils.java
+++ b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/utils/JPAUtils.java
@@ -83,10 +83,10 @@ public class JPAUtils {
properties.put("openjpa.DynamicEnhancementAgent", "true");
properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
- properties.put("openjpa.DataCache", "" + readServerProperties(JPA_CACHE_ENABLED)
- + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)");
- properties.put("openjpa.QueryCache", "" + readServerProperties(JPA_CACHE_ENABLED)
- + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)");
+// properties.put("openjpa.DataCache", "" + readServerProperties(JPA_CACHE_ENABLED)
+// + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)");
+// properties.put("openjpa.QueryCache", "" + readServerProperties(JPA_CACHE_ENABLED)
+// + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)");
properties.put("openjpa.RemoteCommitProvider", "sjvm");
properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
http://git-wip-us.apache.org/repos/asf/airavata/blob/af4a04ec/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/CipresTest.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/CipresTest.java b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/CipresTest.java
new file mode 100644
index 0000000..8ca65b4
--- /dev/null
+++ b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/CipresTest.java
@@ -0,0 +1,616 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.airavata.sharing.registry;
+
+import org.apache.airavata.sharing.registry.models.*;
+import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
+import org.apache.thrift.TException;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.transport.TSocket;
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class CipresTest {
+ public static void main(String[] args) throws InterruptedException {
+ System.out.println("Hello World!");
+ //should use the correct host name and port here
+ String serverHost = "wb-airavata.scigap.org";
+
+ int serverPort = 7878;
+ TTransport transport = null;
+
+ try {
+ transport = new TSocket(serverHost, serverPort);
+ transport.open();
+ TProtocol protocol = new TBinaryProtocol(transport);
+ SharingRegistryService.Client sharingServiceClient = new SharingRegistryService.Client(protocol);
+ try {
+ sharingServiceClient.deleteDomain("test-domain");
+ } catch (SharingRegistryException sre1) {
+ System.out.println("deleteDomain failed" + sre1.getMessage() + "\n");
+ }
+ Domain domain = new Domain();
+ //has to be one word
+ domain.setName("test-domain");
+ //optional
+ domain.setDescription("test domain description");
+ //domain id will be same as domain name
+ String domainId = sharingServiceClient.createDomain(domain);
+ System.out.println("After domain creation...\n");
+
+ User user1 = new User();
+ String userName1 = "test-user-1";
+ String userId1 = "test-user-1";
+ //required
+ user1.setUserId(userId1);
+ //required
+ user1.setUserName(userName1);
+ //required
+ user1.setDomainId(domainId);
+ //required
+ user1.setFirstName("John");
+ //required
+ user1.setLastName("Doe");
+ //required
+ user1.setEmail("john.doe@abc.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[10];
+ //user1.setIcon(icon);
+ sharingServiceClient.createUser(user1);
+ User user2 = new User();
+ String userName2 = "test-user-2";
+ String userId2 = "test-user-2";
+ //required
+ user2.setUserId(userId2);
+ //required
+ user2.setUserName(userName2);
+ //required
+ user2.setDomainId(domainId);
+ //required
+ user2.setFirstName("John");
+ //required
+ user2.setLastName("Doe");
+ //required
+ user2.setEmail("john.doe@abc.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[20];
+ //user2.setIcon(icon);
+ sharingServiceClient.createUser(user2);
+ User user3 = new User();
+ String userName3 = "test-user-3";
+ String userId3 = "test-user-3";
+ //required
+ user3.setUserId(userId3);
+ //required
+ user3.setUserName(userName3);
+ //required
+ user3.setDomainId(domainId);
+ //required
+ user3.setFirstName("John");
+ //required
+ user3.setLastName("Doe");
+ //required
+ user3.setEmail("john.doe@abc.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[30];
+ //user3.setIcon(icon);
+ sharingServiceClient.createUser(user3);
+ System.out.println("After user creation...\n");
+
+ UserGroup userGroup1 = new UserGroup();
+ //required
+ userGroup1.setGroupId("test-group-1");
+ //required
+ userGroup1.setDomainId(domainId);
+ //required
+ userGroup1.setName("test-group-1");
+ //optional
+ //userGroup1.setDescription("test group description");
+ //required
+ userGroup1.setOwnerId("test-user-1");
+ //required
+ userGroup1.setGroupType(GroupType.USER_LEVEL_GROUP);
+ sharingServiceClient.createGroup(userGroup1);
+ //Similarly create another group "userGroup2" with the owner being "test-user-2".
+ UserGroup userGroup2 = new UserGroup();
+ //required
+ userGroup2.setGroupId("test-group-2");
+ //required
+ userGroup2.setDomainId(domainId);
+ //required
+ userGroup2.setName("test-group-2");
+ //optional
+ //userGroup2.setDescription("test group description");
+ //required
+ userGroup2.setOwnerId("test-user-2");
+ //required
+ userGroup2.setGroupType(GroupType.USER_LEVEL_GROUP);
+ sharingServiceClient.createGroup(userGroup2);
+ System.out.println("After group creation...\n");
+
+ sharingServiceClient.addUsersToGroup(domainId, Arrays.asList("test-user-3"), "test-group-2");
+ System.out.println("After adding user to group...\n");
+
+ sharingServiceClient.addChildGroupsToParentGroup(domainId, Arrays.asList("test-group-2"), "test-group-1");
+
+
+ PermissionType permissionType1 = new PermissionType();
+ //required
+ permissionType1.setPermissionTypeId("READ");
+ //required
+ permissionType1.setDomainId(domainId);
+ //required
+ permissionType1.setName("READ");
+ //optional
+ permissionType1.setDescription("READ description");
+ sharingServiceClient.createPermissionType(permissionType1);
+ PermissionType permissionType2 = new PermissionType();
+ permissionType2.setPermissionTypeId("WRITE");
+ permissionType2.setDomainId(domainId);
+ permissionType2.setName("WRITE");
+ permissionType2.setDescription("WRITE description");
+ sharingServiceClient.createPermissionType(permissionType2);
+ PermissionType permissionType3 = new PermissionType();
+ permissionType3.setPermissionTypeId("CLONE");
+ permissionType3.setDomainId(domainId);
+ permissionType3.setName("CLONE");
+ permissionType3.setDescription("CLONE description");
+ sharingServiceClient.createPermissionType(permissionType3);
+ System.out.println("After adding groups to parent group...\n");
+
+ EntityType entityType1 = new EntityType();
+ //required
+ entityType1.setEntityTypeId("PROJECT");
+ //required
+ entityType1.setDomainId(domainId);
+ //required
+ entityType1.setName("PROJECT");
+ //optional
+ entityType1.setDescription("PROJECT entity type description");
+ sharingServiceClient.createEntityType(entityType1);
+ EntityType entityType2 = new EntityType();
+ entityType2.setEntityTypeId("EXPERIMENT");
+ entityType2.setDomainId(domainId);
+ entityType2.setName("EXPERIMENT");
+ entityType2.setDescription("EXPERIMENT entity type");
+ sharingServiceClient.createEntityType(entityType2);
+ EntityType entityType3 = new EntityType();
+ entityType3.setEntityTypeId("FILE");
+ entityType3.setDomainId(domainId);
+ entityType3.setName("FILE");
+ entityType3.setDescription("FILE entity type");
+ sharingServiceClient.createEntityType(entityType3);
+ System.out.println("After project entity creation...\n");
+
+ Entity entity1 = new Entity();
+ //required
+ entity1.setEntityId("test-project-1");
+ //required
+ entity1.setDomainId(domainId);
+ //required
+ entity1.setEntityTypeId("PROJECT");
+ //required
+ entity1.setOwnerId("test-user-1");
+ //required
+ entity1.setName("test-project-1");
+ //optional
+ entity1.setDescription("test project 1 description");
+ //optional
+ entity1.setFullText("test project 1 stampede gaussian seagrid");
+ //optional - If not set this will be default to current system time
+ entity1.setOriginalEntityCreationTime(System.currentTimeMillis());
+ sharingServiceClient.createEntity(entity1);
+ System.out.println("After currentTimeMillis()...\n");
+ Entity entity2 = new Entity();
+ entity2.setEntityId("test-experiment-1");
+ entity2.setDomainId(domainId);
+ entity2.setEntityTypeId("EXPERIMENT");
+ entity2.setOwnerId("test-user-1");
+ entity2.setName("test-experiment-1");
+ entity2.setDescription("test experiment 1 description");
+ entity2.setParentEntityId("test-project-1");
+ entity2.setFullText("test experiment 1 benzene");
+ System.out.println("Before sharingServiceClient.createEntity entity2...\n");
+ sharingServiceClient.createEntity(entity2);
+ System.out.println("After sharingServiceClient.createEntity entity2...\n");
+ Entity entity3 = new Entity();
+ entity3.setEntityId("test-experiment-2");
+ entity3.setDomainId(domainId);
+ entity3.setEntityTypeId("EXPERIMENT");
+ entity3.setOwnerId("test-user-1");
+ entity3.setName("test-experiment-2");
+ entity3.setDescription("test experiment 2 description");
+ entity3.setParentEntityId("test-project-1");
+ entity3.setFullText("test experiment 1 3-methyl 1-butanol stampede");
+ sharingServiceClient.createEntity(entity3);
+ System.out.println("After sharingServiceClient.createEntity entity3...\n");
+ Entity entity4 = new Entity();
+ entity4.setEntityId("test-file-1");
+ entity4.setDomainId(domainId);
+ entity4.setEntityTypeId("FILE");
+ entity4.setOwnerId("test-user-1");
+ entity4.setName("test-file-1");
+ entity4.setDescription("test file 1 description");
+ entity4.setParentEntityId("test-experiment-2");
+ entity4.setFullText("test input file 1 for experiment 2");
+ sharingServiceClient.createEntity(entity4);
+ System.out.println("After sharingServiceClient.createEntity entity4...\n");
+ System.out.println("After test entity creation...\n");
+
+ //shared with cascading permissions
+ //System.out.println("Before shareEntityWithUsers WRITE...\n");
+ //sharingServiceClient.shareEntityWithUsers(domainId, "test-project-1", Arrays.asList("test-user-2"), "WRITE", true);
+ System.out.println("Before shareEntityWithGroups READ...\n");
+ long time = System.currentTimeMillis();
+ sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "READ", true);
+ System.out.println("Time for sharing " + (System.currentTimeMillis() - time));
+ //shared with non cascading permissions
+ System.out.println("Before shareEntityWithGroups CLONE...\n");
+ time = System.currentTimeMillis();
+ sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "CLONE", false);
+ System.out.println("Time for sharing " + (System.currentTimeMillis() - time));
+
+ //test-project-1 is explicitly shared with test-user-2 with WRITE permission
+ System.out.println("Before userHasAccess 1...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-project-1", "WRITE"));
+ //test-user-2 has WRITE permission to test-experiment-1 and test-experiment-2 indirectly
+ System.out.println("Before userHasAccess 2...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "WRITE"));
+ System.out.println("Before userHasAccess 3...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "WRITE"));
+ //test-user-2 does not have READ permission to test-experiment-1 and test-experiment-2
+ System.out.println("Before userHasAccess 4...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "READ"));
+ System.out.println(domainId + " test-user-2 " + " test-experiment-2 " + " READ ");
+ System.out.println("Before userHasAccess 5...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "READ"));
+ //test-user-3 does not have READ permission to test-project-1
+ System.out.println("Before userHasAccess 6...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-project-1", "READ"));
+ //test-experiment-2 is shared with test-group-2 with READ permission. Therefore test-user-3 has READ permission
+ System.out.println("Before userHasAccess 7...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "READ"));
+ //test-user-3 does not have WRITE permission to test-experiment-2
+ System.out.println("Before userHasAccess 8...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "WRITE"));
+ //test-user-3 has CLONE permission to test-experiment-2
+ System.out.println("Before userHasAccess 9...\n");
+ System.out.println((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "CLONE")));
+ //test-user-3 does not have CLONE permission to test-file-1
+ System.out.println("Before userHasAccess 10...\n");
+ System.out.println((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-file-1", "CLONE")));
+ System.out.println("After cascading permissions...\n");
+
+ ArrayList<SearchCriteria> filters = new ArrayList<>();
+ //ArrayList<SearchCriteria> filters = new List<>();
+ SearchCriteria searchCriteria = new SearchCriteria();
+ searchCriteria.setSearchCondition(SearchCondition.LIKE);
+ searchCriteria.setValue("experiment stampede methyl");
+ //searchCriteria.setValue("stampede");
+ //searchCriteria.setSearchField(EntitySearchField.NAME);
+ searchCriteria.setSearchField(EntitySearchField.FULL_TEXT);
+ filters.add(searchCriteria);
+ searchCriteria = new SearchCriteria();
+ searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+ searchCriteria.setValue("READ");
+ searchCriteria.setSearchField(EntitySearchField.PERMISSION_TYPE_ID);
+ filters.add(searchCriteria);
+ System.out.println(sharingServiceClient.searchEntities(domainId, "test-user-2", filters, 0, -1).size());
+ System.out.println(sharingServiceClient.searchEntities(domainId, "test-user-2", filters, 0, -1));
+ System.out.println("After searchEntities...\n");
+
+
+ //System.out.println("After searchEntities...\n");
+ User userA = new User();
+ String userNameA = "UserA";
+ String userIdA = "UserA";
+ //required
+ userA.setUserId(userIdA);
+ //required
+ userA.setUserName(userNameA);
+ //required
+ userA.setDomainId(domainId);
+ //required
+ userA.setFirstName("User");
+ //required
+ userA.setLastName("A");
+ //required
+ userA.setEmail("user.a@example.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[10];
+ //userA.setIcon(icon);
+ sharingServiceClient.createUser(userA);
+ User userB = new User();
+ String userNameB = "UserB";
+ String userIdB = "UserB";
+ //required
+ userB.setUserId(userIdB);
+ //required
+ userB.setUserName(userNameB);
+ //required
+ userB.setDomainId(domainId);
+ //required
+ userB.setFirstName("User");
+ //required
+ userB.setLastName("B");
+ //required
+ userB.setEmail("user.b@example.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[10];
+ //userB.setIcon(icon);
+ sharingServiceClient.createUser(userB);
+ User userC = new User();
+ String userNameC = "UserC";
+ String userIdC = "UserC";
+ //required
+ userC.setUserId(userIdC);
+ //required
+ userC.setUserName(userNameC);
+ //required
+ userC.setDomainId(domainId);
+ //required
+ userC.setFirstName("User");
+ //required
+ userC.setLastName("C");
+ //required
+ userC.setEmail("user.c@example.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[10];
+ //userC.setIcon(icon);
+ sharingServiceClient.createUser(userC);
+ User userD = new User();
+ String userNameD = "UserD";
+ String userIdD = "UserD";
+ //required
+ userD.setUserId(userIdD);
+ //required
+ userD.setUserName(userNameD);
+ //required
+ userD.setDomainId(domainId);
+ //required
+ userD.setFirstName("User");
+ //required
+ userD.setLastName("D");
+ //required
+ userD.setEmail("user.d@example.com");
+ //optional - this should be bytes of the users image icon
+ //byte[] icon = new byte[10];
+ //userD.setIcon(icon);
+ sharingServiceClient.createUser(userD);
+ System.out.println("After user creation...\n");
+
+ UserGroup Group1 = new UserGroup();
+ //required
+ Group1.setGroupId("Group1");
+ //required
+ Group1.setDomainId(domainId);
+ //required
+ Group1.setName("Group1");
+ //optional
+ //userGroup1.setDescription("test group description");
+ //required
+ Group1.setOwnerId("UserA");
+ //required
+ Group1.setGroupType(GroupType.USER_LEVEL_GROUP);
+ sharingServiceClient.createGroup(Group1);
+ System.out.println("After Group1 creation...\n");
+
+ sharingServiceClient.addUsersToGroup(domainId, Arrays.asList("UserB"), "Group1");
+ sharingServiceClient.addUsersToGroup(domainId, Arrays.asList("UserC"), "Group1");
+ sharingServiceClient.addUsersToGroup(domainId, Arrays.asList("UserD"), "Group1");
+
+ System.out.println("After adding users to Group1 creation...\n");
+
+ EntityType entityTypeFolder = new EntityType();
+ //required
+ entityTypeFolder.setEntityTypeId("FOLDER");
+ //required
+ entityTypeFolder.setDomainId(domainId);
+ //required
+ entityTypeFolder.setName("FOLDER");
+ //optional
+ //entityTypeFolder.setDescription("PROJECT entity type description");
+ sharingServiceClient.createEntityType(entityTypeFolder);
+ System.out.println("After creating FOLDER entity type...\n");
+
+ EntityType entityTypeInputData = new EntityType();
+ //required
+ entityTypeInputData.setEntityTypeId("INPUTDATA");
+ //required
+ entityTypeInputData.setDomainId(domainId);
+ //required
+ entityTypeInputData.setName("INPUTDATA");
+ //optional
+ //entityTypeFolder.setDescription("PROJECT entity type description");
+ sharingServiceClient.createEntityType(entityTypeInputData);
+ System.out.println("After creating INPUTDATA entity type...\n");
+
+ Entity entityB1 = new Entity();
+ //required
+ entityB1.setEntityId("UserBProject1");
+ //required
+ entityB1.setDomainId(domainId);
+ //required
+ entityB1.setEntityTypeId("PROJECT");
+ //required
+ entityB1.setOwnerId("UserB");
+ //required
+ entityB1.setName("UserBProject1");
+ //optional
+ entityB1.setDescription("User B's Project 1");
+ //optional
+ entityB1.setFullText("test project 1");
+ //optional - If not set this will be default to current system time
+ entityB1.setOriginalEntityCreationTime(System.currentTimeMillis());
+ sharingServiceClient.createEntity(entityB1);
+ System.out.println("After creating UserBProject1 ...\n");
+
+ Entity entityC1 = new Entity();
+ //required
+ entityC1.setEntityId("UserCProject2");
+ //required
+ entityC1.setDomainId(domainId);
+ //required
+ entityC1.setEntityTypeId("PROJECT");
+ //required
+ entityC1.setOwnerId("UserC");
+ //required
+ entityC1.setName("UserCProject2");
+ //optional
+ entityC1.setDescription("User C's Project 2");
+ //optional
+ entityC1.setFullText("test project 2");
+ //optional - If not set this will be default to current system time
+ entityC1.setOriginalEntityCreationTime(System.currentTimeMillis());
+ sharingServiceClient.createEntity(entityC1);
+ System.out.println("After creating UserCProject2 ...\n");
+
+ Entity entityF1 = new Entity();
+ entityF1.setEntityId("Folder1");
+ entityF1.setDomainId(domainId);
+ entityF1.setEntityTypeId("FOLDER");
+ entityF1.setOwnerId("UserB");
+ entityF1.setName("UserBFolder1");
+ entityF1.setDescription("UserB's Folder 1");
+ entityF1.setParentEntityId("UserBProject1");
+ entityF1.setFullText("test experiment 1 ethidium");
+ sharingServiceClient.createEntity(entityF1);
+ System.out.println("After creating Folder1 ...\n");
+
+ Entity entityD1 = new Entity();
+ entityD1.setEntityId("Data1");
+ entityD1.setDomainId(domainId);
+ entityD1.setEntityTypeId("INPUTDATA");
+ entityD1.setOwnerId("UserB");
+ entityD1.setName("UserBData1");
+ entityD1.setDescription("UserB's Data 1");
+ entityD1.setParentEntityId("Folder1");
+ entityD1.setFullText("Data 1 for User B Folder 1");
+ sharingServiceClient.createEntity(entityD1);
+ System.out.println("After creating Data1 ...\n");
+
+ Entity entityF2 = new Entity();
+ entityF2.setEntityId("Folder2");
+ entityF2.setDomainId(domainId);
+ entityF2.setEntityTypeId("FOLDER");
+ entityF2.setOwnerId("UserC");
+ entityF2.setName("UserCFolder2");
+ entityF2.setDescription("UserC's Folder 2");
+ entityF2.setParentEntityId("UserCProject2");
+ entityF2.setFullText("test experiment 2 ethidium");
+ sharingServiceClient.createEntity(entityF2);
+ System.out.println("After creating Folder2 ...\n");
+
+ Entity entityD2 = new Entity();
+ entityD2.setEntityId("Data2");
+ entityD2.setDomainId(domainId);
+ entityD2.setEntityTypeId("INPUTDATA");
+ entityD2.setOwnerId("UserC");
+ entityD2.setName("UserCData2");
+ entityD2.setDescription("UserC's Data 2");
+ entityD2.setParentEntityId("Folder2");
+ entityD2.setFullText("Data 2 for User C Folder 1");
+ sharingServiceClient.createEntity(entityD2);
+ System.out.println("After creating Data2 ...\n");
+
+ //sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "READ", true);
+ time = System.currentTimeMillis();
+ sharingServiceClient.shareEntityWithGroups(domainId, "Folder1", Arrays.asList("Group1"), "READ", true);
+ System.out.println("Time for sharing " + (System.currentTimeMillis() - time));
+ System.out.println("After READ sharing UserBFolder1 with Group1 ...\n");
+ //sharingServiceClient.shareEntityWithGroups(domainId, "Folder2", Arrays.asList("Group1"), "READ", true);
+ //System.out.println("After READ sharing UserCFolder2 with Group1 ...\n");
+
+ Entity entityD3 = new Entity();
+ entityD3.setEntityId("Data3");
+ entityD3.setDomainId(domainId);
+ entityD3.setEntityTypeId("INPUTDATA");
+ entityD3.setOwnerId("UserC");
+ entityD3.setName("UserCData3");
+ entityD3.setDescription("UserC's Data 3");
+ entityD3.setParentEntityId("Folder2");
+ entityD3.setFullText("Data 3 for User C Folder 2");
+ sharingServiceClient.createEntity(entityD3);
+ System.out.println("After creating Data3 ...\n");
+
+ System.out.println("Does UserC have READ access to Data1 ...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "UserC", "Data1", "READ"));
+ System.out.println("Does UserC have READ access to Data2 ...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "UserC", "Data2", "READ"));
+ System.out.println("Does UserC have READ access to Data3 ...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "UserC", "Data3", "READ"));
+ System.out.println("Does UserB have READ access to Data3 ...\n");
+ System.out.println(sharingServiceClient.userHasAccess(domainId, "UserB", "Data3", "READ"));
+
+ ArrayList<SearchCriteria> sharedfilters = new ArrayList<>();
+ searchCriteria = new SearchCriteria();
+ searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+ searchCriteria.setValue("READ");
+ searchCriteria.setSearchField(EntitySearchField.PERMISSION_TYPE_ID);
+ sharedfilters.add(searchCriteria);
+ System.out.println("items READable by UserC ...\n");
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1).size());
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1));
+ searchCriteria = new SearchCriteria();
+ //searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+ searchCriteria.setSearchCondition(SearchCondition.NOT);
+ searchCriteria.setValue("UserC");
+ searchCriteria.setSearchField(EntitySearchField.OWNER_ID);
+ sharedfilters.add(searchCriteria);
+ System.out.println("items READable, and not owned by UserC by UserC ...\n");
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1).size());
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1));
+ System.out.println("After searchEntities 2...\n");
+
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1).size());
+ System.out.println(sharingServiceClient.searchEntities(domainId, "UserC", sharedfilters, 0, -1));
+ System.out.println("After searchEntities 2...\n");
+
+
+ sharingServiceClient.removeUsersFromGroup(domainId, Arrays.asList("UserD"), "Group1");
+ System.out.println("After removing UserD from Group1 ...\n");
+
+ sharingServiceClient.deleteGroup(domainId, "Group1");
+ System.out.println("After deleting Group1 ...\n");
+
+ System.out.println("End of try clause...\n");
+ } catch (TTransportException ex1) {
+ System.out.println("TTransportException...\n");
+ System.out.println(ex1);
+ System.out.println(ex1.getCause());
+ ex1.printStackTrace();
+ System.out.println(ex1.getMessage());
+ } catch (SharingRegistryException ex2) {
+ System.out.println("SharingRegistryException...\n");
+ System.out.println(ex2.getMessage());
+ } catch (TException ex3) {
+ System.out.println("TException...\n");
+ System.out.println(ex3.getMessage());
+ } finally {
+ System.out.println("In finally...\n");
+ transport.close();
+ }
+ }
+}