[rules-users] newbie: getWorkingMemoryEntryPoint returns NULL

Itai Frenkel itaif at gigaspaces.com
Thu Apr 11 11:09:11 EDT 2013


Hello,

I've got the following basic code that sets up drools in STREAM mode, with a pseudo clock.
And it fails on the last line that asserts there is an entrypoint named "testEntryPoint".
The DRL file references the entry-point which according to the documentation is enough.

What am I missing?
Itai

declare Message
@role(event)
@timestamp(timestamp)
end

declare AppInfo
@role(event)
@timestamp(timestamp)
end

rule "Change message type after one minute"
    dialect "mvel"
when
    $appinfo:AppInfo() from entry-point "testEntryPoint"
    $message:Message( type == "before", $msgtext : msgtext, this after[ 1m ] $appinfo )
        from entry-point "testEntryPoint"
then
    System.out.println( $msgtext );
    modify ( $message ) {
      type = "after"
    }
end


    private void initDrools() {

        KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
        // Stream mode allows interacting with the clock (Drools Fusion)
        config.setOption(EventProcessingOption.STREAM);
        kbase = KnowledgeBaseFactory.newKnowledgeBase(config);

        kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        // this will parse and compile in one step
        kbuilder.add(ResourceFactory.newClassPathResource(RULE_FILE, DroolsExpertTest.class), ResourceType.DRL);

        // Check the builder for errors
        assertThat(kbuilder.hasErrors())
                .overridingErrorMessage(kbuilder.getErrors().toString())
                .isFalse();

        // get the compiled packages (which are serializable)
        Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();

        // add the packages to a knowledgebase (deploy the knowledge packages).
        kbase.addKnowledgePackages(pkgs);

        KnowledgeSessionConfiguration conf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
        conf.setOption(ClockTypeOption.get("pseudo"));
        ksession = kbase.newStatefulKnowledgeSession(conf,null);
        clock = ksession.getSessionClock();
        entryPoint = ksession.getWorkingMemoryEntryPoint("testEntryPoint");
        assertThat(entryPoint).isNotNull();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130411/13997525/attachment-0001.html 


More information about the rules-users mailing list