[rules-users] Smooks and Drools Pipeline
Mark Proctor
mproctor at codehaus.org
Mon Mar 2 23:53:51 EST 2009
checkout the unit test test, hopefully that should help:
http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/SmookStatefulSessionTest.java
Mark
Dave Macpherson wrote:
>
> Hey guys (Drools newbie here)
>
> I'm *attempting* to use the Drools/Smooks pipeline functionality to
> insert facts into my knowledgebase and I'm having a little trouble
> figuring out exactly how to do this. I've read the API docs for the
> 5.0.0.M5 and looked at the test cases but I guess I'm still not quite
> getting it, so I'm hoping someone here can point me in the right
> direction.
>
> I've got an XML file defined basically like this:
>
> <submission>
> <facility>
> <faccode>xxx</faccode>
> </facility>
> <lineitem>
> <acctcode>xxxx</acctcode>
> <amount>999</amount>
> <lineitem>
> <lineitem>
> <acctcode>xxxx</acctcode>
> <amount>999</amount>
> <lineitem>
> <submission>
>
> Within the XML file, there is 1 and only 1 "facility" node and
> multiple "lineitem" nodes. I'd like to use the DroolsSmooks pipleline
> functionality to use Smooks to insert 1 "facility" fact and multiple
> "lineitem" facts into my knowledgbase.
>
> The code I've written to do this is similar to the following (taken
> from sample test code I've seen in the Drools source):
>
> StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
> Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
> KnowledgeRuntimeCommand insertStage =
> PipelineFactory.newStatefulKnowledgeSessionInsert();
> insertStage.setReceiver(executeResultHandler);
> Smooks smooks = new Smooks("smooks-config.xml");
> Transformer transformer =
> PipelineFactory.newSmooksFromSourceTransformer(smooks, "root");
> transformer.setReceiver(insertStage);
> Pipeline pipeline =
> PipelineFactory.newStatefulKnowledgeSessionPipeline(ksession);
> pipeline.setReceiver(transformer);
> ResultHandlerImpl resultHandler = new ResultHandlerImpl();
> pipeline.insert(ResourceFactory.newClassPathResource("submission.xml"),
> resultHandler );
>
> While stepping through the above code, the last line returns an NPE.
> I've tried playing with the "Transformer transformer -
> PipeLineFactory..." line, substituting "root" for something else and
> it goes into an infinite loop. What is the purpose of the "root" value
> being set in this line?
>
> Can anyone tell me if I'm even on the right track here, or am I
> misunderstanding what the Smooks data loader can do for me?
>
> Regards,
>
> Dave
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090303/ac4fa49e/attachment.html
More information about the rules-users
mailing list