2  * Copyright (c) 2017-2018 ZTE Corporation.
 
   3  * All rights reserved. This program and the accompanying materials
 
   4  * are made available under the Apache License, Version 2.0
 
   5  * and the Eclipse Public License v1.0 which both accompany this distribution,
 
   6  * and are available at http://www.eclipse.org/legal/epl-v10.html
 
   7  * and http://www.apache.org/licenses/LICENSE-2.0
 
  10  *     ZTE - initial API and implementation and/or initial documentation
 
  13 package org.onap.sdc.workflowdesigner.resources;
 
  15 import java.io.IOException;
 
  17 import javax.ws.rs.Consumes;
 
  18 import javax.ws.rs.GET;
 
  19 import javax.ws.rs.Path;
 
  20 import javax.ws.rs.Produces;
 
  21 import javax.ws.rs.QueryParam;
 
  22 import javax.ws.rs.core.MediaType;
 
  23 import javax.ws.rs.core.Response;
 
  25 import org.eclipse.jetty.http.HttpStatus;
 
  26 import org.onap.sdc.workflowdesigner.resources.entity.ExtendActivity;
 
  27 import org.onap.sdc.workflowdesigner.utils.FileCommonUtils;
 
  28 import org.onap.sdc.workflowdesigner.utils.RestUtils;
 
  29 import org.slf4j.Logger;
 
  30 import org.slf4j.LoggerFactory;
 
  32 import com.codahale.metrics.annotation.Timed;
 
  33 import com.google.gson.Gson;
 
  35 import io.swagger.annotations.Api;
 
  36 import io.swagger.annotations.ApiOperation;
 
  37 import io.swagger.annotations.ApiParam;
 
  38 import io.swagger.annotations.ApiResponse;
 
  39 import io.swagger.annotations.ApiResponses;
 
  42  * Extend Activity Resource.
 
  45 @Path("/ext-activities")
 
  46 @Api(tags = {"Workflow Modeler"})
 
  47 public class ExtendActivityResource {
 
  49   private static final String EXT_ACTIVITIES_DISPLAY_INFO_FILE_NAME = "ext-activities-display-info.json";
 
  51   private static final Logger LOGGER = LoggerFactory.getLogger(ExtendActivityResource.class);
 
  53   private static final String EXT_ACTIVITIES_FILE_NAME = "..\\distribution\\src\\main\\assembly\\ext-activities.json";
 
  62   @Consumes(MediaType.APPLICATION_JSON)
 
  63   @Produces(MediaType.APPLICATION_JSON)
 
  64   @ApiOperation(value = "Get Extend Activities.", response = ExtendActivity.class, responseContainer = "List")
 
  65   @ApiResponses(value = {
 
  66       @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found",
 
  67           response = String.class),
 
  68       @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415,
 
  69           message = "Unprocessable MicroServiceInfo Entity ", response = String.class),
 
  70       @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "server internal error",
 
  71           response = String.class)})
 
  73   public Response getExtActivities(@ApiParam(value = "sence") @QueryParam("sence") String sence) {
 
  76       ExtendActivity[] extActivities = retriveExtActivites(sence);
 
  78       return Response.status(Response.Status.OK).entity(extActivities).build();
 
  79     } catch (IOException e) {
 
  80       LOGGER.error("Get ExtActivities failed.", e);
 
  81       throw RestUtils.newInternalServerErrorException(e);
 
  91   private ExtendActivity[] retriveExtActivites(String sence) throws IOException {
 
  92     String json = FileCommonUtils.readString(EXT_ACTIVITIES_FILE_NAME);
 
  93     Gson gson = new Gson();
 
  94     return gson.fromJson(json, ExtendActivity[].class);
 
 100   @Consumes(MediaType.APPLICATION_JSON)
 
 101   @Produces(MediaType.APPLICATION_JSON)
 
 102   @ApiOperation(value = "Get Extend Activities DisplayInfo", response = String.class)
 
 103   @ApiResponses(value = {
 
 104       @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found",
 
 105           response = String.class),
 
 106       @ApiResponse(code = HttpStatus.UNSUPPORTED_MEDIA_TYPE_415,
 
 107           message = "Unprocessable MicroServiceInfo Entity ", response = String.class),
 
 108       @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "server internal error",
 
 109           response = String.class)})
 
 111   public Response getDisplayInfo(@ApiParam(value = "sence") @QueryParam("sence") String sence) {
 
 113       String json = FileCommonUtils.readString(EXT_ACTIVITIES_DISPLAY_INFO_FILE_NAME);
 
 114       return Response.status(Response.Status.OK).entity(json).build();
 
 115     } catch (IOException e) {
 
 116       LOGGER.error("Get Extend Activities DisplayInfo failed.", e);
 
 117       throw RestUtils.newInternalServerErrorException(e);