-
- String packageName = droolsEngine.deployRule(deployRuleRequest, locale);
- log.info("Rule deployed. Package name: " + packageName);
- crResponse.setPackageName(packageName);
+ String packageName = getPackageName(deployRuleRequest.getContent());
+ if(packageName == null) {
+ throw new CorrelationException("Could not find package name in rule: "+deployRuleRequest.getContent());
+ }
+
+ 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.");
+ closedLoopControlNameCache.remove(packageName);
+ closedLoopControlNameCache
+ .put(packageNameRet, deployRuleRequest.getLoopControlName());
+ }
+ log.info("Rule deployed. Package name: " + packageNameRet);
+ crResponse.setPackageName(packageNameRet);