diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-03-08 00:48:50 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-03-08 00:48:50 +0000 |
| commit | dbc2cf98b3ecbb42eea0fa218faca1f974b25bcb (patch) | |
| tree | 92a5397107fd6b9e04c0e71476b6f5fc1f1b7620 /qpid/java/broker-plugins | |
| parent | d9b099731447585d1af1b375fc641b3eb6850791 (diff) | |
| download | qpid-python-dbc2cf98b3ecbb42eea0fa218faca1f974b25bcb.tar.gz | |
QPID-5611 : Change the event logger from a singleton to an instance
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1575462 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
26 files changed, 223 insertions, 184 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java index f87374ac80..09ffb71519 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java @@ -20,16 +20,20 @@ */ package org.apache.qpid.server.security.access.config; +import org.apache.qpid.server.logging.EventLogger; + import java.io.File; public abstract class AbstractConfiguration implements ConfigurationFile { private File _file; private RuleSet _config; - - public AbstractConfiguration(File file) + private final EventLogger _eventLogger; + + public AbstractConfiguration(File file, final EventLogger eventLogger) { _file = file; + _eventLogger = eventLogger; } public File getFile() @@ -39,7 +43,7 @@ public abstract class AbstractConfiguration implements ConfigurationFile public RuleSet load() { - _config = new RuleSet(); + _config = new RuleSet(_eventLogger); return _config; } diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java index 34585bb4f6..df5b66da84 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java @@ -35,6 +35,7 @@ import java.util.Stack; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.IllegalConfigurationException; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.security.access.ObjectType; import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.security.access.Permission; @@ -67,9 +68,9 @@ public class PlainConfiguration extends AbstractConfiguration private StreamTokenizer _st; - public PlainConfiguration(File file) + public PlainConfiguration(File file, final EventLogger eventLogger) { - super(file); + super(file, eventLogger); } @Override diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java index 58f3c71c7c..6e9bc590f4 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java @@ -38,7 +38,7 @@ import javax.security.auth.Subject; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.AccessControlMessages; import org.apache.qpid.server.security.Result; import org.apache.qpid.server.security.access.ObjectProperties; @@ -70,9 +70,11 @@ public class RuleSet private final Map<Subject, Map<Operation, Map<ObjectType, List<Rule>>>> _cache = new WeakHashMap<Subject, Map<Operation, Map<ObjectType, List<Rule>>>>(); private final Map<String, Boolean> _config = new HashMap<String, Boolean>(); + private final EventLogger _eventLogger; - public RuleSet() + public RuleSet(EventLogger eventLogger) { + _eventLogger = eventLogger; // set some default configuration properties configure(DEFAULT_DENY, Boolean.TRUE); } @@ -321,14 +323,14 @@ public class RuleSet switch (permission) { case ALLOW_LOG: - SystemLog.message(AccessControlMessages.ALLOWED( + _eventLogger.message(AccessControlMessages.ALLOWED( action.getOperation().toString(), action.getObjectType().toString(), action.getProperties().toString())); case ALLOW: return Result.ALLOWED; case DENY_LOG: - SystemLog.message(AccessControlMessages.DENIED( + _eventLogger.message(AccessControlMessages.DENIED( action.getOperation().toString(), action.getObjectType().toString(), action.getProperties().toString())); @@ -437,4 +439,9 @@ public class RuleSet } return objects; } + + public EventLogger getEventLogger() + { + return _eventLogger; + } } diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/XMLConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/XMLConfiguration.java deleted file mode 100644 index a4f6f8b65a..0000000000 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/XMLConfiguration.java +++ /dev/null @@ -1,31 +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.security.access.config; - -import java.io.File; - -public class XMLConfiguration extends AbstractConfiguration -{ - public XMLConfiguration(File file) - { - super(file); - } -} diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java index f579ea0ec5..b56cd7c077 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java @@ -34,6 +34,7 @@ import org.apache.commons.lang.ObjectUtils; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.connection.ConnectionPrincipal; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.security.Result; import org.apache.qpid.server.security.AccessControl; import org.apache.qpid.server.security.access.ObjectProperties; @@ -49,9 +50,11 @@ public class DefaultAccessControl implements AccessControl private RuleSet _ruleSet; private File _aclFile; + private final EventLogger _eventLogger; - public DefaultAccessControl(String fileName) + public DefaultAccessControl(String fileName, final EventLogger eventLogger) { + _eventLogger = eventLogger; if (_logger.isDebugEnabled()) { _logger.debug("Creating AccessControl instance using file: " + fileName); @@ -63,6 +66,7 @@ public class DefaultAccessControl implements AccessControl DefaultAccessControl(RuleSet rs) throws ConfigurationException { _ruleSet = rs; + _eventLogger = rs.getEventLogger(); } public void open() @@ -74,7 +78,7 @@ public class DefaultAccessControl implements AccessControl throw new IllegalConfigurationException("ACL file '" + _aclFile + "' is not found"); } - ConfigurationFile configFile = new PlainConfiguration(_aclFile); + ConfigurationFile configFile = new PlainConfiguration(_aclFile, _eventLogger); _ruleSet = configFile.load(); } } @@ -103,7 +107,7 @@ public class DefaultAccessControl implements AccessControl } //verify it is parsable - new PlainConfiguration(_aclFile).load(); + new PlainConfiguration(_aclFile, _eventLogger).load(); } } diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java index f4e041a8d2..af3b456083 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java @@ -30,6 +30,7 @@ import java.util.Collections; import java.util.Map; import org.apache.qpid.server.configuration.IllegalConfigurationException; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.plugin.AccessControlFactory; import org.apache.qpid.server.security.AccessControl; import org.apache.qpid.server.util.ResourceBundleLoader; @@ -43,7 +44,7 @@ public class DefaultAccessControlFactory implements AccessControlFactory PATH )); - public AccessControl createInstance(Map<String, Object> attributes) + public AccessControl createInstance(Map<String, Object> attributes, final EventLogger eventLogger) { if(attributes == null || !ACL_FILE_PROVIDER_TYPE.equals(attributes.get(ATTRIBUTE_TYPE))) { @@ -56,7 +57,7 @@ public class DefaultAccessControlFactory implements AccessControlFactory throw new IllegalConfigurationException("Path to ACL was not specified!"); } - return new DefaultAccessControl(path); + return new DefaultAccessControl(path, eventLogger); } @Override diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java index e22f4af895..e457d191c9 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java @@ -27,14 +27,13 @@ import java.util.Map; import junit.framework.TestCase; import org.apache.qpid.server.configuration.IllegalConfigurationException; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.security.access.ObjectProperties; import org.apache.qpid.server.security.access.ObjectProperties.Property; import org.apache.qpid.server.security.access.ObjectType; import org.apache.qpid.server.security.access.Operation; -import org.apache.qpid.server.security.access.config.ConfigurationFile; -import org.apache.qpid.server.security.access.config.PlainConfiguration; -import org.apache.qpid.server.security.access.config.Rule; -import org.apache.qpid.server.security.access.config.RuleSet; + +import static org.mockito.Mockito.mock; /** * These tests check that the ACL file parsing works correctly. @@ -58,7 +57,7 @@ public class PlainConfigurationTest extends TestCase aclWriter.close(); // Load ruleset - PlainConfiguration configFile = new PlainConfiguration(acl); + PlainConfiguration configFile = new PlainConfiguration(acl, new EventLogger()); configFile.load(); return configFile; } @@ -68,7 +67,7 @@ public class PlainConfigurationTest extends TestCase try { // Load ruleset - ConfigurationFile configFile = new PlainConfiguration(new File("doesnotexist")); + ConfigurationFile configFile = new PlainConfiguration(new File("doesnotexist"), new EventLogger()); configFile.load(); fail("fail"); diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java index 07422e6bdb..5ed5b91cb8 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java @@ -26,19 +26,22 @@ import java.util.Map; import java.util.regex.Pattern; import org.apache.qpid.server.configuration.IllegalConfigurationException; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.model.GroupProvider; import org.apache.qpid.server.security.AccessControl; import org.apache.qpid.server.security.access.FileAccessControlProviderConstants; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.test.utils.TestFileUtils; +import static org.mockito.Mockito.mock; + public class DefaultAccessControlFactoryTest extends QpidTestCase { public void testCreateInstanceWhenAclFileIsNotPresent() { DefaultAccessControlFactory factory = new DefaultAccessControlFactory(); Map<String, Object> attributes = new HashMap<String, Object>(); - AccessControl acl = factory.createInstance(attributes); + AccessControl acl = factory.createInstance(attributes, new EventLogger()); assertNull("ACL was created without a configuration file", acl); } @@ -49,7 +52,7 @@ public class DefaultAccessControlFactoryTest extends QpidTestCase Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put(GroupProvider.TYPE, FileAccessControlProviderConstants.ACL_FILE_PROVIDER_TYPE); attributes.put(FileAccessControlProviderConstants.PATH, aclFile.getAbsolutePath()); - AccessControl acl = factory.createInstance(attributes); + AccessControl acl = factory.createInstance(attributes, new EventLogger()); acl.open(); assertNotNull("ACL was not created from acl file: " + aclFile.getAbsolutePath(), acl); @@ -65,7 +68,7 @@ public class DefaultAccessControlFactoryTest extends QpidTestCase attributes.put(FileAccessControlProviderConstants.PATH, aclFile.getAbsolutePath()); try { - AccessControl control = factory.createInstance(attributes); + AccessControl control = factory.createInstance(attributes, new EventLogger()); control.open(); fail("It should not be possible to create and initialise ACL with non existing file"); } diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java index f5f1866c3a..e35f4301ed 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java @@ -33,7 +33,7 @@ import junit.framework.TestCase; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.connection.ConnectionPrincipal; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.UnitTestMessageLogger; import org.apache.qpid.server.protocol.AMQConnectionModel; import org.apache.qpid.server.security.Result; @@ -56,7 +56,16 @@ public class DefaultAccessControlTest extends TestCase private static final String DENIED_GROUP = "denied_group"; private DefaultAccessControl _plugin = null; // Class under test - private final UnitTestMessageLogger messageLogger = new UnitTestMessageLogger(); + private UnitTestMessageLogger _messageLogger; + private EventLogger _eventLogger; + + public void setUp() throws Exception + { + super.setUp(); + _messageLogger = new UnitTestMessageLogger(); + _eventLogger = new EventLogger(_messageLogger); + _plugin = null; + } private void setUpGroupAccessControl() throws ConfigurationException { @@ -66,12 +75,11 @@ public class DefaultAccessControlTest extends TestCase private void configureAccessControl(final RuleSet rs) throws ConfigurationException { _plugin = new DefaultAccessControl(rs); - SystemLog.setRootMessageLogger(messageLogger); } private RuleSet createGroupRuleSet() { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // Rule expressed with username rs.grant(0, "user1", Permission.ALLOW, Operation.ACCESS, ObjectType.VIRTUALHOST, ObjectProperties.EMPTY); @@ -84,11 +92,6 @@ public class DefaultAccessControlTest extends TestCase return rs; } - protected void tearDown() throws Exception - { - super.tearDown(); - } - /** * ACL plugin must always abstain if there is no subject attached to the thread. */ @@ -153,12 +156,15 @@ public class DefaultAccessControlTest extends TestCase @Override public Object run() { - assertEquals("Expecting zero messages before test", 0, messageLogger.getLogMessages().size()); + assertEquals("Expecting zero messages before test", + 0, + _messageLogger.getLogMessages().size()); final Result result = _plugin.authorise(Operation.ACCESS, ObjectType.VIRTUALHOST, ObjectProperties.EMPTY); assertEquals(Result.DENIED, result); - assertEquals("Expecting one message before test", 1, messageLogger.getLogMessages().size()); - assertTrue("Logged message does not contain expected string", messageLogger.messageContains(0, "ACL-1002")); + assertEquals("Expecting one message before test", 1, _messageLogger.getLogMessages().size()); + assertTrue("Logged message does not contain expected string", + _messageLogger.messageContains(0, "ACL-1002")); return null; } }); @@ -170,7 +176,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessMethodWhenAllAccessOperationsAllowedOnAllComponents() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user4 access right on any method in any component rs.grant(1, "user4", Permission.ALLOW, Operation.ACCESS, ObjectType.METHOD, new ObjectProperties(ObjectProperties.STAR)); @@ -196,7 +202,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessMethodWhenAllAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user5 access right on any methods in "Test" component ObjectProperties ruleProperties = new ObjectProperties(ObjectProperties.STAR); @@ -296,7 +302,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessMethodWhenSpecifiedAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user6 access right on "getAttribute" method in "Test" component ObjectProperties ruleProperties = new ObjectProperties("getAttribute"); @@ -333,7 +339,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessUpdateMethodWhenAllRightsGrantedOnSpecifiedMethodForAllComponents() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user8 all rights on method queryNames in all component rs.grant(1, "user8", Permission.ALLOW, Operation.ALL, ObjectType.METHOD, new ObjectProperties("queryNames")); @@ -372,7 +378,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessUpdateMethodWhenAllRightsGrantedOnAllMethodsInAllComponents() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user9 all rights on any method in all component rs.grant(1, "user9", Permission.ALLOW, Operation.ALL, ObjectType.METHOD, new ObjectProperties()); @@ -410,7 +416,7 @@ public class DefaultAccessControlTest extends TestCase */ public void testAuthoriseAccessMethodWhenMatchingAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException { - final RuleSet rs = new RuleSet(); + final RuleSet rs = new RuleSet(_eventLogger); // grant user9 all rights on "getAttribute*" methods in Test component ObjectProperties ruleProperties = new ObjectProperties(); diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java index 52f55f7e2d..47f7f440fa 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java @@ -25,6 +25,7 @@ import java.security.Principal; import javax.security.auth.Subject; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.security.Result; import org.apache.qpid.server.security.access.ObjectProperties; import org.apache.qpid.server.security.access.ObjectType; @@ -35,6 +36,8 @@ import org.apache.qpid.server.security.access.config.RuleSet; import org.apache.qpid.server.security.auth.TestPrincipalUtils; import org.apache.qpid.test.utils.QpidTestCase; +import static org.mockito.Mockito.mock; + /** * This test checks that the {@link RuleSet} object which forms the core of the access control plugin performs correctly. * @@ -62,7 +65,7 @@ public class RuleSetTest extends QpidTestCase { super.setUp(); - _ruleSet = new RuleSet(); + _ruleSet = new RuleSet(new EventLogger()); } @Override diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java index d41af30a09..eeafb30642 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java @@ -22,7 +22,7 @@ package org.apache.qpid.server.protocol.v0_10; import org.apache.qpid.server.exchange.ExchangeImpl; import org.apache.qpid.server.flow.FlowCreditManager; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ChannelMessages; import org.apache.qpid.server.message.MessageInstance; import org.apache.qpid.server.message.ServerMessage; @@ -393,8 +393,9 @@ public class ConsumerTarget_0_10 extends AbstractConsumerTarget implements FlowC @Override public void performAction(final MessageInstance requeueEntry) { - SystemLog.message(ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), - requeueEntry.getOwningResource().getName())); + getEventLogger().message(ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), + requeueEntry.getOwningResource() + .getName())); } }, null); @@ -408,19 +409,24 @@ public class ConsumerTarget_0_10 extends AbstractConsumerTarget implements FlowC if(alternateExchange != null) { - SystemLog.message( ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), - alternateExchange.getName())); + getEventLogger().message(ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), + alternateExchange.getName())); } else { - SystemLog.message(ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), - queue.getName(), - msg.getInitialRoutingAddress())); + getEventLogger().message(ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), + queue.getName(), + msg.getInitialRoutingAddress())); } } } } + protected EventLogger getEventLogger() + { + return getSessionModel().getVirtualHost().getEventLogger(); + } + private boolean isMaxDeliveryLimitReached(MessageInstance entry) { final int maxDeliveryLimit = entry.getMaximumDeliveryCount(); diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java index 9346e3e7bb..cefd1ee0b2 100755 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java @@ -21,7 +21,7 @@ package org.apache.qpid.server.protocol.v0_10; import org.apache.qpid.protocol.ServerProtocolEngine; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ConnectionMessages; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; @@ -83,13 +83,13 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol } else { - SystemLog.message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false)); + _connection.getEventLogger().message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false)); _network = network; _connection.setNetworkConnection(network); _connection.setSender(new Disassembler(wrapSender(sender), MAX_FRAME_SIZE)); // FIXME Two log messages to maintain compatibility with earlier protocol versions - SystemLog.message(ConnectionMessages.OPEN(null, "0-10", null, null, false, true, false, false)); + _connection.getEventLogger().message(ConnectionMessages.OPEN(null, "0-10", null, null, false, true, false, false)); } } @@ -180,7 +180,7 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol @Override public Object run() { - SystemLog.message(ConnectionMessages.IDLE_CLOSE()); + _connection.getEventLogger().message(ConnectionMessages.IDLE_CLOSE()); _network.close(); return null; } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index 5096223889..d2d1fcdf78 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -32,8 +32,8 @@ import java.util.concurrent.atomic.AtomicLong; import javax.security.auth.Subject; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.connection.ConnectionPrincipal; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogSubject; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.logging.messages.ConnectionMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.Port; @@ -61,6 +61,7 @@ import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORM public class ServerConnection extends Connection implements AMQConnectionModel<ServerConnection, ServerSession>, LogSubject, AuthorizationHolder { + private final EventLogger _eventLogger; private Runnable _onOpenTask; private AtomicBoolean _logClosed = new AtomicBoolean(false); @@ -84,6 +85,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S { _connectionId = connectionId; _authorizedSubject.getPrincipals().add(new ConnectionPrincipal(this)); + _eventLogger = broker.getEventLogger(); } public Object getReference() @@ -97,6 +99,11 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S super.invoke(method); } + EventLogger getEventLogger() + { + return _virtualHost == null ? _eventLogger : _virtualHost.getEventLogger(); + } + @Override protected void setState(State state) { @@ -108,7 +115,14 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S { _onOpenTask.run(); } - SystemLog.message(ConnectionMessages.OPEN(getClientId(), "0-10", getClientVersion(), getClientProduct(), true, true, true, true)); + getEventLogger().message(ConnectionMessages.OPEN(getClientId(), + "0-10", + getClientVersion(), + getClientProduct(), + true, + true, + true, + true)); getVirtualHost().getConnectionRegistry().registerConnection(this); } @@ -131,7 +145,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S { if(_logClosed.compareAndSet(false, true)) { - SystemLog.message(this, ConnectionMessages.CLOSE()); + getEventLogger().message(this, ConnectionMessages.CLOSE()); } } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java index 453b3f85a5..5a17a652ef 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java @@ -45,7 +45,6 @@ import java.util.concurrent.atomic.AtomicReference; import javax.security.auth.Subject; import org.apache.qpid.server.connection.SessionPrincipal; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.TransactionTimeoutHelper; @@ -157,7 +156,7 @@ public class ServerSession extends Session { getConnectionModel().closeSession(ServerSession.this, AMQConstant.RESOURCE_ERROR, reason); } - }); + }, getVirtualHost().getEventLogger()); } protected void setState(final State state) @@ -168,7 +167,7 @@ public class ServerSession extends Session if (state == State.OPEN) { - SystemLog.message(ChannelMessages.CREATE()); + getVirtualHost().getEventLogger().message(ChannelMessages.CREATE()); if(_blocking.get()) { invokeBlock(); @@ -419,7 +418,7 @@ public class ServerSession extends Session { operationalLoggingMessage = ChannelMessages.CLOSE(); } - SystemLog.message(getLogSubject(), operationalLoggingMessage); + getVirtualHost().getEventLogger().message(getLogSubject(), operationalLoggingMessage); } @Override @@ -738,7 +737,7 @@ public class ServerSession extends Session { invokeBlock(); } - SystemLog.message(_logSubject, ChannelMessages.FLOW_ENFORCED(name)); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW_ENFORCED(name)); } @@ -763,7 +762,7 @@ public class ServerSession extends Session if(_blocking.compareAndSet(true,false) && !isClosing()) { - SystemLog.message(_logSubject, ChannelMessages.FLOW_REMOVED()); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW_REMOVED()); MessageFlow mf = new MessageFlow(); mf.setUnit(MessageCreditUnit.MESSAGE); mf.setDestination(""); diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java index e258a27255..2593c66191 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java @@ -29,7 +29,6 @@ import org.apache.log4j.Logger; import org.apache.qpid.server.exchange.DirectExchange; import org.apache.qpid.server.exchange.ExchangeImpl; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.store.StoreException; @@ -289,9 +288,10 @@ public class ServerSessionDelegate extends SessionDelegate final MessageMetaData_0_10 messageMetaData = new MessageMetaData_0_10(xfr); + final VirtualHost virtualHost = getVirtualHost(ssn); try { - getVirtualHost(ssn).getSecurityManager().authorisePublish(messageMetaData.isImmediate(), messageMetaData.getRoutingKey(), exchange.getName()); + virtualHost.getSecurityManager().authorisePublish(messageMetaData.isImmediate(), messageMetaData.getRoutingKey(), exchange.getName()); } catch (AccessControlException e) { @@ -301,7 +301,7 @@ public class ServerSessionDelegate extends SessionDelegate return; } - final MessageStore store = getVirtualHost(ssn).getMessageStore(); + final MessageStore store = virtualHost.getMessageStore(); final StoredMessage<MessageMetaData_0_10> storeMessage = createStoreMessage(xfr, messageMetaData, store); final ServerSession serverSession = (ServerSession) ssn; final MessageTransferMessage message = new MessageTransferMessage(storeMessage, serverSession.getReference()); @@ -346,7 +346,8 @@ public class ServerSessionDelegate extends SessionDelegate } else { - SystemLog.message(ExchangeMessages.DISCARDMSG(exchange.getName(), messageMetaData.getRoutingKey())); + virtualHost.getEventLogger().message(ExchangeMessages.DISCARDMSG(exchange.getName(), + messageMetaData.getRoutingKey())); } } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionTest.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionTest.java index 858482a034..5ea3de7c6e 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionTest.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionTest.java @@ -18,7 +18,7 @@ */ package org.apache.qpid.server.protocol.v0_10; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.util.BrokerTestHelper; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -61,7 +61,6 @@ public class ServerSessionTest extends QpidTestCase public void testCompareTo() throws Exception { final Broker broker = mock(Broker.class); - when(broker.getRootMessageLogger()).thenReturn(mock(RootMessageLogger.class)); ServerConnection connection = new ServerConnection(1, broker); connection.setVirtualHost(_virtualHost); ServerSession session1 = new ServerSession(connection, new ServerSessionDelegate(), diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java index e248fc539a..da91be2118 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java @@ -57,7 +57,6 @@ import org.apache.qpid.server.flow.FlowCreditManager; import org.apache.qpid.server.flow.Pre0_10CreditManager; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.logging.messages.ChannelMessages; import org.apache.qpid.server.logging.messages.ExchangeMessages; import org.apache.qpid.server.logging.subjects.ChannelLogSubject; @@ -209,14 +208,14 @@ public class AMQChannel<T extends AMQProtocolSession<T>> throw new ConnectionScopedRuntimeException(e); } } - }); + }, getVirtualHost().getEventLogger()); Subject.doAs(_subject, new PrivilegedAction<Object>() { @Override public Object run() { - SystemLog.message(ChannelMessages.CREATE()); + getVirtualHost().getEventLogger().message(ChannelMessages.CREATE()); return null; } @@ -457,7 +456,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> } else { - SystemLog.message(ExchangeMessages.DISCARDMSG(_currentMessage.getExchangeName().asString(), + getVirtualHost().getEventLogger().message(ExchangeMessages.DISCARDMSG(_currentMessage.getExchangeName().asString(), _currentMessage.getMessagePublishInfo().getRoutingKey() == null ? null @@ -693,7 +692,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> LogMessage operationalLogMessage = cause == null ? ChannelMessages.CLOSE() : ChannelMessages.CLOSE_FORCED(cause.getCode(), message); - SystemLog.message(_logSubject, operationalLogMessage); + getVirtualHost().getEventLogger().message(_logSubject, operationalLogMessage); unsubscribeAllConsumers(); @@ -986,7 +985,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> // Log Flow Started before we start the subscriptions if (!suspended) { - SystemLog.message(_logSubject, ChannelMessages.FLOW("Started")); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW("Started")); } @@ -1037,7 +1036,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> // stopped. if (suspended) { - SystemLog.message(_logSubject, ChannelMessages.FLOW("Stopped")); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW("Stopped")); } } @@ -1183,7 +1182,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> public void setCredit(final long prefetchSize, final int prefetchCount) { - SystemLog.message(ChannelMessages.PREFETCH_SIZE(prefetchSize, prefetchCount)); + getVirtualHost().getEventLogger().message(ChannelMessages.PREFETCH_SIZE(prefetchSize, prefetchCount)); _creditManager.setCreditLimits(prefetchSize, prefetchCount); } @@ -1446,7 +1445,8 @@ public class AMQChannel<T extends AMQProtocolSession<T>> { if(_blocking.compareAndSet(false,true)) { - SystemLog.message(_logSubject, ChannelMessages.FLOW_ENFORCED("** All Queues **")); + getVirtualHost().getEventLogger().message(_logSubject, + ChannelMessages.FLOW_ENFORCED("** All Queues **")); flow(false); } } @@ -1458,7 +1458,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> { if(_blockingEntities.isEmpty() && _blocking.compareAndSet(true,false)) { - SystemLog.message(_logSubject, ChannelMessages.FLOW_REMOVED()); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW_REMOVED()); flow(true); } @@ -1472,7 +1472,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> if(_blocking.compareAndSet(false,true)) { - SystemLog.message(_logSubject, ChannelMessages.FLOW_ENFORCED(queue.getName())); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW_ENFORCED(queue.getName())); flow(false); } } @@ -1484,7 +1484,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> { if(_blockingEntities.isEmpty() && _blocking.compareAndSet(true,false) && !isClosing()) { - SystemLog.message(_logSubject, ChannelMessages.FLOW_REMOVED()); + getVirtualHost().getEventLogger().message(_logSubject, ChannelMessages.FLOW_REMOVED()); flow(true); } } @@ -1561,8 +1561,10 @@ public class AMQChannel<T extends AMQProtocolSession<T>> @Override public void performAction(final MessageInstance requeueEntry) { - SystemLog.message( _logSubject, ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), - requeueEntry.getOwningResource().getName())); + getVirtualHost().getEventLogger().message(_logSubject, + ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), + requeueEntry.getOwningResource() + .getName())); } }, null); @@ -1579,7 +1581,10 @@ public class AMQChannel<T extends AMQProtocolSession<T>> if (altExchange == null) { _logger.debug("No alternate exchange configured for queue, must discard the message as unable to DLQ: delivery tag: " + deliveryTag); - SystemLog.message(_logSubject, ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), queue.getName(), msg.getInitialRoutingAddress())); + getVirtualHost().getEventLogger().message(_logSubject, + ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), + queue.getName(), + msg.getInitialRoutingAddress())); } else @@ -1587,8 +1592,9 @@ public class AMQChannel<T extends AMQProtocolSession<T>> _logger.debug( "Routing process provided no queues to enqueue the message on, must discard message as unable to DLQ: delivery tag: " + deliveryTag); - SystemLog.message(_logSubject, - ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), altExchange.getName())); + getVirtualHost().getEventLogger().message(_logSubject, + ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), + altExchange.getName())); } } } diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java index 80c4a9fde7..4aececbcd1 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java @@ -56,7 +56,7 @@ import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.protocol.AMQMethodEvent; import org.apache.qpid.protocol.ServerProtocolEngine; import org.apache.qpid.server.connection.ConnectionPrincipal; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.InstanceProperties; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.configuration.BrokerProperties; @@ -92,6 +92,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi private static final int CHANNEL_CACHE_SIZE = 0xff; private static final int REUSABLE_BYTE_BUFFER_CAPACITY = 65 * 1024; private final Port _port; + private EventLogger _eventLogger; private AMQShortString _contextKey; @@ -177,6 +178,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _broker = broker; _port = port; _transport = transport; + _eventLogger = broker.getEventLogger(); _maxNoOfChannels = (Integer)broker.getAttribute(Broker.CONNECTION_SESSION_COUNT_LIMIT); _receivedLock = new ReentrantLock(); _stateManager = new AMQStateManager(broker, this); @@ -193,7 +195,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi { setNetworkConnection(network); - SystemLog.message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false)); + getEventLogger().message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false)); _closeWhenNoRoute = (Boolean)_broker.getAttribute(Broker.CONNECTION_CLOSE_WHEN_NO_ROUTE); @@ -476,14 +478,14 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi try { // Log incoming protocol negotiation request - SystemLog.message(ConnectionMessages.OPEN(null, - pi.getProtocolMajor() + "-" + pi.getProtocolMinor(), - null, - null, - false, - true, - false, - false)); + getEventLogger().message(ConnectionMessages.OPEN(null, + pi.getProtocolMajor() + "-" + pi.getProtocolMinor(), + null, + null, + false, + true, + false, + false)); ProtocolVersion pv = pi.checkVersion(); // Fails if not correct @@ -932,7 +934,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _closed = true; notifyAll(); } - SystemLog.message(_logSubject, ConnectionMessages.CLOSE()); + getEventLogger().message(_logSubject, ConnectionMessages.CLOSE()); } } else @@ -1092,14 +1094,14 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi setContextKey(new AMQShortString(clientId)); } - SystemLog.message(ConnectionMessages.OPEN(clientId, - _protocolVersion.toString(), - _clientVersion, - _clientProduct, - true, - true, - true, - true)); + getEventLogger().message(ConnectionMessages.OPEN(clientId, + _protocolVersion.toString(), + _clientVersion, + _clientProduct, + true, + true, + true, + true)); } } @@ -1565,4 +1567,16 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi { return _closeWhenNoRoute; } + + public EventLogger getEventLogger() + { + if(_virtualHost != null) + { + return _virtualHost.getEventLogger(); + } + else + { + return _eventLogger; + } + } } diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java index f8888f985e..eaa5b6a7a5 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java @@ -45,7 +45,6 @@ import org.apache.qpid.server.message.InstanceProperties; import org.apache.qpid.server.message.MessageContentSource; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.protocol.AMQSessionModel; import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverter; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.apache.qpid.server.security.auth.UsernamePrincipal; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index 9a4adbc4c7..eed387f8c5 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -33,7 +33,6 @@ import javax.servlet.DispatcherType; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.IllegalConfigurationException; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter; import org.apache.qpid.server.management.plugin.filter.RedirectingAuthorisationFilter; @@ -140,7 +139,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem private void start() { - SystemLog.message(ManagementConsoleMessages.STARTUP(OPERATIONAL_LOGGING_NAME)); + getBroker().getEventLogger().message(ManagementConsoleMessages.STARTUP(OPERATIONAL_LOGGING_NAME)); Collection<Port> httpPorts = getHttpPorts(getBroker().getPorts()); _server = createServer(httpPorts); @@ -154,7 +153,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem throw new ServerScopedRuntimeException("Failed to start HTTP management on ports : " + httpPorts, e); } - SystemLog.message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); + getBroker().getEventLogger().message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); } private void stop() @@ -172,7 +171,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem } } - SystemLog.message(ManagementConsoleMessages.STOPPED(OPERATIONAL_LOGGING_NAME)); + getBroker().getEventLogger().message(ManagementConsoleMessages.STOPPED(OPERATIONAL_LOGGING_NAME)); } public int getSessionTimeout() @@ -381,14 +380,14 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem Connector[] connectors = server.getConnectors(); for (Connector connector : connectors) { - SystemLog.message(ManagementConsoleMessages.LISTENING(stringifyConnectorScheme(connector), + getBroker().getEventLogger().message(ManagementConsoleMessages.LISTENING(stringifyConnectorScheme(connector), connector.getPort())); if (connector instanceof SslSocketConnector) { SslContextFactory sslContextFactory = ((SslSocketConnector)connector).getSslContextFactory(); if (sslContextFactory != null && sslContextFactory.getKeyStorePath() != null) { - SystemLog.message(ManagementConsoleMessages.SSL_KEYSTORE(sslContextFactory.getKeyStorePath())); + getBroker().getEventLogger().message(ManagementConsoleMessages.SSL_KEYSTORE(sslContextFactory.getKeyStorePath())); } } } @@ -399,7 +398,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem Connector[] connectors = server.getConnectors(); for (Connector connector : connectors) { - SystemLog.message(ManagementConsoleMessages.SHUTTING_DOWN(stringifyConnectorScheme(connector), + getBroker().getEventLogger().message(ManagementConsoleMessages.SHUTTING_DOWN(stringifyConnectorScheme(connector), connector.getPort())); } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java index 023453e74f..563e49d43f 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java @@ -136,7 +136,8 @@ public class HttpManagementUtil session.setAttribute(ATTR_SUBJECT, subject); // Cause the user logon to be logged. - session.setAttribute(ATTR_LOGIN_LOGOUT_REPORTER, new LoginLogoutReporter(subject)); + session.setAttribute(ATTR_LOGIN_LOGOUT_REPORTER, + new LoginLogoutReporter(subject, getBroker(session.getServletContext()).getEventLogger())); } public static Subject tryToAuthenticate(HttpServletRequest request, HttpManagementConfiguration managementConfig) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java index 5155654e82..b980b83510 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java @@ -28,7 +28,7 @@ import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; import org.apache.log4j.Logger; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; @@ -42,12 +42,14 @@ public class LoginLogoutReporter implements HttpSessionBindingListener private static final Logger LOGGER = Logger.getLogger(LoginLogoutReporter.class); private final Subject _subject; private final Principal _principal; + private final EventLogger _eventLogger; - public LoginLogoutReporter(Subject subject) + public LoginLogoutReporter(Subject subject, EventLogger eventLogger) { super(); _subject = subject; _principal = AuthenticatedPrincipal.getAuthenticatedPrincipalFromSubject(_subject); + _eventLogger = eventLogger; } @Override @@ -74,7 +76,7 @@ public class LoginLogoutReporter implements HttpSessionBindingListener @Override public Void run() { - SystemLog.message(ManagementConsoleMessages.OPEN(_principal.getName())); + _eventLogger.message(ManagementConsoleMessages.OPEN(_principal.getName())); return null; } }); @@ -92,7 +94,7 @@ public class LoginLogoutReporter implements HttpSessionBindingListener @Override public Void run() { - SystemLog.message(ManagementConsoleMessages.CLOSE(_principal.getName())); + _eventLogger.message(ManagementConsoleMessages.CLOSE(_principal.getName())); return null; } }); diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java index 16ae5220ab..58bd42ef5f 100644 --- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java +++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java @@ -28,9 +28,9 @@ import static org.mockito.Mockito.when; import javax.security.auth.Subject; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; -import org.apache.qpid.server.logging.RootMessageLogger; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.mockito.ArgumentMatcher; @@ -40,7 +40,7 @@ public class LoginLogoutReporterTest extends TestCase { private LoginLogoutReporter _loginLogoutReport; private Subject _subject = new Subject(); - private RootMessageLogger _logger = mock(RootMessageLogger.class); + private MessageLogger _logger = mock(MessageLogger.class); @Override protected void setUp() throws Exception @@ -50,8 +50,8 @@ public class LoginLogoutReporterTest extends TestCase _subject.getPrincipals().add(new AuthenticatedPrincipal("mockusername")); when(_logger.isEnabled()).thenReturn(true); when(_logger.isMessageEnabled(anyString())).thenReturn(true); - SystemLog.setRootMessageLogger(_logger); - _loginLogoutReport = new LoginLogoutReporter(_subject); + EventLogger eventLogger = new EventLogger(_logger); + _loginLogoutReport = new LoginLogoutReporter(_subject, eventLogger); } public void testLoginLogged() diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java index 8b1463b476..284909ce56 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java @@ -22,7 +22,7 @@ package org.apache.qpid.server.jmx; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.KeyStore; @@ -94,15 +94,20 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry : MBeanServerFactory.createMBeanServer(ManagedObject.DOMAIN); } + private EventLogger getEventLogger() + { + return _broker.getEventLogger(); + } + @Override public void start() throws IOException { - SystemLog.message(ManagementConsoleMessages.STARTUP(OPERATIONAL_LOGGING_NAME)); + getEventLogger().message(ManagementConsoleMessages.STARTUP(OPERATIONAL_LOGGING_NAME)); //check if system properties are set to use the JVM's out-of-the-box JMXAgent if (areOutOfTheBoxJMXOptionsSet()) { - SystemLog.message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); + getEventLogger().message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); } else { @@ -136,7 +141,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry throw new ServerScopedRuntimeException("Unable to create SSLContext for key store", e); } - SystemLog.message(ManagementConsoleMessages.SSL_KEYSTORE(keyStore.getName())); + getEventLogger().message(ManagementConsoleMessages.SSL_KEYSTORE(keyStore.getName())); //create the SSL RMI socket factories csf = new SslRMIClientSocketFactory(); @@ -239,7 +244,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry _cs.setMBeanServerForwarder(mbsf); // Install a ManagementLogonLogoffReporter so we can report as users logon/logoff - ManagementLogonLogoffReporter jmxManagementUserLogonLogoffReporter = new ManagementLogonLogoffReporter(_broker.getRootMessageLogger(), usernameCachingRmiServer); + ManagementLogonLogoffReporter jmxManagementUserLogonLogoffReporter = new ManagementLogonLogoffReporter(_broker.getEventLogger(), usernameCachingRmiServer); _cs.addNotificationListener(jmxManagementUserLogonLogoffReporter, jmxManagementUserLogonLogoffReporter, null); // Install the usernameCachingRmiServer as a listener so it may cleanup as clients disconnect @@ -248,8 +253,8 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry _cs.start(); String connectorServer = (connectorSslEnabled ? "SSL " : "") + "JMX RMIConnectorServer"; - SystemLog.message(ManagementConsoleMessages.LISTENING(connectorServer, jmxPortConnectorServer)); - SystemLog.message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); + getEventLogger().message(ManagementConsoleMessages.LISTENING(connectorServer, jmxPortConnectorServer)); + getEventLogger().message(ManagementConsoleMessages.READY(OPERATIONAL_LOGGING_NAME)); } private Registry createRmiRegistry(int jmxPortRegistryServer, boolean useCustomRmiRegistry) @@ -267,7 +272,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry rmiRegistry = LocateRegistry.createRegistry(jmxPortRegistryServer, null, null); } - SystemLog.message(ManagementConsoleMessages.LISTENING("RMI Registry", jmxPortRegistryServer)); + getEventLogger().message(ManagementConsoleMessages.LISTENING("RMI Registry", jmxPortRegistryServer)); return rmiRegistry; } @@ -292,7 +297,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry unregisterAllMbeans(); - SystemLog.message(ManagementConsoleMessages.STOPPED(OPERATIONAL_LOGGING_NAME)); + getEventLogger().message(ManagementConsoleMessages.STOPPED(OPERATIONAL_LOGGING_NAME)); } private void closeConnectorAndRegistryServers() @@ -336,7 +341,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry if (_rmiRegistry != null) { // Stopping the RMI registry - SystemLog.message(ManagementConsoleMessages.SHUTTING_DOWN("RMI Registry", _registryPort.getPort())); + getEventLogger().message(ManagementConsoleMessages.SHUTTING_DOWN("RMI Registry", _registryPort.getPort())); try { boolean success = UnicastRemoteObject.unexportObject(_rmiRegistry, false); @@ -363,8 +368,8 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry // Stopping the JMX ConnectorServer try { - SystemLog.message(ManagementConsoleMessages.SHUTTING_DOWN("JMX RMIConnectorServer", - _cs.getAddress().getPort())); + getEventLogger().message(ManagementConsoleMessages.SHUTTING_DOWN("JMX RMIConnectorServer", + _cs.getAddress().getPort())); _cs.stop(); } catch (IOException e) diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java index 79d944fc5c..f99fe89f7b 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java @@ -30,8 +30,7 @@ import javax.management.remote.JMXConnectionNotification; import javax.security.auth.Subject; import org.apache.log4j.Logger; -import org.apache.qpid.server.logging.RootMessageLogger; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.apache.qpid.server.security.auth.jmx.JMXConnectionPrincipal; @@ -44,12 +43,12 @@ import java.util.Collections; public class ManagementLogonLogoffReporter implements NotificationListener, NotificationFilter { private static final Logger LOGGER = Logger.getLogger(ManagementLogonLogoffReporter.class); - private final RootMessageLogger _rootMessageLogger; + private final EventLogger _eventLogger; private final UsernameAccessor _usernameAccessor; - public ManagementLogonLogoffReporter(RootMessageLogger rootMessageLogger, UsernameAccessor usernameAccessor) + public ManagementLogonLogoffReporter(EventLogger eventLogger, UsernameAccessor usernameAccessor) { - _rootMessageLogger = rootMessageLogger; + _eventLogger = eventLogger; _usernameAccessor = usernameAccessor; } @@ -97,12 +96,12 @@ public class ManagementLogonLogoffReporter implements NotificationListener, Not { if (JMXConnectionNotification.OPENED.equals(type)) { - SystemLog.message(ManagementConsoleMessages.OPEN(username)); + _eventLogger.message(ManagementConsoleMessages.OPEN(username)); } else if (JMXConnectionNotification.CLOSED.equals(type) || JMXConnectionNotification.FAILED.equals(type)) { - SystemLog.message(ManagementConsoleMessages.CLOSE(username)); + _eventLogger.message(ManagementConsoleMessages.CLOSE(username)); } return null; } diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java index 515a9d88f2..0027815142 100644 --- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java +++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java @@ -32,13 +32,11 @@ import static org.mockito.Matchers.anyString; import javax.management.remote.JMXConnectionNotification; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import junit.framework.TestCase; -import org.apache.qpid.server.logging.SystemLog; -import org.hamcrest.Description; -import org.hamcrest.Matcher; import org.mockito.ArgumentMatcher; public class ManagementLogonLogoffReporterTest extends TestCase @@ -48,18 +46,18 @@ public class ManagementLogonLogoffReporterTest extends TestCase private ManagementLogonLogoffReporter _reporter; private UsernameAccessor _usernameAccessor; - private RootMessageLogger _rootMessageLogger; + private MessageLogger _messageLogger; @Override protected void setUp() throws Exception { super.setUp(); _usernameAccessor = mock(UsernameAccessor.class); - _rootMessageLogger = mock(RootMessageLogger.class); + _messageLogger = mock(MessageLogger.class); // Enable messaging so we can valid the generated strings - when(_rootMessageLogger.isMessageEnabled(anyString())).thenReturn(true); - SystemLog.setRootMessageLogger(_rootMessageLogger); - _reporter = new ManagementLogonLogoffReporter(_rootMessageLogger, _usernameAccessor); + when(_messageLogger.isMessageEnabled(anyString())).thenReturn(true); + EventLogger eventLogger = new EventLogger(_messageLogger); + _reporter = new ManagementLogonLogoffReporter(eventLogger, _usernameAccessor); } public void testOpenedNotification() @@ -69,7 +67,7 @@ public class ManagementLogonLogoffReporterTest extends TestCase _reporter.handleNotification(openNotification, null); - verify(_rootMessageLogger).message(messageMatch("MNG-1007 : Open : User jmxuser", + verify(_messageLogger).message(messageMatch("MNG-1007 : Open : User jmxuser", "qpid.message.managementconsole.open")); } @@ -93,7 +91,7 @@ public class ManagementLogonLogoffReporterTest extends TestCase _reporter.handleNotification(closeNotification, null); - verify(_rootMessageLogger).message(messageMatch("MNG-1008 : Close : User jmxuser", "qpid.message.managementconsole.close")); + verify(_messageLogger).message(messageMatch("MNG-1008 : Close : User jmxuser", "qpid.message.managementconsole.close")); } public void tesNotifiedForLogOnTypeEvents() |
