RED-9472: seperation of system rules
now adding user update rules to existing blueprint and returning this
This commit is contained in:
parent
7363493d1c
commit
bdb29a0e35
@ -93,13 +93,13 @@ public class RuleBuilderController implements RuleBuilderResource {
|
|||||||
rulesUploadResponse.setDroolsValidationResponse(droolsValidationResponse);
|
rulesUploadResponse.setDroolsValidationResponse(droolsValidationResponse);
|
||||||
return new ResponseEntity<>(rulesUploadResponse, HttpStatus.UNPROCESSABLE_ENTITY);
|
return new ResponseEntity<>(rulesUploadResponse, HttpStatus.UNPROCESSABLE_ENTITY);
|
||||||
} else {
|
} else {
|
||||||
//
|
|
||||||
rulesUploadResponse.setRules(mergingResult.getMergedRules());
|
rulesUploadResponse.setRules(mergingResult.getMergedRules());
|
||||||
rulesUploadResponse.setDroolsValidationResponse(droolsValidationResponse);
|
rulesUploadResponse.setDroolsValidationResponse(droolsValidationResponse);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RulesValidationException("Could not test rules: " + e.getMessage(), e);
|
throw new RulesValidationException("Could not test rules: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
log.info("result after validation: {}",rulesUpdateRequest);
|
||||||
return new ResponseEntity<>(rulesUploadResponse, HttpStatus.OK);
|
return new ResponseEntity<>(rulesUploadResponse, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,7 @@ public class RuleBuilderService {
|
|||||||
|
|
||||||
RuleFileBluePrint ruleFileBluePrintExisting = RuleFileParser.buildBluePrintFromRulesString(existingRules);
|
RuleFileBluePrint ruleFileBluePrintExisting = RuleFileParser.buildBluePrintFromRulesString(existingRules);
|
||||||
RuleFileBluePrint mergedRuleFileBlueprint = RuleFileParser.buildBluePrintFromRulesString(userUpdatedRules, false);
|
RuleFileBluePrint mergedRuleFileBlueprint = RuleFileParser.buildBluePrintFromRulesString(userUpdatedRules, false);
|
||||||
|
|
||||||
mergedRuleFileBlueprint.getRuleClasses()
|
mergedRuleFileBlueprint.getRuleClasses()
|
||||||
.forEach(ruleClass -> {
|
.forEach(ruleClass -> {
|
||||||
if (systemRules.stream()
|
if (systemRules.stream()
|
||||||
@ -62,25 +63,25 @@ public class RuleBuilderService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
ruleFileBluePrintExisting = removeAllRulesExceptSystemRules(ruleFileBluePrintExisting);
|
ruleFileBluePrintExisting = removeAllRulesExceptSystemRules(ruleFileBluePrintExisting);
|
||||||
ruleFileBluePrintExisting.getAllRules()
|
mergedRuleFileBlueprint.getAllRules()
|
||||||
.forEach(mergedRuleFileBlueprint::addRule);
|
.forEach(ruleFileBluePrintExisting::addRule);
|
||||||
Set<String> uniqueImports = Arrays.stream((ruleFileBluePrintExisting.getImports() + mergedRuleFileBlueprint.getImports()).replaceAll("\n", "").split("import"))
|
Set<String> uniqueImports = Arrays.stream((ruleFileBluePrintExisting.getImports() + mergedRuleFileBlueprint.getImports()).replaceAll("\n", "").split("import"))
|
||||||
.map(String::trim)
|
.map(String::trim)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
mergedRuleFileBlueprint.setImports(uniqueImports.stream()
|
ruleFileBluePrintExisting.setImports(uniqueImports.stream()
|
||||||
.collect(Collectors.joining("")));
|
.collect(Collectors.joining("")));
|
||||||
Set<String> uniqueGlobals = Arrays.stream((ruleFileBluePrintExisting.getGlobals() + mergedRuleFileBlueprint.getGlobals()).replaceAll("\n", "").split("import"))
|
Set<String> uniqueGlobals = Arrays.stream((ruleFileBluePrintExisting.getGlobals() + mergedRuleFileBlueprint.getGlobals()).replaceAll("\n", "").split("import"))
|
||||||
.map(String::trim)
|
.map(String::trim)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
mergedRuleFileBlueprint.setGlobals(uniqueGlobals.stream()
|
ruleFileBluePrintExisting.setGlobals(uniqueGlobals.stream()
|
||||||
.collect(Collectors.joining("")));
|
.collect(Collectors.joining("")));
|
||||||
mergedRuleFileBlueprint.setFunctions(Stream.concat(ruleFileBluePrintExisting.getFunctions()
|
ruleFileBluePrintExisting.setFunctions(Stream.concat(ruleFileBluePrintExisting.getFunctions()
|
||||||
.stream(),
|
.stream(),
|
||||||
mergedRuleFileBlueprint.getFunctions()
|
mergedRuleFileBlueprint.getFunctions()
|
||||||
.stream())
|
.stream())
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList());
|
.toList());
|
||||||
mergedRuleFileBlueprint.setDeclarations(Stream.concat(ruleFileBluePrintExisting.getDeclarations()
|
ruleFileBluePrintExisting.setDeclarations(Stream.concat(ruleFileBluePrintExisting.getDeclarations()
|
||||||
.stream(),
|
.stream(),
|
||||||
mergedRuleFileBlueprint.getDeclarations()
|
mergedRuleFileBlueprint.getDeclarations()
|
||||||
.stream())
|
.stream())
|
||||||
@ -88,9 +89,9 @@ public class RuleBuilderService {
|
|||||||
.toList());
|
.toList());
|
||||||
log.info("merged rules: {}", RuleFileFactory.buildRuleString(ruleFileBluePrintExisting, false, false));
|
log.info("merged rules: {}", RuleFileFactory.buildRuleString(ruleFileBluePrintExisting, false, false));
|
||||||
return RuleMergingResult.builder()
|
return RuleMergingResult.builder()
|
||||||
.mergedRules(RuleFileFactory.buildRuleString(ruleFileBluePrintExisting, false, false))
|
.mergedRules(RuleFileFactory.buildRuleString(mergedRuleFileBlueprint, false, false))
|
||||||
.addedGlobalsOffset(ruleFileBluePrintExisting.getGlobals().length())
|
.addedGlobalsOffset(mergedRuleFileBlueprint.getGlobals().length())
|
||||||
.addedImportsOffset(ruleFileBluePrintExisting.getImports().length())
|
.addedImportsOffset(mergedRuleFileBlueprint.getImports().length())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user