[jboss-svn-commits] JBL Code SVN: r8141 - in labs/jbossesb/trunk/product/core/rosetta: src/org/jboss/internal/soa/esb/couriers tests/src/org/jboss/internal/soa/esb/couriers/tests

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Dec 8 10:02:58 EST 2006


Author: estebanschifman
Date: 2006-12-08 10:02:51 -0500 (Fri, 08 Dec 2006)
New Revision: 8141

Modified:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
   labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java
Log:
FileCourier and FileCourierUnitTest now in working condition

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2006-12-08 14:30:33 UTC (rev 8140)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2006-12-08 15:02:51 UTC (rev 8141)
@@ -168,7 +168,10 @@
 					try { result = CourierUtil.messageFromLocalFile(work); }
 					catch (Exception e) 
 					{
-						handler.renameFile(work, errorFile(input));
+						if (null==errorFile(input))
+							handler.deleteFile(work);
+						else
+							handler.renameFile(work, errorFile(input));
 						continue;
 					}
 					File done = postFile(input);
@@ -202,10 +205,17 @@
 	
 	protected File errorFile(File input)
 	{
+		try 
+		{
+			if (_epr.getErrorDelete())
+				return null;
+		}
+		catch (Exception e) { _logger.warn("Problems in FileEpr",e); }
+
 		String sfx = null;
-//		try { sfx = _epr.getErrorSuffix(); }
-//		catch (URISyntaxException e) 
-//			{ _logger.warn("Malformed EPR",e); }
+		try { sfx = _epr.getErrorSuffix(); }
+		catch (URISyntaxException e) 
+			{ _logger.warn("Malformed EPR",e); }
 
 		if (Util.isNullString(sfx))
 		{
@@ -222,10 +232,7 @@
 			if (_epr.getPostDelete())
 				return null;
 		}
-		catch (Exception e) 
-			{
-				_logger.warn("Problems in FileEpr",e);
-			}
+		catch (Exception e) { _logger.warn("Problems in FileEpr",e); }
 
 		String inputDir = input.getParent();
 		String dir = null;

Modified: labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java	2006-12-08 14:30:33 UTC (rev 8140)
+++ labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java	2006-12-08 15:02:51 UTC (rev 8141)
@@ -59,7 +59,7 @@
 	
 	static File _tmpDir = new File(TMP_DIR);
 	static String TEST_SUFFIX	= ".testMessage";
-	static String ERROR_SUFFIX	= ".esbERROR";  // This is a FIXED value - The FileEpr has no placeholder for it
+	static String ERROR_SUFFIX	= ".myErrorSuffix";
 	static String WORK_SUFFIX	= ".inProcessMessage";
 	static String DONE_SUFFIX	= ".doneMessage";
 	
@@ -111,7 +111,6 @@
 		FileEpr toEpr = new FileEpr("file://"+TMP_DIR);
 		// FileEpr uses the postSuffix as the extension for messages delivered (default = ".esbMessage")
 		toEpr.setPostSuffix(TEST_SUFFIX);
-		Assert.assertEquals(toEpr.getPostSuffix(), TEST_SUFFIX);
 		
 		Message msg = MessageFactory.getInstance().getMessage();
 		msg.getBody().setContents(contents.getBytes());
@@ -137,12 +136,64 @@
 		String back = new String(retrieved.getBody().getContents());
 		Assert.assertEquals(contents,back);
 		_logger.info("Contents of retrieved msg equal original text <"+back+">");
+		
+		theFile = new File(_tmpDir,uid+TEST_SUFFIX+DONE_SUFFIX);
+		Assert.assertTrue(theFile.exists());
+		_logger.info("Retrieved message properly renamed to <"+theFile.toString()+">");
+		
 		purgeStaleFiles();
     }
 
 	@Test
-	public void testBadMessage() throws Exception 
+	public void testStoreAndDelete() throws Exception 
     {
+		String contents = "This is the text that travels in the Message body";
+
+		// toEpr for files must be a directory
+		FileEpr toEpr = new FileEpr("file://"+TMP_DIR);
+		// FileEpr uses the postSuffix as the extension for messages delivered (default = ".esbMessage")
+		toEpr.setPostSuffix(TEST_SUFFIX);
+		
+		Message msg = MessageFactory.getInstance().getMessage();
+		msg.getBody().setContents(contents.getBytes());
+
+		Call call = new Call(toEpr);
+		final String uid = UUID.randomUUID().toString();
+		call.setMessageID(new URI(uid));
+		msg.getHeader().setCall(call);
+		
+		CourierUtil.deliverMessage(msg);
+		File theFile = new File(_tmpDir,uid+TEST_SUFFIX);
+		Assert.assertTrue(theFile.exists());
+		_logger.info("Message file "+theFile.toString()+" successfully created");
+				
+		FileEpr fromEpr = new FileEpr(toEpr.getURL());
+		fromEpr.setInputSuffix(TEST_SUFFIX);
+		// setting postdelete to true will delete input Message files, if they were picked up
+		fromEpr.setPostDelete(true);
+		
+		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		Message retrieved = pickUp.pickup(1000);
+		Assert.assertFalse("Null message retrieved",null==retrieved);
+		
+		String back = new String(retrieved.getBody().getContents());
+		Assert.assertEquals(contents,back);
+		_logger.info("Contents of retrieved msg equal original text <"+back+">");
+		
+		FileFilter ff = new FileFilter()
+		{ public boolean accept(File file)
+			{return file.getName().startsWith(uid); }
+		};
+		File[] all = new File(TMP_DIR).listFiles(ff);
+		Assert.assertTrue(null==all || all.length<1);
+		_logger.info("Good message file properly deleted ");
+		
+		purgeStaleFiles();
+    }
+
+	@Test
+	public void testBadMessageRename() throws Exception 
+    {
 		String uid = UUID.randomUUID().toString();
 		File theFile = new File(_tmpDir,uid+TEST_SUFFIX);
 		PrintStream out = new PrintStream(theFile);
@@ -154,6 +205,9 @@
 		FileEpr fromEpr = new FileEpr("file://"+TMP_DIR);
 		fromEpr.setInputSuffix(TEST_SUFFIX);
 		fromEpr.setPostSuffix(DONE_SUFFIX);
+		fromEpr.setErrorSuffix(ERROR_SUFFIX);
+		// Don't delete - default is to delete files in error
+		fromEpr.setErrorDelete(false);
 		
 		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
@@ -166,4 +220,36 @@
 		purgeStaleFiles();
     }
 
+	@Test
+	public void testBadMessageDelete() throws Exception 
+    {
+		final String uid = UUID.randomUUID().toString();
+		File theFile = new File(_tmpDir,uid+TEST_SUFFIX);
+		PrintStream out = new PrintStream(theFile);
+		out.print("This is an invalid message");
+		out.close();
+		Assert.assertTrue(theFile.exists());
+		_logger.info("Invalid Message file "+theFile.toString()+" successfully created");
+				
+		FileEpr fromEpr = new FileEpr("file://"+TMP_DIR);
+		fromEpr.setInputSuffix(TEST_SUFFIX);
+		fromEpr.setPostSuffix(DONE_SUFFIX);
+		fromEpr.setErrorSuffix(ERROR_SUFFIX);
+		// Not using setErrorDelete(false) should delete files in error
+		
+		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		Message retrieved = pickUp.pickup(1000);
+		Assert.assertTrue("Null message retrieved",null==retrieved);
+		
+		FileFilter ff = new FileFilter()
+		{ public boolean accept(File file)
+			{return file.getName().startsWith(uid); }
+		};
+		File[] all = new File(TMP_DIR).listFiles(ff);
+		Assert.assertTrue(null==all || all.length<1);
+		_logger.info("Bad message file properly deleted ");
+		
+		purgeStaleFiles();
+    }
+
 }




More information about the jboss-svn-commits mailing list