[jboss-svn-commits] JBL Code SVN: r13804 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 26 23:32:46 EDT 2007


Author: kurt.stam at jboss.com
Date: 2007-07-26 23:32:46 -0400 (Thu, 26 Jul 2007)
New Revision: 13804

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java
Log:
JBESB-613 Adding functionality to write to file for unittesting purposes.

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java	2007-07-26 22:47:21 UTC (rev 13803)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java	2007-07-27 03:32:46 UTC (rev 13804)
@@ -19,8 +19,11 @@
  */
 package org.jboss.soa.esb.actions;
 
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.PrintStream;
 
+import org.apache.log4j.Logger;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.util.Util;
@@ -35,6 +38,9 @@
 	public static final String PRE_MESSAGE = "message";
 	public static final String FULL_MESSAGE = "printfull";
 	public static final String PRINT_STREAM = "outputstream";
+    public static final String TMP_FILE = "tmpFile";
+    
+    private Logger log = Logger.getLogger(this.getClass());
 	
 	/**
 	 * Public constructor.
@@ -62,25 +68,29 @@
 		PrintStream stream = (useOutputStream ? System.out : System.err);
 		
 		stream.println(printlnMessage + ": ");
+        
+        String messageStr=null;
 		
 		if (printFullMessage && (message != null))
 		{
-			// the message should be responsible for converting itself to a string.
-			
-			stream.println("[ "+message.toString()+" ]");
+			// the message should be responsible for converting itself to a string
+            messageStr = message.toString();
+			stream.println("[ "+messageStr+" ]");
+            
 		}
 		else
 		{
 			if (messageObject instanceof byte[])
 			{
-				stream.println("[" + Util.format(new String((byte[]) messageObject))
-						+ "].");
+                messageStr = Util.format(new String((byte[]) messageObject));
+				stream.println("[" + messageStr + "].");
 			}
 			else
 			{
-				if (messageObject != null)
-					stream.println("[" + Util.format(messageObject.toString())
-							+ "].");
+				if (messageObject != null) {
+                    messageStr = Util.format(messageObject.toString());
+					stream.println("[" + messageStr + "].");
+                }
 				for (int i = 0; i < message.getAttachment().getUnnamedCount(); i++)
 				{
 					Message attachedMessage = (Message) message.getAttachment()
@@ -91,6 +101,24 @@
 				}
 			}
 		}
+        
+        //write the file out to a tmp dir
+        if (messageStr!=null && messageStr.contains("[jbesb-filename]")) {
+            int start = messageStr.indexOf("[jbesb-filename]") + 16;
+            int end   = messageStr.indexOf("[/jbesb-filename]");
+            String filename = messageStr.substring(start, end);
+            String tmpDir = System.getProperty("java.io.tmpdir");
+            stream.println("Writing " + tmpDir + filename);
+            File file = new File(tmpDir + filename);
+            try {
+                    FileOutputStream outputStream = new FileOutputStream(file);
+                    outputStream.write(messageStr.getBytes());
+                    outputStream.close();
+            } catch (Exception e) {
+                log.error("Can not write to file " + file.getPath());
+                log.error(e.getMessage(), e);
+            }
+        }
 
 		return message;
 	}




More information about the jboss-svn-commits mailing list