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 2008/07/15 19:06:18 UTC
svn commit: r676978 [3/3] - in /incubator/qpid/trunk/qpid/java: ./
client/src/main/java/org/apache/qpid/client/
client/src/main/java/org/apache/qpid/client/failover/
client/src/main/java/org/apache/qpid/client/handler/
client/src/main/java/org/apache/q...
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java Tue Jul 15 10:06:16 2008
@@ -29,13 +29,16 @@
import org.apache.qpid.client.transport.TransportConnection;
import org.apache.qpid.url.AMQBindingURL;
import org.apache.qpid.url.BindingURL;
+import org.apache.qpid.url.URLSyntaxException;
import org.apache.qpid.exchange.ExchangeDefaults;
import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.AMQException;
import javax.jms.*;
import java.util.List;
import java.util.Collections;
import java.util.ArrayList;
+import java.net.URISyntaxException;
public class ReturnUnroutableMandatoryMessageTest extends TestCase implements ExceptionListener
{
@@ -75,78 +78,90 @@
*
* @throws Exception
*/
- public void testReturnUnroutableMandatoryMessage_HEADERS() throws Exception
+ public void testReturnUnroutableMandatoryMessage_HEADERS() throws URISyntaxException, AMQException, JMSException
{
_bouncedMessageList.clear();
- Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
-
-
- AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
- AMQHeadersExchange queue = new AMQHeadersExchange(new AMQBindingURL(ExchangeDefaults.HEADERS_EXCHANGE_CLASS + "://" + ExchangeDefaults.HEADERS_EXCHANGE_NAME + "/test/queue1?" + BindingURL.OPTION_ROUTING_KEY + "='F0000=1'"));
- FieldTable ft = new FieldTable();
- ft.setString("F1000", "1");
- MessageConsumer consumer = consumerSession.createConsumer(queue, AMQSession.DEFAULT_PREFETCH_LOW_MARK, AMQSession.DEFAULT_PREFETCH_HIGH_MARK, false, false, (String) null, ft);
-
- //force synch to ensure the consumer has resulted in a bound queue
- //((AMQSession) consumerSession).declareExchangeSynch(ExchangeDefaults.HEADERS_EXCHANGE_NAME, ExchangeDefaults.HEADERS_EXCHANGE_CLASS);
- // This is the default now
-
- Connection con2 = new AMQConnection(BROKER, "guest", "guest", "producer1", VIRTUALHOST);
-
- con2.setExceptionListener(this);
- AMQSession producerSession = (AMQSession) con2.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
- // Need to start the "producer" connection in order to receive bounced messages
- _logger.info("Starting producer connection");
- con2.start();
-
-
- MessageProducer nonMandatoryProducer = producerSession.createProducer(queue, false, false);
- MessageProducer mandatoryProducer = producerSession.createProducer(queue);
-
- // First test - should neither be bounced nor routed
- _logger.info("Sending non-routable non-mandatory message");
- TextMessage msg1 = producerSession.createTextMessage("msg1");
- nonMandatoryProducer.send(msg1);
+ MessageConsumer consumer = null;
+ AMQSession producerSession = null;
+ AMQHeadersExchange queue = null;
+ Connection con=null, con2 = null;
+ try
+ {
+ con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
- // Second test - should be bounced
- _logger.info("Sending non-routable mandatory message");
- TextMessage msg2 = producerSession.createTextMessage("msg2");
- mandatoryProducer.send(msg2);
+ AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
- // Third test - should be routed
- _logger.info("Sending routable message");
- TextMessage msg3 = producerSession.createTextMessage("msg3");
- msg3.setStringProperty("F1000", "1");
- mandatoryProducer.send(msg3);
+ queue = new AMQHeadersExchange(new AMQBindingURL(ExchangeDefaults.HEADERS_EXCHANGE_CLASS + "://" + ExchangeDefaults.HEADERS_EXCHANGE_NAME + "/test/queue1?" + BindingURL.OPTION_ROUTING_KEY + "='F0000=1'"));
+ FieldTable ft = new FieldTable();
+ ft.setString("F1000", "1");
+ consumer = consumerSession.createConsumer(queue, AMQSession.DEFAULT_PREFETCH_LOW_MARK, AMQSession.DEFAULT_PREFETCH_HIGH_MARK, false, false, (String) null, ft);
+ //force synch to ensure the consumer has resulted in a bound queue
+ //((AMQSession) consumerSession).declareExchangeSynch(ExchangeDefaults.HEADERS_EXCHANGE_NAME, ExchangeDefaults.HEADERS_EXCHANGE_CLASS);
+ // This is the default now
- _logger.info("Starting consumer connection");
- con.start();
- TextMessage tm = (TextMessage) consumer.receive(1000L);
+ con2 = new AMQConnection(BROKER, "guest", "guest", "producer1", VIRTUALHOST);
- assertTrue("No message routed to receiver", tm != null);
- assertTrue("Wrong message routed to receiver: " + tm.getText(), "msg3".equals(tm.getText()));
+ con2.setExceptionListener(this);
+ producerSession = (AMQSession) con2.createSession(false, Session.CLIENT_ACKNOWLEDGE);
- try
- {
- Thread.sleep(1000L);
+ // Need to start the "producer" connection in order to receive bounced messages
+ _logger.info("Starting producer connection");
+ con2.start();
}
- catch (InterruptedException e)
+ catch (JMSException jmse)
{
- ;
+ fail(jmse.getMessage());
}
- assertTrue("Wrong number of messages bounced (expect 1): " + _bouncedMessageList.size(), _bouncedMessageList.size() == 1);
- Message m = _bouncedMessageList.get(0);
- assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
+ try
+ {
+ MessageProducer nonMandatoryProducer = producerSession.createProducer(queue, false, false);
+ MessageProducer mandatoryProducer = producerSession.createProducer(queue);
+ // First test - should neither be bounced nor routed
+ _logger.info("Sending non-routable non-mandatory message");
+ TextMessage msg1 = producerSession.createTextMessage("msg1");
+ nonMandatoryProducer.send(msg1);
+
+ // Second test - should be bounced
+ _logger.info("Sending non-routable mandatory message");
+ TextMessage msg2 = producerSession.createTextMessage("msg2");
+ mandatoryProducer.send(msg2);
+
+ // Third test - should be routed
+ _logger.info("Sending routable message");
+ TextMessage msg3 = producerSession.createTextMessage("msg3");
+ msg3.setStringProperty("F1000", "1");
+ mandatoryProducer.send(msg3);
+
+ _logger.info("Starting consumer connection");
+ con.start();
+ TextMessage tm = (TextMessage) consumer.receive(1000L);
+
+ assertTrue("No message routed to receiver", tm != null);
+ assertTrue("Wrong message routed to receiver: " + tm.getText(), "msg3".equals(tm.getText()));
+
+ try
+ {
+ Thread.sleep(1000L);
+ }
+ catch (InterruptedException e)
+ {
+ ;
+ }
+
+ assertTrue("Wrong number of messages bounced (expect 1): " + _bouncedMessageList.size(), _bouncedMessageList.size() == 1);
+ Message m = _bouncedMessageList.get(0);
+ assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
+ }
+ catch (JMSException jmse)
+ {
+ }
con.close();
con2.close();
-
}
public void testReturnUnroutableMandatoryMessage_QUEUE() throws Exception
@@ -154,7 +169,6 @@
_bouncedMessageList.clear();
Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
-
AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
AMQQueue valid_queue = new AMQQueue(ExchangeDefaults.DIRECT_EXCHANGE_CLASS, "testReturnUnroutableMandatoryMessage_QUEUE");
@@ -174,7 +188,6 @@
_logger.info("Starting producer connection");
con2.start();
-
MessageProducer nonMandatoryProducer = producerSession.createProducer(valid_queue, false, false);
MessageProducer mandatoryProducer = producerSession.createProducer(invalid_queue);
@@ -188,7 +201,6 @@
TextMessage msg2 = producerSession.createTextMessage("msg2");
mandatoryProducer.send(msg2);
-
_logger.info("Starting consumer connection");
con.start();
TextMessage tm = (TextMessage) consumer.receive(1000L);
@@ -209,18 +221,15 @@
Message m = _bouncedMessageList.get(0);
assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
-
con.close();
con2.close();
}
-
public void testReturnUnroutableMandatoryMessage_TOPIC() throws Exception
{
_bouncedMessageList.clear();
Connection con = new AMQConnection(BROKER, "guest", "guest", "consumer1", VIRTUALHOST);
-
AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
AMQTopic valid_topic = new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_CLASS, "test.Return.Unroutable.Mandatory.Message.TOPIC");
@@ -240,7 +249,6 @@
_logger.info("Starting producer connection");
con2.start();
-
MessageProducer nonMandatoryProducer = producerSession.createProducer(valid_topic, false, false);
MessageProducer mandatoryProducer = producerSession.createProducer(invalid_topic);
@@ -254,7 +262,6 @@
TextMessage msg2 = producerSession.createTextMessage("msg2");
mandatoryProducer.send(msg2);
-
_logger.info("Starting consumer connection");
con.start();
TextMessage tm = (TextMessage) consumer.receive(1000L);
@@ -275,12 +282,10 @@
Message m = _bouncedMessageList.get(0);
assertTrue("Wrong message bounced: " + m.toString(), m.toString().contains("msg2"));
-
con.close();
con2.close();
}
-
public static junit.framework.Test suite()
{
return new junit.framework.TestSuite(ReturnUnroutableMandatoryMessageTest.class);
@@ -293,7 +298,8 @@
try
{
linkedException = jmsException.getLinkedException();
- } catch (Exception e)
+ }
+ catch (Exception e)
{
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java Tue Jul 15 10:06:16 2008
@@ -35,7 +35,6 @@
import javax.jms.IllegalStateException;
import java.io.File;
-
public class SimpleACLTest extends TestCase implements ConnectionListener
{
private String BROKER = "vm://:1";//"tcp://localhost:5672";
@@ -52,7 +51,7 @@
fail("Configuration file not found:" + defaultaclConfigFile);
}
- if (System.getProperty("QPID_HOME") == null)
+ if (System.getProperty("QPID_HOME") == null)
{
fail("QPID_HOME not set");
}
@@ -73,7 +72,7 @@
public String createConnectionString(String username, String password, String broker)
{
- return "amqp://" + username + ":" + password + "@clientid/test?brokerlist='" + broker + "'";
+ return "amqp://" + username + ":" + password + "@clientid/test?brokerlist='" + broker + "?retries='0''";
}
public void testAccessAuthorized() throws AMQException, URLSyntaxException
@@ -113,15 +112,9 @@
}
catch (AMQException amqe)
{
- if (amqe.getCause().getClass() == Exception.class)
- {
- System.err.println("QPID-594 : WARNING RACE CONDITION. Unable to determine cause of Connection Failure.");
- return;
- }
- assertEquals("Linked Exception Incorrect", JMSException.class, amqe.getCause().getClass());
- Exception linked = ((JMSException) amqe.getCause()).getLinkedException();
- assertEquals("Exception was wrong type", AMQAuthenticationException.class, linked.getClass());
- assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) linked).getErrorCode().getCode());
+ Throwable cause = amqe.getCause();
+ assertEquals("Exception was wrong type", AMQAuthenticationException.class, cause.getClass());
+ assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) cause).getErrorCode().getCode());
}
}
@@ -304,11 +297,6 @@
fail("Close is not expected to succeed.");
}
- catch (IllegalStateException ise)
- {
- System.err.println("QPID-826 : WARNING : Unable to determine cause of failure due to closure as we don't " +
- "record it for reporting after connection closed asynchronously");
- }
catch (JMSException e)
{
Throwable cause = e.getLinkedException();
@@ -567,15 +555,10 @@
fail("Close is not expected to succeed.");
}
- catch (IllegalStateException ise)
- {
- System.err.println("QPID-826 : WARNING : Unable to determine cause of failure due to closure as we don't " +
- "record it for reporting after connection closed asynchronously");
- }
catch (JMSException e)
{
Throwable cause = e.getLinkedException();
- cause.printStackTrace();
+
assertEquals("Incorrect exception", AMQAuthenticationException.class, cause.getClass());
assertEquals("Incorrect error code thrown", 403, ((AMQAuthenticationException) cause).getErrorCode().getCode());
}
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java Tue Jul 15 10:06:16 2008
@@ -159,6 +159,8 @@
assertEquals("Session reports Queue depth not as expected", depth, queueDepth);
+
+
// Browse the queue to get a second opinion
int msgCount = 0;
Enumeration msgs = queueBrowser.getEnumeration();
@@ -418,9 +420,14 @@
validate(messages);
}
+ /**
+ * Testing that a QueueBrowser doesn't actually consume messages from a broker when it fails over.
+ * @throws JMSException
+ */
public void testFailoverWithQueueBrowser() throws JMSException
{
int messages = 5;
+
sendMessages("connection1", messages);
sendMessages("connection2", messages);
@@ -475,7 +482,9 @@
//Close browser
queueBrowser.close();
- //Validate all messages still on Broker 1
+ _logger.info("Closed Queue Browser, validating messages on broker.");
+
+ //Validate all messages still on Broker
validate(messages);
}
@@ -495,21 +504,5 @@
//Validate all messages still on Broker 1
validate(messages);
}
-
- public void loop() throws JMSException
- {
- int run = 0;
- try
- {
- while (true)
- {
- System.err.println(run++ + ":************************************************************************");
- testQueueBrowserMsgsRemainOnQueue();
- }
- }
- catch (Exception e)
- {
- _logger.error(e, e);
- }
- }
+
}
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java?rev=676978&r1=676977&r2=676978&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java Tue Jul 15 10:06:16 2008
@@ -132,7 +132,7 @@
AMQConnection conn = null;
try
{
- conn = new AMQConnection("amqp://guest:rubbishpassword@clientid/test?brokerlist='" + getBroker() + "?retries='1''");
+ conn = new AMQConnection("amqp://guest:rubbishpassword@clientid/test?brokerlist='" + getBroker() + "?retries='0''");
fail("Connection should not be established password is wrong.");
}
catch (AMQConnectionFailureException amqe)