X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=engine-d%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fengine%2Fresources%2FEngineResources.java;h=0aa3a59db910d49df89cfd9ac6d42d4cf456af11;hb=c4dc95bc729afd91c00cab49d0a69bceb102eed9;hp=0d26b6e9034b6488790a79c29087d24d4bf86dcb;hpb=163dd74935802f562ef7272cadf0f88b6a63960a;p=holmes%2Fengine-management.git diff --git a/engine-d/src/main/java/org/onap/holmes/engine/resources/EngineResources.java b/engine-d/src/main/java/org/onap/holmes/engine/resources/EngineResources.java index 0d26b6e..0aa3a59 100644 --- a/engine-d/src/main/java/org/onap/holmes/engine/resources/EngineResources.java +++ b/engine-d/src/main/java/org/onap/holmes/engine/resources/EngineResources.java @@ -20,23 +20,9 @@ import com.codahale.metrics.annotation.Timed; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import java.util.Locale; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.DELETE; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; import lombok.extern.slf4j.Slf4j; import org.jvnet.hk2.annotations.Service; -import org.onap.holmes.common.dmaap.DmaapService; +import org.onap.holmes.common.dmaap.store.ClosedLoopControlNameCache; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.common.utils.ExceptionUtil; import org.onap.holmes.common.utils.LanguageUtil; @@ -45,19 +31,32 @@ import org.onap.holmes.engine.request.CompileRuleRequest; import org.onap.holmes.engine.request.DeployRuleRequest; import org.onap.holmes.engine.response.CorrelationRuleResponse; +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; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + @Service @Path("/rule") @Api(tags = {"Holmes Engine Management"}) @Produces(MediaType.APPLICATION_JSON) @Slf4j public class EngineResources { - private Pattern packagePattern = Pattern.compile("package[\\s]+([^;]+)[;\\s]*"); - @Inject DroolsEngine droolsEngine; + private Pattern packagePattern = Pattern.compile("package[\\s]+([^;]+)[;\\s]*"); + private ClosedLoopControlNameCache closedLoopControlNameCache; + + @Inject + public void setClosedLoopControlNameCache(ClosedLoopControlNameCache closedLoopControlNameCache) { + this.closedLoopControlNameCache = closedLoopControlNameCache; + } @PUT - @ApiOperation(value = "Deploy a rule into the Drools engine.", response = CorrelationRuleResponse.class) @Produces(MediaType.APPLICATION_JSON) @Timed public CorrelationRuleResponse deployRule( @@ -75,13 +74,13 @@ public class EngineResources { throw new CorrelationException("Could not find package name in rule: "+deployRuleRequest.getContent()); } - DmaapService.loopControlNames + closedLoopControlNameCache .put(packageName, deployRuleRequest.getLoopControlName()); String packageNameRet = droolsEngine.deployRule(deployRuleRequest); if (!packageName.equals(packageNameRet)) { log.info("The parsed package name is different from that returned by the engine."); - DmaapService.loopControlNames.remove(packageName); - DmaapService.loopControlNames + closedLoopControlNameCache.remove(packageName); + closedLoopControlNameCache .put(packageNameRet, deployRuleRequest.getLoopControlName()); } log.info("Rule deployed. Package name: " + packageNameRet); @@ -99,7 +98,6 @@ public class EngineResources { } @DELETE - @ApiOperation(value = "Undeploy a rule from the Drools engine.") @Produces(MediaType.APPLICATION_JSON) @Timed @Path("/{packageName}") @@ -110,7 +108,7 @@ public class EngineResources { try { droolsEngine.undeployRule(packageName); - DmaapService.loopControlNames.remove(packageName); + closedLoopControlNameCache.remove(packageName); } catch (CorrelationException correlationException) { log.error(correlationException.getMessage(), correlationException); throw ExceptionUtil.buildExceptionResponse(correlationException.getMessage());