diff options
Diffstat (limited to 'trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java')
-rw-r--r-- | trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java b/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java deleted file mode 100644 index 683abee4da..0000000000 --- a/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java +++ /dev/null @@ -1,209 +0,0 @@ -/* -* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -* -*/ -package org.apache.qpid.server.logging; - -import org.apache.qpid.client.AMQDestination; -import org.apache.qpid.client.AMQSession; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.server.registry.ApplicationRegistry; -import org.apache.qpid.server.configuration.ServerConfiguration; -import org.apache.qpid.test.utils.QpidTestCase; -import org.apache.qpid.util.FileUtils; -import org.apache.qpid.util.LogMonitor; - -import javax.jms.Connection; -import javax.jms.Queue; -import javax.jms.Session; -import java.io.File; - -public class AlertingTest extends AbstractTestLogging -{ - private String VIRTUALHOST = "test"; - private Session _session; - private Connection _connection; - private Queue _destination; - private int _numMessages; - - private static final int ALERT_LOG_WAIT_PERIOD = 5000; - private static final String MESSAGE_COUNT_ALERT = "MESSAGE_COUNT_ALERT"; - - public void setUp() throws Exception - { - // set QPID_WORK to be [QPID_WORK|io.tmpdir]/<testName> - // This ensures that each of these tests operate independantly. - setSystemProperty("QPID_WORK", - System.getProperty("QPID_WORK", - System.getProperty("java.io.tmpdir")) - + File.separator + getName()); - - // Update the configuration to make our virtualhost Persistent. - makeVirtualHostPersistent(VIRTUALHOST); - - _numMessages = 50; - - // Then we do the normal setup stuff like starting the broker, getting a connection etc. - super.setUp(); - - setupConnection(); - } - - @Override - public void tearDown() throws Exception - { - // Ensure queue is clean for next run. - drainQueue(_destination); - super.tearDown(); - } - - - /** - * Create a new connection and ensure taht our destination queue is created - * and bound. - * - * Note that the tests here that restart the broker rely on persistence. - * However, the queue creation here is transient. So the queue will not be - * rebound on restart. Hence the consumer creation here rather than just the - * once. - * - * The persistent messages will recreate the queue but not bind it (as it - * was not a durable queue) However, the consumer creation here will ensure - * that the queue is correctly bound and can receive new messages. - * - * @throws Exception - */ - private void setupConnection() - throws Exception - { - _connection = getConnection(); - _session = _connection.createSession(true, Session.SESSION_TRANSACTED); - _destination = _session.createQueue(getTestQueueName()); - - // Consumer is only used to actually create the destination - _session.createConsumer(_destination).close(); - } - - /** - * Checks the log file for MESSAGE_COUNT_ALERT, fails() the test if it's not found and - * places the entire contents in the message to help debug cruise control failures. - * - * @throws Exception - */ - private void wasAlertFired() throws Exception - { - if (!_monitor.waitForMessage(MESSAGE_COUNT_ALERT, ALERT_LOG_WAIT_PERIOD)) - { - StringBuffer message = new StringBuffer("Could not find 'MESSAGE_COUNT_ALERT' in log file: " + _monitor.getMonitoredFile().getAbsolutePath()); - message.append("\n"); - - // Add the current contents of the log file to test output - message.append(_monitor.readFile()); - - // Write the test config file to test output - message.append("Server configuration overrides in use:\n"); - message.append(FileUtils.readFileAsString(getTestConfigFile())); - - message.append("\nVirtualhost maxMessageCount:\n"); - message.append((new ServerConfiguration(_configFile)).getConfig().getString("virtualhosts.virtualhost." + VIRTUALHOST + ".queues.maximumMessageCount")); - - fail(message.toString()); - } - } - - public void testAlertingReallyWorks() throws Exception - { - // Send 5 messages, make sure that the alert was fired properly. - sendMessage(_session, _destination, _numMessages + 1); - _session.commit(); - wasAlertFired(); - } - - public void testAlertingReallyWorksWithRestart() throws Exception - { - sendMessage(_session, _destination, _numMessages + 1); - _session.commit(); - stopBroker(); - - // Rest the monitoring clearing the current output file. - _monitor.reset(); - startBroker(); - wasAlertFired(); - } - - /** - * Test that if the alert value is change from the previous value we can - * still get alerts. - * - * Test sends two messages to the broker then restarts the broker with new - * configuration. - * - * If the test is running inVM the test validates that the new configuration - * has been applied. - * - * Validates that we only have two messages on the queue and then sends - * enough messages to trigger the alert. - * - * The alert is then validate. - * - * - * @throws Exception - */ - public void testAlertingReallyWorksWithChanges() throws Exception - { - // send some messages and nuke the logs - sendMessage(_session, _destination, 2); - _session.commit(); - // To prevent any failover/retry/connection dropped errors - _connection.close(); - - stopBroker(); - - _monitor.reset(); - - // Change max message count to 5, start broker and make sure that that's triggered at the right time - setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".queues.maximumMessageCount", "5"); - - startBroker(); - - if (!isExternalBroker()) - { - assertEquals("Alert Max Msg Count is not correct", 5, ApplicationRegistry.getInstance().getVirtualHostRegistry(). - getVirtualHost(VIRTUALHOST).getQueueRegistry().getQueue(new AMQShortString(_destination.getQueueName())). - getMaximumMessageCount()); - } - - setupConnection(); - - // Validate the queue depth is as expected - long messageCount = ((AMQSession) _session).getQueueDepth((AMQDestination) _destination); - assertEquals("Broker has invalid message count for test", 2, messageCount); - - // Ensure the alert has not occured yet - assertLoggingNotYetOccured(MESSAGE_COUNT_ALERT); - - // Trigger the new value - sendMessage(_session, _destination, 3); - _session.commit(); - - // Validate that the alert occured. - wasAlertFired(); - } - -} |