[jboss-svn-commits] JBL Code SVN: r11653 - labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/facades.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 3 17:57:36 EDT 2007


Author: estebanschifman
Date: 2007-05-03 17:57:36 -0400 (Thu, 03 May 2007)
New Revision: 11653

Modified:
   labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/facades/DeployProcessDefinitionFacade.java
Log:
Don't cache process definition when it comes from file

Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/facades/DeployProcessDefinitionFacade.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/facades/DeployProcessDefinitionFacade.java	2007-05-03 21:54:19 UTC (rev 11652)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/impl/facades/DeployProcessDefinitionFacade.java	2007-05-03 21:57:36 UTC (rev 11653)
@@ -24,6 +24,7 @@
 
 import java.io.InputStream;
 
+import org.apache.log4j.Logger;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
@@ -47,18 +48,18 @@
 
 	public DeployProcessDefinitionFacade(ConfigTree config) throws ConfigurationException
 	{
-		String filename=config.getAttribute(Constants.PROCESS_DEFINITION_FILE_TAG);		
+		_fileName=config.getAttribute(Constants.PROCESS_DEFINITION_FILE_TAG);		
 		ConfigTree[] childs = config.getChildren(Constants.PROCESS_DEFINITION_XML_TAG);
 
-		if (null!=filename)
+		if (null!=_fileName)
 		{
 			if (childs.length>0)
 				throw new ConfigurationException
 					("You can specify ither '"+Constants.PROCESS_DEFINITION_FILE_TAG+"' attribute OR "
 					+Constants.PROCESS_DEFINITION_XML_TAG+"> element, but not both");
 			
-			InputStream stream = ClassUtil.getResourceAsStream(filename, BpmProcessor.class);
-			_processDef = ProcessDefinition.parseXmlInputStream(stream);
+			InputStream stream = ClassUtil.getResourceAsStream(_fileName, BpmProcessor.class);
+			_validProcessDef = ProcessDefinition.parseXmlInputStream(stream);
 			return;
 		}
 		
@@ -84,7 +85,7 @@
 		final String xmlString = sb.append(def[0].toString()).toString();
 		try
 		{
-			_processDef = ProcessDefinition.parseXmlString(xmlString);
+			_validProcessDef = ProcessDefinition.parseXmlString(xmlString);
 		}
 		catch (Exception e)
 		{
@@ -94,7 +95,18 @@
 	
 	public void preFormat(Message message) 
 	{
-		message.getBody().add(Constants.PROCESS_DEFINITION, _processDef);
+		if (null!= _fileName)
+			try
+			{
+				InputStream stream = ClassUtil.getResourceAsStream(_fileName, BpmProcessor.class);
+				_validProcessDef = ProcessDefinition.parseXmlInputStream(stream);
+			}
+			catch (Exception e)
+			{
+				_logger.info("Keeping previous process definition");
+				_logger.error("Invalid process definition file <"+_fileName+">",e);
+			}
+		message.getBody().add(Constants.PROCESS_DEFINITION, _validProcessDef);
 	} // ________________________________
     
 	public Message postFormat(Message message) 
@@ -103,5 +115,7 @@
 		return message;
 	} // ________________________________
     
-	ProcessDefinition _processDef;
+	protected String			_fileName;
+	protected ProcessDefinition _validProcessDef;
+	private static final Logger _logger = Logger.getLogger(DeployProcessDefinitionFacade.class);
 }




More information about the jboss-svn-commits mailing list