kbuilder.add( ResourceFactory.newByteArrayResource( entry.getValue().getBytes() ), ResourceType.DSL );
public void deploy(DeploymentEntity deployment, Map<String, Object> deploymentSettings) { log.debug("Processing deployment {}", deployment.getName()); KnowledgeBuilder knowledgeBuilder = null; DeploymentManager deploymentManager = Context.getProcessEngineConfiguration().getDeploymentManager(); Map<String, ResourceEntity> resources = deployment.getResources(); for (String resourceName : resources.keySet()) { log.info("Processing resource {}", resourceName); if (resourceName.endsWith(".drl")) { // is only parsing .drls sufficient? what about other rule dsl's? (@see ResourceType) if (knowledgeBuilder == null) { knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); } ResourceEntity resourceEntity = resources.get(resourceName); byte[] resourceBytes = resourceEntity.getBytes(); Resource droolsResource = ResourceFactory.newByteArrayResource(resourceBytes); knowledgeBuilder.add(droolsResource, ResourceType.DRL); } } if (knowledgeBuilder != null) { KnowledgeBase knowledgeBase = knowledgeBuilder.newKnowledgeBase(); deploymentManager.getKnowledgeBaseCache().add(deployment.getId(), knowledgeBase); } } }
public void deploy(DeploymentEntity deployment) { KnowledgeBuilder knowledgeBuilder = null; DeploymentManager deploymentManager = Context .getProcessEngineConfiguration() .getDeploymentManager(); Map<String, ResourceEntity> resources = deployment.getResources(); for (String resourceName : resources.keySet()) { log.info("Processing resource {}", resourceName); if (resourceName.endsWith(".drl")) { // is only parsing .drls sufficient? what about other rule dsl's? (@see ResourceType) if (knowledgeBuilder==null) { knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); } ResourceEntity resourceEntity = resources.get(resourceName); byte[] resourceBytes = resourceEntity.getBytes(); Resource droolsResource = ResourceFactory.newByteArrayResource(resourceBytes); knowledgeBuilder.add(droolsResource, ResourceType.DRL); } } if (knowledgeBuilder!=null) { KnowledgeBase knowledgeBase = knowledgeBuilder.newKnowledgeBase(); deploymentManager.getKnowledgeBaseCache().add(deployment.getId(), knowledgeBase); } } }
@Test public void testErrorReporting() { String str = "global java.util.List list\n" + "\n" + "rule R\n" + "when\n" + " $i : Intege( ) from list\n" + "then\n" + "end"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource(str.getBytes()), ResourceType.DRL ); assertTrue(kbuilder.hasErrors()); assertTrue(kbuilder.getErrors().toString().contains("Intege")); }
@Test public void testConsequenceException2() { // BZ-1077834 String str = "package foo.bar\n" + "rule R\n" + "when\n" + "then\n" + " throw new RuntimeException(\"foo\");" + "end"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes(Charset.forName("UTF-8"))), ResourceType.DRL); if (kbuilder.hasErrors()) { throw new RuntimeException("Drools compile errors: " + kbuilder.getErrors().toString()); } KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); try { ksession.fireAllRules(); } catch (org.drools.runtime.rule.ConsequenceException e) { // this is correct, succeeds } catch (Exception other) { fail("Wrong exception raised = " + other.getClass().getCanonicalName()); } }
private VerifierReport verify(String rulesToVerify){ VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder(); //VerifierConfiguration conf = new DefaultVerifierConfiguration(); VerifierConfiguration vconf = new VerifierConfigurationImpl(); vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); verifier = vBuilder.newVerifier(vconf); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(rulesToVerify.getBytes()), ResourceType.DRL); boolean noProblems = verifier.fireAnalysis(); if (verifier.hasErrors()) { for (VerifierError error : verifier.getErrors()) { System.out.println(error.getMessage()); } throw new RuntimeException("Error building verifier"); } assertTrue(noProblems); return verifier.getResult(); }
protected KnowledgeBase loadKnowledgeBaseFromString(KnowledgeBuilderConfiguration config, KnowledgeBaseConfiguration kBaseConfig, String... drlContentStrings) { KnowledgeBuilder kbuilder = config == null ? KnowledgeBuilderFactory.newKnowledgeBuilder() : KnowledgeBuilderFactory.newKnowledgeBuilder( config ); for ( String drlContentString : drlContentStrings ) { kbuilder.add( ResourceFactory.newByteArrayResource(drlContentString.getBytes()), ResourceType.DRL ); } if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); } if ( kBaseConfig == null ) { kBaseConfig = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase( kBaseConfig ); kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() ); return kbase; }
conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(rulesToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(conf).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);
vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL); vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(salaryCons).getBytes()), ResourceType.DRL); verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()), ResourceType.DRL);