actionDescr.setText( "list.add( 'hello world' )" ); KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl( pkg ); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); MVELDialect mvelDialect = ( MVELDialect ) dialectRegistry.getDialect( "mvel" ); context.init( pkgBuilder, pkg, null, dialectRegistry, mvelDialect, null); pkgBuilder.addPackageFromDrl( new StringReader("package pkg1;\nglobal java.util.List list;\n") ); actionNode ); final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( Arrays.asList(pkgBuilder.getPackages()) ); final KieSession wm = kbase.newKieSession(); MVELDialectRuntimeData data = (MVELDialectRuntimeData) pkgBuilder.getPackage("pkg1").getDialectRuntimeRegistry().getDialectData( "mvel");
knowledgeBuilder.addPackageFromDrl( new StringReader( rules ), resource ); } catch ( IOException e ) { PackageRegistry pkgRegistry = this.knowledgeBuilder.getOrCreatePackageRegistry(new PackageDescr(process.getPackageName())); if (pkgRegistry != null) { InternalKnowledgePackage p = pkgRegistry.getPackage(); ResourceTypePackageRegistry resourceTypePackages = p.getResourceTypePackages(); ProcessPackage rpkg = ProcessPackage.getOrCreate(resourceTypePackages); duplicatedResource.getSourcePath().equals(resource.getSourcePath())) { this.errors.add(new DuplicateProcess(process, this.knowledgeBuilder.getBuilderConfiguration())); } else { this.errors.add( new ParserError( resource, pkgRegistry.getDialectRuntimeRegistry().onBeforeExecute();
@Test public void testSerializable() throws Exception { final KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl(); back.getName() ); builder.addPackage( packageDescr ); InternalKnowledgePackage pkg = builder.getPackage(packageDescr.getName()); final RuleImpl rule = pkg.getRule( "rule-1" ); final RuleImpl newRule = newPkg.getRule( "rule-1" ); InternalKnowledgeBase kBase = (InternalKnowledgeBase)KnowledgeBaseFactory.newKnowledgeBase(); newPkg.getDialectRuntimeRegistry().onAdd( kBase.getRootClassLoader() ); newPkg.getDialectRuntimeRegistry().onBeforeExecute(); kBase.getGlobals().put( "map", Map.class ); final KieSession workingMemory = kBase.newKieSession(); knowledgeHelper.setActivation( activation ); newRule.getConsequence().evaluate( knowledgeHelper, ((StatefulKnowledgeSessionImpl)workingMemory) ); assertEquals( new Integer( 1 ),
@Test public void testReload() throws Exception { final KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl(); builder.addPackage( packageDescr ); InternalKnowledgePackage pkg = builder.getPackage(packageDescr.getName()); RuleImpl rule = pkg.getRule( "rule-1" ); builder.getErrors().getErrors() ); InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); kBase.addGlobal( "map", Map.class ); final KieSession workingMemory = kBase.newKieSession(); knowledgeHelper.setActivation( activation ); rule.getConsequence().evaluate( knowledgeHelper, ((StatefulKnowledgeSessionImpl)workingMemory) ); assertEquals( new Integer( 1 ), pkg.removeRule( rule ); ((JavaDialectRuntimeData) pkg.getDialectRuntimeRegistry().getDialectData( "java" )).getStore().size() ); builder.addPackage( packageDescr );
@Before public void setUp() { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); pkg = new KnowledgePackageImpl("org.droos.test"); pkg.setClassFieldAccessorCache(new ClassFieldAccessorCache(Thread.currentThread().getContextClassLoader())); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); // we need to add one rule to the package because the previous deadlock was encountered // while removing rules from a package when said package is removed from the rulebase rule = new RuleImpl("Test"); rule.setDialect("java"); rule.setConsequence(new Consequence() { public void evaluate(KnowledgeHelper knowledgeHelper, WorkingMemory workingMemory) throws Exception { } public String getName() { return "default"; } }); pkg.addRule(rule); kBase.addPackage(pkg); }
@Test public void testSimpleExpression() { KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl(); pkgBuilder.addPackage( new PackageDescr( "pkg1" ) ); InternalKnowledgePackage pkg = pkgBuilder.getPackage("pkg1"); final RuleDescr ruleDescr = new RuleDescr( "rule 1" ); final KnowledgeBuilderConfigurationImpl conf = pkgBuilder.getBuilderConfiguration(); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); MVELDialect mvelDialect = (MVELDialect) dialectRegistry.getDialect( "mvel" ); accDescr ); ((MVELCompileable) acc.getAccumulators()[0]).compile( (MVELDialectRuntimeData) pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectRuntimeRegistry().getDialectData( "mvel" ) ); InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession();
@Test public void testSimpleExpression() throws Exception { PackageDescr pkgDescr = new PackageDescr( "pkg1" ); KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl(); pkgBuilder.addPackage( pkgDescr ); InternalKnowledgePackage pkg = pkgBuilder.getPackageRegistry( "pkg1" ).getPackage(); final RuleDescr ruleDescr = new RuleDescr( "rule 1" ); ruleDescr.setNamespace( "pkg1" ); ruleDescr.setConsequence( "modify (cheese) {price = 5 };\nretract (cheese)" ); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); builder.build( context, RuleImpl.DEFAULT_CONSEQUENCE_NAME ); InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); PropagationContextFactory pctxFactory = kBase.getConfiguration().getComponentFactory().getPropagationContextFactory(); kBase.addPackage(pkg); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); final DefaultKnowledgeHelper kbHelper = new DefaultKnowledgeHelper( ksession ); kbHelper.setActivation( item ); ((MVELConsequence) context.getRule().getConsequence()).compile( (MVELDialectRuntimeData) pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectRuntimeRegistry().getDialectData( "mvel" )); context.getRule().getConsequence().evaluate( kbHelper, ksession );
KnowledgeBuilderConfigurationImpl cfg1 = new KnowledgeBuilderConfigurationImpl( properties ); KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl( pkg, cfg1 ); PackageRegistry pkgRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); MVELDialect mvelDialect = (MVELDialect) dialectRegistry.getDialect( pkgRegistry.getDialect() ); builder.build( context, RuleImpl.DEFAULT_CONSEQUENCE_NAME ); InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); kbHelper.setActivation( item ); try { ((MVELConsequence) context.getRule().getConsequence()).compile( (MVELDialectRuntimeData) pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectRuntimeRegistry().getDialectData( "mvel" ) ); context.getRule().getConsequence().evaluate( kbHelper, ksession ); fail( "should throw an exception, as 'if' is not allowed" );
final RuleDescr ruleDescr = new RuleDescr( "rule 1" ); KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl( pkg ); final KnowledgeBuilderConfigurationImpl conf = pkgBuilder.getBuilderConfiguration(); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); MVELDialect mvelDialect = ( MVELDialect ) dialectRegistry.getDialect( "mvel" ); final EvalCondition eval = (EvalCondition) builder.build( context, evalDescr ); ((MVELEvalExpression) eval.getEvalExpression()).compile( (MVELDialectRuntimeData) pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectRuntimeRegistry().getDialectData( "mvel" ) ); InternalKnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession();
ruleDescr.setConsequence( "" ); KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl( pkg ); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); MVELDialect mvelDialect = (MVELDialect) dialectRegistry.getDialect( "mvel" ); context.setDeclarationResolver( declarationResolver ); kBase = KnowledgeBaseFactory.newKnowledgeBase(); SalienceBuilder salienceBuilder = new MVELSalienceBuilder(); salienceBuilder.build( context ); ((MVELSalienceExpression) context.getRule().getSalience()).compile( (MVELDialectRuntimeData) context.getPkg().getDialectRuntimeRegistry().getDialectData( "mvel" ) );
public BuildContext createContext() { RuleBaseConfiguration conf = new RuleBaseConfiguration(); KnowledgeBaseImpl rbase = new KnowledgeBaseImpl( "ID", conf ); BuildContext buildContext = new BuildContext( rbase ); RuleImpl rule = new RuleImpl( "rule1").setPackage( "org.pkg1" ); InternalKnowledgePackage pkg = new KnowledgePackageImpl( "org.pkg1" ); pkg.getDialectRuntimeRegistry().setDialectData( "mvel", new MVELDialectRuntimeData() ); pkg.addRule( rule ); buildContext.setRule( rule ); return buildContext; }
final KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl( pkg ); DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectCompiletimeRegistry(); Dialect dialect = dialectRegistry.getDialect( "mvel" ); MVELConsequence mvelCons = (MVELConsequence) rule.getConsequence(); mvelCons.compile( (MVELDialectRuntimeData) pkgBuilder.getPackageRegistry( pkg.getName() ).getDialectRuntimeRegistry().getDialectData( "mvel" ) ); String s = DebugTools.decompile( mvelCons.getCompExpr() );
MVELDialectRuntimeData data = (MVELDialectRuntimeData) context.getPkg().getDialectRuntimeRegistry().getDialectData( dialect.getId() ); data.addCompileable( constraintNode, expr );
context.getPkg().getName() + "." + processDescr.getClassName(), processDescr, processClass, .getDialectRuntimeRegistry().getDialectData(javaDialect.getId());
pkg.setClassFieldAccessorCache( new ClassFieldAccessorCache( Thread.currentThread().getContextClassLoader() ) ); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); final JavaDialectRuntimeData pcData = ( JavaDialectRuntimeData ) pkg.getDialectRuntimeRegistry().getDialectData( "java" );
MVELDialectRuntimeData data = ( MVELDialectRuntimeData ) ((KnowledgePackageImpl) pkg).getDialectRuntimeRegistry().getDialectData( id ); factory.setNextFactory( data.getFunctionFactory() );
RuleImpl rule; InternalKnowledgePackage pkg; kBase = KnowledgeBaseFactory.newKnowledgeBase(); pkg.setClassFieldAccessorCache(new ClassFieldAccessorCache(Thread.currentThread().getContextClassLoader())); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); rule = new RuleImpl("Test"); rule.setDialect("java"); rule.setConsequence(new Consequence() { public void evaluate(KnowledgeHelper knowledgeHelper, WorkingMemory workingMemory) throws Exception { pkg.addRule(rule); kBase.addPackage(pkg); KieSession session = kBase.newKieSession(); Command dispose = KieServices.Factory.get().getCommands().newDispose(); session.insert("whatever");
public BuildContext createContext() { RuleBaseConfiguration conf = new RuleBaseConfiguration(); KnowledgeBaseImpl rbase = new KnowledgeBaseImpl( "ID", conf ); BuildContext buildContext = new BuildContext( rbase ); RuleImpl rule = new RuleImpl( "rule1").setPackage( "org.pkg1" ); InternalKnowledgePackage pkg = new KnowledgePackageImpl( "org.pkg1" ); pkg.getDialectRuntimeRegistry().setDialectData( "mvel", new MVELDialectRuntimeData() ); pkg.addRule( rule ); buildContext.setRule( rule ); return buildContext; }
= (MVELDialectRuntimeData) context.getPkg().getDialectRuntimeRegistry().getDialectData( dialect.getId() ); data.addCompileable( action, expr );
context.getPkg().getName() + "." + processDescr.getClassName(), processDescr, processClass, .getDialectRuntimeRegistry().getDialectData(javaDialect.getId());