org.osesb.msgrouting.test.deployabletestpackage2
Class SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage

java.lang.Object
  extended by org.osesb.messagepipeline.PipelineStage
      extended by org.osesb.messagepipeline.builtinstages.FlowControlPipelineStage
          extended by org.osesb.messagepipeline.builtinstages.DroolsRuleFlowControlPipelineStage
              extended by org.osesb.messagepipeline.builtinstages.DroolsRuleXMLApplierFlowControlPipelineStage
                  extended by org.osesb.msgrouting.test.deployabletestpackage2.SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage

public class SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage
extends DroolsRuleXMLApplierFlowControlPipelineStage

SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage is the last PipelineStage to run in the MessagePipeline configured by processloanapplication-message-pipeline-config.xml.

The SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage configures a rule that runs one of three MessagePipelines: the 'processHighRiskLoanMessagePipeline', the 'processLowRiskLoanMessagePipeline', or the 'processHighValueCustomerLoanMessagePipeline', which are configured by loanprocessor-message-pipelines-config.xml.

The configured Drools rule selects the MessagePipeline that processes the loanApplicationRequest based on the 'creditRating' Element of the loanApplicationRequest message.

After super.runStage() runs the MessagePipeline selected by the configured rule, SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage sets the MessagePipeline result to the result returned by the MessagePipeline branch that was run. The result is a loanApplicationResponse message.

The Drools rule file, SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage.drl, is managed by the instance of the XMLRepositry configured by org/osesb/msgrouting/test/deployabletestpackage2/xml-repository/xml-filesystem-repository-test-config.xml.


Field Summary
 
Fields inherited from class org.osesb.messagepipeline.builtinstages.DroolsRuleFlowControlPipelineStage
droolsRuleApplier
 
Fields inherited from class org.osesb.messagepipeline.builtinstages.FlowControlPipelineStage
branchPipelinesThatWereLastRun, flowControlMessagePipelineBranchConfiguration, threadManager
 
Fields inherited from class org.osesb.messagepipeline.PipelineStage
log, messagePipelineContext, nextStage, parentMessagePipeline, pipelineStageConfiguration, previousStage, thisClassName
 
Constructor Summary
SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage(MessagePipeline parentMessagePipeline, PipelineStageConfiguration pipelineStageConfiguration)
          Creates a new instance of SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage.
 
Method Summary
static void main(java.lang.String[] args)
          main() For testing and sandboxing.
 boolean runStage(EAIMessage eaiMessage)
          Run PipelineStage logic.
 
Methods inherited from class org.osesb.messagepipeline.builtinstages.DroolsRuleXMLApplierFlowControlPipelineStage
setDroolsFactObjectList
 
Methods inherited from class org.osesb.messagepipeline.builtinstages.DroolsRuleFlowControlPipelineStage
beingDroppedFromPool, loadDroolsRuleApplierSupportClass, runBranchPipelines, stageProcessingComplete, stageProcessingStarting
 
Methods inherited from class org.osesb.messagepipeline.builtinstages.FlowControlPipelineStage
getBranchPipelinesThatWereLastRun, getFlowControlMessagePipelineBranchConfiguration, loadFlowControlMessagePipelineBranchConfiguration
 
Methods inherited from class org.osesb.messagepipeline.PipelineStage
commit, getMessagePipelineContext, getNextStage, getParentMessagePipeline, getPipelineStageConfiguration, getPreviousStage, handlePipelineException, handlePipelineException, logMessage, propagate, rollback, setNextStage, setOutputMessage, setPreviousStage, setResultMessage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage

public SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage(MessagePipeline parentMessagePipeline,
                                                                            PipelineStageConfiguration pipelineStageConfiguration)
                                                                     throws java.lang.Exception
Creates a new instance of SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage.

Parameters:
parentMessagePipeline - The MessagePipeline that constructed this PipelineStage.
pipelineStageConfiguration - A PipelineStageConfiguration for this PipelineStage.
Throws:
java.lang.Exception - if constructed with a null parentMessagePipeline or a null pipelineStageConfiguration.
Method Detail

runStage

public boolean runStage(EAIMessage eaiMessage)
                 throws PipelineStageException
Run PipelineStage logic.

After super.runStage() runs the MessagePipeline selected by the configured rule, SelectLoanProcessorMessagePipelineDroolsRuleFlowControlPipelineStage sets the MessagePipeline result to the result returned by the MessagePipeline branch that was run. The result is a loanApplicationResponse message.

Overrides:
runStage in class DroolsRuleFlowControlPipelineStage
Parameters:
eaiMessage - The EAI message, which is the output of the last PipeLineStage that invoked setOutputMessage(), or, if this is the first PiplelineStage, then this is the EAIMessage that the MessagePipeline was invoked with.
Returns:
true to continue pipeline processing or false to terminate pipeline processing.
Throws:
a - PipelineStageException if any errors occur.
PipelineStageException
See Also:
FlowControlPipelineStage.runStage(org.osesb.eaimessage.EAIMessage)

main

public static void main(java.lang.String[] args)
main() For testing and sandboxing.

Parameters:
args - commandline arguments