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/11/09 22:37:55 UTC
svn commit: r1407655 -
/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java
Author: chathuri
Date: Fri Nov 9 21:37:55 2012
New Revision: 1407655
URL: http://svn.apache.org/viewvc?rev=1407655&view=rev
Log:
adding Project Registry client methods
Added:
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java
Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java?rev=1407655&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/client/ProjectResourceClient.java Fri Nov 9 21:37:55 2012
@@ -0,0 +1,182 @@
+/*
+ *
+ * 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.services.registry.rest.client;
+
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.ClientConfig;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+import com.sun.jersey.api.json.JSONConfiguration;
+import com.sun.jersey.core.util.MultivaluedMapImpl;
+import org.apache.airavata.registry.api.WorkspaceProject;
+import org.apache.airavata.services.registry.rest.resourcemappings.WorkspaceProjectList;
+import org.apache.airavata.services.registry.rest.utils.ResourcePathConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriBuilder;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ProjectResourceClient {
+ private WebResource webResource;
+ private final static Logger logger = LoggerFactory.getLogger(ProjectResourceClient.class);
+
+ private URI getBaseURI() {
+ logger.info("Creating Base URI");
+ return UriBuilder.fromUri("http://localhost:9080/airavata-services/").build();
+ }
+
+ private WebResource getProjectRegistryBaseResource (){
+ ClientConfig config = new DefaultClientConfig();
+ config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
+ Boolean.TRUE);
+ Client client = Client.create(config);
+ WebResource baseWebResource = client.resource(getBaseURI());
+ webResource = baseWebResource.path(ResourcePathConstants.ProjectResourcePathConstants.REGISTRY_API_PROJECTREGISTRY);
+ return webResource;
+ }
+
+ public boolean isWorkspaceProjectExists(String projectName){
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.PROJECT_EXIST);
+ MultivaluedMap queryParams = new MultivaluedMapImpl();
+ queryParams.add("projectName", projectName);
+ ClientResponse response = webResource.queryParams(queryParams).get(ClientResponse.class);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ } else {
+ return true;
+ }
+ }
+
+ public boolean isWorkspaceProjectExists(String projectName, boolean createIfNotExists){
+ String createStatus = "false";
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.PROJECT_EXIST);
+ if (createIfNotExists){
+ createStatus = "true";
+ }
+ MultivaluedMap formParams = new MultivaluedMapImpl();
+ formParams.add("projectName", projectName );
+ formParams.add("createIfNotExists", createStatus );
+
+ ClientResponse response = webResource.type(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }else {
+ return true;
+ }
+ }
+
+ public void addWorkspaceProject(String projectName){
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.ADD_PROJECT);
+ MultivaluedMap formParams = new MultivaluedMapImpl();
+ formParams.add("projectName", projectName );
+
+ ClientResponse response = webResource.type(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }
+ }
+
+ public void updateWorkspaceProject(String projectName){
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.UPDATE_PROJECT);
+ MultivaluedMap formParams = new MultivaluedMapImpl();
+ formParams.add("projectName", projectName );
+
+ ClientResponse response = webResource.type(MediaType.TEXT_PLAIN).post(ClientResponse.class, formParams);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }
+ }
+
+ public void deleteWorkspaceProject(String projectName){
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.DELETE_PROJECT);
+ MultivaluedMap queryParams = new MultivaluedMapImpl();
+ queryParams.add("projectName", projectName);
+ ClientResponse response = webResource.queryParams(queryParams).delete(ClientResponse.class);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }
+ }
+
+ public WorkspaceProject getWorkspaceProject(String projectName) {
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.GET_PROJECT);
+ MultivaluedMap queryParams = new MultivaluedMapImpl();
+ queryParams.add("projectName", projectName);
+ ClientResponse response = webResource.queryParams(queryParams).get(ClientResponse.class);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }
+
+ WorkspaceProject workspaceProject = response.getEntity(WorkspaceProject.class);
+ return workspaceProject;
+ }
+
+ public List<WorkspaceProject> getWorkspaceProjects(){
+ webResource = getProjectRegistryBaseResource().path(ResourcePathConstants.ProjectResourcePathConstants.GET_PROJECTS);
+ ClientResponse response = webResource.get(ClientResponse.class);
+ int status = response.getStatus();
+
+ if (status != 200) {
+ logger.error("Failed : HTTP error code : " + status);
+ throw new RuntimeException("Failed : HTTP error code : "
+ + status);
+ }
+
+ WorkspaceProjectList workspaceProjectList = response.getEntity(WorkspaceProjectList.class);
+ WorkspaceProject[] workspaceProjects = workspaceProjectList.getWorkspaceProjects();
+ List<WorkspaceProject> workspaceProjectsList = new ArrayList<WorkspaceProject>();
+ for (WorkspaceProject workspaceProject : workspaceProjects){
+ workspaceProjectsList.add(workspaceProject);
+ }
+ return workspaceProjectsList;
+ }
+
+}