adding governance registry server handler code

Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/99de5cc4
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/99de5cc4
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/99de5cc4

Branch: refs/heads/airavata-gov-registry
Commit: 99de5cc42488d98de02d30c58e40c1d6d05b0722
Parents: d14df92
Author: scnakandala <[email protected]>
Authored: Mon Oct 3 17:22:36 2016 -0400
Committer: scnakandala <[email protected]>
Committed: Mon Oct 3 17:22:36 2016 -0400

----------------------------------------------------------------------
 .../db/repositories/AbstractRepository.java     |    7 +-
 .../sharing/registry/db/utils/DBConstants.java  |   10 +
 .../server/GovRegistryServerHandler.java        |  293 +-
 .../src/main/resources/gov-registry.sql         |   98 +-
 .../registry/GovRegistryServerHandlerTest.java  |  221 +
 .../sharing/registry/models/Domain.java         |    2 +-
 .../sharing/registry/models/Entity.java         |    2 +-
 .../sharing/registry/models/EntityType.java     |    2 +-
 .../registry/models/GovRegistryException.java   |    2 +-
 .../sharing/registry/models/GroupChildType.java |    4 +
 .../registry/models/GroupMembership.java        |    2 +-
 .../sharing/registry/models/PermissionType.java |    2 +-
 .../sharing/registry/models/Sharing.java        |    2 +-
 .../airavata/sharing/registry/models/User.java  |    2 +-
 .../sharing/registry/models/UserGroup.java      |    2 +-
 .../service/cpi/GovRegistryService.java         | 4986 ++++++++++++++----
 .../thrift_models/sharing_cpi.thrift            |   28 +-
 17 files changed, 4456 insertions(+), 1209 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/AbstractRepository.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/AbstractRepository.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/AbstractRepository.java
index bba8c2d..696f725 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/AbstractRepository.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/AbstractRepository.java
@@ -116,10 +116,9 @@ public abstract class AbstractRepository<T, E, Id> {
     }
 
     private String getSelectQuery(Map<String, String> filters){
-        String query = "SELECT p from " + dbEntityGenericClass.getSimpleName() 
+ " as p WHERE ";
-        if(filters == null || filters.size() == 0){
-            query +=  "1";
-        }else{
+        String query = "SELECT p from " + dbEntityGenericClass.getSimpleName() 
+ " as p";
+        if(filters != null && filters.size() != 0){
+            query += " WHERE ";
             for(String k : filters.keySet()){
                 query += "p." + k + " LIKE '%" + filters.get(k) + "%' AND ";
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
index f242b83..f647216 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
@@ -54,4 +54,14 @@ public class DBConstants {
         public static String CHILD_ID = "childId";
         public static String CHILD_TYPE = "childType";
     }
+
+    public static class EntityTypeTable {
+        public static String ENTITY_TYPE_ID = "entityTypeId";
+        public static String DOMAIN_ID = "domainId";
+    }
+
+    public static class PermissionTypeTable {
+        public static String ENTITY_TYPE_ID = "permissionTypeId";
+        public static String DOMAIN_ID = "domainId";
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
index 5af94a0..d657f3c 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
@@ -20,45 +20,79 @@
 */
 package org.apache.airavata.sharing.registry.server;
 
+import 
org.apache.airavata.sharing.registry.db.entities.GroupMembershipEntityPK;
+import org.apache.airavata.sharing.registry.db.repositories.*;
+import org.apache.airavata.sharing.registry.db.utils.DBConstants;
 import org.apache.airavata.sharing.registry.models.*;
 import org.apache.airavata.sharing.registry.service.cpi.GovRegistryService;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 
 public class GovRegistryServerHandler implements GovRegistryService.Iface{
     private final static Logger logger = 
LoggerFactory.getLogger(GovRegistryServerHandler.class);
 
+    private DomainRepository domainRepository;
+    private UserRepository userRepository;
+    private UserGroupRepository userGroupRepository;
+    private GroupMembershipRepository groupMembershipRepository;
+    private EntityTypeRepository entityTypeRepository;
+    private PermissionTypeRepository permissionTypeRepository;
+    private EntityRepository entityRepository;
+
+    public GovRegistryServerHandler(){
+        this.domainRepository = new DomainRepository();
+        this.userRepository = new UserRepository();
+        this.userGroupRepository = new UserGroupRepository();
+        this.groupMembershipRepository = new GroupMembershipRepository();
+        this.entityTypeRepository = new EntityTypeRepository();
+        this.permissionTypeRepository = new PermissionTypeRepository();
+        this.entityRepository = new EntityRepository();
+    }
+
     /**
      * * Domain Operations
      * *
      */
     @Override
-    public boolean createDomain(Domain domain) throws GovRegistryException, 
TException {
-        return false;
+    public String createDomain(Domain domain) throws GovRegistryException, 
TException {
+        domain.setDomainId(domain.name);
+        domain.setCreatedTime(System.currentTimeMillis());
+        domain.setUpdatedTime(System.currentTimeMillis());
+        domainRepository.create(domain);
+        return domain.domainId;
     }
 
     @Override
     public boolean updateDomain(Domain domain) throws GovRegistryException, 
TException {
-        return false;
+        Domain oldDomain = domainRepository.get(domain.domainId);
+        domain.setCreatedTime(oldDomain.createdTime);
+        domain.setUpdatedTime(System.currentTimeMillis());
+        domain = getUpdatedObject(oldDomain, domain);
+        domainRepository.update(domain);
+        return true;
     }
 
     @Override
     public boolean deleteDomain(String domainId) throws GovRegistryException, 
TException {
-        return false;
+        domainRepository.delete(domainId);
+        return true;
     }
 
     @Override
     public Domain getDomain(String domainId) throws GovRegistryException, 
TException {
-        return null;
+        return domainRepository.get(domainId);
     }
 
     @Override
     public List<Domain> getDomains(int offset, int limit) throws TException {
-        return null;
+        return domainRepository.select(new HashMap<>(), offset, limit);
     }
 
     /**
@@ -66,28 +100,56 @@ public class GovRegistryServerHandler implements 
GovRegistryService.Iface{
      * *
      */
     @Override
-    public boolean registerUser(User user) throws GovRegistryException, 
TException {
-        return false;
+    public String createUser(User user) throws GovRegistryException, 
TException {
+        user.setUserId(user.domainId + ":" + user.userName);
+        user.setCreatedTime(System.currentTimeMillis());
+        user.setUpdatedTime(System.currentTimeMillis());
+        userRepository.create(user);
+
+        UserGroup userGroup = new UserGroup();
+        userGroup.setGroupId(user.userId);
+        userGroup.setDomainId(user.domainId);
+        userGroup.setName(user.userName);
+        userGroup.setDescription("user " + user.userName + " group");
+        userGroup.setOwnerId(user.userId);
+        userGroup.setGroupType(GroupType.SINGLE_USER);
+        createGroup(userGroup);
+
+        return user.userId;
     }
 
     @Override
     public boolean updatedUser(User user) throws GovRegistryException, 
TException {
-        return false;
+        User oldUser = userRepository.get(user.userId);
+        user.setCreatedTime(oldUser.createdTime);
+        user.setUpdatedTime(System.currentTimeMillis());
+        user = getUpdatedObject(oldUser, user);
+        userRepository.update(user);
+
+        UserGroup userGroup = userGroupRepository.get(user.userId);
+        userGroup.setName(user.userName);
+        userGroup.setDescription("user " + user.userName + " group");
+        updateGroup(userGroup);
+        return true;
     }
 
     @Override
     public boolean deleteUser(String userId) throws GovRegistryException, 
TException {
-        return false;
+        userRepository.delete(userId);
+        userGroupRepository.delete(userId);
+        return true;
     }
 
     @Override
     public User getUser(String userId) throws GovRegistryException, TException 
{
-        return null;
+        return userRepository.get(userId);
     }
 
     @Override
-    public List<User> getUsers(String domain, int offset, int limit) throws 
TException {
-        return null;
+    public List<User> getUsers(String domain, int offset, int limit) throws  
GovRegistryException, TException {
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.UserTable.DOMAIN_ID, domain);
+        return userRepository.select(filters, offset, limit);
     }
 
     /**
@@ -95,43 +157,97 @@ public class GovRegistryServerHandler implements 
GovRegistryService.Iface{
      * *
      */
     @Override
-    public boolean createGroup(UserGroup group) throws GovRegistryException, 
TException {
-        return false;
+    public String createGroup(UserGroup group) throws GovRegistryException, 
TException {
+        group.setGroupId(group.domainId+":"+group.name);
+        group.setCreatedTime(System.currentTimeMillis());
+        group.setUpdatedTime(System.currentTimeMillis());
+        userGroupRepository.create(group);
+        return group.groupId;
     }
 
     @Override
     public boolean updateGroup(UserGroup group) throws GovRegistryException, 
TException {
-        return false;
+        group.setUpdatedTime(System.currentTimeMillis());
+        UserGroup oldGroup = userGroupRepository.get(group.groupId);
+        group.setCreatedTime(oldGroup.createdTime);
+        group = getUpdatedObject(oldGroup, group);
+        userGroupRepository.update(group);
+        return true;
     }
 
     @Override
     public boolean deleteGroup(String groupId) throws GovRegistryException, 
TException {
-        return false;
+        userGroupRepository.delete(groupId);
+        return true;
     }
 
     @Override
     public UserGroup getGroup(String groupId) throws GovRegistryException, 
TException {
-        return null;
+        return userGroupRepository.get(groupId);
     }
 
     @Override
     public List<UserGroup> getGroups(String domain, int offset, int limit) 
throws TException {
-        return null;
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.UserTable.DOMAIN_ID, domain);
+        return userGroupRepository.select(filters, offset, limit);
     }
 
     @Override
     public boolean addUsersToGroup(List<String> userIds, String groupId) 
throws GovRegistryException, TException {
-        return false;
+        for(int i=0; i < userIds.size(); i++){
+            GroupMembership groupMembership = new GroupMembership();
+            groupMembership.setParentId(groupId);
+            groupMembership.setChildId(userIds.get(i));
+            groupMembership.setChildType(GroupChildType.USER);
+            groupMembership.setCreatedTime(System.currentTimeMillis());
+            groupMembership.setUpdatedTime(System.currentTimeMillis());
+            groupMembershipRepository.create(groupMembership);
+        }
+        return true;
     }
 
     @Override
     public boolean removeUsersFromGroup(List<String> userIds, String groupId) 
throws GovRegistryException, TException {
-        return false;
+        for(int i=0; i < userIds.size(); i++){
+            GroupMembershipEntityPK groupMembershipEntityPK = new 
GroupMembershipEntityPK();
+            groupMembershipEntityPK.setParentId(groupId);
+            groupMembershipEntityPK.setChildId(userIds.get(i));
+            groupMembershipRepository.delete(groupMembershipEntityPK);
+        }
+        return true;
     }
 
     @Override
-    public Map<String, GroupType> getGroupMembers(String groupId) throws 
TException {
-        return null;
+    public Map<String, GroupChildType> getGroupMembers(String groupId, int 
offset, int limit) throws  GovRegistryException, TException {
+        HashMap<String, GroupChildType> groupMembers = new HashMap<>();
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.GroupMembershipTable.PARENT_ID, groupId);
+        List<GroupMembership> groupMembershipList = 
groupMembershipRepository.select(filters, 0, -1);
+        
groupMembershipList.stream().forEach(gm->{groupMembers.put(gm.getChildId(), 
gm.getChildType());});
+        return groupMembers;
+    }
+
+    @Override
+    public boolean addChildGroupToParentGroup(String childId, String groupId) 
throws GovRegistryException, TException {
+        //Todo check for cyclic dependencies
+        GroupMembership groupMembership = new GroupMembership();
+        groupMembership.setParentId(groupId);
+        groupMembership.setChildId(childId);
+        groupMembership.setChildType(GroupChildType.GROUP);
+        groupMembership.setCreatedTime(System.currentTimeMillis());
+        groupMembership.setUpdatedTime(System.currentTimeMillis());
+        groupMembershipRepository.create(groupMembership);
+        return true;
+    }
+
+    @Override
+    public boolean removeChildGroupFromParentGroup(String childId, String 
groupId) throws GovRegistryException, TException {
+        GroupMembershipEntityPK groupMembershipEntityPK = new 
GroupMembershipEntityPK();
+        groupMembershipEntityPK.setParentId(groupId);
+        groupMembershipEntityPK.setChildId(childId);
+        groupMembershipRepository.delete(groupMembershipEntityPK);
+        return true;
     }
 
     /**
@@ -139,85 +255,162 @@ public class GovRegistryServerHandler implements 
GovRegistryService.Iface{
      * *
      */
     @Override
-    public boolean createEntityType(EntityType entityType) throws 
GovRegistryException, TException {
-        return false;
+    public String createEntityType(EntityType entityType) throws 
GovRegistryException, TException {
+        entityType.setEntityTypeId(entityType.domainId + ":" + 
entityType.name);
+        entityType.setCreatedTime(System.currentTimeMillis());
+        entityType.setUpdatedTime(System.currentTimeMillis());
+        entityTypeRepository.create(entityType);
+        return entityType.entityTypeId;
     }
 
     @Override
     public boolean updateEntityType(EntityType entityType) throws 
GovRegistryException, TException {
-        return false;
+        entityType.setUpdatedTime(System.currentTimeMillis());
+        EntityType oldEntityType = 
entityTypeRepository.get(entityType.entityTypeId);
+        entityType.setCreatedTime(oldEntityType.createdTime);
+        entityType = getUpdatedObject(oldEntityType, entityType);
+        entityTypeRepository.update(entityType);
+        return true;
     }
 
     @Override
     public boolean deleteEntityType(String entityTypeId) throws 
GovRegistryException, TException {
-        return false;
+        entityTypeRepository.delete(entityTypeId);
+        return true;
     }
 
     @Override
     public EntityType getEntityType(String entityTypeId) throws 
GovRegistryException, TException {
-        return null;
+        return entityTypeRepository.get(entityTypeId);
     }
 
     @Override
     public List<EntityType> getEntityTypes(String domain, int offset, int 
limit) throws TException {
-        return null;
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.EntityTypeTable.DOMAIN_ID, domain);
+        return entityTypeRepository.select(domain, offset, limit);
     }
 
     /**
-     * * Entity Operations
+     * * Permission Operations
      * *
      */
     @Override
-    public boolean registerEntity(Entity entity) throws GovRegistryException, 
TException {
-        return false;
+    public String createPermissionType(PermissionType permissionType) throws 
GovRegistryException, TException {
+        
permissionType.setPermissionTypeId(permissionType.domainId+":"+permissionType.name);
+        permissionType.setCreatedTime(System.currentTimeMillis());
+        permissionType.setUpdatedTime(System.currentTimeMillis());
+        permissionTypeRepository.create(permissionType);
+        return permissionType.permissionTypeId;
     }
 
     @Override
-    public boolean updateEntity(Entity entity) throws GovRegistryException, 
TException {
-        return false;
+    public boolean updatePermissionType(PermissionType permissionType) throws 
GovRegistryException, TException {
+        permissionType.setUpdatedTime(System.currentTimeMillis());
+        PermissionType oldPermissionType = 
permissionTypeRepository.get(permissionType.permissionTypeId);
+        permissionType = getUpdatedObject(oldPermissionType, permissionType);
+        permissionTypeRepository.update(permissionType);
+        return true;
     }
 
     @Override
-    public boolean deleteEntity(String entityId) throws GovRegistryException, 
TException {
-        return false;
+    public boolean deletePermissionType(String entityTypeId) throws 
GovRegistryException, TException {
+        permissionTypeRepository.delete(entityTypeId);
+        return true;
     }
 
     @Override
-    public Entity getEntity(String entityId) throws GovRegistryException, 
TException {
-        return null;
+    public PermissionType getPermissionType(String permissionTypeId) throws 
GovRegistryException, TException {
+        return permissionTypeRepository.get(permissionTypeId);
     }
 
     @Override
-    public List<Entity> searchEntities(String domain, String entityType, 
Map<String, String> filters, int offset, int limit) throws 
GovRegistryException, TException {
-        return null;
+    public List<PermissionType> getPermissionTypes(String domain, int offset, 
int limit) throws GovRegistryException, TException {
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.PermissionTypeTable.DOMAIN_ID, domain);
+        return permissionTypeRepository.select(filters, offset, limit);
     }
 
     /**
-     * * EntityType Operations
+     * * Entity Operations
      * *
      */
     @Override
-    public boolean createPermissionType(PermissionType permisionType) throws 
GovRegistryException, TException {
-        return false;
+    public String createEntity(Entity entity) throws GovRegistryException, 
TException {
+        entity.setEntityId(entity.domainId + ":" + entity.name);
+        entity.setCreatedTime(System.currentTimeMillis());
+        entity.setUpdatedTime(System.currentTimeMillis());
+        entityRepository.create(entity);
+        return entity.entityId;
     }
 
     @Override
-    public boolean updatePermissionType(PermissionType permisionType) throws 
GovRegistryException, TException {
-        return false;
+    public boolean updateEntity(Entity entity) throws GovRegistryException, 
TException {
+        entity.setUpdatedTime(System.currentTimeMillis());
+        Entity oldEntity = entityRepository.get(entity.getEntityId());
+        entity.setCreatedTime(oldEntity.createdTime);
+        entity = getUpdatedObject(oldEntity, entity);
+        entityRepository.update(entity);
+        return true;
     }
 
     @Override
-    public boolean deletePermissionType(String entityTypeId) throws 
GovRegistryException, TException {
-        return false;
+    public boolean deleteEntity(String entityId) throws GovRegistryException, 
TException {
+        entityRepository.delete(entityId);
+        return true;
     }
 
     @Override
-    public PermissionType getPermissionType(String permisionTypeId) throws 
GovRegistryException, TException {
-        return null;
+    public Entity getEntity(String entityId) throws GovRegistryException, 
TException {
+        return entityRepository.get(entityId);
     }
 
     @Override
-    public List<PermissionType> getPermissionTypes(String domain, int offset, 
int limit) throws GovRegistryException, TException {
+    public List<Entity> searchEntities(String domain, String entityType, 
Map<String, String> filters, int offset, int limit) throws 
GovRegistryException, TException {
         return null;
     }
+
+
+
+    private <T> T getUpdatedObject(T oldEntity, T newEntity) throws 
GovRegistryException {
+        Field[] newEntityFields = newEntity.getClass().getDeclaredFields();
+        Hashtable newHT = fieldsToHT(newEntityFields, newEntity);
+
+        Class oldEntityClass = oldEntity.getClass();
+        Field[] oldEntityFields = oldEntityClass.getDeclaredFields();
+
+        for (Field field : oldEntityFields){
+            field.setAccessible(true);
+            Object o = newHT.get(field.getName());
+            if (o != null){
+                Field f = null;
+                try {
+                    f = oldEntityClass.getDeclaredField(field.getName());
+                    f.setAccessible(true);
+                    logger.debug("setting " + f.getName());
+                    f.set(oldEntity, o);
+                } catch (Exception e) {
+                    throw new GovRegistryException(e.getMessage());
+                }
+            }
+        }
+        return oldEntity;
+    }
+
+    private static Hashtable<String, Object> fieldsToHT(Field[] fields, Object 
obj){
+        Hashtable<String,Object> hashtable = new Hashtable<>();
+        for (Field field: fields){
+            field.setAccessible(true);
+            try {
+                Object retrievedObject = field.get(obj);
+                if (retrievedObject != null){
+                    logger.debug("scanning " + field.getName());
+                    hashtable.put(field.getName(), field.get(obj));
+                }
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+        }
+        return hashtable;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
index 7c03e0c..f2bc98a 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
@@ -20,33 +20,33 @@
 */
 
 CREATE TABLE DOMAIN (
-  DOMAIN_ID VARCHAR(255),
-  NAME VARCHAR(255),
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  NAME VARCHAR(255) NOT NULL,
   DESCRIPTION VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (DOMAIN_ID)
 );
 
 CREATE TABLE USER (
-  USER_ID VARCHAR(255),
-  DOMAIN_ID VARCHAR(255),
-  USER_NAME VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  USER_ID VARCHAR(255) NOT NULL,
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  USER_NAME VARCHAR(255) NOT NULL,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (USER_ID),
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE USER_GROUP (
-  GROUP_ID VARCHAR(255),
-  DOMAIN_ID VARCHAR(255),
-  NAME VARCHAR(255),
+  GROUP_ID VARCHAR(255) NOT NULL,
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  NAME VARCHAR(255) NOT NULL,
   DESCRIPTION VARCHAR(255),
-  OWNER_ID VARCHAR(255),
-  TYPE VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  OWNER_ID VARCHAR(255) NOT NULL,
+  GROUP_TYPE VARCHAR(255) NOT NULL,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (GROUP_ID),
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) ON DELETE CASCADE ON 
UPDATE CASCADE,
   FOREIGN KEY (OWNER_ID) REFERENCES USER(USER_ID) ON DELETE CASCADE ON UPDATE 
CASCADE
@@ -54,49 +54,49 @@ CREATE TABLE USER_GROUP (
 
 
 CREATE TABLE GROUP_MEMBERSHIP (
-  PARENT_ID VARCHAR(255),
-  CHILD_ID VARCHAR(255),
-  CHILD_TYPE VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  PARENT_ID VARCHAR(255) NOT NULL,
+  CHILD_ID VARCHAR(255) NOT NULL,
+  CHILD_TYPE VARCHAR(255) NOT NULL,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (PARENT_ID, CHILD_ID),
   FOREIGN KEY (PARENT_ID) REFERENCES USER_GROUP(GROUP_ID) ON DELETE CASCADE ON 
UPDATE CASCADE,
   FOREIGN KEY (CHILD_ID) REFERENCES USER_GROUP(GROUP_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE ENTITY_TYPE (
-  ENTITY_TYPE_ID VARCHAR(255),
-  DOMAIN_ID VARCHAR(255),
-  NAME VARCHAR(255),
+  ENTITY_TYPE_ID VARCHAR(255) NOT NULL,
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  NAME VARCHAR(255) NOT NULL,
   DESCRIPTION VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (ENTITY_TYPE_ID),
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE PERMISSION_TYPE (
-  PERMISSION_TYPE_ID VARCHAR(255),
-  DOMAIN_ID VARCHAR(255),
-  NAME VARCHAR(255),
+  PERMISSION_TYPE_ID VARCHAR(255) NOT NULL,
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  NAME VARCHAR(255) NOT NULL,
   DESCRIPTION VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (PERMISSION_TYPE_ID),
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE ENTITY (
-  ENTITY_ID VARCHAR(255),
-  DOMAIN_ID VARCHAR(255),
-  ENTITY_TYPE_ID VARCHAR(255),
-  OWNER_ID VARCHAR(255),
+  ENTITY_ID VARCHAR(255) NOT NULL,
+  DOMAIN_ID VARCHAR(255) NOT NULL,
+  ENTITY_TYPE_ID VARCHAR(255) NOT NULL,
+  OWNER_ID VARCHAR(255) NOT NULL,
   PARENT_ENTITY_ID VARCHAR(255),
-  NAME VARCHAR(255),
+  NAME VARCHAR(255) NOT NULL,
   DESCRIPTION VARCHAR(255),
   FULL_TEXT TEXT,
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (ENTITY_ID),
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) ON DELETE CASCADE ON 
UPDATE CASCADE,
   FOREIGN KEY (ENTITY_TYPE_ID) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID) ON 
DELETE CASCADE ON UPDATE CASCADE,
@@ -105,30 +105,28 @@ CREATE TABLE ENTITY (
 );
 
 CREATE TABLE ENTITY_METADATA (
-  ENTITY_ID VARCHAR (255),
-  META_KEY VARCHAR (255),
-  META_VALUE VARCHAR (255),
+  ENTITY_ID VARCHAR (255) NOT NULL,
+  META_KEY VARCHAR (255) NOT NULL,
+  META_VALUE VARCHAR (255) NOT NULL,
   PRIMARY KEY (ENTITY_ID, META_KEY),
   FOREIGN KEY (ENTITY_ID) REFERENCES ENTITY(ENTITY_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE SHARING (
-  PERMISSION_TYPE_ID VARCHAR(255),
-  ENTITY_TYPE_ID VARCHAR(255),
-  ENTITY_ID VARCHAR(255),
-  GROUP_ID VARCHAR(255),
-  CREATED_TIME BIGINT,
-  UPDATED_TIME BIGINT,
+  PERMISSION_TYPE_ID VARCHAR(255) NOT NULL,
+  ENTITY_ID VARCHAR(255) NOT NULL,
+  GROUP_ID VARCHAR(255) NOT NULL,
+  CREATED_TIME BIGINT NOT NULL,
+  UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (PERMISSION_TYPE_ID, ENTITY_ID, GROUP_ID),
   FOREIGN KEY (PERMISSION_TYPE_ID) REFERENCES 
PERMISSION_TYPE(PERMISSION_TYPE_ID) ON DELETE CASCADE ON UPDATE CASCADE,
-  FOREIGN KEY (ENTITY_TYPE_ID) REFERENCES  ENTITY_TYPE(ENTITY_TYPE_ID) ON 
DELETE CASCADE ON UPDATE CASCADE,
   FOREIGN KEY (GROUP_ID) REFERENCES USER_GROUP(GROUP_ID) ON DELETE CASCADE ON 
UPDATE CASCADE
 );
 
 CREATE TABLE CONFIGURATION
 (
-  CONFIG_KEY VARCHAR(255),
-  CONFIG_VALUE VARCHAR(255),
+  CONFIG_KEY VARCHAR(255) NOT NULL,
+  CONFIG_VALUE VARCHAR(255) NOT NULL,
   PRIMARY KEY(CONFIG_KEY, CONFIG_VALUE)
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
new file mode 100644
index 0000000..49522bd
--- /dev/null
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
@@ -0,0 +1,221 @@
+/*
+ *
+ * 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 junit.framework.Assert;
+import org.apache.airavata.sharing.registry.models.*;
+import org.apache.airavata.sharing.registry.server.GovRegistryServerHandler;
+import org.apache.thrift.TException;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+public class GovRegistryServerHandlerTest {
+    private final static Logger logger = 
LoggerFactory.getLogger(GovRegistryServerHandlerTest.class);
+
+    @Test
+    public void test() throws TException {
+        GovRegistryServerHandler govRegistryServerHandler = new 
GovRegistryServerHandler();
+
+        //Creating domain
+        Domain domain = new Domain();
+        String domainId = "test-domain."+System.currentTimeMillis();
+        domain.setDomainId(domainId);
+        domain.setName(domainId);
+        domain.setDescription("test domain description");
+        domain.setCreatedTime(System.currentTimeMillis());
+        domain.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createDomain(domain));
+        Assert.assertTrue(govRegistryServerHandler.getDomains(0, 10).size() > 
0);
+
+
+        //Creating users
+        User user1 = new User();
+        String userName1 = "test-user-1." + System.currentTimeMillis();
+        String userId1 = domainId + ":" + userName1;
+        user1.setUserId(userId1);
+        user1.setUserName(userName1);
+        user1.setDomainId(domainId);
+        user1.setCreatedTime(System.currentTimeMillis());
+        user1.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createUser(user1));
+
+        User user2 = new User();
+        String userName2 = "test-user-2." + System.currentTimeMillis();
+        String userId2 = domainId + ":" + userName2;
+        user2.setUserId(userId2);
+        user2.setUserName(userName2);
+        user2.setDomainId(domainId);
+        user2.setCreatedTime(System.currentTimeMillis());
+        user2.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createUser(user2));
+
+        User user3 = new User();
+        String userName3 = "test-user-3." + System.currentTimeMillis();
+        String userId3 = domainId + ":" + userName3;
+        user3.setUserId(userId3);
+        user3.setUserName(userName3);
+        user3.setDomainId(domainId);
+        user3.setCreatedTime(System.currentTimeMillis());
+        user3.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createUser(user3));
+
+        Assert.assertTrue(govRegistryServerHandler.getUsers(domainId, 0, 
10).size() > 0);
+
+        // Creating user groups
+        UserGroup userGroup1 = new UserGroup();
+        String groupName1 = "test-group-1." + System.currentTimeMillis();
+        String groupId1 = domainId + ":" + groupName1;
+        userGroup1.setGroupId(groupId1);
+        userGroup1.setDomainId(domainId);
+        userGroup1.setName(groupName1);
+        userGroup1.setDescription("test group description");
+        userGroup1.setOwnerId(userId1);
+        userGroup1.setGroupType(GroupType.MULTI_USER);
+        userGroup1.setCreatedTime(System.currentTimeMillis());
+        userGroup1.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createGroup(userGroup1));
+
+        UserGroup userGroup2 = new UserGroup();
+        String groupName2 = "test-group-2." + System.currentTimeMillis();
+        String groupId2 = domainId + ":" + groupName2;
+        userGroup2.setGroupId(groupId2);
+        userGroup2.setDomainId(domainId);
+        userGroup2.setName(groupName2);
+        userGroup2.setDescription("test group description");
+        userGroup2.setOwnerId(userId2);
+        userGroup2.setGroupType(GroupType.MULTI_USER);
+        userGroup2.setCreatedTime(System.currentTimeMillis());
+        userGroup2.setUpdatedTime(System.currentTimeMillis());
+
+        Assert.assertNotNull(govRegistryServerHandler.createGroup(userGroup2));
+
+        govRegistryServerHandler.addUsersToGroup(Arrays.asList(userId1), 
groupId1);
+        govRegistryServerHandler.addUsersToGroup(Arrays.asList(userId2, 
userId3), groupId2);
+        govRegistryServerHandler.addChildGroupToParentGroup(groupId2, 
groupId1);
+
+        Assert.assertTrue(govRegistryServerHandler.getGroupMembers(groupId1, 
0, 10).size() == 2);
+        Assert.assertTrue(govRegistryServerHandler.getGroupMembers(groupId2, 
0, 10).size() == 2);
+
+
+        //Creating permission types
+        PermissionType permissionType1 = new PermissionType();
+        String permissionName1 = "READ";
+        permissionType1.setDomainId(domainId);
+        permissionType1.setName(permissionName1);
+        permissionType1.setDescription("READ description");
+        permissionType1.setCreatedTime(System.currentTimeMillis());
+        permissionType1.setUpdatedTime(System.currentTimeMillis());
+        String permissionTypeId1 = 
govRegistryServerHandler.createPermissionType(permissionType1);
+        Assert.assertNotNull(permissionTypeId1);
+
+        PermissionType permissionType2 = new PermissionType();
+        String permissionName2 = "WRITE";
+        permissionType2.setDomainId(domainId);
+        permissionType2.setName(permissionName2);
+        permissionType2.setDescription("WRITE description");
+        permissionType2.setCreatedTime(System.currentTimeMillis());
+        permissionType2.setUpdatedTime(System.currentTimeMillis());
+        String permissionTypeId2 = 
govRegistryServerHandler.createPermissionType(permissionType2);
+        Assert.assertNotNull(permissionTypeId2);
+
+        //Creating entity types
+        EntityType entityType1 = new EntityType();
+        String entityType1Name = "Project";
+        entityType1.setDomainId(domainId);
+        entityType1.setName(entityType1Name);
+        entityType1.setDescription("test entity type");
+        entityType1.setCreatedTime(System.currentTimeMillis());
+        entityType1.setUpdatedTime(System.currentTimeMillis());
+        String entityTypeId1 = 
govRegistryServerHandler.createEntityType(entityType1);
+        Assert.assertNotNull(entityTypeId1);
+
+        EntityType entityType2 = new EntityType();
+        String entityType2Name = "Experiment";
+        entityType2.setDomainId(domainId);
+        entityType2.setName(entityType2Name);
+        entityType2.setDescription("test entity type");
+        entityType2.setCreatedTime(System.currentTimeMillis());
+        entityType2.setUpdatedTime(System.currentTimeMillis());
+        String entityTypeId2 = 
govRegistryServerHandler.createEntityType(entityType2);
+        Assert.assertNotNull(entityTypeId2);
+
+        //Creating Entities
+        Entity entity1 = new Entity();
+        entity1.setDomainId(domainId);
+        entity1.setEntityTypeId(entityTypeId1);
+        entity1.setOwnerId(userId1);
+        entity1.setName("Project name");
+        entity1.setDescription("Project description");
+        Map<String, String> metadataMap = new HashMap<>();
+        metadataMap.put("key", "val");
+        entity1.setMetadata(metadataMap);
+        entity1.setFullText("Project name project description");
+        entity1.setCreatedTime(System.currentTimeMillis());
+        entity1.setUpdatedTime(System.currentTimeMillis());
+
+        String entityId1 = govRegistryServerHandler.createEntity(entity1);
+        Assert.assertNotNull(entityId1);
+
+        Entity entity2 = new Entity();
+        entity2.setDomainId(domainId);
+        entity2.setEntityTypeId(entityTypeId2);
+        entity2.setOwnerId(userId1);
+        entity2.setName("Experiment name");
+        entity2.setDescription("Experiment description");
+        entity2.setParentEntityId(entityId1);
+        metadataMap = new HashMap<>();
+        metadataMap.put("key", "val");
+        entity2.setMetadata(metadataMap);
+        entity2.setFullText("Project name project description");
+        entity2.setCreatedTime(System.currentTimeMillis());
+        entity2.setUpdatedTime(System.currentTimeMillis());
+
+        String entityId2 = govRegistryServerHandler.createEntity(entity2);
+        Assert.assertNotNull(entityId2);
+
+        Entity entity3 = new Entity();
+        entity3.setDomainId(domainId);
+        entity3.setEntityTypeId(entityTypeId2);
+        entity3.setOwnerId(userId1);
+        entity3.setName("Experiment name");
+        entity3.setDescription("Experiment description");
+        entity3.setParentEntityId(entityId1);
+        metadataMap = new HashMap<>();
+        metadataMap.put("key", "val");
+        entity3.setMetadata(metadataMap);
+        entity3.setFullText("Project name project description");
+        entity3.setCreatedTime(System.currentTimeMillis());
+        entity3.setUpdatedTime(System.currentTimeMillis());
+
+        String entityId3 = govRegistryServerHandler.createEntity(entity3);
+        Assert.assertNotNull(entityId3);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
index dd20bf1..f6327bf 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class Domain implements org.apache.thrift.TBase<Domain, 
Domain._Fields>, java.io.Serializable, Cloneable, Comparable<Domain> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Domain");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
index f0ebba3..1e439d7 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class Entity implements org.apache.thrift.TBase<Entity, 
Entity._Fields>, java.io.Serializable, Cloneable, Comparable<Entity> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Entity");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
index 752df80..d60a599 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class EntityType implements org.apache.thrift.TBase<EntityType, 
EntityType._Fields>, java.io.Serializable, Cloneable, Comparable<EntityType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("EntityType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
index 2314b0a..78c78f7 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class GovRegistryException extends TException implements 
org.apache.thrift.TBase<GovRegistryException, GovRegistryException._Fields>, 
java.io.Serializable, Cloneable, Comparable<GovRegistryException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("GovRegistryException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupChildType.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupChildType.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupChildType.java
index 61f3564..ba7b659 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupChildType.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupChildType.java
@@ -7,6 +7,10 @@
 package org.apache.airavata.sharing.registry.models;
 
 
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
 public enum GroupChildType implements org.apache.thrift.TEnum {
   USER(0),
   GROUP(1);

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
index 8fc2cd8..d426063 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class GroupMembership implements 
org.apache.thrift.TBase<GroupMembership, GroupMembership._Fields>, 
java.io.Serializable, Cloneable, Comparable<GroupMembership> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("GroupMembership");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
index 50bbe15..465ddfc 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class PermissionType implements org.apache.thrift.TBase<PermissionType, 
PermissionType._Fields>, java.io.Serializable, Cloneable, 
Comparable<PermissionType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("PermissionType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
index c7d07d6..41bdc96 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class Sharing implements org.apache.thrift.TBase<Sharing, 
Sharing._Fields>, java.io.Serializable, Cloneable, Comparable<Sharing> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Sharing");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
index 230be05..d70b8c1 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, 
java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/99de5cc4/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
index 211ee5c..442e597 100644
--- 
a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
+++ 
b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-03")
 public class UserGroup implements org.apache.thrift.TBase<UserGroup, 
UserGroup._Fields>, java.io.Serializable, Cloneable, Comparable<UserGroup> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("UserGroup");
 

Reply via email to