You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2010/06/22 15:41:43 UTC
svn commit: r956889 - in
/qpid/trunk/qpid/java/broker-plugins/experimental/info: ./
src/test/java/org/apache/qpid/info/systest/
src/test/java/org/apache/qpid/info/test/
Author: ritchiem
Date: Tue Jun 22 13:41:42 2010
New Revision: 956889
URL: http://svn.apache.org/viewvc?rev=956889&view=rev
Log:
QPID-2555 : Info-Plugin systest fixes
Patch provided by Sorin Suciu
Added:
qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/
qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java
Modified:
qpid/trunk/qpid/java/broker-plugins/experimental/info/build.xml
qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java
Modified: qpid/trunk/qpid/java/broker-plugins/experimental/info/build.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/info/build.xml?rev=956889&r1=956888&r2=956889&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/experimental/info/build.xml (original)
+++ qpid/trunk/qpid/java/broker-plugins/experimental/info/build.xml Tue Jun 22 13:41:42 2010
@@ -18,10 +18,10 @@ nn - or more contributor license agreeme
- under the License.
-
-->
-<project name="AMQ Broker-Plugins" default="build">
+<project name="AMQ Broker Info Plugin" default="build">
- <property name="module.depends" value="common management/common broker broker-plugins"/>
- <property name="module.test.depends" value="test broker/test"/>
+ <property name="module.depends" value="common broker broker-plugins"/>
+ <property name="module.test.depends" value="test broker/test management/common client systests"/>
<property name="module.manifest" value="MANIFEST.MF"/>
<property name="module.plugin" value="true"/>
Added: qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java?rev=956889&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java (added)
+++ qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/systest/InfoPluginTest.java Tue Jun 22 13:41:42 2010
@@ -0,0 +1,249 @@
+package org.apache.qpid.info;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
+
+public class InfoPluginTest extends QpidBrokerTestCase
+{
+ private String QPID_HOME = null;
+
+ private ServerSocket server = null;
+
+ private final int port = 9000;
+
+ private static final String CR = System.getProperty("line.separator");
+
+ private static final String FS = File.separator;
+
+ private final String cfgRelPath = "etc" + FS + "qpidinfo.properties";
+
+ private File tmpCfgFile;
+
+ private final String soapEnvelopeHead = "<?xml version=\"1.0\"?><soap:Envelope xmlns:soap=\"http://www.w3.org/2001/12/soap-envelope\" soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\">";
+
+ private final String soapEnvelopeTail = "</soap:Envelope>";
+
+ private String soapMessage1 = "@ACTION" + "-" + "@VERSION";
+
+ private String soapMessage2 = "@VERSION" + "-" + "@ACTION";
+
+ private CountDownLatch latch = new CountDownLatch(2);
+
+ final List<List<String>> recv = new ArrayList<List<String>>();
+
+ Thread socketAcceptor;
+
+ public void setUp() throws Exception
+ {
+ QPID_HOME = System.getProperty("QPID_HOME");
+ if (QPID_HOME != null)
+ {
+ System.out.println("QPID_HOME=" + QPID_HOME);
+ } else
+ {
+ fail("QPID_HOME not set");
+ }
+ createConfigFile();
+ startSoapServer(port);
+ }
+
+ public void tearDown() throws Exception
+ {
+ System.out.println("*** Deleting the config file...");
+ if (tmpCfgFile.isFile())
+ tmpCfgFile.delete();
+ super.tearDown();
+ }
+
+ private void createConfigFile()
+ {
+ try
+ {
+ tmpCfgFile = new File(QPID_HOME + FS + cfgRelPath);
+ if (tmpCfgFile.isFile())
+ tmpCfgFile.delete();
+ tmpCfgFile.createNewFile();
+ assertTrue(tmpCfgFile.isFile());
+ FileWriter fwriter = new FileWriter(tmpCfgFile);
+ BufferedWriter writer = new BufferedWriter(fwriter);
+ writer.write("protocol=soap");
+ writer.write(CR);
+ writer.write("soap.hostname=localhost");
+ writer.write(CR);
+ writer.write("soap.port=" + port);
+ writer.write(CR);
+ writer.write(CR);
+ writer.write("[MSG1]");
+ writer.write(CR);
+ writer.write("soap.path=/info1");
+ writer.write(CR);
+ writer.write("soap.action=submitinfo1");
+ writer.write(CR);
+ writer.write("soap.envelope=" + soapEnvelopeHead + soapMessage1
+ + soapEnvelopeTail);
+ writer.write(CR);
+ writer.write(CR);
+ writer.write("[MSG2]");
+ writer.write(CR);
+ writer.write("soap.path=/info2");
+ writer.write(CR);
+ writer.write("soap.action=submitinfo2");
+ writer.write(CR);
+ writer.write("soap.envelope=" + soapEnvelopeHead + soapMessage2
+ + soapEnvelopeTail);
+ writer.write(CR);
+ writer.write(CR);
+ writer.close();
+ assertTrue("Config file size is zero", tmpCfgFile.length() > 0);
+ } catch (IOException e)
+ {
+ fail("Unable to create the qpidinfo.properties due to: "
+ + e.getMessage());
+ }
+ }
+
+ private void startSoapServer(int port) throws Exception
+ {
+ assertTrue("Port a negative number", port > 0);
+ assertTrue("Port higher than 65535", port < 65535);
+
+ try
+ {
+ server = new ServerSocket(port);
+ assertNotNull("SocketServer is null", server);
+ } catch (Exception ex)
+ {
+ fail("Unable to start the socket server due to: " + ex.getMessage());
+ }
+
+ socketAcceptor = new Thread()
+ {
+ public void run()
+ {
+ while (true)
+ {
+ try
+ {
+ Socket socket = server.accept();
+ new ConnectionHandler(socket);
+ } catch (IOException e)
+ {
+ fail("Error opening the socket in accept mode");
+ }
+ }
+ }
+ };
+ socketAcceptor.start();
+ System.out.println("*** Socket server started...");
+ }
+
+ class ConnectionHandler implements Runnable
+ {
+ private Socket socket;
+
+ public ConnectionHandler(Socket socket)
+ {
+ this.socket = socket;
+ Thread t = new Thread(this);
+ t.start();
+ }
+
+ public void run()
+ {
+ System.out.println("*** Connection handler running...");
+ List<String> buf = new ArrayList<String>();
+ String line;
+ try
+ {
+ BufferedReader br = new BufferedReader(new InputStreamReader(
+ socket.getInputStream()));
+ assertNotNull(br);
+ while ((line = br.readLine()) != null)
+ {
+ buf.add(line);
+ }
+ br.close();
+ System.out.println("*** Received buffer: " + buf);
+ System.out.println("*** Latch countdown");
+ latch.countDown();
+ synchronized (recv)
+ {
+ recv.add(buf);
+ }
+ } catch (Exception ex)
+ {
+ ex.printStackTrace();
+ fail("Exception while reading from the socket");
+ }
+
+ }
+
+ }
+
+ public void testInfoPlugin() throws Exception
+ {
+ super.setUp();
+ if (!latch.await(10, TimeUnit.SECONDS))
+ {
+ fail("Timeout awaiting for the latch, upon startup");
+ }
+
+ assertTrue("Received less than 2 messages", recv.size() > 1);
+ //Message 1
+ assertTrue("Message has 0 size", recv.get(0).size()>0);
+ assertEquals("Message does not have 8 fields", recv.get(0).size(), 8);
+ assertTrue("Message does not contain Host: localhost:9000",recv.get(0).contains("Host: localhost:9000"));
+ assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(0).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(0).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain STARTUP in the soap envelope", recv.get(0).get(7).contains("STARTUP"));
+
+ //Message 2
+ assertTrue("Message has 0 size", recv.get(1).size()>0);
+ assertEquals("Message does not have 8 fields", recv.get(1).size(), 8);
+ assertTrue("Message does not contain Host: localhost:9000",recv.get(1).contains("Host: localhost:9000"));
+ assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(1).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(1).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain STARTUP in the soap envelope", recv.get(0).get(7).contains("STARTUP"));
+
+ recv.clear();
+ latch = new CountDownLatch(2);
+
+ stopBroker();
+
+ if (!latch.await(10, TimeUnit.SECONDS))
+ {
+ fail("Timeout awaiting for the latch, upon shutdown");
+ }
+
+
+ assertTrue("Received less than 2 messages", recv.size() > 1);
+
+ // Message 1
+ assertTrue("Message does not contain Host: localhost:9000",recv.get(0).contains("Host: localhost:9000"));
+ assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(0).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(0).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain SHUTDOWN in the soap envelope", recv.get(0).get(7).contains("SHUTDOWN"));
+
+ // Message 2
+ assertTrue("Message does not contain Host: localhost:9000",recv.get(1).contains("Host: localhost:9000"));
+ assertTrue("Message does not contain: User-Agent: Axis2 ", recv.get(1).contains("User-Agent: Axis2"));
+ assertTrue("Message does not contain: SOAPAction: \"urn:submitinfo\"", recv.get(1).get(4).startsWith("SOAPAction: \"urn:submitinfo"));
+ assertTrue("Message does not contain SHUTDOWN in the soap envelope", recv.get(0).get(7).contains("SHUTDOWN"));
+
+ System.out.println("*** Stopping socket server...");
+ socketAcceptor.join(2000);
+ }
+
+}
Modified: qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java?rev=956889&r1=956888&r2=956889&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/experimental/info/src/test/java/org/apache/qpid/info/test/SoapClientTest.java Tue Jun 22 13:41:42 2010
@@ -38,7 +38,7 @@ import org.apache.qpid.info.util.SoapCli
public class SoapClientTest extends TestCase
{
- private final int port = 9000;
+ private final int port = 9900;
private final String hostName = "localhost";
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org