airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject [airavata-sandbox] branch master updated: AllocationManagerServerHandler (#30)
Date Sun, 10 Dec 2017 21:36:10 GMT
This is an automated email from the ASF dual-hosted git repository.

smarru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-sandbox.git


The following commit(s) were added to refs/heads/master by this push:
     new 720a946  AllocationManagerServerHandler (#30)
720a946 is described below

commit 720a946274a39a4a5c3e55509f275dda7f7ddce9
Author: Madrina Thapa <madrinathapa.rs@gmail.com>
AuthorDate: Sun Dec 10 16:36:08 2017 -0500

    AllocationManagerServerHandler (#30)
    
    * Implemented methods in service handler and repositories
    
    * Added methods for request reject or approval in CPI and implemented them in handler
    
    Updated createAllocationRequest and AssignReviewers method.
    
    * Tested jpa, mysql and server handler interaction
---
 .../authenticator/NotificationDetails.java         |   4 +-
 .../airavata-allocation-manager-server/pom.xml     |   2 +
 .../manager/db/entities/DomainEntity.java          | 116 ---
 .../manager/db/entities/ProjectReviewerEntity.java |  63 +-
 .../manager/db/repositories/DomainRepository.java  |  33 -
 .../repositories/ProjectReviewerPKRepository.java  |   2 +-
 .../db/repositories/ProjectReviewerRepository.java |   2 +-
 .../UserAllocationDetailPKRepository.java          |   2 +-
 .../UserAllocationDetailRepository.java            |   2 +-
 .../db/repositories/UserDetailRepository.java      |   2 +-
 .../allocation/manager/db/utils/JPAUtils.java      | 178 +----
 .../server/AllocationManagerServerHandler.java     |  29 +-
 .../allocation/manager/server/TestServer.java      |  42 +
 .../main/resources/allocation-manager-mysql.sql    |   1 +
 .../AllocationManagerServerHandlerTest.java        |  17 +-
 .../allocation/manager/util/Initialize.java        | 514 ++++++------
 .../client/AllocationManagerAdminClient.java       |  39 -
 .../allocation/manager/client/testClient.java      |  68 ++
 .../airavata/allocation/manager/models/Domain.java | 793 -------------------
 .../service/cpi/AllocationRegistryService.java     | 864 +++++++++++++++++++++
 .../api-docs/allocation_manager_cpi.html           |   4 +
 .../api-docs/allocation_manager_models.html        |  15 -
 .../allocation-manager-docs/api-docs/index.html    |   2 +-
 .../thrift_models/allocation_manager_cpi.thrift    |   5 +
 .../thrift_models/allocation_manager_models.thrift |  16 -
 25 files changed, 1353 insertions(+), 1462 deletions(-)

diff --git a/allocation-manager/Notification-Manager/Notification-Authenticator/src/main/java/org/apache/airavata/allocation/manager/notification/authenticator/NotificationDetails.java b/allocation-manager/Notification-Manager/Notification-Authenticator/src/main/java/org/apache/airavata/allocation/manager/notification/authenticator/NotificationDetails.java
index 2ee39b1..c61eb76 100644
--- a/allocation-manager/Notification-Manager/Notification-Authenticator/src/main/java/org/apache/airavata/allocation/manager/notification/authenticator/NotificationDetails.java
+++ b/allocation-manager/Notification-Manager/Notification-Authenticator/src/main/java/org/apache/airavata/allocation/manager/notification/authenticator/NotificationDetails.java
@@ -14,14 +14,14 @@ public class NotificationDetails {
 		
 		 try {
 			 AllocationManagerServerHandler obj  = new AllocationManagerServerHandler();
-			 String status =  obj.getAllocationRequestStatus(projectID);
+			 //String status =  obj.getAllocationRequestStatus(projectID);
 			 
 			 	List<String>senderList = new ArrayList<String>() ;
 		
 				senderList.add(obj.getAllocationRequestUserName(projectID));
 				senderList.add(obj.getAllocationManagerAdminEmail("ADMIN"));
 				
-			result.setStatus(status);
+			//result.setStatus(status);
 			result.setSenderList(senderList);
 
 		} catch (Exception e) {
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/pom.xml b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/pom.xml
index 94cdb66..ab8a463 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/pom.xml
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/pom.xml
@@ -100,7 +100,9 @@
 		</dependency>
 	</dependencies>
 	<properties>
+            <property name="openjpa.RuntimeUnenhancedClasses" value="warn"/>
 		<maven.compiler.source>1.8</maven.compiler.source>
 		<maven.compiler.target>1.8</maven.compiler.target>
 	</properties>
+        
 </project> 
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/DomainEntity.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/DomainEntity.java
deleted file mode 100644
index 2aed6f9..0000000
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/DomainEntity.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- *
- * 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.allocation.manager.db.entities;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "DOMAIN", schema = "" )
-public class DomainEntity {
-    private final static Logger logger = LoggerFactory.getLogger(DomainEntity.class);
-    private String domainId;
-    private String name;
-    private String description;
-    private Long createdTime;
-    private Long updatedTime;
-
-    @Id
-    @Column(name = "DOMAIN_ID")
-    public String getDomainId() {
-        return domainId;
-    }
-
-    public void setDomainId(String domainId) {
-        this.domainId = domainId;
-    }
-
-    @Basic
-    @Column(name = "NAME")
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    @Basic
-    @Column(name = "DESCRIPTION")
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    @Basic
-    @Column(name = "CREATED_TIME")
-    public Long getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Long createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    @Basic
-    @Column(name = "UPDATED_TIME")
-    public Long getUpdatedTime() {
-        return updatedTime;
-    }
-
-    public void setUpdatedTime(Long updatedTime) {
-        this.updatedTime = updatedTime;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        DomainEntity that = (DomainEntity) o;
-
-        if (getDomainId() != null ? !getDomainId().equals(that.getDomainId()) : that.getDomainId() != null)
-            return false;
-        if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) return false;
-        if (getDescription() != null ? !getDescription().equals(that.getDescription()) : that.getDescription() != null)
-            return false;
-        if (getCreatedTime() != null ? !getCreatedTime().equals(that.getCreatedTime()) : that.getCreatedTime() != null)
-            return false;
-        if (getUpdatedTime() != null ? !getUpdatedTime().equals(that.getUpdatedTime()) : that.getUpdatedTime() != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = getDomainId() != null ? getDomainId().hashCode() : 0;
-        result = 31 * result + (getName() != null ? getName().hashCode() : 0);
-        result = 31 * result + (getDescription() != null ? getDescription().hashCode() : 0);
-        result = 31 * result + (getCreatedTime() != null ? getCreatedTime().hashCode() : 0);
-        result = 31 * result + (getUpdatedTime() != null ? getUpdatedTime().hashCode() : 0);
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/ProjectReviewerEntity.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/ProjectReviewerEntity.java
index 86e9de6..26331c4 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/ProjectReviewerEntity.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/ProjectReviewerEntity.java
@@ -1,34 +1,31 @@
-package org.apache.airavata.allocation.manager.db.entities;
-
-import java.io.Serializable;
-import javax.persistence.*;
-
-/**
- *
- * @author harsha
- */
-/**
- * The persistent class for the PROJECT_REVIEWER database table.
- * 
- */
-@Entity
-@Table(name="PROJECT_REVIEWER")
-@NamedQuery(name="ProjectReviewerEntity.findAll", query="SELECT p FROM ProjectReviewerEntity p")
-public class ProjectReviewerEntity implements Serializable {
-	private static final long serialVersionUID = 1L;
-
-	@EmbeddedId
-	private ProjectReviewerEntityPK id;
-
-	public ProjectReviewerEntity() {
-	}
-
-	public ProjectReviewerEntityPK getId() {
-		return this.id;
-	}
-
-	public void setId(ProjectReviewerEntityPK id) {
-		this.id = id;
-	}
-
+package org.apache.airavata.allocation.manager.db.entities;
+
+import java.io.Serializable;
+import javax.persistence.*;
+
+
+/**
+ * The persistent class for the PROJECT_REVIEWER database table.
+ * 
+ */
+@Entity
+@Table(name="PROJECT_REVIEWER")
+@NamedQuery(name="ProjectReviewerEntity.findAll", query="SELECT p FROM ProjectReviewerEntity p")
+public class ProjectReviewerEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@EmbeddedId
+	private ProjectReviewerEntityPK id;
+
+	public ProjectReviewerEntity() {
+	}
+
+	public ProjectReviewerEntityPK getId() {
+		return this.id;
+	}
+
+	public void setId(ProjectReviewerEntityPK id) {
+		this.id = id;
+	}
+
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/DomainRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/DomainRepository.java
deleted file mode 100644
index c86d85b..0000000
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/DomainRepository.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *
- * 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.allocation.manager.db.repositories;
-
-import org.apache.airavata.allocation.manager.db.entities.DomainEntity;
-import org.apache.airavata.allocation.manager.models.Domain;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DomainRepository extends AbstractRepository<Domain, DomainEntity, String> {
-    private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
-
-    public DomainRepository(){
-        super(Domain.class, DomainEntity.class);
-    }
-}
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerPKRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerPKRepository.java
index 4746c7c..ee0d95b 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerPKRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerPKRepository.java
@@ -6,7 +6,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class ProjectReviewerPKRepository extends AbstractRepository<ProjectReviewerPK, ProjectReviewerEntityPK, String> {
-    private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
+    
 
     public ProjectReviewerPKRepository(){
         super(ProjectReviewerPK.class, ProjectReviewerEntityPK.class);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
index 1e17cbc..14a85e9 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
@@ -12,7 +12,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class ProjectReviewerRepository extends AbstractRepository<ProjectReviewer, ProjectReviewerEntity, ProjectReviewerEntityPK> {
-    private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
+   // private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
     public ProjectReviewerRepository(){
         super(ProjectReviewer.class, ProjectReviewerEntity.class);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailPKRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailPKRepository.java
index e6b95a6..17ffb21 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailPKRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailPKRepository.java
@@ -6,7 +6,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class UserAllocationDetailPKRepository extends AbstractRepository<UserAllocationDetailPK, UserAllocationDetailEntityPK, String> {
-    private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
+  //  private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
     public UserAllocationDetailPKRepository(){
         super(UserAllocationDetailPK.class, UserAllocationDetailEntityPK.class);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
index 5704599..4e492c6 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
@@ -11,7 +11,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class UserAllocationDetailRepository extends AbstractRepository<UserAllocationDetail, UserAllocationDetailEntity, UserAllocationDetailEntityPK> {
-    private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
+   // private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
     public UserAllocationDetailRepository(){
         super(UserAllocationDetail.class, UserAllocationDetailEntity.class);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserDetailRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserDetailRepository.java
index af51331..c840757 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserDetailRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserDetailRepository.java
@@ -11,7 +11,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class UserDetailRepository extends AbstractRepository<UserDetail, UserDetailEntity, String> {
-	private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
+	//private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
 	public UserDetailRepository() {
 		super(UserDetail.class, UserDetailEntity.class);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/JPAUtils.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/JPAUtils.java
index 3781c4b..5cdf342 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/JPAUtils.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/JPAUtils.java
@@ -37,87 +37,58 @@ import java.util.Map;
 
 public class JPAUtils {
     private final static Logger logger = LoggerFactory.getLogger(JPAUtils.class);
-
-    public static final String PERSISTENCE_UNIT_NAME = "airavata-sharing-registry";
-    public static final String SHARING_REG_JDBC_DRIVER = "sharingcatalog.jdbc.driver";
-    public static final String SHARING_REG_JDBC_URL = "sharingcatalog.jdbc.url";
-    public static final String SHARING_REG_JDBC_USER = "sharingcatalog.jdbc.user";
-    public static final String SHARING_REG_JDBC_PWD = "sharingcatalog.jdbc.password";
-    public static final String SHARING_REG_VALIDATION_QUERY = "sharingcatalog.validationQuery";
-    public static final String JPA_CACHE_SIZE = "jpa.cache.size";
-    public static final String JPA_CACHE_ENABLED = "cache.enable";
-
-    public static final String CONFIGURATION = "CONFIGURATION";
-    public static final String START_DERBY_ENABLE = "start.derby.server.mode";
-    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
-    private static NetworkServerControl server;
-    private static JdbcStorage db;
-    private static String jdbcURl;
-    private static String jdbcDriver;
-    private static String jdbcUser;
-    private static String jdbcPassword;
-
-    @PersistenceUnit(unitName = PERSISTENCE_UNIT_NAME)
+    public static final String PERSISTENCE_UNIT_NAME = "airavata-allocation-manager-server";
+    
+     @PersistenceUnit(unitName = PERSISTENCE_UNIT_NAME)
     protected static EntityManagerFactory factory;
     @PersistenceContext(unitName = PERSISTENCE_UNIT_NAME)
     private static EntityManager entityManager;
-
+    
     public synchronized static EntityManager getEntityManager() throws Exception {
-        if (factory == null) {
-            String connectionProperties = "DriverClassName=" + readServerProperties(SHARING_REG_JDBC_DRIVER) + "," +
-                    "Url=" + readServerProperties(SHARING_REG_JDBC_URL) + "?autoReconnect=true," +
-                    "Username=" + readServerProperties(SHARING_REG_JDBC_USER) + "," +
-                    "Password=" + readServerProperties(SHARING_REG_JDBC_PWD) +
-                    ",validationQuery=" + readServerProperties(SHARING_REG_VALIDATION_QUERY);
-
-//            String connectionProperties = "DriverClassName=com.mysql.jdbc.Driver," +
-//                    "Url=jdbc:mysql://localhost:3306/airavata_sharing_catalog?autoReconnect=true," +
-//                    "Username=root," +
-//                    "Password=," +
-//                    ",validationQuery=SELECT 1 FROM CONFIGURATION";
-
-            Map<String, String> properties = new HashMap<String, String>();
-            properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
-            properties.put("openjpa.ConnectionProperties", connectionProperties);
-            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.RemoteCommitProvider", "sjvm");
-            properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
-            properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
-            properties.put("openjpa.jdbc.QuerySQLCache", "false");
-//            properties.put("openjpa.Multithreaded", "true");
-            properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," +
-                    " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000,  autoReconnect=true");
-            properties.put("openjpa.RuntimeUnenhancedClasses", "warn");
-            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties);
+       if(factory==null){
+    	   String connectionProperties = "DriverClassName = com.mysql.jdbc.Driver" + "," +
+                   "Url=jdbc:mysql://localhost:3306/resource"+ "?autoReconnect=true," +
+                   "Username=root" + "," + "Password=root";
+
+    	Map<String, String> properties = new HashMap<String, String>();
+        properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
+        properties.put("openjpa.ConnectionProperties", connectionProperties);
+        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.RemoteCommitProvider", "sjvm");
+        properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
+        properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
+        properties.put("openjpa.jdbc.QuerySQLCache", "false");
+//        properties.put("openjpa.Multithreaded", "true");
+        properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," +
+                " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000,  autoReconnect=true");
+        properties.put("openjpa.RuntimeUnenhancedClasses", "warn");
+        	factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
         }
-
-        entityManager = factory.createEntityManager();
+         entityManager = factory.createEntityManager();
         return entityManager;
     }
 
     public static void initializeDB() throws Exception {
-        jdbcDriver = readServerProperties(SHARING_REG_JDBC_DRIVER);
-        jdbcURl = readServerProperties(SHARING_REG_JDBC_URL);
-        jdbcUser = readServerProperties(SHARING_REG_JDBC_USER);
-        jdbcPassword = readServerProperties(SHARING_REG_JDBC_PWD);
+    		String jdbcDriver = "com.mysql.jdbc.Driver";
+        String jdbcURl = "jdbc:mysql://localhost:3306/resource";
+        String jdbcUser = "root";
+        String jdbcPassword = "root";
         jdbcURl = jdbcURl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
 
-        if (getDBType(jdbcURl).equals("derby") && isDerbyStartEnabled()) {
-            startDerbyInServerMode();
-        }
-        db = new JdbcStorage(10, 50, jdbcURl, jdbcDriver, true);
+       
+        JdbcStorage db = new JdbcStorage(10, 50, jdbcURl, jdbcDriver, true);
 
         Connection conn = null;
         try {
             conn = db.connect();
-            if (!DatabaseCreator.isDatabaseStructureCreated(CONFIGURATION, conn)) {
+            if (!DatabaseCreator.isDatabaseStructureCreated("USER_DETAILS", conn)) {
                 DatabaseCreator.createRegistryDatabase("database_scripts/sharing-registry", conn);
                 logger.info("New Database created for Sharing Catalog !!! ");
             } else {
@@ -139,77 +110,6 @@ public class JPAUtils {
                 logger.error("Error while closing database connection...", e.getMessage(), e);
             }
         }
+    	
     }
-
-    public static String getDBType(String jdbcUrl){
-        try{
-            String cleanURI = jdbcUrl.substring(5);
-            URI uri = URI.create(cleanURI);
-            return uri.getScheme();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            return null;
-        }
-    }
-
-    public static boolean isDerbyStartEnabled(){
-        try {
-            String s = ServerSettings.getSetting(START_DERBY_ENABLE);
-            if("true".equals(s)){
-                return true;
-            }
-        }  catch (ApplicationSettingsException e) {
-            logger.error("Unable to read airavata server properties", e.getMessage(), e);
-            return false;
-        }
-        return false;
-    }
-
-    public static void startDerbyInServerMode() {
-        try {
-            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
-            server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
-                    getPort(jdbcURl),
-                    jdbcUser, jdbcPassword);
-            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
-            server.start(consoleWriter);
-        } catch (IOException e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        } catch (Exception e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        }
-    }
-
-    public static void stopDerbyInServerMode() {
-        System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "false");
-        if (server!=null){
-            try {
-                server.shutdown();
-            } catch (Exception e) {
-                logger.error("Error when stopping the derby server : "+e.getLocalizedMessage());
-            }
-        }
-    }
-
-    public static int getPort(String jdbcURL){
-        try{
-            String cleanURI = jdbcURL.substring(5);
-            URI uri = URI.create(cleanURI);
-            return uri.getPort();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            return -1;
-        }
-    }
-
-    public static String readServerProperties(String propertyName) throws Exception {
-        try {
-            return ServerSettings.getSetting(propertyName);
-        } catch (ApplicationSettingsException e) {
-            logger.error("Unable to read airavata-server.properties...", e);
-            throw new Exception("Unable to read airavata-server.properties...");
-        }
-    }
-}
\ No newline at end of file
+}
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
index ba6ef52..e810ea6 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
@@ -55,9 +55,9 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
             objAllocationDetailEntityPK.setProjectId(reqDetails.id.projectId);
             objAllocationDetailEntityPK.setUsername(reqDetails.id.username);
 
-            if ((new UserAllocationDetailRepository()).isExists(objAllocationDetailEntityPK)) {
-                throw new TException("There exist project with the id");
-            }
+//            if ((new UserAllocationDetailRepository()).isExists(objAllocationDetailEntityPK)) {
+//                throw new TException("There exist project with the id");
+//            }
             reqDetails.setStatus(DBConstants.RequestStatus.PENDING);
             reqDetails.setIsPrimaryOwner(true);
             UserAllocationDetail create = (new UserAllocationDetailRepository()).create(reqDetails);
@@ -196,7 +196,7 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
             if (objUser == null) {
                 throw new IllegalArgumentException();
             }
-            return objUser.userType.equals("admin");
+            return objUser.userType.equals(DBConstants.UserType.ADMIN);
         } catch (Exception ex) {
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
         }
@@ -209,7 +209,7 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
             if (objUser == null) {
                 throw new IllegalArgumentException();
             }
-            return objUser.userType.equals("reviewer");
+            return objUser.userType.equals(DBConstants.UserType.REVIEWER);
         } catch (Exception ex) {
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
         }
@@ -238,6 +238,7 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
     @Override
     public UserDetail getUserDetails(String userName) throws AllocationManagerException, TException {
         try {
+        	System.out.println("dvd"+ userName);
             return (new UserDetailRepository()).get(userName);
         } catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
@@ -414,4 +415,22 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
         }
     }
+
+    @Override
+    public boolean createUser(String userName) throws TException {
+         try {
+            UserDetail obj = new UserDetail();
+            obj.setUsername(userName);
+            obj.setEmail("dcd");
+            obj.setFullName("xsx");
+            obj.setUserType("ADMIN1");
+            obj.setPassword("cdc");
+            UserDetail create = (new UserDetailRepository()).create(obj);
+            return true;
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
+        }
+         
+    }
 }
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/TestServer.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/TestServer.java
new file mode 100644
index 0000000..ce1d98d
--- /dev/null
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/TestServer.java
@@ -0,0 +1,42 @@
+package org.apache.airavata.allocation.manager.server;
+
+import static org.apache.airavata.allocation.manager.server.AllocationManagerAdminServer.StartsimpleServer;
+import org.apache.airavata.allocation.manager.service.cpi.AllocationRegistryService;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.thrift.TException;
+import org.apache.thrift.transport.TServerSocket;
+import org.apache.thrift.transport.TServerTransport;
+import org.apache.thrift.server.TServer;
+import org.apache.thrift.server.TServer.Args;
+import org.apache.thrift.server.TSimpleServer;
+
+public class TestServer {
+
+ public static void StartsimpleServer(AllocationRegistryService.Processor<AllocationManagerServerHandler> processor) {
+  try {
+   TServerTransport serverTransport = new TServerSocket(9000);
+   TServer server = new TSimpleServer(
+     new Args(serverTransport).processor(processor));
+
+   // Use this for a multithreaded server
+   // TServer server = new TThreadPoolServer(new
+   // TThreadPoolServer.Args(serverTransport).processor(processor));
+
+   System.out.println("Starting the Resource request server...");
+   server.serve();
+  } catch (Exception e) {
+   e.printStackTrace();
+  }
+ }
+ 
+ public static void main(String[] args) throws TException, ApplicationSettingsException {
+ try {
+			StartsimpleServer(new AllocationRegistryService.Processor<AllocationManagerServerHandler>(
+					new AllocationManagerServerHandler()));
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+ }
+
+}
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/resources/allocation-manager-mysql.sql b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/resources/allocation-manager-mysql.sql
index 61393ba..9da0dc0 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/resources/allocation-manager-mysql.sql
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/resources/allocation-manager-mysql.sql
@@ -34,6 +34,7 @@ CREATE TABLE IF NOT EXISTS USER_ALLOCATION_DETAILS (
     SERVICE_UNITS BIGINT default 1,
     TYPICAL_SU_PER_JOB BIGINT,
     MAX_MEMORY_PER_CPU BIGINT,
+    IS_PRIMARY_OWNER BOOLEAN,
     DISK_USAGE_RANGE_PER_JOB BIGINT,
     NUMBER_OF_CPU_PER_JOB BIGINT,
     PROJECT_REVIEWED_AND_FUNDED_BY TEXT,
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
index 3a5e59e..d8c6056 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
@@ -39,8 +39,8 @@ public class AllocationManagerServerHandlerTest {
 
     @BeforeClass
     public static void setup() throws AllocationManagerException, SQLException {
-        Initialize initialize = new Initialize("sharing-registry-derby.sql");
-        initialize.initializeDB();
+//        Initialize initialize = new Initialize("sharing-registry-derby.sql");
+//        initialize.initializeDB();
     }
 
     @Test
@@ -69,8 +69,8 @@ public class AllocationManagerServerHandlerTest {
         userAllocationDetails.setTypeOfAllocation("community");
 
 
-        Assert.assertNotNull(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails));
-        Assert.assertEquals(allocationManagerServerHandler.getAllocationRequest("123",""),userAllocationDetails);
+//        Assert.assertNotNull(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails));
+//        Assert.assertEquals(allocationManagerServerHandler.getAllocationRequest("123",""),userAllocationDetails);
 
         UserAllocationDetail userAllocationDetails1 = new UserAllocationDetail();
         UserAllocationDetailPK userAllocationDetailPK1 = new UserAllocationDetailPK(); 
@@ -78,9 +78,10 @@ public class AllocationManagerServerHandlerTest {
         userAllocationDetailPK1.setUsername("harsha");
         userAllocationDetails1.setId(userAllocationDetailPK1);
 
-        Assert.assertTrue(allocationManagerServerHandler.isAllocationRequestExists(userAllocationDetailPK1.getProjectId(),""));
-        Assert.assertEquals(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails1),"There exist project with the id");
-
-        Assert.assertTrue(allocationManagerServerHandler.deleteAllocationRequest("123",""));
+//        Assert.assertTrue(allocationManagerServerHandler.isAllocationRequestExists(userAllocationDetailPK1.getProjectId(),""));
+//        Assert.assertEquals(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails1),"There exist project with the id");
+//
+//        Assert.assertTrue(allocationManagerServerHandler.deleteAllocationRequest("123",""));
+//   
     }
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/util/Initialize.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/util/Initialize.java
index 05c7240..dcd7aaa 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/util/Initialize.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/util/Initialize.java
@@ -36,261 +36,261 @@ import java.sql.*;
 import java.util.StringTokenizer;
 
 public class Initialize {
-    private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
-    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
-    public  String scriptName ;
-    private NetworkServerControl server;
-    private static final String delimiter = ";";
-    public static final String PERSISTANT_DATA = "Configuration";
-
-    public Initialize(String scriptName) {
-        this.scriptName = scriptName;
-    }
-
-    public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
-        if (suffix.length() > buffer.length()) {
-            return false;
-        }
-        // this loop is done on purpose to avoid memory allocation performance
-        // problems on various JDKs
-        // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
-        // implementation is ok though does allocation/copying
-        // StringBuffer.toString().endsWith() does massive memory
-        // allocation/copying on JDK 1.5
-        // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
-        int endIndex = suffix.length() - 1;
-        int bufferIndex = buffer.length() - 1;
-        while (endIndex >= 0) {
-            if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
-                return false;
-            }
-            bufferIndex--;
-            endIndex--;
-        }
-        return true;
-    }
-
-    private static boolean isServerStarted(NetworkServerControl server, int ntries)
-    {
-        for (int i = 1; i <= ntries; i ++)
-        {
-            try {
-                Thread.sleep(500);
-                server.ping();
-                return true;
-            }
-            catch (Exception e) {
-                if (i == ntries)
-                    return false;
-            }
-        }
-        return false;
-    }
-
-    public void initializeDB() throws SQLException{
-        String jdbcUrl = null;
-        String jdbcUser = null;
-        String jdbcPassword = null;
-        try{
-            jdbcUrl = ServerSettings.getSetting("sharingcatalog.jdbc.url");
-            jdbcUser = ServerSettings.getSetting("sharingcatalog.jdbc.user");
-            jdbcPassword = ServerSettings.getSetting("sharingcatalog.jdbc.password");
-            jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
-        } catch (ApplicationSettingsException e) {
-            logger.error("Unable to read properties", e);
-        }
-        startDerbyInServerMode();
-        if(!isServerStarted(server, 20)){
-           throw new RuntimeException("Derby server cound not started within five seconds...");
-        }
-
-        Connection conn = null;
-        try {
-            Class.forName(JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_DRIVER)).newInstance();
-            conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
-            if (!isDatabaseStructureCreated(PERSISTANT_DATA, conn)) {
-                executeSQLScript(conn);
-                logger.info("New Database created for Registry");
-            } else {
-                logger.debug("Database already created for Registry!");
-            }
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new RuntimeException("Database failure", e);
-        } finally {
-            try {
-                if (conn != null){
-                    if (!conn.getAutoCommit()) {
-                        conn.commit();
-                    }
-                    conn.close();
-                }
-            } catch (SQLException e) {
-                logger.error(e.getMessage(), e);
-            }
-        }
-    }
-
-    public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
-        try {
-            System.out.println("Running a query to test the database tables existence.");
-            // check whether the tables are already created with a query
-            Statement statement = null;
-            try {
-                statement = conn.createStatement();
-                ResultSet rs = statement.executeQuery("select * from " + tableName);
-                if (rs != null) {
-                    rs.close();
-                }
-            } finally {
-                try {
-                    if (statement != null) {
-                        statement.close();
-                    }
-                } catch (SQLException e) {
-                    return false;
-                }
-            }
-        } catch (SQLException e) {
-            return false;
-        }
-
-        return true;
-    }
-
-    private void executeSQLScript(Connection conn) throws Exception {
-        StringBuffer sql = new StringBuffer();
-        BufferedReader reader = null;
-        try{
-
-        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
-        reader = new BufferedReader(new InputStreamReader(inputStream));
-        String line;
-        while ((line = reader.readLine()) != null) {
-            line = line.trim();
-            if (line.startsWith("//")) {
-                continue;
-            }
-            if (line.startsWith("--")) {
-                continue;
-            }
-            StringTokenizer st = new StringTokenizer(line);
-            if (st.hasMoreTokens()) {
-                String token = st.nextToken();
-                if ("REM".equalsIgnoreCase(token)) {
-                    continue;
-                }
-            }
-            sql.append(" ").append(line);
-
-            // SQL defines "--" as a comment to EOL
-            // and in Oracle it may contain a hint
-            // so we cannot just remove it, instead we must end it
-            if (line.indexOf("--") >= 0) {
-                sql.append("\n");
-            }
-            if ((checkStringBufferEndsWith(sql, delimiter))) {
-                executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
-                sql.replace(0, sql.length(), "");
-            }
-        }
-        // Catch any statements not followed by ;
-        if (sql.length() > 0) {
-            executeSQL(sql.toString(), conn);
-        }
-        }catch (IOException e){
-            logger.error("Error occurred while executing SQL script for creating Airavata database", e);
-            throw new Exception("Error occurred while executing SQL script for creating Airavata database", e);
-        }finally {
-            if (reader != null) {
-                reader.close();
-            }
-
-        }
-
-    }
-
-    private static void executeSQL(String sql, Connection conn) throws Exception {
-        // Check and ignore empty statements
-        if ("".equals(sql.trim())) {
-            return;
-        }
-
-        Statement statement = null;
-        try {
-            logger.debug("SQL : " + sql);
-
-            boolean ret;
-            int updateCount = 0, updateCountTotal = 0;
-            statement = conn.createStatement();
-            ret = statement.execute(sql);
-            updateCount = statement.getUpdateCount();
-            do {
-                if (!ret) {
-                    if (updateCount != -1) {
-                        updateCountTotal += updateCount;
-                    }
-                }
-                ret = statement.getMoreResults();
-                if (ret) {
-                    updateCount = statement.getUpdateCount();
-                }
-            } while (ret);
-
-            logger.debug(sql + " : " + updateCountTotal + " rows affected");
-
-            SQLWarning warning = conn.getWarnings();
-            while (warning != null) {
-                logger.warn(warning + " sql warning");
-                warning = warning.getNextWarning();
-            }
-            conn.clearWarnings();
-        } catch (SQLException e) {
-            if (e.getSQLState().equals("X0Y32")) {
-                // eliminating the table already exception for the derby
-                // database
-                logger.info("Table Already Exists", e);
-            } else {
-                throw new Exception("Error occurred while executing : " + sql, e);
-            }
-        } finally {
-            if (statement != null) {
-                try {
-                    statement.close();
-                } catch (SQLException e) {
-                    logger.error("Error occurred while closing result set.", e);
-                }
-            }
-        }
-    }
-
-    private void startDerbyInServerMode() {
-        try {
-            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
-            String jdbcURL = JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_URL);
-            String cleanURI = jdbcURL.substring(5);
-            URI uri = URI.create(cleanURI);
-            server = new NetworkServerControl(InetAddress.getByName(uri.getHost()),
-                    20000,
-                    JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_USER), JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_USER));
-            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
-            server.start(consoleWriter);
-        } catch (IOException e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        } catch (Exception e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        }
-
-    }
-
-    public void stopDerbyServer() throws SQLException{
-        try {
-            server.shutdown();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new SQLException("Error while stopping derby server", e);
-        }
-    }
+//    private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
+//    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
+//    public  String scriptName ;
+//    private NetworkServerControl server;
+//    private static final String delimiter = ";";
+//    public static final String PERSISTANT_DATA = "Configuration";
+//
+//    public Initialize(String scriptName) {
+//        this.scriptName = scriptName;
+//    }
+//
+//    public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
+//        if (suffix.length() > buffer.length()) {
+//            return false;
+//        }
+//        // this loop is done on purpose to avoid memory allocation performance
+//        // problems on various JDKs
+//        // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
+//        // implementation is ok though does allocation/copying
+//        // StringBuffer.toString().endsWith() does massive memory
+//        // allocation/copying on JDK 1.5
+//        // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
+//        int endIndex = suffix.length() - 1;
+//        int bufferIndex = buffer.length() - 1;
+//        while (endIndex >= 0) {
+//            if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
+//                return false;
+//            }
+//            bufferIndex--;
+//            endIndex--;
+//        }
+//        return true;
+//    }
+//
+//    private static boolean isServerStarted(NetworkServerControl server, int ntries)
+//    {
+//        for (int i = 1; i <= ntries; i ++)
+//        {
+//            try {
+//                Thread.sleep(500);
+//                server.ping();
+//                return true;
+//            }
+//            catch (Exception e) {
+//                if (i == ntries)
+//                    return false;
+//            }
+//        }
+//        return false;
+//    }
+//
+//    public void initializeDB() throws SQLException{
+//        String jdbcUrl = null;
+//        String jdbcUser = null;
+//        String jdbcPassword = null;
+//        try{
+//            jdbcUrl = ServerSettings.getSetting("sharingcatalog.jdbc.url");
+//            jdbcUser = ServerSettings.getSetting("sharingcatalog.jdbc.user");
+//            jdbcPassword = ServerSettings.getSetting("sharingcatalog.jdbc.password");
+//            jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
+//        } catch (ApplicationSettingsException e) {
+//            logger.error("Unable to read properties", e);
+//        }
+//        startDerbyInServerMode();
+//        if(!isServerStarted(server, 20)){
+//           throw new RuntimeException("Derby server cound not started within five seconds...");
+//        }
+//
+//        Connection conn = null;
+//        try {
+//            Class.forName(JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_DRIVER)).newInstance();
+//            conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
+//            if (!isDatabaseStructureCreated(PERSISTANT_DATA, conn)) {
+//                executeSQLScript(conn);
+//                logger.info("New Database created for Registry");
+//            } else {
+//                logger.debug("Database already created for Registry!");
+//            }
+//        } catch (Exception e) {
+//            logger.error(e.getMessage(), e);
+//            throw new RuntimeException("Database failure", e);
+//        } finally {
+//            try {
+//                if (conn != null){
+//                    if (!conn.getAutoCommit()) {
+//                        conn.commit();
+//                    }
+//                    conn.close();
+//                }
+//            } catch (SQLException e) {
+//                logger.error(e.getMessage(), e);
+//            }
+//        }
+//    }
+//
+//    public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
+//        try {
+//            System.out.println("Running a query to test the database tables existence.");
+//            // check whether the tables are already created with a query
+//            Statement statement = null;
+//            try {
+//                statement = conn.createStatement();
+//                ResultSet rs = statement.executeQuery("select * from " + tableName);
+//                if (rs != null) {
+//                    rs.close();
+//                }
+//            } finally {
+//                try {
+//                    if (statement != null) {
+//                        statement.close();
+//                    }
+//                } catch (SQLException e) {
+//                    return false;
+//                }
+//            }
+//        } catch (SQLException e) {
+//            return false;
+//        }
+//
+//        return true;
+//    }
+//
+//    private void executeSQLScript(Connection conn) throws Exception {
+//        StringBuffer sql = new StringBuffer();
+//        BufferedReader reader = null;
+//        try{
+//
+//        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
+//        reader = new BufferedReader(new InputStreamReader(inputStream));
+//        String line;
+//        while ((line = reader.readLine()) != null) {
+//            line = line.trim();
+//            if (line.startsWith("//")) {
+//                continue;
+//            }
+//            if (line.startsWith("--")) {
+//                continue;
+//            }
+//            StringTokenizer st = new StringTokenizer(line);
+//            if (st.hasMoreTokens()) {
+//                String token = st.nextToken();
+//                if ("REM".equalsIgnoreCase(token)) {
+//                    continue;
+//                }
+//            }
+//            sql.append(" ").append(line);
+//
+//            // SQL defines "--" as a comment to EOL
+//            // and in Oracle it may contain a hint
+//            // so we cannot just remove it, instead we must end it
+//            if (line.indexOf("--") >= 0) {
+//                sql.append("\n");
+//            }
+//            if ((checkStringBufferEndsWith(sql, delimiter))) {
+//                executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
+//                sql.replace(0, sql.length(), "");
+//            }
+//        }
+//        // Catch any statements not followed by ;
+//        if (sql.length() > 0) {
+//            executeSQL(sql.toString(), conn);
+//        }
+//        }catch (IOException e){
+//            logger.error("Error occurred while executing SQL script for creating Airavata database", e);
+//            throw new Exception("Error occurred while executing SQL script for creating Airavata database", e);
+//        }finally {
+//            if (reader != null) {
+//                reader.close();
+//            }
+//
+//        }
+//
+//    }
+//
+//    private static void executeSQL(String sql, Connection conn) throws Exception {
+//        // Check and ignore empty statements
+//        if ("".equals(sql.trim())) {
+//            return;
+//        }
+//
+//        Statement statement = null;
+//        try {
+//            logger.debug("SQL : " + sql);
+//
+//            boolean ret;
+//            int updateCount = 0, updateCountTotal = 0;
+//            statement = conn.createStatement();
+//            ret = statement.execute(sql);
+//            updateCount = statement.getUpdateCount();
+//            do {
+//                if (!ret) {
+//                    if (updateCount != -1) {
+//                        updateCountTotal += updateCount;
+//                    }
+//                }
+//                ret = statement.getMoreResults();
+//                if (ret) {
+//                    updateCount = statement.getUpdateCount();
+//                }
+//            } while (ret);
+//
+//            logger.debug(sql + " : " + updateCountTotal + " rows affected");
+//
+//            SQLWarning warning = conn.getWarnings();
+//            while (warning != null) {
+//                logger.warn(warning + " sql warning");
+//                warning = warning.getNextWarning();
+//            }
+//            conn.clearWarnings();
+//        } catch (SQLException e) {
+//            if (e.getSQLState().equals("X0Y32")) {
+//                // eliminating the table already exception for the derby
+//                // database
+//                logger.info("Table Already Exists", e);
+//            } else {
+//                throw new Exception("Error occurred while executing : " + sql, e);
+//            }
+//        } finally {
+//            if (statement != null) {
+//                try {
+//                    statement.close();
+//                } catch (SQLException e) {
+//                    logger.error("Error occurred while closing result set.", e);
+//                }
+//            }
+//        }
+//    }
+//
+//    private void startDerbyInServerMode() {
+//        try {
+//            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
+//            String jdbcURL = JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_URL);
+//            String cleanURI = jdbcURL.substring(5);
+//            URI uri = URI.create(cleanURI);
+//            server = new NetworkServerControl(InetAddress.getByName(uri.getHost()),
+//                    20000,
+//                    JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_USER), JPAUtils.readServerProperties(JPAUtils.SHARING_REG_JDBC_USER));
+//            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
+//            server.start(consoleWriter);
+//        } catch (IOException e) {
+//            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+//                    "specified port is available");
+//        } catch (Exception e) {
+//            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+//                    "specified port is available");
+//        }
+//
+//    }
+//
+//    public void stopDerbyServer() throws SQLException{
+//        try {
+//            server.shutdown();
+//        } catch (Exception e) {
+//            logger.error(e.getMessage(), e);
+//            throw new SQLException("Error while stopping derby server", e);
+//        }
+//    }
 }
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java
deleted file mode 100644
index dc6b90c..0000000
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.airavata.allocation.manager.client;
-
-import org.apache.airavata.allocation.manager.service.cpi.AllocationRegistryService;
-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;
-
-public class AllocationManagerAdminClient {
-	public  void adminFunctions(String requestType, String projectId, String status) {
-
-		try {
-			TTransport transport;
-
-			transport = new TSocket("localhost", 9091);
-			transport.open();
-
-			TProtocol protocol = new TBinaryProtocol(transport);
-			AllocationRegistryService.Client client = new AllocationRegistryService.Client(protocol);
-			if (requestType.equals("UPDATE_REQUEST")) {
-				client.updateAllocationRequestStatus(projectId, status);
-			} else if(requestType.equals("GET_REQUEST")){
-                            
-				client.getAllocationRequest(projectId);
-			}	else if(requestType.equals("GET_REQUEST_STATUS")){
-				client.getAllocationRequestStatus(projectId);
-			}
-
-
-			transport.close();
-		} catch (TTransportException e) {
-			e.printStackTrace();
-		} catch (TException x) {
-			x.printStackTrace();
-		}
-	}
-}
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/testClient.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/testClient.java
new file mode 100644
index 0000000..a1ade3f
--- /dev/null
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/testClient.java
@@ -0,0 +1,68 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.apache.airavata.allocation.manager.client;
+
+import java.util.List;
+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 org.apache.airavata.allocation.manager.models.UserAllocationDetail;
+import org.apache.airavata.allocation.manager.models.UserAllocationDetailPK;
+import org.apache.airavata.allocation.manager.models.UserDetail;
+import org.apache.airavata.allocation.manager.service.cpi.AllocationRegistryService;
+
+
+public class testClient {
+
+    public static void main(String[] args) {
+
+        try {
+            TTransport transport;
+
+            transport = new TSocket("localhost", 9000);
+            transport.open();
+
+            TProtocol protocol = new TBinaryProtocol(transport);
+            AllocationRegistryService.Client client = new AllocationRegistryService.Client(protocol);
+            System.out.println("Started client");
+            //System.out.println(client.isAdmin("admin"));
+            
+            UserAllocationDetailPK obj = new UserAllocationDetailPK();
+            obj.setProjectId("123");
+            obj.setUsername("MAD");
+            UserAllocationDetail reqDetails = new UserAllocationDetail();
+            reqDetails.setId(obj);
+            reqDetails.setRequestedDate(101L);
+            reqDetails.setTitle("Test");
+            reqDetails.setProjectDescription("Test");
+            reqDetails.setTypeOfAllocation("Comm");
+            reqDetails.setStatus("pending");
+            
+            
+            System.out.println(client.createUser("harsha"));
+            
+            //System.out.println(client.createAllocationRequest(reqDetails));
+            
+            //List<UserDetail> lst = client.getAllReviewers();
+          /*  boolean temp= true;
+            temp = client.isAdmin("admin");
+            System.out.println(temp);*/
+            transport.close();
+        } catch (TTransportException e) {
+            e.printStackTrace();
+        } catch (TException x) {
+            x.printStackTrace();
+        }
+        finally
+        {
+            //transport.close();
+        }
+    }
+
+}
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java
deleted file mode 100644
index 6de324d..0000000
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java
+++ /dev/null
@@ -1,793 +0,0 @@
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.allocation.manager.models;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-/**
- * <p>An entity for maintaining various domains</p>
- * <li>domainId : Unique id of the domain</li>
- * <li>name : Name of the domain</li>
- * <li>description: Description of the domain</li>
- * <li>createdTime: Time when the domain was created</li>
- * <li>updatedTime: Time when domain was updated</li>
- * 
- */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
-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");
-
-  private static final org.apache.thrift.protocol.TField DOMAIN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("domainId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)4);
-  private static final org.apache.thrift.protocol.TField UPDATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedTime", org.apache.thrift.protocol.TType.I64, (short)5);
-
-  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new DomainStandardSchemeFactory();
-  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new DomainTupleSchemeFactory();
-
-  public java.lang.String domainId; // optional
-  public java.lang.String name; // optional
-  public java.lang.String description; // optional
-  public long createdTime; // optional
-  public long updatedTime; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    DOMAIN_ID((short)1, "domainId"),
-    NAME((short)2, "name"),
-    DESCRIPTION((short)3, "description"),
-    CREATED_TIME((short)4, "createdTime"),
-    UPDATED_TIME((short)5, "updatedTime");
-
-    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
-
-    static {
-      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // DOMAIN_ID
-          return DOMAIN_ID;
-        case 2: // NAME
-          return NAME;
-        case 3: // DESCRIPTION
-          return DESCRIPTION;
-        case 4: // CREATED_TIME
-          return CREATED_TIME;
-        case 5: // UPDATED_TIME
-          return UPDATED_TIME;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(java.lang.String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final java.lang.String _fieldName;
-
-    _Fields(short thriftId, java.lang.String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public java.lang.String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __CREATEDTIME_ISSET_ID = 0;
-  private static final int __UPDATEDTIME_ISSET_ID = 1;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.DOMAIN_ID,_Fields.NAME,_Fields.DESCRIPTION,_Fields.CREATED_TIME,_Fields.UPDATED_TIME};
-  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.DOMAIN_ID, new org.apache.thrift.meta_data.FieldMetaData("domainId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.UPDATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("updatedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Domain.class, metaDataMap);
-  }
-
-  public Domain() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public Domain(Domain other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetDomainId()) {
-      this.domainId = other.domainId;
-    }
-    if (other.isSetName()) {
-      this.name = other.name;
-    }
-    if (other.isSetDescription()) {
-      this.description = other.description;
-    }
-    this.createdTime = other.createdTime;
-    this.updatedTime = other.updatedTime;
-  }
-
-  public Domain deepCopy() {
-    return new Domain(this);
-  }
-
-  @Override
-  public void clear() {
-    this.domainId = null;
-    this.name = null;
-    this.description = null;
-    setCreatedTimeIsSet(false);
-    this.createdTime = 0;
-    setUpdatedTimeIsSet(false);
-    this.updatedTime = 0;
-  }
-
-  public java.lang.String getDomainId() {
-    return this.domainId;
-  }
-
-  public Domain setDomainId(java.lang.String domainId) {
-    this.domainId = domainId;
-    return this;
-  }
-
-  public void unsetDomainId() {
-    this.domainId = null;
-  }
-
-  /** Returns true if field domainId is set (has been assigned a value) and false otherwise */
-  public boolean isSetDomainId() {
-    return this.domainId != null;
-  }
-
-  public void setDomainIdIsSet(boolean value) {
-    if (!value) {
-      this.domainId = null;
-    }
-  }
-
-  public java.lang.String getName() {
-    return this.name;
-  }
-
-  public Domain setName(java.lang.String name) {
-    this.name = name;
-    return this;
-  }
-
-  public void unsetName() {
-    this.name = null;
-  }
-
-  /** Returns true if field name is set (has been assigned a value) and false otherwise */
-  public boolean isSetName() {
-    return this.name != null;
-  }
-
-  public void setNameIsSet(boolean value) {
-    if (!value) {
-      this.name = null;
-    }
-  }
-
-  public java.lang.String getDescription() {
-    return this.description;
-  }
-
-  public Domain setDescription(java.lang.String description) {
-    this.description = description;
-    return this;
-  }
-
-  public void unsetDescription() {
-    this.description = null;
-  }
-
-  /** Returns true if field description is set (has been assigned a value) and false otherwise */
-  public boolean isSetDescription() {
-    return this.description != null;
-  }
-
-  public void setDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.description = null;
-    }
-  }
-
-  public long getCreatedTime() {
-    return this.createdTime;
-  }
-
-  public Domain setCreatedTime(long createdTime) {
-    this.createdTime = createdTime;
-    setCreatedTimeIsSet(true);
-    return this;
-  }
-
-  public void unsetCreatedTime() {
-    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field createdTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreatedTime() {
-    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  public void setCreatedTimeIsSet(boolean value) {
-    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CREATEDTIME_ISSET_ID, value);
-  }
-
-  public long getUpdatedTime() {
-    return this.updatedTime;
-  }
-
-  public Domain setUpdatedTime(long updatedTime) {
-    this.updatedTime = updatedTime;
-    setUpdatedTimeIsSet(true);
-    return this;
-  }
-
-  public void unsetUpdatedTime() {
-    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field updatedTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetUpdatedTime() {
-    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID);
-  }
-
-  public void setUpdatedTimeIsSet(boolean value) {
-    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID, value);
-  }
-
-  public void setFieldValue(_Fields field, java.lang.Object value) {
-    switch (field) {
-    case DOMAIN_ID:
-      if (value == null) {
-        unsetDomainId();
-      } else {
-        setDomainId((java.lang.String)value);
-      }
-      break;
-
-    case NAME:
-      if (value == null) {
-        unsetName();
-      } else {
-        setName((java.lang.String)value);
-      }
-      break;
-
-    case DESCRIPTION:
-      if (value == null) {
-        unsetDescription();
-      } else {
-        setDescription((java.lang.String)value);
-      }
-      break;
-
-    case CREATED_TIME:
-      if (value == null) {
-        unsetCreatedTime();
-      } else {
-        setCreatedTime((java.lang.Long)value);
-      }
-      break;
-
-    case UPDATED_TIME:
-      if (value == null) {
-        unsetUpdatedTime();
-      } else {
-        setUpdatedTime((java.lang.Long)value);
-      }
-      break;
-
-    }
-  }
-
-  public java.lang.Object getFieldValue(_Fields field) {
-    switch (field) {
-    case DOMAIN_ID:
-      return getDomainId();
-
-    case NAME:
-      return getName();
-
-    case DESCRIPTION:
-      return getDescription();
-
-    case CREATED_TIME:
-      return getCreatedTime();
-
-    case UPDATED_TIME:
-      return getUpdatedTime();
-
-    }
-    throw new java.lang.IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new java.lang.IllegalArgumentException();
-    }
-
-    switch (field) {
-    case DOMAIN_ID:
-      return isSetDomainId();
-    case NAME:
-      return isSetName();
-    case DESCRIPTION:
-      return isSetDescription();
-    case CREATED_TIME:
-      return isSetCreatedTime();
-    case UPDATED_TIME:
-      return isSetUpdatedTime();
-    }
-    throw new java.lang.IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(java.lang.Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof Domain)
-      return this.equals((Domain)that);
-    return false;
-  }
-
-  public boolean equals(Domain that) {
-    if (that == null)
-      return false;
-    if (this == that)
-      return true;
-
-    boolean this_present_domainId = true && this.isSetDomainId();
-    boolean that_present_domainId = true && that.isSetDomainId();
-    if (this_present_domainId || that_present_domainId) {
-      if (!(this_present_domainId && that_present_domainId))
-        return false;
-      if (!this.domainId.equals(that.domainId))
-        return false;
-    }
-
-    boolean this_present_name = true && this.isSetName();
-    boolean that_present_name = true && that.isSetName();
-    if (this_present_name || that_present_name) {
-      if (!(this_present_name && that_present_name))
-        return false;
-      if (!this.name.equals(that.name))
-        return false;
-    }
-
-    boolean this_present_description = true && this.isSetDescription();
-    boolean that_present_description = true && that.isSetDescription();
-    if (this_present_description || that_present_description) {
-      if (!(this_present_description && that_present_description))
-        return false;
-      if (!this.description.equals(that.description))
-        return false;
-    }
-
-    boolean this_present_createdTime = true && this.isSetCreatedTime();
-    boolean that_present_createdTime = true && that.isSetCreatedTime();
-    if (this_present_createdTime || that_present_createdTime) {
-      if (!(this_present_createdTime && that_present_createdTime))
-        return false;
-      if (this.createdTime != that.createdTime)
-        return false;
-    }
-
-    boolean this_present_updatedTime = true && this.isSetUpdatedTime();
-    boolean that_present_updatedTime = true && that.isSetUpdatedTime();
-    if (this_present_updatedTime || that_present_updatedTime) {
-      if (!(this_present_updatedTime && that_present_updatedTime))
-        return false;
-      if (this.updatedTime != that.updatedTime)
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    int hashCode = 1;
-
-    hashCode = hashCode * 8191 + ((isSetDomainId()) ? 131071 : 524287);
-    if (isSetDomainId())
-      hashCode = hashCode * 8191 + domainId.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
-    if (isSetName())
-      hashCode = hashCode * 8191 + name.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetDescription()) ? 131071 : 524287);
-    if (isSetDescription())
-      hashCode = hashCode * 8191 + description.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetCreatedTime()) ? 131071 : 524287);
-    if (isSetCreatedTime())
-      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(createdTime);
-
-    hashCode = hashCode * 8191 + ((isSetUpdatedTime()) ? 131071 : 524287);
-    if (isSetUpdatedTime())
-      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(updatedTime);
-
-    return hashCode;
-  }
-
-  @Override
-  public int compareTo(Domain other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = java.lang.Boolean.valueOf(isSetDomainId()).compareTo(other.isSetDomainId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDomainId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.domainId, other.domainId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = java.lang.Boolean.valueOf(isSetName()).compareTo(other.isSetName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = java.lang.Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = java.lang.Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreatedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = java.lang.Boolean.valueOf(isSetUpdatedTime()).compareTo(other.isSetUpdatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUpdatedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatedTime, other.updatedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    scheme(iprot).read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    scheme(oprot).write(oprot, this);
-  }
-
-  @Override
-  public java.lang.String toString() {
-    java.lang.StringBuilder sb = new java.lang.StringBuilder("Domain(");
-    boolean first = true;
-
-    if (isSetDomainId()) {
-      sb.append("domainId:");
-      if (this.domainId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.domainId);
-      }
-      first = false;
-    }
-    if (isSetName()) {
-      if (!first) sb.append(", ");
-      sb.append("name:");
-      if (this.name == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.name);
-      }
-      first = false;
-    }
-    if (isSetDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("description:");
-      if (this.description == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.description);
-      }
-      first = false;
-    }
-    if (isSetCreatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("createdTime:");
-      sb.append(this.createdTime);
-      first = false;
-    }
-    if (isSetUpdatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("updatedTime:");
-      sb.append(this.updatedTime);
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class DomainStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public DomainStandardScheme getScheme() {
-      return new DomainStandardScheme();
-    }
-  }
-
-  private static class DomainStandardScheme extends org.apache.thrift.scheme.StandardScheme<Domain> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, Domain struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // DOMAIN_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.domainId = iprot.readString();
-              struct.setDomainIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.name = iprot.readString();
-              struct.setNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.description = iprot.readString();
-              struct.setDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // CREATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.createdTime = iprot.readI64();
-              struct.setCreatedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // UPDATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.updatedTime = iprot.readI64();
-              struct.setUpdatedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-
-      // check for required fields of primitive type, which can't be checked in the validate method
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, Domain struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.domainId != null) {
-        if (struct.isSetDomainId()) {
-          oprot.writeFieldBegin(DOMAIN_ID_FIELD_DESC);
-          oprot.writeString(struct.domainId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.name != null) {
-        if (struct.isSetName()) {
-          oprot.writeFieldBegin(NAME_FIELD_DESC);
-          oprot.writeString(struct.name);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.description != null) {
-        if (struct.isSetDescription()) {
-          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.description);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.createdTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetUpdatedTime()) {
-        oprot.writeFieldBegin(UPDATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.updatedTime);
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class DomainTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public DomainTupleScheme getScheme() {
-      return new DomainTupleScheme();
-    }
-  }
-
-  private static class DomainTupleScheme extends org.apache.thrift.scheme.TupleScheme<Domain> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, Domain struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet optionals = new java.util.BitSet();
-      if (struct.isSetDomainId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetName()) {
-        optionals.set(1);
-      }
-      if (struct.isSetDescription()) {
-        optionals.set(2);
-      }
-      if (struct.isSetCreatedTime()) {
-        optionals.set(3);
-      }
-      if (struct.isSetUpdatedTime()) {
-        optionals.set(4);
-      }
-      oprot.writeBitSet(optionals, 5);
-      if (struct.isSetDomainId()) {
-        oprot.writeString(struct.domainId);
-      }
-      if (struct.isSetName()) {
-        oprot.writeString(struct.name);
-      }
-      if (struct.isSetDescription()) {
-        oprot.writeString(struct.description);
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeI64(struct.createdTime);
-      }
-      if (struct.isSetUpdatedTime()) {
-        oprot.writeI64(struct.updatedTime);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, Domain struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet incoming = iprot.readBitSet(5);
-      if (incoming.get(0)) {
-        struct.domainId = iprot.readString();
-        struct.setDomainIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.name = iprot.readString();
-        struct.setNameIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.description = iprot.readString();
-        struct.setDescriptionIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.createdTime = iprot.readI64();
-        struct.setCreatedTimeIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.updatedTime = iprot.readI64();
-        struct.setUpdatedTimeIsSet(true);
-      }
-    }
-  }
-
-  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
-    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
-  }
-}
-
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
index 0380308..1f5dd62 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
@@ -177,6 +177,13 @@ public class AllocationRegistryService {
      */
     public boolean rejectRequest(java.lang.String projectId, java.lang.String adminId) throws org.apache.thrift.TException;
 
+    /**
+     * <p>API method to create a new user</p>
+     * 
+     * @param userName
+     */
+    public boolean createUser(java.lang.String userName) throws org.apache.thrift.TException;
+
   }
 
   public interface AsyncIface {
@@ -225,6 +232,8 @@ public class AllocationRegistryService {
 
     public void rejectRequest(java.lang.String projectId, java.lang.String adminId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 
+    public void createUser(java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+
   }
 
   public static class Client extends org.apache.thrift.TServiceClient implements Iface {
@@ -762,6 +771,29 @@ public class AllocationRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "rejectRequest failed: unknown result");
     }
 
+    public boolean createUser(java.lang.String userName) throws org.apache.thrift.TException
+    {
+      send_createUser(userName);
+      return recv_createUser();
+    }
+
+    public void send_createUser(java.lang.String userName) throws org.apache.thrift.TException
+    {
+      createUser_args args = new createUser_args();
+      args.setUserName(userName);
+      sendBase("createUser", args);
+    }
+
+    public boolean recv_createUser() throws org.apache.thrift.TException
+    {
+      createUser_result result = new createUser_result();
+      receiveBase(result, "createUser");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createUser failed: unknown result");
+    }
+
   }
   public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
     public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -1520,6 +1552,38 @@ public class AllocationRegistryService {
       }
     }
 
+    public void createUser(java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      createUser_call method_call = new createUser_call(userName, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class createUser_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
+      private java.lang.String userName;
+      public createUser_call(java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userName = userName;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        createUser_args args = new createUser_args();
+        args.setUserName(userName);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.lang.Boolean getResult() throws org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_createUser();
+      }
+    }
+
   }
 
   public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
@@ -1555,6 +1619,7 @@ public class AllocationRegistryService {
       processMap.put("getAllUnassignedReviewersForRequest", new getAllUnassignedReviewersForRequest());
       processMap.put("approveRequest", new approveRequest());
       processMap.put("rejectRequest", new rejectRequest());
+      processMap.put("createUser", new createUser());
       return processMap;
     }
 
@@ -2007,6 +2072,27 @@ public class AllocationRegistryService {
       }
     }
 
+    public static class createUser<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createUser_args> {
+      public createUser() {
+        super("createUser");
+      }
+
+      public createUser_args getEmptyArgsInstance() {
+        return new createUser_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public createUser_result getResult(I iface, createUser_args args) throws org.apache.thrift.TException {
+        createUser_result result = new createUser_result();
+        result.success = iface.createUser(args.userName);
+        result.setSuccessIsSet(true);
+        return result;
+      }
+    }
+
   }
 
   public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
@@ -2042,6 +2128,7 @@ public class AllocationRegistryService {
       processMap.put("getAllUnassignedReviewersForRequest", new getAllUnassignedReviewersForRequest());
       processMap.put("approveRequest", new approveRequest());
       processMap.put("rejectRequest", new rejectRequest());
+      processMap.put("createUser", new createUser());
       return processMap;
     }
 
@@ -3395,6 +3482,68 @@ public class AllocationRegistryService {
       }
     }
 
+    public static class createUser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createUser_args, java.lang.Boolean> {
+      public createUser() {
+        super("createUser");
+      }
+
+      public createUser_args getEmptyArgsInstance() {
+        return new createUser_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            createUser_result result = new createUser_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            createUser_result result = new createUser_result();
+            if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, createUser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.createUser(args.userName,resultHandler);
+      }
+    }
+
   }
 
   public static class createAllocationRequest_args implements org.apache.thrift.TBase<createAllocationRequest_args, createAllocationRequest_args._Fields>, java.io.Serializable, Cloneable, Comparable<createAllocationRequest_args>   {
@@ -20514,4 +20663,719 @@ public class AllocationRegistryService {
     }
   }
 
+  public static class createUser_args implements org.apache.thrift.TBase<createUser_args, createUser_args._Fields>, java.io.Serializable, Cloneable, Comparable<createUser_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createUser_args");
+
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new createUser_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new createUser_argsTupleSchemeFactory();
+
+    public java.lang.String userName; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      USER_NAME((short)1, "userName");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // USER_NAME
+            return USER_NAME;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createUser_args.class, metaDataMap);
+    }
+
+    public createUser_args() {
+    }
+
+    public createUser_args(
+      java.lang.String userName)
+    {
+      this();
+      this.userName = userName;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public createUser_args(createUser_args other) {
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
+    }
+
+    public createUser_args deepCopy() {
+      return new createUser_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.userName = null;
+    }
+
+    public java.lang.String getUserName() {
+      return this.userName;
+    }
+
+    public createUser_args setUserName(java.lang.String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case USER_NAME:
+        return getUserName();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case USER_NAME:
+        return isSetUserName();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof createUser_args)
+        return this.equals((createUser_args)that);
+      return false;
+    }
+
+    public boolean equals(createUser_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
+      if (isSetUserName())
+        hashCode = hashCode * 8191 + userName.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(createUser_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("createUser_args(");
+      boolean first = true;
+
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class createUser_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createUser_argsStandardScheme getScheme() {
+        return new createUser_argsStandardScheme();
+      }
+    }
+
+    private static class createUser_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<createUser_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, createUser_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, createUser_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class createUser_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createUser_argsTupleScheme getScheme() {
+        return new createUser_argsTupleScheme();
+      }
+    }
+
+    private static class createUser_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<createUser_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, createUser_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        oprot.writeString(struct.userName);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, createUser_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class createUser_result implements org.apache.thrift.TBase<createUser_result, createUser_result._Fields>, java.io.Serializable, Cloneable, Comparable<createUser_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createUser_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new createUser_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new createUser_resultTupleSchemeFactory();
+
+    public boolean success; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createUser_result.class, metaDataMap);
+    }
+
+    public createUser_result() {
+    }
+
+    public createUser_result(
+      boolean success)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public createUser_result(createUser_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+    }
+
+    public createUser_result deepCopy() {
+      return new createUser_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
+    }
+
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public createUser_result setSuccess(boolean success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.lang.Boolean)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return isSuccess();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof createUser_result)
+        return this.equals((createUser_result)that);
+      return false;
+    }
+
+    public boolean equals(createUser_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(createUser_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("createUser_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class createUser_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createUser_resultStandardScheme getScheme() {
+        return new createUser_resultStandardScheme();
+      }
+    }
+
+    private static class createUser_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<createUser_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, createUser_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, createUser_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeBool(struct.success);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class createUser_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createUser_resultTupleScheme getScheme() {
+        return new createUser_resultTupleScheme();
+      }
+    }
+
+    private static class createUser_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<createUser_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, createUser_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetSuccess()) {
+          oprot.writeBool(struct.success);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, createUser_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.success = iprot.readBool();
+          struct.setSuccessIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
 }
diff --git a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
index 01b8fc6..0472e65 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
@@ -14,6 +14,7 @@
 <li><a href="#Fn_AllocationRegistryService_approveRequest">approveRequest</a></li>
 <li><a href="#Fn_AllocationRegistryService_assignReviewers">assignReviewers</a></li>
 <li><a href="#Fn_AllocationRegistryService_createAllocationRequest">createAllocationRequest</a></li>
+<li><a href="#Fn_AllocationRegistryService_createUser">createUser</a></li>
 <li><a href="#Fn_AllocationRegistryService_deleteAllocationRequest">deleteAllocationRequest</a></li>
 <li><a href="#Fn_AllocationRegistryService_getAllRequestsForAdmin">getAllRequestsForAdmin</a></li>
 <li><a href="#Fn_AllocationRegistryService_getAllRequestsForReviewers">getAllRequestsForReviewers</a></li>
@@ -119,4 +120,7 @@
 <pre><code>bool</code> rejectRequest(<code>string</code> projectId,
                    <code>string</code> adminId)
 </pre><p>API method to reject a request</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_createUser">Function: AllocationRegistryService.createUser</h4>
+<pre><code>bool</code> createUser(<code>string</code> userName)
+</pre><p>API method to create a new user</p>
 <br/></div></div></body></html>
diff --git a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
index e75cb8e..d072670 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
@@ -15,7 +15,6 @@
 <tr>
 <td>allocation_manager_models</td><td></td>
 <td><a href="#Struct_AllocationManagerException">AllocationManagerException</a><br/>
-<a href="#Struct_Domain">Domain</a><br/>
 <a href="#Struct_ProjectReviewer">ProjectReviewer</a><br/>
 <a href="#Struct_ProjectReviewerPK">ProjectReviewerPK</a><br/>
 <a href="#Struct_UserAllocationDetail">UserAllocationDetail</a><br/>
@@ -103,20 +102,6 @@
 <li>Password: Password of the user</li>
 <li>userType: Type of the user</li>
 
-<br/></div><div class="definition"><h3 id="Struct_Domain">Struct: Domain</h3>
-<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
-<tr><td>1</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-<tr><td>2</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-<tr><td>3</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-<tr><td>4</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
-<tr><td>5</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><p>An entity for maintaining various domains</p>
-<li>domainId : Unique id of the domain</li>
-<li>name : Name of the domain</li>
-<li>description: Description of the domain</li>
-<li>createdTime: Time when the domain was created</li>
-<li>updatedTime: Time when domain was updated</li>
-
 <br/></div><div class="definition"><h3 id="Struct_AllocationManagerException">Exception: AllocationManagerException</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>message</td><td><code>string</code></td><td></td><td>required</td><td></td></tr>
diff --git a/allocation-manager/allocation-manager-docs/api-docs/index.html b/allocation-manager/allocation-manager-docs/api-docs/index.html
index 95349ec..391c8e9 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/index.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/index.html
@@ -10,6 +10,7 @@
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_approveRequest">approveRequest</a></li>
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_assignReviewers">assignReviewers</a></li>
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_createAllocationRequest">createAllocationRequest</a></li>
+<li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_createUser">createUser</a></li>
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_deleteAllocationRequest">deleteAllocationRequest</a></li>
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_getAllRequestsForAdmin">getAllRequestsForAdmin</a></li>
 <li><a href="allocation_manager_cpi.html#Fn_AllocationRegistryService_getAllRequestsForReviewers">getAllRequestsForReviewers</a></li>
@@ -36,7 +37,6 @@
 </tr><tr>
 <td>allocation_manager_models</td><td></td>
 <td><a href="allocation_manager_models.html#Struct_AllocationManagerException">AllocationManagerException</a><br/>
-<a href="allocation_manager_models.html#Struct_Domain">Domain</a><br/>
 <a href="allocation_manager_models.html#Struct_ProjectReviewer">ProjectReviewer</a><br/>
 <a href="allocation_manager_models.html#Struct_ProjectReviewerPK">ProjectReviewerPK</a><br/>
 <a href="allocation_manager_models.html#Struct_UserAllocationDetail">UserAllocationDetail</a><br/>
diff --git a/allocation-manager/thrift_models/allocation_manager_cpi.thrift b/allocation-manager/thrift_models/allocation_manager_cpi.thrift
index 3ae4145..859f168 100755
--- a/allocation-manager/thrift_models/allocation_manager_cpi.thrift
+++ b/allocation-manager/thrift_models/allocation_manager_cpi.thrift
@@ -111,4 +111,9 @@ service AllocationRegistryService{
         <p>API method to reject a request</p>
         */
         bool rejectRequest(1:required string projectId, 2:required string adminId)
+
+        /**
+        <p>API method to create a new user</p>
+        */
+        bool createUser(1:required string userName)
 }
diff --git a/allocation-manager/thrift_models/allocation_manager_models.thrift b/allocation-manager/thrift_models/allocation_manager_models.thrift
index 3a6c98a..2a27890 100644
--- a/allocation-manager/thrift_models/allocation_manager_models.thrift
+++ b/allocation-manager/thrift_models/allocation_manager_models.thrift
@@ -87,22 +87,6 @@ struct UserDetail{
 }
 
 /**
-* <p>An entity for maintaining various domains</p>
-* <li>domainId : Unique id of the domain</li>
-* <li>name : Name of the domain</li>
-* <li>description: Description of the domain</li>
-* <li>createdTime: Time when the domain was created</li>
-* <li>updatedTime: Time when domain was updated</li>
-**/
-struct Domain{
-	1: optional string domainId,
- 	2: optional string name,
- 	3: optional string description,
- 	4: optional i64 createdTime,
- 	5: optional i64 updatedTime
-}
-
-/**
 * <p>Exception model used in the allocation manager service</p>
 **/
 exception AllocationManagerException {

-- 
To stop receiving notification emails like this one, please contact
['"commits@airavata.apache.org" <commits@airavata.apache.org>'].

Mime
View raw message