[jboss-svn-commits] JBL Code SVN: r9246 - labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 1 06:02:12 EST 2007
Author: kevin.conner at jboss.com
Date: 2007-02-01 06:02:12 -0500 (Thu, 01 Feb 2007)
New Revision: 9246
Modified:
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerBaseTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFile.xml
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJdbc.xml
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJms.xml
Log:
Changed tests to use notification isntead of creating files: JBESB-342
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerBaseTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerBaseTest.java 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerBaseTest.java 2007-02-01 11:02:12 UTC (rev 9246)
@@ -22,18 +22,19 @@
package org.jboss.soa.esb.listeners;
-import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
+import java.util.LinkedList;
import java.util.Properties;
+import java.util.Queue;
import java.util.Random;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
@@ -46,35 +47,93 @@
public class ListenerManagerBaseTest extends BaseTest
{
-
- static void bytesToFile(File file, byte[] text) throws Exception
+ /**
+ * The message lock.
+ */
+ private static Lock lock = new ReentrantLock() ;
+ /**
+ * The not empty condition.
+ */
+ private static Condition notEmpty = lock.newCondition() ;
+ /**
+ * The queue of messages.
+ */
+ private static final Queue<String> MESSAGES = new LinkedList<String>() ;
+
+ /**
+ * Clear the current message queue.
+ */
+ protected static void clearMessages()
{
- OutputStream out = new FileOutputStream(file);
- out.write(text);
- out.close();
+ lock.lock() ;
+ try
+ {
+ MESSAGES.clear() ;
+ }
+ finally
+ {
+ lock.unlock() ;
+ }
}
-
- static String stringFromFile(File file) throws Exception
+
+ /**
+ * Add the message to the message queue.
+ * @param text The message text.
+ */
+ protected static void addMessage(final byte[] text)
{
- ByteArrayOutputStream out = new ByteArrayOutputStream();
-
- if (!file.exists())
+ lock.lock() ;
+ try
{
- System.err
- .println("File does not exist: " + file.getAbsolutePath());
+ final boolean notify = (MESSAGES.size() == 0) ;
+ final String message = new String(text) ;
+ MESSAGES.add(message) ;
+ if (notify)
+ {
+ notEmpty.signal() ;
+ }
}
-
- FileInputStream inp = new FileInputStream(file);
- byte[] ba = new byte[1000];
- int iQ;
- while (-1 != (iQ = inp.read(ba)))
- if (iQ > 0)
- out.write(ba, 0, iQ);
- inp.close();
-
- out.close();
- return out.toString();
+ finally
+ {
+ lock.unlock() ;
+ }
}
+
+ /**
+ * Get the first message from the queue.
+ * @param timeout The maximum time to wait before returning.
+ * @return The first message in the queue or null on timeout.
+ */
+ protected static String getMessage(final long timeout)
+ {
+ final long endTime = System.currentTimeMillis() + timeout ;
+ lock.lock() ;
+ try
+ {
+ while (MESSAGES.size() == 0)
+ {
+ final long delay = endTime - System.currentTimeMillis() ;
+ if (delay > 0)
+ {
+ try
+ {
+ notEmpty.await(delay, TimeUnit.MILLISECONDS) ;
+ }
+ catch (final InterruptedException ie) {} // Ignore the interrupt
+ }
+ else
+ {
+ return null ;
+ }
+ }
+ final String message = MESSAGES.remove() ;
+ return message ;
+ }
+ finally
+ {
+ lock.unlock();
+ }
+ }
protected void runBeforeAllTests()
{
@@ -177,19 +236,6 @@
protected static Logger _logger = Logger
.getLogger(ListenerManagerBaseTest.class);
- static File _returnFile = new File(TMP_DIR, "ListenerManagerOutput.txt");
- static
- {
- try
- {
- _returnFile = File.createTempFile("ListenerManagerOutput", ".txt",
- new File(TMP_DIR));
- }
- catch (IOException e)
- {/* OK just leave the default fixed name */
- }
- };
-
private static String mDbDriver;
private static String mDbUrl;
@@ -211,17 +257,10 @@
_config = config;
}
- public Message writeToDisk(Message message) throws Exception
+ public Message notifyTest(Message message) throws Exception
{
- String id = message.getHeader().getCall().getMessageID()
- .toASCIIString();
- long lSleep = Math.abs(_rand.nextInt()) % 300;
+ addMessage(message.getBody().getContents());
- _logger.info("Random sleep on " + Thread.currentThread() + "="
- + lSleep + "-Message id=" + id);
- Thread.sleep(lSleep);
- bytesToFile(_returnFile, message.getBody().getContents());
-
return message;
}
}
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java 2007-02-01 11:02:12 UTC (rev 9246)
@@ -96,8 +96,6 @@
sender.deliver(message);
}
- _returnFile.delete();
-
final List<ManagedLifecycle> instances = LifecycleUtil.getListeners(tree) ;
final ManagedLifecycleController controller = new ManagedLifecycleController(instances) ;
controller.start() ;
@@ -111,15 +109,21 @@
// messages
// will be processed, and how many will remain unprocessed
- Thread.sleep(250 * howMany);
-
- _logger.debug("going to stop");
- controller.stop();
- _logger.debug("back from stop");
-
- Assert.assertEquals(THE_TEXT, stringFromFile(_returnFile));
-
- _returnFile.delete();
+ try
+ {
+ for (int count = 0 ; count < howMany ; count++)
+ {
+ final String response = getMessage(10000) ;
+ assertNotNull("getMessage timeout", response) ;
+ assertEquals(THE_TEXT, response);
+ }
+ }
+ finally
+ {
+ _logger.debug("going to stop");
+ controller.stop() ;
+ _logger.debug("back from stop");
+ }
}
}
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java 2007-02-01 11:02:12 UTC (rev 9246)
@@ -70,8 +70,7 @@
{
_logger.info("Writing temp files to " + TMP_DIR);
- // delete this one just to make sure asserts take the new ones
- _returnFile.delete();
+ clearMessages() ;
// initialize registry
runBeforeAllTests();
@@ -79,7 +78,7 @@
public void tearDown()
{
- _returnFile.delete();
+ clearMessages() ;
runAfterAllTests();
}
@@ -129,8 +128,6 @@
sender.deliver(message);
}
- _returnFile.delete();
-
// launch listener manager in a child thread
final ConfigTree newTree = ConfigTree.fromInputStream(new FileInputStream(
configFile));
@@ -150,15 +147,16 @@
// messages
// will be processed, and how many will remain unprocessed
- Thread.sleep(150 * howMany);
+ for (int count = 0 ; count < howMany ; count++)
+ {
+ final String response = getMessage(10000) ;
+ assertNotNull("getMessage timeout", response) ;
+ assertEquals(THE_TEXT, response);
+ }
_logger.debug("going to stop");
controller.stop();
_logger.debug("back from stop");
-
- assertEquals(THE_TEXT, stringFromFile(_returnFile));
-
- _returnFile.delete();
}
protected String _file;
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java 2007-02-01 11:02:12 UTC (rev 9246)
@@ -51,8 +51,7 @@
{
_logger.info("Writing temp files to " + TMP_DIR);
- // delete this one just to make sure asserts take the new ones
- _returnFile.delete();
+ clearMessages() ;
try
{
@@ -120,8 +119,6 @@
sender.deliver(message);
}
- _returnFile.delete();
-
// launch listener manager in a child thread
final ConfigTree newTree = ConfigTree.fromInputStream(new FileInputStream(
configFile));
@@ -146,15 +143,16 @@
// messages
// will be processed, and how many will remain unprocessed
- Thread.sleep(150 * howMany);
+ for (int count = 0 ; count < howMany ; count++)
+ {
+ final String response = getMessage(10000) ;
+ assertNotNull("getMessage timeout", response) ;
+ assertEquals(THE_TEXT, response);
+ }
_logger.debug("going to stop");
controller.stop();
_logger.debug("back from stop");
-
- assertEquals(THE_TEXT, stringFromFile(_returnFile));
-
- _returnFile.delete();
}
}
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java 2007-02-01 11:02:12 UTC (rev 9246)
@@ -56,8 +56,7 @@
{
_logger.info("Writing temp files to " + TMP_DIR);
- // delete this one just to make sure asserts take the new ones
- _returnFile.delete();
+ clearMessages() ;
// initialize registry
runBeforeAllTests();
@@ -109,8 +108,6 @@
sender.deliver(message);
}
- _returnFile.delete();
-
// launch listener manager in a child thread
final ConfigTree newTree = ConfigTree.fromInputStream(new FileInputStream(
configFile));
@@ -128,15 +125,16 @@
// messages
// will be processed, and how many will remain unprocessed
- Thread.sleep(150 * howMany);
+ for (int count = 0 ; count < howMany ; count++)
+ {
+ final String response = getMessage(10000) ;
+ assertNotNull("getMessage timeout", response) ;
+ assertEquals(THE_TEXT, response);
+ }
_logger.debug("going to stop");
controller.stop();
_logger.debug("back from stop");
-
- Assert.assertEquals(THE_TEXT, stringFromFile(_returnFile));
-
- _returnFile.delete();
}
protected String _file;
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFile.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFile.xml 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFile.xml 2007-02-01 11:02:12 UTC (rev 9246)
@@ -13,7 +13,7 @@
postSuffix=".processedOK"
/>
- <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="writeToDisk" />
+ <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="notifyTest" />
<action class="org.jboss.soa.esb.actions.Notifier" okMethod="notifyOK">
<NotificationList type="OK">
<target class="NotifyConsole" />
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml 2007-02-01 11:02:12 UTC (rev 9246)
@@ -13,7 +13,7 @@
postDelete="true"
/>
- <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="writeToDisk" />
+ <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="notifyTest" />
<action class="org.jboss.soa.esb.actions.Notifier" okMethod="notifyOK">
<NotificationList type="OK">
<target class="NotifyConsole" />
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJdbc.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJdbc.xml 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJdbc.xml 2007-02-01 11:02:12 UTC (rev 9246)
@@ -14,7 +14,7 @@
tablename="esb_messages"
/>
- <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="writeToDisk" />
+ <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="notifyTest" />
<action class="org.jboss.soa.esb.actions.Notifier" okMethod="notifyOK">
<NotificationList type="OK">
<target class="NotifyConsole" />
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJms.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJms.xml 2007-02-01 10:59:58 UTC (rev 9245)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerJms.xml 2007-02-01 11:02:12 UTC (rev 9246)
@@ -16,7 +16,7 @@
message-selector="messSelector='testJmsGateway'"
/>
- <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="writeToDisk" />
+ <action class="org.jboss.soa.esb.listeners.ListenerManagerBaseTest$MockMessageAwareAction" process="notifyTest" />
<action class="org.jboss.soa.esb.actions.Notifier" okMethod="notifyOK">
<NotificationList type="OK">
<target class="NotifyConsole" />
More information about the jboss-svn-commits
mailing list