X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=rulemgt%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Frulemgt%2Fresources%2FRuleMgtResources.java;h=133e8592625be3665725ed50be2a03b723da0f9d;hb=a796bda2f8e2db093ce9f528f6e5960e4aa1b22c;hp=445c2f973725b8fa242a8de4ef6e092ec97f8d8a;hpb=71ad58788ebfd666f6922fd9c16f77a9a4e39e27;p=holmes%2Frule-management.git diff --git a/rulemgt/src/main/java/org/onap/holmes/rulemgt/resources/RuleMgtResources.java b/rulemgt/src/main/java/org/onap/holmes/rulemgt/resources/RuleMgtResources.java index 445c2f9..133e859 100644 --- a/rulemgt/src/main/java/org/onap/holmes/rulemgt/resources/RuleMgtResources.java +++ b/rulemgt/src/main/java/org/onap/holmes/rulemgt/resources/RuleMgtResources.java @@ -1,11 +1,11 @@ /** - * Copyright 2017-2020 ZTE Corporation. - * + * Copyright 2017-2022 ZTE Corporation. + *

* Licensed 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 @@ -13,17 +13,15 @@ */ package org.onap.holmes.rulemgt.resources; -import com.codahale.metrics.annotation.Timed; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.SwaggerDefinition; +import jakarta.ws.rs.core.MediaType; import lombok.extern.slf4j.Slf4j; -import org.jvnet.hk2.annotations.Service; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.common.utils.ExceptionUtil; import org.onap.holmes.common.utils.GsonUtil; -import org.onap.holmes.common.utils.LanguageUtil; import org.onap.holmes.common.utils.UserUtil; import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest; import org.onap.holmes.rulemgt.bean.request.RuleDeleteRequest; @@ -33,37 +31,33 @@ import org.onap.holmes.rulemgt.bean.response.RuleAddAndUpdateResponse; import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse; import org.onap.holmes.rulemgt.constant.RuleMgtConstant; import org.onap.holmes.rulemgt.wrapper.RuleMgtWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; -import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.*; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import java.util.Locale; -@Service +@Slf4j +@RestController @SwaggerDefinition -@Path("/rule") +@RequestMapping("/rule") @Api(tags = {"Holmes Rule Management"}) -@Produces(MediaType.APPLICATION_JSON) -@Slf4j public class RuleMgtResources { - @Inject + @Autowired private RuleMgtWrapper ruleMgtWrapper; - @PUT - @Produces(MediaType.APPLICATION_JSON) + @ResponseBody + @PutMapping(produces = MediaType.APPLICATION_JSON) @ApiOperation(value = "Save a rule into the database; deploy it to the Drools engine if it is enabled.", response = RuleAddAndUpdateResponse.class) - @Timed - public RuleAddAndUpdateResponse addCorrelationRule(@Context HttpServletRequest request, - @ApiParam(value = - "The request entity of the HTTP call, which comprises \"ruleName\"(required), " - + "\"loopControlName\"(required), \"content\"(required), \"enabled\"(required) " - + "and \"description\"(optional)", required = true) - RuleCreateRequest ruleCreateRequest) { - Locale locale = LanguageUtil.getLocale(request); + public RuleAddAndUpdateResponse addCorrelationRule(HttpServletRequest request, + @ApiParam(value = + "The request entity of the HTTP call, which comprises \"ruleName\"(required), " + + "\"loopControlName\"(required), \"content\"(required), \"enabled\"(required) " + + "and \"description\"(optional)", required = true) + @RequestBody RuleCreateRequest ruleCreateRequest) { RuleAddAndUpdateResponse ruleChangeResponse; try { ruleChangeResponse = ruleMgtWrapper @@ -76,16 +70,14 @@ public class RuleMgtResources { } } - @POST - @Produces(MediaType.APPLICATION_JSON) + @ResponseBody + @PostMapping(produces = MediaType.APPLICATION_JSON) @ApiOperation(value = "Update an existing rule; deploy it to the Drools engine if it is enabled.", response = RuleAddAndUpdateResponse.class) - @Timed - public RuleAddAndUpdateResponse updateCorrelationRule(@Context HttpServletRequest request, - @ApiParam(value = - "The request entity of the HTTP call, which comprises \"ruleId\"(required), " - + "\"content\"(required), \"enabled\"(required) and \"description\"(optional)", required = true) - RuleUpdateRequest ruleUpdateRequest) { - Locale locale = LanguageUtil.getLocale(request); + public RuleAddAndUpdateResponse updateCorrelationRule(HttpServletRequest request, + @ApiParam(value = + "The request entity of the HTTP call, which comprises \"ruleId\"(required), " + + "\"content\"(required), \"enabled\"(required) and \"description\"(optional)", required = true) + @RequestBody RuleUpdateRequest ruleUpdateRequest) { RuleAddAndUpdateResponse ruleChangeResponse; try { ruleChangeResponse = ruleMgtWrapper @@ -98,38 +90,31 @@ public class RuleMgtResources { } } - @DELETE - @Produces(MediaType.APPLICATION_JSON) + @DeleteMapping("/{ruleid}") @ApiOperation(value = "Remove a rule from Holmes.") - @Timed - @Path("/{ruleid}") - public boolean deleteCorrelationRule(@Context HttpServletRequest request, - @PathParam("ruleid") String ruleId) { - Locale locale = LanguageUtil.getLocale(request); + public ResponseEntity deleteCorrelationRule(@PathVariable("ruleid") String ruleId) { try { ruleMgtWrapper.deleteCorrelationRule(new RuleDeleteRequest(ruleId)); log.info("delete rule:" + ruleId + " successful"); - return true; + return ResponseEntity.status(HttpStatus.NO_CONTENT).build(); } catch (CorrelationException e) { log.error("delete rule:" + ruleId + " failed", e); throw ExceptionUtil.buildExceptionResponse(e.getMessage()); } } - @GET - @Produces(MediaType.APPLICATION_JSON) + @ResponseBody + @GetMapping(produces = MediaType.APPLICATION_JSON) @ApiOperation(value = "Query rules using certain criteria.", response = RuleQueryListResponse.class) - @Timed - public RuleQueryListResponse getCorrelationRules(@Context HttpServletRequest request, - @ApiParam(value = - "A JSON string used as a query parameter, which comprises \"ruleid\"(optional), " - + "\"rulename\"(optional), \"creator\"(optional), " - + "\"modifier\"(optional) and \"enabled\"(optional). E.g. {\"ruleid\":\"rule_1484727187317\"}", - required = false) @QueryParam("queryrequest") String ruleQueryRequest) { - Locale locale = LanguageUtil.getLocale(request); + public RuleQueryListResponse getCorrelationRules( + @ApiParam(value = + "A JSON string used as a query parameter, which comprises \"ruleid\"(optional), " + + "\"rulename\"(optional), \"creator\"(optional), " + + "\"modifier\"(optional) and \"enabled\"(optional). E.g. {\"ruleid\":\"rule_1484727187317\"}") + @RequestParam(value = "queryrequest", required = false) String ruleQueryRequest) { RuleQueryListResponse ruleQueryListResponse; - RuleQueryCondition ruleQueryCondition = getRuleQueryCondition(ruleQueryRequest, request); + RuleQueryCondition ruleQueryCondition = getRuleQueryCondition(ruleQueryRequest); try { ruleQueryListResponse = ruleMgtWrapper .getCorrelationRuleByCondition(ruleQueryCondition); @@ -141,9 +126,7 @@ public class RuleMgtResources { } } - private RuleQueryCondition getRuleQueryCondition(String queryRequest, - HttpServletRequest request) { - Locale locale = LanguageUtil.getLocale(request); + private RuleQueryCondition getRuleQueryCondition(String queryRequest) { RuleQueryCondition ruleQueryCondition = GsonUtil .jsonToBean(queryRequest, RuleQueryCondition.class); if (queryRequest == null) {