blob: 37ef42493ab27fca562a55ab6c457c0cca3bd5dc [file] [log] [blame]
package org.apache.airavata.services.registry.rest.resources;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.airavata.registry.api.AiravataRegistry2;
import org.apache.airavata.services.registry.rest.resourcemappings.ApplicationDescriptor;
import org.apache.airavata.services.registry.rest.resourcemappings.ServiceDescriptor;
import org.apache.airavata.services.registry.rest.resourcemappings.ServiceParameters;
@Path("/api/application")
public class ApplicationRegistration {
protected static AiravataRegistry2 airavataRegistry;
@Context
ServletContext context;
public ApplicationRegistration() {
// airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
}
// Sample JSON is : {"applicationName":"Testing","cpuCount":"12","maxMemory":"0","maxWallTime":"0","minMemory":"0","nodeCount":"0","processorsPerNode":"0"}
@POST
@Path("save")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response addServiceDescriptor(ApplicationDescriptor application){
try{
application.getName();
Response.ResponseBuilder builder = Response.status(Response.Status.ACCEPTED);
return builder.build();
} catch (Exception e) {
throw new WebApplicationException(e,Response.Status.INTERNAL_SERVER_ERROR);
}
}
@GET
@Path("get")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public ApplicationDescriptor getServiceDescriptor(String applicationName){
try{
ApplicationDescriptor application = new ApplicationDescriptor();
application.setName(applicationName);
ServiceDescriptor descriptor = new ServiceDescriptor();
ServiceParameters parameters = new ServiceParameters();
parameters.setName("myinput");
parameters.setDataType("input");
parameters.setDescription("my input");
parameters.setType("String");
ServiceParameters parameters1 = new ServiceParameters();
parameters1.setName("myinput");
parameters1.setDataType("input");
parameters1.setDescription("my input");
parameters1.setType("String");
List<ServiceParameters> inputlist = new ArrayList<ServiceParameters>();
inputlist.add(parameters);
inputlist.add(parameters1);
ServiceParameters parameters2 = new ServiceParameters();
parameters2.setName("myoutput");
parameters2.setDataType("output");
parameters2.setDescription("my output");
parameters2.setType("String");
ServiceParameters parameters3 = new ServiceParameters();
parameters3.setName("myoutput");
parameters3.setDataType("output");
parameters3.setDescription("my output");
parameters3.setType("String");
List<ServiceParameters> outputlist = new ArrayList<ServiceParameters>();
outputlist.add(parameters2);
outputlist.add(parameters3);
descriptor.setInputParams(inputlist);
descriptor.setOutputParams(outputlist);
application.setName("service1");
application.setHostdescName("localhost");
return application;
} catch (Exception e) {
throw new WebApplicationException(e,Response.Status.INTERNAL_SERVER_ERROR);
}
}
}