X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=engine-d%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fengine%2Fmanager%2FDroolsEngine.java;h=6808e98a7dc48967971e6c1d79138f6113189ae0;hb=c4dc95bc729afd91c00cab49d0a69bceb102eed9;hp=c397b2843fe2db9f4592c2214e563872a11f9957;hpb=2cb2e9902f2bb2bd3c84c64e8682891decae8fcb;p=holmes%2Fengine-management.git diff --git a/engine-d/src/main/java/org/onap/holmes/engine/manager/DroolsEngine.java b/engine-d/src/main/java/org/onap/holmes/engine/manager/DroolsEngine.java index c397b28..6808e98 100644 --- a/engine-d/src/main/java/org/onap/holmes/engine/manager/DroolsEngine.java +++ b/engine-d/src/main/java/org/onap/holmes/engine/manager/DroolsEngine.java @@ -22,6 +22,10 @@ import org.jvnet.hk2.annotations.Service; import org.kie.api.KieServices; import org.kie.api.builder.*; import org.kie.api.builder.Message.Level; +import org.kie.api.builder.model.KieBaseModel; +import org.kie.api.builder.model.KieModuleModel; +import org.kie.api.builder.model.KieSessionModel; +import org.kie.api.conf.EqualityBehaviorOption; import org.kie.api.io.Resource; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; @@ -29,7 +33,7 @@ import org.kie.api.runtime.rule.FactHandle; import org.onap.holmes.common.api.entity.AlarmInfo; import org.onap.holmes.common.api.entity.CorrelationRule; import org.onap.holmes.common.api.stat.VesAlarm; -import org.onap.holmes.common.dmaap.DmaapService; +import org.onap.holmes.common.dmaap.store.ClosedLoopControlNameCache; import org.onap.holmes.common.exception.AlarmInfoException; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.common.utils.DbDaoUtil; @@ -50,20 +54,33 @@ import java.util.stream.Collectors; @Service public class DroolsEngine { - @Inject + private final static int ENABLE = 1; + private final Map deployed = new ConcurrentHashMap<>(); private RuleMgtWrapper ruleMgtWrapper; - @Inject private DbDaoUtil daoUtil; - - private final static int ENABLE = 1; + private ClosedLoopControlNameCache closedLoopControlNameCache; private AlarmInfoDao alarmInfoDao; - private final Map deployed = new ConcurrentHashMap<>(); private KieServices ks = KieServices.Factory.get(); private ReleaseId releaseId = ks.newReleaseId("org.onap.holmes", "rules", "1.0.0-SNAPSHOT"); private ReleaseId compilationRelease = ks.newReleaseId("org.onap.holmes", "compilation", "1.0.0-SNAPSHOT"); private KieContainer container; private KieSession session; + @Inject + public void setRuleMgtWrapper(RuleMgtWrapper ruleMgtWrapper) { + this.ruleMgtWrapper = ruleMgtWrapper; + } + + @Inject + public void setDaoUtil(DbDaoUtil daoUtil) { + this.daoUtil = daoUtil; + } + + @Inject + public void setClosedLoopControlNameCache(ClosedLoopControlNameCache closedLoopControlNameCache) { + this.closedLoopControlNameCache = closedLoopControlNameCache; + } + @PostConstruct private void init() { alarmInfoDao = daoUtil.getJdbiDaoByOnDemand(AlarmInfoDao.class); @@ -114,7 +131,7 @@ public class DroolsEngine { for (CorrelationRule rule : rules) { if (!StringUtils.isEmpty(rule.getContent())) { deployRule(rule.getContent()); - DmaapService.loopControlNames.put(rule.getPackageName(), rule.getClosedControlLoopName()); + closedLoopControlNameCache.put(rule.getPackageName(), rule.getClosedControlLoopName()); } } @@ -271,7 +288,15 @@ public class DroolsEngine { } private byte[] createJar(KieServices ks, ReleaseId releaseId, List drls) throws CorrelationException { - KieFileSystem kfs = ks.newKieFileSystem().generateAndWritePomXML(releaseId); + KieModuleModel kieModuleModel = ks.newKieModuleModel(); + KieBaseModel kieBaseModel = kieModuleModel.newKieBaseModel("KBase") + .setDefault(true) + .setEqualsBehavior(EqualityBehaviorOption.EQUALITY); + kieBaseModel.newKieSessionModel("KSession") + .setDefault(true) + .setType(KieSessionModel.KieSessionType.STATEFUL); + KieFileSystem kfs = ks.newKieFileSystem().writeKModuleXML(kieModuleModel.toXML()).generateAndWritePomXML(releaseId); + int i = 0; for (String drl : drls) { if (!StringUtils.isEmpty(drl)) {