You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2012/12/03 20:37:18 UTC

svn commit: r1416644 [5/5] - in /airavata/trunk/modules: airavata-client/src/main/java/org/apache/airavata/client/ rest/client/src/main/java/org/apache/airavata/rest/client/ rest/client/src/main/java/org/apache/airavata/rest/utils/

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/PublishedWorkflowResourceClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/PublishedWorkflowResourceClient.java?rev=1416644&r1=1416643&r2=1416644&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/PublishedWorkflowResourceClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/PublishedWorkflowResourceClient.java Mon Dec  3 19:37:16 2012
@@ -39,6 +39,7 @@ import org.apache.airavata.rest.utils.Cl
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.core.Cookie;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriBuilder;
@@ -54,8 +55,12 @@ public class PublishedWorkflowResourceCl
     private String userName;
     private PasswordCallback callback;
     private String baseURI;
+    private Cookie cookie;
+    private WebResource.Builder builder;
 
-    public PublishedWorkflowResourceClient(String userName, String serviceURI, PasswordCallback callback) {
+    public PublishedWorkflowResourceClient(String userName,
+                                           String serviceURI,
+                                           PasswordCallback callback) {
         this.userName = userName;
         this.callback = callback;
         this.baseURI = serviceURI;
@@ -72,15 +77,18 @@ public class PublishedWorkflowResourceCl
                 Boolean.TRUE);
         Client client = Client.create(config);
         WebResource baseWebResource = client.resource(getBaseURI());
-        webResource = baseWebResource.path(ResourcePathConstants.PublishedWFConstants.REGISTRY_API_PUBLISHWFREGISTRY);
+        webResource = baseWebResource.path(
+                ResourcePathConstants.PublishedWFConstants.REGISTRY_API_PUBLISHWFREGISTRY);
         return webResource;
     }
 
     public boolean isPublishedWorkflowExists(String workflowName) {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.PUBLISHWF_EXIST);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.PUBLISHWF_EXIST);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowname", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.TEXT_PLAIN).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -88,8 +96,16 @@ public class PublishedWorkflowResourceCl
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
 
             String exists = response.getEntity(String.class);
@@ -105,20 +121,30 @@ public class PublishedWorkflowResourceCl
     }
 
     public void publishWorkflow(String workflowName, String publishWorkflowName) {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.PUBLISH_WORKFLOW);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.PUBLISH_WORKFLOW);
         MultivaluedMap formParams = new MultivaluedMapImpl();
         formParams.add("workflowName", workflowName);
         formParams.add("publishWorkflowName", publishWorkflowName);
 
-        ClientResponse response = webResource.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+        ClientResponse response = webResource.accept(
+                MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
         int status = response.getStatus();
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
             logger.error(response.getEntity(String.class));
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if (status != ClientConstant.HTTP_OK) {
                 logger.error(response.getEntity(String.class));
@@ -129,19 +155,29 @@ public class PublishedWorkflowResourceCl
     }
 
     public void publishWorkflow(String workflowName) {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.PUBLISH_DEFAULT_WORKFLOW);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.PUBLISH_DEFAULT_WORKFLOW);
         MultivaluedMap formParams = new MultivaluedMapImpl();
         formParams.add("workflowName", workflowName);
 
-        ClientResponse response = webResource.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+        ClientResponse response = webResource.accept(
+                MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
         int status = response.getStatus();
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
             logger.error(response.getEntity(String.class));
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if (status != ClientConstant.HTTP_OK) {
                 logger.error(response.getEntity(String.class));
@@ -153,10 +189,12 @@ public class PublishedWorkflowResourceCl
     }
 
     public String getPublishedWorkflowGraphXML(String workflowName) {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWGRAPH);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWGRAPH);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowName", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -164,8 +202,18 @@ public class PublishedWorkflowResourceCl
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(
+                        MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(
+                        MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if(status == ClientConstant.HTTP_NO_CONTENT){
                 return null;
@@ -182,8 +230,10 @@ public class PublishedWorkflowResourceCl
     }
 
     public List<String> getPublishedWorkflowNames() {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWNAMES);
-        ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWNAMES);
+        ClientResponse response = webResource.accept(
+                MediaType.APPLICATION_JSON).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -191,8 +241,16 @@ public class PublishedWorkflowResourceCl
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if(status == ClientConstant.HTTP_NO_CONTENT){
                 return new ArrayList<String>();
@@ -204,15 +262,18 @@ public class PublishedWorkflowResourceCl
             }
         }
 
-        PublishWorkflowNamesList workflowNamesList = response.getEntity(PublishWorkflowNamesList.class);
+        PublishWorkflowNamesList workflowNamesList =
+                response.getEntity(PublishWorkflowNamesList.class);
         List<String> publishWorkflowNames = workflowNamesList.getPublishWorkflowNames();
         return publishWorkflowNames;
     }
 
     public Map<String, String> getPublishedWorkflows() {
         Map<String, String> publishWFmap = new HashMap<String, String>();
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWS);
-        ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.GET_PUBLISHWORKFLOWS);
+        ClientResponse response = webResource.accept(
+                MediaType.APPLICATION_JSON).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -220,8 +281,16 @@ public class PublishedWorkflowResourceCl
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if(status == ClientConstant.HTTP_NO_CONTENT){
                 return publishWFmap;
@@ -244,10 +313,12 @@ public class PublishedWorkflowResourceCl
     }
 
     public void removePublishedWorkflow(String workflowName) {
-        webResource = getPublishedWFRegistryBaseResource().path(ResourcePathConstants.PublishedWFConstants.REMOVE_PUBLISHWORKFLOW);
+        webResource = getPublishedWFRegistryBaseResource().path(
+                ResourcePathConstants.PublishedWFConstants.REMOVE_PUBLISHWORKFLOW);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowName", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.TEXT_PLAIN).delete(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -255,8 +326,16 @@ public class PublishedWorkflowResourceCl
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
 
             if (status != ClientConstant.HTTP_OK) {

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java?rev=1416644&r1=1416643&r2=1416644&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java Mon Dec  3 19:37:16 2012
@@ -31,7 +31,6 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.exception.worker.*;
 import org.apache.airavata.registry.api.workflow.*;
 
-import javax.ws.rs.core.UriBuilder;
 import java.net.URI;
 import java.util.Date;
 import java.util.List;
@@ -87,37 +86,6 @@ public class RegistryClient extends Aira
         return userWorkflowResourceClient;
     }
 
-    public void setBasicRegistryResourceClient(BasicRegistryResourceClient basicRegistryResourceClient) {
-        this.basicRegistryResourceClient = basicRegistryResourceClient;
-    }
-
-    public void setConfigurationResourceClient(ConfigurationResourceClient configurationResourceClient) {
-        this.configurationResourceClient = configurationResourceClient;
-    }
-
-    public void setDescriptorResourceClient(DescriptorResourceClient descriptorResourceClient) {
-        this.descriptorResourceClient = descriptorResourceClient;
-    }
-
-    public void setExperimentResourceClient(ExperimentResourceClient experimentResourceClient) {
-        this.experimentResourceClient = experimentResourceClient;
-    }
-
-    public void setProjectResourceClient(ProjectResourceClient projectResourceClient) {
-        this.projectResourceClient = projectResourceClient;
-    }
-
-    public void setProvenanceResourceClient(ProvenanceResourceClient provenanceResourceClient) {
-        this.provenanceResourceClient = provenanceResourceClient;
-    }
-
-    public void setPublishedWorkflowResourceClient(PublishedWorkflowResourceClient publishedWorkflowResourceClient) {
-        this.publishedWorkflowResourceClient = publishedWorkflowResourceClient;
-    }
-
-    public void setUserWorkflowResourceClient(UserWorkflowResourceClient userWorkflowResourceClient) {
-        this.userWorkflowResourceClient = userWorkflowResourceClient;
-    }
 
     @Override
     protected void initialize() {
@@ -252,32 +220,32 @@ public class RegistryClient extends Aira
     }
 
 
-    public void addHostDescriptor(HostDescription descriptor) throws DescriptorAlreadyExistsException, RegistryException {
+    public void addHostDescriptor(HostDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().addHostDescriptor(descriptor);
     }
 
 
-    public void updateHostDescriptor(HostDescription descriptor) throws DescriptorDoesNotExistsException, RegistryException {
+    public void updateHostDescriptor(HostDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().updateHostDescriptor(descriptor);
     }
 
 
-    public HostDescription getHostDescriptor(String hostName) throws DescriptorDoesNotExistsException, MalformedDescriptorException, RegistryException {
+    public HostDescription getHostDescriptor(String hostName) throws RegistryException {
         return getDescriptorResourceClient().getHostDescriptor(hostName);
     }
 
 
-    public void removeHostDescriptor(String hostName) throws DescriptorDoesNotExistsException, RegistryException {
+    public void removeHostDescriptor(String hostName) throws RegistryException {
         getDescriptorResourceClient().removeHostDescriptor(hostName);
     }
 
 
-    public List<HostDescription> getHostDescriptors() throws MalformedDescriptorException, RegistryException {
+    public List<HostDescription> getHostDescriptors() throws RegistryException {
         return getDescriptorResourceClient().getHostDescriptors();
     }
 
 
-    public ResourceMetadata getHostDescriptorMetadata(String hostName) throws DescriptorDoesNotExistsException, RegistryException {
+    public ResourceMetadata getHostDescriptorMetadata(String hostName) throws RegistryException {
         return null;
     }
 
@@ -287,87 +255,104 @@ public class RegistryClient extends Aira
     }
 
 
-    public void addServiceDescriptor(ServiceDescription descriptor) throws DescriptorAlreadyExistsException, RegistryException {
+    public void addServiceDescriptor(ServiceDescription descriptor) throws RegistryException {
        getDescriptorResourceClient().addServiceDescriptor(descriptor);
     }
 
 
-    public void updateServiceDescriptor(ServiceDescription descriptor) throws DescriptorDoesNotExistsException, RegistryException {
+    public void updateServiceDescriptor(ServiceDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().updateServiceDescriptor(descriptor);
     }
 
 
-    public ServiceDescription getServiceDescriptor(String serviceName) throws DescriptorDoesNotExistsException, MalformedDescriptorException, RegistryException {
+    public ServiceDescription getServiceDescriptor(String serviceName) throws RegistryException {
         return getDescriptorResourceClient().getServiceDescriptor(serviceName);
     }
 
 
-    public void removeServiceDescriptor(String serviceName) throws DescriptorDoesNotExistsException, RegistryException {
+    public void removeServiceDescriptor(String serviceName) throws RegistryException {
         getDescriptorResourceClient().removeServiceDescriptor(serviceName);
     }
 
 
-    public List<ServiceDescription> getServiceDescriptors() throws MalformedDescriptorException, RegistryException {
+    public List<ServiceDescription> getServiceDescriptors() throws RegistryException {
         return getDescriptorResourceClient().getServiceDescriptors();
     }
 
 
-    public ResourceMetadata getServiceDescriptorMetadata(String serviceName) throws DescriptorDoesNotExistsException, RegistryException {
+    public ResourceMetadata getServiceDescriptorMetadata(String serviceName) throws RegistryException {
         return null;
     }
 
 
-    public boolean isApplicationDescriptorExists(String serviceName, String hostName, String descriptorName) throws RegistryException {
+    public boolean isApplicationDescriptorExists(String serviceName,
+                                                 String hostName,
+                                                 String descriptorName) throws RegistryException {
         return getDescriptorResourceClient().isApplicationDescriptorExists(serviceName, hostName, descriptorName);
     }
 
 
-    public void addApplicationDescriptor(ServiceDescription serviceDescription, HostDescription hostDescriptor, ApplicationDeploymentDescription descriptor) throws DescriptorAlreadyExistsException, RegistryException {
+    public void addApplicationDescriptor(ServiceDescription serviceDescription,
+                                         HostDescription hostDescriptor,
+                                         ApplicationDeploymentDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().addApplicationDescriptor(serviceDescription, hostDescriptor, descriptor);
     }
 
 
-    public void addApplicationDescriptor(String serviceName, String hostName, ApplicationDeploymentDescription descriptor) throws DescriptorAlreadyExistsException, RegistryException {
+    public void addApplicationDescriptor(String serviceName,
+                                         String hostName,
+                                         ApplicationDeploymentDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().addApplicationDescriptor(serviceName, hostName, descriptor);
     }
 
 
-    public void udpateApplicationDescriptor(ServiceDescription serviceDescription, HostDescription hostDescriptor, ApplicationDeploymentDescription descriptor) throws DescriptorDoesNotExistsException, RegistryException {
+    public void udpateApplicationDescriptor(ServiceDescription serviceDescription,
+                                            HostDescription hostDescriptor,
+                                            ApplicationDeploymentDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().udpateApplicationDescriptor(serviceDescription, hostDescriptor, descriptor);
     }
 
 
-    public void updateApplicationDescriptor(String serviceName, String hostName, ApplicationDeploymentDescription descriptor) throws DescriptorDoesNotExistsException, RegistryException {
+    public void updateApplicationDescriptor(String serviceName,
+                                            String hostName,
+                                            ApplicationDeploymentDescription descriptor) throws RegistryException {
         getDescriptorResourceClient().updateApplicationDescriptor(serviceName, hostName, descriptor);
     }
 
 
-    public ApplicationDeploymentDescription getApplicationDescriptor(String serviceName, String hostname, String applicationName) throws DescriptorDoesNotExistsException, MalformedDescriptorException, RegistryException {
+    public ApplicationDeploymentDescription getApplicationDescriptor(String serviceName,
+                                                                     String hostname,
+                                                                     String applicationName) throws RegistryException {
         return getDescriptorResourceClient().getApplicationDescriptor(serviceName, hostname, applicationName);
     }
 
 
-    public ApplicationDeploymentDescription getApplicationDescriptors(String serviceName, String hostname) throws MalformedDescriptorException, RegistryException {
+    public ApplicationDeploymentDescription getApplicationDescriptors(String serviceName,
+                                                                      String hostname) throws RegistryException {
         return getDescriptorResourceClient().getApplicationDescriptors(serviceName, hostname);
     }
 
 
-    public Map<String, ApplicationDeploymentDescription> getApplicationDescriptors(String serviceName) throws MalformedDescriptorException, RegistryException {
+    public Map<String, ApplicationDeploymentDescription> getApplicationDescriptors(String serviceName) throws RegistryException {
         return getDescriptorResourceClient().getApplicationDescriptors(serviceName);
     }
 
 
-    public Map<String[], ApplicationDeploymentDescription> getApplicationDescriptors() throws MalformedDescriptorException, RegistryException {
+    public Map<String[], ApplicationDeploymentDescription> getApplicationDescriptors() throws RegistryException {
         return getDescriptorResourceClient().getApplicationDescriptors();
     }
 
 
-    public void removeApplicationDescriptor(String serviceName, String hostName, String applicationName) throws DescriptorDoesNotExistsException, RegistryException {
+    public void removeApplicationDescriptor(String serviceName,
+                                            String hostName,
+                                            String applicationName) throws RegistryException {
         getDescriptorResourceClient().removeApplicationDescriptor(serviceName, hostName, applicationName);
     }
 
 
-    public ResourceMetadata getApplicationDescriptorMetadata(String serviceName, String hostName, String applicationName) throws DescriptorDoesNotExistsException, RegistryException {
+    public ResourceMetadata getApplicationDescriptorMetadata(String serviceName,
+                                                             String hostName,
+                                                             String applicationName) throws RegistryException {
         return null;
     }
 
@@ -377,27 +362,28 @@ public class RegistryClient extends Aira
     }
 
 
-    public boolean isWorkspaceProjectExists(String projectName, boolean createIfNotExists) throws RegistryException {
+    public boolean isWorkspaceProjectExists(String projectName,
+                                            boolean createIfNotExists) throws RegistryException {
         return getProjectResourceClient().isWorkspaceProjectExists(projectName, createIfNotExists);
     }
 
 
-    public void addWorkspaceProject(WorkspaceProject project) throws WorkspaceProjectAlreadyExistsException, RegistryException {
+    public void addWorkspaceProject(WorkspaceProject project) throws RegistryException {
         getProjectResourceClient().addWorkspaceProject(project);
     }
 
 
-    public void updateWorkspaceProject(WorkspaceProject project) throws WorkspaceProjectDoesNotExistsException, RegistryException {
+    public void updateWorkspaceProject(WorkspaceProject project) throws RegistryException {
         getProjectResourceClient().updateWorkspaceProject(project);
     }
 
 
-    public void deleteWorkspaceProject(String projectName) throws WorkspaceProjectDoesNotExistsException, RegistryException {
+    public void deleteWorkspaceProject(String projectName) throws RegistryException {
         getProjectResourceClient().deleteWorkspaceProject(projectName);
     }
 
 
-    public WorkspaceProject getWorkspaceProject(String projectName) throws WorkspaceProjectDoesNotExistsException, RegistryException {
+    public WorkspaceProject getWorkspaceProject(String projectName) throws RegistryException {
         return getProjectResourceClient().getWorkspaceProject(projectName);
     }
 
@@ -407,7 +393,8 @@ public class RegistryClient extends Aira
     }
 
 
-    public void addExperiment(String projectName, AiravataExperiment experiment) throws WorkspaceProjectDoesNotExistsException, ExperimentDoesNotExistsException, RegistryException {
+    public void addExperiment(String projectName,
+                              AiravataExperiment experiment) throws RegistryException {
         getExperimentResourceClient().addExperiment(projectName, experiment);
     }
 
@@ -432,7 +419,9 @@ public class RegistryClient extends Aira
     }
 
 
-    public List<AiravataExperiment> getExperiments(String projectName, Date from, Date to) throws RegistryException {
+    public List<AiravataExperiment> getExperiments(String projectName,
+                                                   Date from,
+                                                   Date to) throws RegistryException {
         return getExperimentResourceClient().getExperiments(projectName, from, to);
     }
 
@@ -442,12 +431,14 @@ public class RegistryClient extends Aira
     }
 
 
-    public boolean isExperimentExists(String experimentId, boolean createIfNotPresent) throws RegistryException {
+    public boolean isExperimentExists(String experimentId,
+                                      boolean createIfNotPresent) throws RegistryException {
         return getExperimentResourceClient().isExperimentExists(experimentId, createIfNotPresent);
     }
 
 
-    public void updateExperimentExecutionUser(String experimentId, String user) throws RegistryException {
+    public void updateExperimentExecutionUser(String experimentId,
+                                              String user) throws RegistryException {
         getProvenanceResourceClient().updateExperimentExecutionUser(experimentId, user);
     }
 
@@ -467,7 +458,8 @@ public class RegistryClient extends Aira
     }
 
 
-    public void updateExperimentName(String experimentId, String experimentName) throws RegistryException {
+    public void updateExperimentName(String experimentId,
+                                     String experimentName) throws RegistryException {
         getProvenanceResourceClient().updateExperimentName(experimentId, experimentName);
     }
 
@@ -477,7 +469,8 @@ public class RegistryClient extends Aira
     }
 
 
-    public void updateExperimentMetadata(String experimentId, String metadata) throws RegistryException {
+    public void updateExperimentMetadata(String experimentId,
+                                         String metadata) throws RegistryException {
         getProvenanceResourceClient().updateExperimentMetadata(experimentId, metadata);
     }
 
@@ -487,7 +480,8 @@ public class RegistryClient extends Aira
     }
 
 
-    public void setWorkflowInstanceTemplateName(String workflowInstanceId, String templateName) throws RegistryException {
+    public void setWorkflowInstanceTemplateName(String workflowInstanceId,
+                                                String templateName) throws RegistryException {
         getProvenanceResourceClient().setWorkflowInstanceTemplateName(workflowInstanceId, templateName);
     }
 
@@ -502,12 +496,14 @@ public class RegistryClient extends Aira
     }
 
 
-    public boolean isWorkflowInstanceExists(String instanceId, boolean createIfNotPresent) throws RegistryException {
+    public boolean isWorkflowInstanceExists(String instanceId,
+                                            boolean createIfNotPresent) throws RegistryException {
         return getProvenanceResourceClient().isWorkflowInstanceExists(instanceId, createIfNotPresent);
     }
 
 
-    public void updateWorkflowInstanceStatus(String instanceId, WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
+    public void updateWorkflowInstanceStatus(String instanceId,
+                                             WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
         getProvenanceResourceClient().updateWorkflowInstanceStatus(instanceId, status);
     }
 
@@ -532,37 +528,46 @@ public class RegistryClient extends Aira
     }
 
 
-    public List<WorkflowNodeIOData> searchWorkflowInstanceNodeInput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx) throws RegistryException {
+    public List<WorkflowNodeIOData> searchWorkflowInstanceNodeInput(String experimentIdRegEx,
+                                                                    String workflowNameRegEx,
+                                                                    String nodeNameRegEx) throws RegistryException {
         return getProvenanceResourceClient().searchWorkflowInstanceNodeInput(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx);
     }
 
 
-    public List<WorkflowNodeIOData> searchWorkflowInstanceNodeOutput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx) throws RegistryException {
+    public List<WorkflowNodeIOData> searchWorkflowInstanceNodeOutput(String experimentIdRegEx,
+                                                                     String workflowNameRegEx,
+                                                                     String nodeNameRegEx) throws RegistryException {
         return getProvenanceResourceClient().searchWorkflowInstanceNodeOutput(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx);
     }
 
 
-    public List<WorkflowNodeIOData> getWorkflowInstanceNodeInput(String workflowInstanceId, String nodeType) throws RegistryException {
+    public List<WorkflowNodeIOData> getWorkflowInstanceNodeInput(String workflowInstanceId,
+                                                                 String nodeType) throws RegistryException {
         return getProvenanceResourceClient().getWorkflowInstanceNodeInput(workflowInstanceId, nodeType);
     }
 
 
-    public List<WorkflowNodeIOData> getWorkflowInstanceNodeOutput(String workflowInstanceId, String nodeType) throws RegistryException {
+    public List<WorkflowNodeIOData> getWorkflowInstanceNodeOutput(String workflowInstanceId,
+                                                                  String nodeType) throws RegistryException {
         return getProvenanceResourceClient().getWorkflowInstanceNodeOutput(workflowInstanceId, nodeType);
     }
 
 
-    public void saveWorkflowExecutionOutput(String experimentId, String outputNodeName, String output) throws RegistryException {
+    public void saveWorkflowExecutionOutput(String experimentId, String outputNodeName,
+                                            String output) throws RegistryException {
         getProvenanceResourceClient().saveWorkflowExecutionOutput(experimentId, outputNodeName, output);
     }
 
 
-    public void saveWorkflowExecutionOutput(String experimentId, WorkflowIOData data) throws RegistryException {
+    public void saveWorkflowExecutionOutput(String experimentId,
+                                            WorkflowIOData data) throws RegistryException {
         getProvenanceResourceClient().saveWorkflowExecutionOutput(experimentId, data);
     }
 
 
-    public WorkflowIOData getWorkflowExecutionOutput(String experimentId, String outputNodeName) throws RegistryException {
+    public WorkflowIOData getWorkflowExecutionOutput(String experimentId,
+                                                     String outputNodeName) throws RegistryException {
         return getProvenanceResourceClient().getWorkflowExecutionOutput(experimentId, outputNodeName);
     }
 
@@ -592,7 +597,8 @@ public class RegistryClient extends Aira
     }
 
 
-    public List<ExperimentData> searchExperiments(String user, String experimentNameRegex) throws RegistryException {
+    public List<ExperimentData> searchExperiments(String user,
+                                                  String experimentNameRegex) throws RegistryException {
         return getProvenanceResourceClient().searchExperiments(user, experimentNameRegex);
     }
 
@@ -617,12 +623,14 @@ public class RegistryClient extends Aira
     }
 
 
-    public void updateWorkflowNodeStatus(String workflowInstanceId, String nodeId, WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
+    public void updateWorkflowNodeStatus(String workflowInstanceId, String nodeId,
+                                         WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
         getProvenanceResourceClient().updateWorkflowNodeStatus(workflowInstanceId, nodeId, status);
     }
 
 
-    public void updateWorkflowNodeStatus(WorkflowInstanceNode workflowNode, WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
+    public void updateWorkflowNodeStatus(WorkflowInstanceNode workflowNode,
+                                         WorkflowInstanceStatus.ExecutionStatus status) throws RegistryException {
         getProvenanceResourceClient().updateWorkflowNodeStatus(workflowNode, status);
     }
 
@@ -652,32 +660,38 @@ public class RegistryClient extends Aira
     }
 
 
-    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId, String nodeId) throws RegistryException {
+    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId,
+                                                 String nodeId) throws RegistryException {
         return getProvenanceResourceClient().isWorkflowInstanceNodePresent(workflowInstanceId, nodeId);
     }
 
 
-    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId, String nodeId, boolean createIfNotPresent) throws RegistryException {
+    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId, String nodeId,
+                                                 boolean createIfNotPresent) throws RegistryException {
         return getProvenanceResourceClient().isWorkflowInstanceNodePresent(workflowInstanceId, nodeId, createIfNotPresent);
     }
 
 
-    public WorkflowInstanceNodeData getWorkflowInstanceNodeData(String workflowInstanceId, String nodeId) throws RegistryException {
+    public WorkflowInstanceNodeData getWorkflowInstanceNodeData(String workflowInstanceId,
+                                                                String nodeId) throws RegistryException {
         return getProvenanceResourceClient().getWorkflowInstanceNodeData(workflowInstanceId, nodeId);
     }
 
 
-    public void addWorkflowInstance(String experimentId, String workflowInstanceId, String templateName) throws RegistryException {
+    public void addWorkflowInstance(String experimentId, String workflowInstanceId,
+                                    String templateName) throws RegistryException {
         getProvenanceResourceClient().addWorkflowInstance(experimentId, workflowInstanceId, templateName);
     }
 
 
-    public void updateWorkflowNodeType(WorkflowInstanceNode node, WorkflowNodeType type) throws RegistryException {
+    public void updateWorkflowNodeType(WorkflowInstanceNode node,
+                                       WorkflowNodeType type) throws RegistryException {
         getProvenanceResourceClient().updateWorkflowNodeType(node, type);
     }
 
 
-    public void addWorkflowInstanceNode(String workflowInstance, String nodeId) throws RegistryException {
+    public void addWorkflowInstanceNode(String workflowInstance,
+                                        String nodeId) throws RegistryException {
         getProvenanceResourceClient().addWorkflowInstanceNode(workflowInstance, nodeId);
     }
 
@@ -687,17 +701,18 @@ public class RegistryClient extends Aira
     }
 
 
-    public void publishWorkflow(String workflowName, String publishWorkflowName) throws PublishedWorkflowAlreadyExistsException, UserWorkflowDoesNotExistsException, RegistryException {
+    public void publishWorkflow(String workflowName,
+                                String publishWorkflowName) throws RegistryException {
         getPublishedWorkflowResourceClient().publishWorkflow(workflowName, publishWorkflowName);
     }
 
 
-    public void publishWorkflow(String workflowName) throws PublishedWorkflowAlreadyExistsException, UserWorkflowDoesNotExistsException, RegistryException {
+    public void publishWorkflow(String workflowName) throws RegistryException {
         getPublishedWorkflowResourceClient().publishWorkflow(workflowName);
     }
 
 
-    public String getPublishedWorkflowGraphXML(String workflowName) throws PublishedWorkflowDoesNotExistsException, RegistryException {
+    public String getPublishedWorkflowGraphXML(String workflowName) throws RegistryException {
         return getPublishedWorkflowResourceClient().getPublishedWorkflowGraphXML(workflowName);
     }
 
@@ -717,7 +732,7 @@ public class RegistryClient extends Aira
     }
 
 
-    public void removePublishedWorkflow(String workflowName) throws PublishedWorkflowDoesNotExistsException, RegistryException {
+    public void removePublishedWorkflow(String workflowName) throws RegistryException {
         getUserWorkflowResourceClient().removeWorkflow(workflowName);
     }
 
@@ -727,17 +742,17 @@ public class RegistryClient extends Aira
     }
 
 
-    public void addWorkflow(String workflowName, String workflowGraphXml) throws UserWorkflowAlreadyExistsException, RegistryException {
+    public void addWorkflow(String workflowName, String workflowGraphXml) throws RegistryException {
         getUserWorkflowResourceClient().addWorkflow(workflowName, workflowGraphXml);
     }
 
 
-    public void updateWorkflow(String workflowName, String workflowGraphXml) throws UserWorkflowDoesNotExistsException, RegistryException {
+    public void updateWorkflow(String workflowName, String workflowGraphXml) throws RegistryException {
         getUserWorkflowResourceClient().updateWorkflow(workflowName, workflowGraphXml);
     }
 
 
-    public String getWorkflowGraphXML(String workflowName) throws UserWorkflowDoesNotExistsException, RegistryException {
+    public String getWorkflowGraphXML(String workflowName) throws RegistryException {
         return getUserWorkflowResourceClient().getWorkflowGraphXML(workflowName);
     }
 
@@ -752,7 +767,7 @@ public class RegistryClient extends Aira
     }
 
 
-    public void removeWorkflow(String workflowName) throws UserWorkflowDoesNotExistsException, RegistryException {
+    public void removeWorkflow(String workflowName) throws RegistryException {
         getUserWorkflowResourceClient().removeWorkflow(workflowName);
     }
 

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/UserWorkflowResourceClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/UserWorkflowResourceClient.java?rev=1416644&r1=1416643&r2=1416644&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/UserWorkflowResourceClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/UserWorkflowResourceClient.java Mon Dec  3 19:37:16 2012
@@ -38,6 +38,7 @@ import org.apache.airavata.rest.utils.Cl
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.core.Cookie;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriBuilder;
@@ -52,8 +53,12 @@ public class UserWorkflowResourceClient 
     private String userName;
     private PasswordCallback callback;
     private String baseURI;
+    private Cookie cookie;
+    private WebResource.Builder builder;
 
-    public UserWorkflowResourceClient(String userName, String serviceURI, PasswordCallback callback) {
+    public UserWorkflowResourceClient(String userName,
+                                      String serviceURI,
+                                      PasswordCallback callback) {
         this.userName = userName;
         this.callback = callback;
         this.baseURI = serviceURI;
@@ -70,15 +75,18 @@ public class UserWorkflowResourceClient 
                 Boolean.TRUE);
         Client client = Client.create(config);
         WebResource baseWebResource = client.resource(getBaseURI());
-        webResource = baseWebResource.path(ResourcePathConstants.UserWFConstants.REGISTRY_API_USERWFREGISTRY);
+        webResource = baseWebResource.path(
+                ResourcePathConstants.UserWFConstants.REGISTRY_API_USERWFREGISTRY);
         return webResource;
     }
 
     public boolean isWorkflowExists(String workflowName) {
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.WORKFLOW_EXIST);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.WORKFLOW_EXIST);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowname", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.TEXT_PLAIN).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -86,8 +94,16 @@ public class UserWorkflowResourceClient 
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
 
             String exists = response.getEntity(String.class);
@@ -103,20 +119,33 @@ public class UserWorkflowResourceClient 
     }
 
     public void addWorkflow(String workflowName, String workflowGraphXml) {
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.ADD_WORKFLOW);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.ADD_WORKFLOW);
         MultivaluedMap formParams = new MultivaluedMapImpl();
         formParams.add("workflowName", workflowName);
         formParams.add("workflowGraphXml", workflowGraphXml);
 
-        ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED).accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+        ClientResponse response = webResource.type(
+                MediaType.APPLICATION_FORM_URLENCODED).accept(
+                MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
         int status = response.getStatus();
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
             logger.error(response.getEntity(String.class));
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.type(MediaType.APPLICATION_FORM_URLENCODED).accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.type(MediaType.APPLICATION_FORM_URLENCODED).accept(
+                        MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.type(MediaType.APPLICATION_FORM_URLENCODED).accept(
+                        MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if (status != ClientConstant.HTTP_OK) {
                 logger.error(response.getEntity(String.class));
@@ -127,20 +156,32 @@ public class UserWorkflowResourceClient 
     }
 
     public void updateWorkflow(String workflowName, String workflowGraphXml) {
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.UPDATE_WORKFLOW);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.UPDATE_WORKFLOW);
         MultivaluedMap formParams = new MultivaluedMapImpl();
         formParams.add("workflowName", workflowName);
         formParams.add("workflowGraphXml", workflowGraphXml);
 
-        ClientResponse response = webResource.accept(MediaType.TEXT_PLAIN).type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formParams);
+        ClientResponse response = webResource.accept(MediaType.TEXT_PLAIN).type(
+                MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formParams);
         int status = response.getStatus();
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
             logger.error(response.getEntity(String.class));
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formParams);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).type(
+                        MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formParams);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).type(
+                        MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formParams);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if (status != ClientConstant.HTTP_OK) {
                 logger.error(response.getEntity(String.class));
@@ -151,10 +192,12 @@ public class UserWorkflowResourceClient 
     }
 
     public String getWorkflowGraphXML(String workflowName) {
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.GET_WORKFLOWGRAPH);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.GET_WORKFLOWGRAPH);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowName", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -162,8 +205,18 @@ public class UserWorkflowResourceClient 
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(
+                        MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(
+                        MediaType.APPLICATION_FORM_URLENCODED).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if(status == ClientConstant.HTTP_NO_CONTENT){
                 return null;
@@ -181,8 +234,10 @@ public class UserWorkflowResourceClient 
 
     public Map<String, String> getWorkflows() {
         Map<String, String> userWFMap = new HashMap<String, String>();
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.GET_WORKFLOWS);
-        ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.GET_WORKFLOWS);
+        ClientResponse response = webResource.accept(
+                MediaType.APPLICATION_JSON).get(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -190,8 +245,16 @@ public class UserWorkflowResourceClient 
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, null, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, null, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
             if(status == ClientConstant.HTTP_NO_CONTENT){
                 return userWFMap;
@@ -214,10 +277,12 @@ public class UserWorkflowResourceClient 
     }
 
     public void removeWorkflow(String workflowName) {
-        webResource = getUserWFRegistryBaseResource().path(ResourcePathConstants.UserWFConstants.REMOVE_WORKFLOW);
+        webResource = getUserWFRegistryBaseResource().path(
+                ResourcePathConstants.UserWFConstants.REMOVE_WORKFLOW);
         MultivaluedMap queryParams = new MultivaluedMapImpl();
         queryParams.add("workflowName", workflowName);
-        ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+        ClientResponse response = webResource.queryParams(queryParams).accept(
+                MediaType.TEXT_PLAIN).delete(ClientResponse.class);
         int status = response.getStatus();
 
         if (status != ClientConstant.HTTP_OK && status != ClientConstant.HTTP_UNAUTHORIZED) {
@@ -225,8 +290,16 @@ public class UserWorkflowResourceClient 
             throw new RuntimeException("Failed : HTTP error code : "
                     + status);
         } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
-            WebResource.Builder builder = BasicAuthHeaderUtil.getBuilder(webResource, queryParams, userName, callback.getPassword(userName));
-            response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+            if (cookie != null){
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), cookie);
+                response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+            } else {
+                builder = BasicAuthHeaderUtil.getBuilder(
+                        webResource, queryParams, userName, callback.getPassword(userName), null);
+                response = builder.accept(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
+                cookie = response.getCookies().get(0).toCookie();
+            }
             status = response.getStatus();
 
             if (status != ClientConstant.HTTP_OK) {

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/utils/BasicAuthHeaderUtil.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/utils/BasicAuthHeaderUtil.java?rev=1416644&r1=1416643&r2=1416644&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/utils/BasicAuthHeaderUtil.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/utils/BasicAuthHeaderUtil.java Mon Dec  3 19:37:16 2012
@@ -25,6 +25,7 @@ import com.sun.jersey.api.client.WebReso
 import org.apache.airavata.registry.api.PasswordCallback;
 import org.apache.commons.codec.binary.Base64;
 
+import javax.ws.rs.core.Cookie;
 import javax.ws.rs.core.MultivaluedMap;
 
 public class BasicAuthHeaderUtil {
@@ -43,10 +44,20 @@ public class BasicAuthHeaderUtil {
         return "Basic " + encodedString;
     }
 
-    public static WebResource.Builder getBuilder(WebResource webResource, MultivaluedMap queryParams, String userName, String password) {
+    public static WebResource.Builder getBuilder(WebResource webResource,
+                                                 MultivaluedMap queryParams,
+                                                 String userName,
+                                                 String password,
+                                                 Cookie cookie) {
         if (queryParams != null){
             webResource = webResource.queryParams(queryParams);
         }
-        return webResource.header("Authorization", BasicAuthHeaderUtil.getBasicAuthHeader(userName, password));
+        WebResource.Builder builder = webResource.header("Authorization",
+                BasicAuthHeaderUtil.getBasicAuthHeader(userName, password));
+        if (cookie != null){
+            builder.cookie(cookie);
+        }
+
+        return builder;
     }
 }