[jboss-svn-commits] JBL Code SVN: r9750 - labs/jbossesb/workspace/eschifman/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/jbpm.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Feb 25 19:06:10 EST 2007
Author: estebanschifman
Date: 2007-02-25 19:06:10 -0500 (Sun, 25 Feb 2007)
New Revision: 9750
Modified:
labs/jbossesb/workspace/eschifman/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/jbpm/CommandInterpreter.java
Log:
Add operations and fix bugs
Modified: labs/jbossesb/workspace/eschifman/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/jbpm/CommandInterpreter.java
===================================================================
--- labs/jbossesb/workspace/eschifman/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/jbpm/CommandInterpreter.java 2007-02-26 00:05:44 UTC (rev 9749)
+++ labs/jbossesb/workspace/eschifman/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/jbpm/CommandInterpreter.java 2007-02-26 00:06:10 UTC (rev 9750)
@@ -28,7 +28,9 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.MalformedEPRException;
import org.jboss.soa.esb.couriers.Courier;
+import org.jboss.soa.esb.couriers.CourierException;
import org.jboss.soa.esb.couriers.CourierFactory;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
@@ -69,19 +71,22 @@
* @param message - Containing payload and replyToEpr where to send the reply.
* @throws Exception
*/
- public void defaultReply(Message message) throws Exception
+ protected Message defaultReply(Message message)
+ throws MalformedEPRException,CourierException
{
EPR reply = message.getHeader().getCall().getReplyTo();
if (null==reply)
+ _logger.error("Null replyToEPR in message - response will not be sent to invoker");
+ else
{
- _logger.error("Null replyToEPR in message");
- return;
+ Courier courier = CourierFactory.getCourier(reply);
+ courier.deliver(message);
}
- Courier courier = CourierFactory.getCourier(reply);
- courier.deliver(message);
+ return message;
} // ________________________________
public Message process(Message message)
+ throws MalformedEPRException, CourierException
{
_command = new CommandVehicle(message);
Enum operator = _command.getOperator();
@@ -91,6 +96,8 @@
signalToken();
else if (operator.equals(CommandVehicle.Operation.signalProcess))
signalProcess();
+ else if (operator.equals(CommandVehicle.Operation.hasInstanceEnded))
+ checkInstanceEnded();
else if (operator.equals(CommandVehicle.Operation.getProcessInstanceVariables))
getProcessInstanceVariabes();
else if (operator.equals(CommandVehicle.Operation.setProcessInstanceVariables))
@@ -110,8 +117,11 @@
}
Message retMsg = _command.toCommandMessage();
-
- return retMsg;
+ retMsg.getHeader().getCall().setTo (message.getHeader().getCall().getTo());
+ EPR replyTo = message.getHeader().getCall().getReplyTo();
+ retMsg.getHeader().getCall().setReplyTo (replyTo);
+ retMsg.getHeader().getCall().setFaultTo (message.getHeader().getCall().getFaultTo());
+ return (null==replyTo)? retMsg : defaultReply(retMsg);
} // ________________________________
public void deployProcessDefinition()
@@ -119,7 +129,7 @@
try
{
prepareJbpm();
- _jbpmCtx.getSession().beginTransaction();
+// _jbpmCtx.getSession().beginTransaction();
ProcessDefinition def = _command.getProcessDefinition();
_jbpmCtx.deployProcessDefinition(def);
_command.setProcessDefinitionName (def.getName());
@@ -139,12 +149,13 @@
{
prepareJbpm();
_processInstance = _jbpmCtx.newProcessInstance(_command.getProcessDefinitionName());
- _jbpmCtx.getSession().beginTransaction();
+// _jbpmCtx.getSession().beginTransaction();
_jbpmCtx.save(_processInstance);
_command.setProcessVersion(_processInstance.getProcessDefinition().getVersion());
_command.setInstanceId (_processInstance.getId());
_command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName(_processInstance.getRootToken().getNode().getName());
_command.setReturnCode(CommandVehicle.RETCODE_OK);
}
catch (Exception e)
@@ -161,12 +172,16 @@
{
long id = _command.getInstanceId();
prepareJbpm();
- _jbpmCtx.getSession().beginTransaction();
+// _jbpmCtx.getSession().beginTransaction();
_processInstance = _jbpmCtx.loadProcessInstanceForUpdate(id);
_processInstance.signal();
_jbpmCtx.save(_processInstance);
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName (_processInstance.getRootToken().getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -182,12 +197,17 @@
{
long id = _command.getTokenId();
prepareJbpm();
- _jbpmCtx.getSession().beginTransaction();
- Token token = _jbpmCtx.loadTokenForUpdate(id);
- token.signal();
- _jbpmCtx.save(token);
+// _jbpmCtx.getSession().beginTransaction();
+ _token = _jbpmCtx.loadTokenForUpdate(id);
+ _token.signal();
+ _jbpmCtx.save(_token);
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _processInstance = _token.getProcessInstance();
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setInstanceId (_processInstance.getId());
+ _command.setCurrentNodeName (_token.getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -205,9 +225,13 @@
prepareJbpm();
_processInstance = _jbpmCtx.loadProcessInstance(id);
Map allVars = _processInstance.getContextInstance().getVariables();
- _command.setVariableValues(pickVarsFromMap(allVars));
+ _command.setVariableValues (pickVarsFromMap(allVars));
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName (_processInstance.getRootToken().getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -217,6 +241,29 @@
finally { cleanupJbpm(); }
} //________________________________
+ public void checkInstanceEnded()
+ {
+ try
+ {
+ long id = _command.getInstanceId();
+ prepareJbpm();
+ _processInstance = _jbpmCtx.loadProcessInstance(id);
+ _command.setUserObject(_processInstance.hasEnded());
+
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName (_processInstance.getRootToken().getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
+ }
+ catch (Exception e)
+ {
+ _command.setReturnCode(CommandVehicle.RETCODE_EXCEPTION);
+ _command.setException(e);
+ }
+ finally { cleanupJbpm(); }
+ } //________________________________
+
public void setProcessInstanceVariables()
{
try
@@ -230,12 +277,17 @@
}
long id = _command.getInstanceId();
prepareJbpm();
- _jbpmCtx.getSession().beginTransaction();
+// _jbpmCtx.getSession().beginTransaction();
_processInstance = _jbpmCtx.loadProcessInstanceForUpdate(id);
_processInstance.getContextInstance().addVariables(newVals);
_jbpmCtx.save(_processInstance);
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setInstanceId (_processInstance.getId());
+ _command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName (_processInstance.getRootToken().getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -255,7 +307,12 @@
Map allVars = _token.getProcessInstance().getContextInstance().getVariables(_token);
_command.setVariableValues(pickVarsFromMap(allVars));
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _processInstance = _token.getProcessInstance();
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setInstanceId (_processInstance.getId());
+ _command.setCurrentNodeName (_token.getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -278,12 +335,17 @@
}
long id = _command.getTokenId();
prepareJbpm();
- _jbpmCtx.getSession().beginTransaction();
+// _jbpmCtx.getSession().beginTransaction();
_token = _jbpmCtx.loadToken(id);
_token.getProcessInstance().getContextInstance().addVariables(newVals,_token);
_jbpmCtx.save(_token);
- _command.setReturnCode(CommandVehicle.RETCODE_OK);
+ _command.setProcessDefinitionName (_processInstance.getProcessDefinition().getName());
+ _command.setProcessVersion (_processInstance.getProcessDefinition().getVersion());
+ _command.setInstanceId (_processInstance.getId());
+ _command.setTokenId (_processInstance.getRootToken().getId());
+ _command.setCurrentNodeName (_processInstance.getRootToken().getNode().getName());
+ _command.setReturnCode (CommandVehicle.RETCODE_OK);
}
catch (Exception e)
{
@@ -342,7 +404,7 @@
} //________________________________
protected ConfigTree _config;
- protected CommandVehicle _command;
+ protected CommandVehicle _command;
protected JbpmConfiguration _jbpmConfig;
protected JbpmContext _jbpmCtx;
protected ProcessInstance _processInstance;
More information about the jboss-svn-commits
mailing list