6 Replies Latest reply on Aug 14, 2006 10:12 AM by Abhiram Jakkireddy

    delegation for ActionHandler - what am I missing?

    Willem van Asperen Newbie

      I have the following node in my process:

      <node name="sensor news">
       <action name="conduct news sensor" class="com.paconsulting.cucumber.rules.impl.RulesActionHandler" config-type="bean">
       <ruleEngineJndiName>java:/cucumber/RulesEngine</ruleEngineJndiName>
       <ruleBaseName>news-sensor</ruleBaseName>
       </action>
       <transition to="check errors"></transition>
       </node>

      The entire process deploys fine.
      The ActionHandler code is, simply:
      package com.paconsulting.cucumber.rules.impl;
      
      imports...
      
      public class RulesActionHandler implements ActionHandler {
       private static final long serialVersionUID = 1L;
      
       private static Log log = LogFactory.getLog(RulesActionHandler.class);
      
       private String ruleEngineJndiName = "";
       private String ruleBaseName = "";
      
       public String getRuleBaseName() {
       return ruleBaseName;
       }
       public void setRuleBaseName(String ruleBaseName) {
       this.ruleBaseName = ruleBaseName;
       }
       public String getRuleEngineJndiName() {
       return ruleEngineJndiName;
       }
       public void setRuleEngineJndiName(String ruleEngineJndiName) {
       this.ruleEngineJndiName = ruleEngineJndiName;
       }
      
       private RulesEngine getRulesEngine() {
      <snip>
       }
       public void execute(ExecutionContext executionContext) throws Exception {
       long engineId = getRulesEngine().createNewEngine(getRuleBaseName());
       assertVariables(engineId,executionContext.getContextInstance().getVariables());
       getRulesEngine().fireRules(engineId);
       refreshVariables(engineId,executionContext.getContextInstance().getVariables());
       }
       private void assertVariables(long engineId, Map variables) {
      <snip>
       }
       private void refreshVariables(long engineId, Map variables) {
      <snip>
       }
      }

      When the process engine reaches this node, is tells me:

      11:15:07,172 ERROR [BeanInstantiator] couldn't set property 'ruleEngineJndiName' to value '<ruleEngineJndiName>java:/cucumber/RulesEngine</ruleEngineJndiName>'
      11:15:07,173 ERROR [BeanInstantiator] couldn't set property 'ruleBaseName' to value '<ruleBaseName>news-sensor</ruleBaseName>'
      1


      I have tried config-type="field", config-type="bean" and leaving config-type out.
      What am I missing?

      Thanks,
      Willem