[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