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 | |
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
102 files changed, 572 insertions, 425 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHost.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHost.java index 0d50df1bc6..b055f8bd90 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHost.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHost.java @@ -60,7 +60,7 @@ public class BDBHAVirtualHost extends AbstractVirtualHost final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - OperationalLoggingListener.listen(_messageStore, storeLogSubject); + OperationalLoggingListener.listen(_messageStore, storeLogSubject, getEventLogger()); _messageStore.addEventListener(new BeforeActivationListener(), Event.BEFORE_ACTIVATE); _messageStore.addEventListener(new AfterActivationListener(), Event.AFTER_ACTIVATE); @@ -71,10 +71,10 @@ public class BDBHAVirtualHost extends AbstractVirtualHost _messageStore.addEventListener(new AfterInitialisationListener(), Event.AFTER_INIT); _messageStore.addEventListener(new BeforePassivationListener(), Event.BEFORE_PASSIVATE); - VirtualHostConfigRecoveryHandler recoveryHandler = new VirtualHostConfigRecoveryHandler(this, getExchangeRegistry(), getExchangeFactory()); + VirtualHostConfigRecoveryHandler recoveryHandler = new VirtualHostConfigRecoveryHandler(this); DurableConfigurationRecoverer configRecoverer = new DurableConfigurationRecoverer(getName(), getDurableConfigurationRecoverers(), - new DefaultUpgraderProvider(this, getExchangeRegistry())); + new DefaultUpgraderProvider(this, getExchangeRegistry()), getEventLogger()); _messageStore.configureConfigStore( virtualHost, configRecoverer diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java index d7acf27f75..c2b3aeab3e 100644 --- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java +++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java @@ -27,8 +27,10 @@ import java.util.HashMap; import java.util.Map; import org.apache.commons.configuration.XMLConfiguration; import org.apache.qpid.server.configuration.VirtualHostConfiguration; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.util.BrokerTestHelper; import org.apache.qpid.server.virtualhost.VirtualHost; +import org.apache.qpid.server.virtualhost.VirtualHostRegistry; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.util.FileUtils; @@ -97,7 +99,7 @@ public class BDBHAMessageStoreTest extends QpidTestCase String vhostName = "test" + _masterPort; VirtualHostConfiguration configuration = new VirtualHostConfiguration(vhostName, _configXml.subset("virtualhosts.virtualhost." + vhostName), BrokerTestHelper.createBrokerMock()); - _virtualHost = BrokerTestHelper.createVirtualHost(configuration,null,_modelVhost); + _virtualHost = BrokerTestHelper.createVirtualHost(configuration,new VirtualHostRegistry(new EventLogger()),_modelVhost); BDBHAMessageStore store = (BDBHAMessageStore) _virtualHost.getMessageStore(); // test whether JVM system settings were applied diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java index 8117f3ebfc..69d3950ce4 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java @@ -34,7 +34,7 @@ import org.apache.log4j.PropertyConfigurator; import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.BrokerConfigurationStoreCreator; import org.apache.qpid.server.configuration.store.ManagementModeStoreHandler; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.SystemOutMessageLogger; import org.apache.qpid.server.logging.log4j.LoggingManagementFacade; import org.apache.qpid.server.logging.messages.BrokerMessages; @@ -51,6 +51,7 @@ public class Broker private volatile Thread _shutdownHookThread; private volatile IApplicationRegistry _applicationRegistry; + private EventLogger _eventLogger; protected static class InitException extends RuntimeException { @@ -88,12 +89,13 @@ public class Broker Subject subject = SecurityManager.SYSTEM; subject = new Subject(false, subject.getPrincipals(), subject.getPublicCredentials(), subject.getPrivateCredentials()); subject.getPrincipals().add(new TaskPrincipal("Broker")); + _eventLogger = new EventLogger(new SystemOutMessageLogger()); + Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { @Override public Object run() throws Exception { - SystemLog.setRootMessageLogger(new SystemOutMessageLogger()); startupImpl(options); addShutdownHook(); @@ -108,7 +110,7 @@ public class Broker String storeLocation = options.getConfigurationStoreLocation(); String storeType = options.getConfigurationStoreType(); - SystemLog.message(BrokerMessages.CONFIG(storeLocation)); + _eventLogger.message(BrokerMessages.CONFIG(storeLocation)); //Allow skipping the logging configuration for people who are //embedding the broker and want to configure it themselves. @@ -126,7 +128,7 @@ public class Broker store = new ManagementModeStoreHandler(store, options); } - _applicationRegistry = new ApplicationRegistry(store); + _applicationRegistry = new ApplicationRegistry(store,_eventLogger); try { _applicationRegistry.initialise(options); @@ -169,7 +171,7 @@ public class Broker { if (logConfigFile.exists() && logConfigFile.canRead()) { - SystemLog.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath())); + _eventLogger.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath())); if (logWatchTime > 0) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/TransactionTimeoutHelper.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/TransactionTimeoutHelper.java index 2824c1b7dc..dd47a28296 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/TransactionTimeoutHelper.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/TransactionTimeoutHelper.java @@ -18,9 +18,9 @@ */ package org.apache.qpid.server; +import org.apache.qpid.server.logging.EventLogger; 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.txn.ServerTransaction; @@ -32,11 +32,15 @@ public class TransactionTimeoutHelper private final LogSubject _logSubject; private final CloseAction _closeAction; + private final EventLogger _eventLogger; - public TransactionTimeoutHelper(final LogSubject logSubject, final CloseAction closeAction) + public TransactionTimeoutHelper(final LogSubject logSubject, + final CloseAction closeAction, + final EventLogger eventLogger) { _logSubject = logSubject; _closeAction = closeAction; + _eventLogger = eventLogger; } public void checkIdleOrOpenTimes(ServerTransaction transaction, long openWarn, long openClose, long idleWarn, long idleClose) @@ -72,7 +76,7 @@ public class TransactionTimeoutHelper { if (isTimedOut(timeSoFar, warnTimeout)) { - SystemLog.message(_logSubject, warnMessage); + _eventLogger.message(_logSubject, warnMessage); } if(isTimedOut(timeSoFar, closeTimeout)) diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java index 9864fd2be1..a6f2ad8633 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java @@ -21,7 +21,7 @@ package org.apache.qpid.server.binding; import org.apache.qpid.server.exchange.ExchangeImpl; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.BindingMessages; import org.apache.qpid.server.logging.subjects.BindingLogSubject; import org.apache.qpid.server.model.Binding; @@ -55,6 +55,7 @@ public class BindingImpl private final UUID _id; private final AtomicLong _matches = new AtomicLong(); private final BindingLogSubject _logSubject; + private final EventLogger _eventLogger; final AtomicBoolean _deleted = new AtomicBoolean(); final CopyOnWriteArrayList<StateChangeListener<BindingImpl,State>> _stateChangeListeners = @@ -90,11 +91,12 @@ public class BindingImpl _exchange = exchange; Map<String,Object> arguments = (Map<String, Object>) attributes.get(org.apache.qpid.server.model.Binding.ARGUMENTS); _arguments = arguments == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(arguments); + _eventLogger = exchange.getEventLogger(); //Perform ACLs queue.getVirtualHost().getSecurityManager().authoriseCreateBinding(this); _logSubject = new BindingLogSubject(_bindingKey,exchange,queue); - SystemLog.message(_logSubject, BindingMessages.CREATED(String.valueOf(getArguments()), + _eventLogger.message(_logSubject, BindingMessages.CREATED(String.valueOf(getArguments()), getArguments() != null && !getArguments().isEmpty())); @@ -229,7 +231,7 @@ public class BindingImpl { listener.stateChanged(this, State.ACTIVE, State.DELETED); } - SystemLog.message(_logSubject, BindingMessages.DELETED()); + _eventLogger.message(_logSubject, BindingMessages.DELETED()); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java index f260b27259..be9f8d5188 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java @@ -21,7 +21,6 @@ package org.apache.qpid.server.configuration.startup; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -38,8 +37,9 @@ import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.configuration.RecovererProvider; import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener; import org.apache.qpid.server.configuration.updater.TaskExecutor; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfiguredObject; @@ -62,7 +62,7 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> private final StatisticsGatherer _statisticsGatherer; private final VirtualHostRegistry _virtualHostRegistry; private final LogRecorder _logRecorder; - private final RootMessageLogger _rootMessageLogger; + private final EventLogger _eventLogger; private final AuthenticationProviderFactory _authenticationProviderFactory; private final AccessControlProviderFactory _accessControlProviderFactory; private final PortFactory _portFactory; @@ -73,7 +73,7 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> public BrokerRecoverer(AuthenticationProviderFactory authenticationProviderFactory, GroupProviderFactory groupProviderFactory, AccessControlProviderFactory accessControlProviderFactory, PortFactory portFactory, StatisticsGatherer statisticsGatherer, - VirtualHostRegistry virtualHostRegistry, LogRecorder logRecorder, RootMessageLogger rootMessageLogger, TaskExecutor taskExecutor, + VirtualHostRegistry virtualHostRegistry, LogRecorder logRecorder, EventLogger eventLogger, TaskExecutor taskExecutor, BrokerOptions brokerOptions, StoreConfigurationChangeListener storeChangeListener) { _groupProviderFactory = groupProviderFactory; @@ -83,7 +83,7 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> _statisticsGatherer = statisticsGatherer; _virtualHostRegistry = virtualHostRegistry; _logRecorder = logRecorder; - _rootMessageLogger = rootMessageLogger; + _eventLogger = eventLogger; _taskExecutor = taskExecutor; _brokerOptions = brokerOptions; _storeChangeListener = storeChangeListener; @@ -97,7 +97,8 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> attributesCopy.put(Broker.MODEL_VERSION, Model.MODEL_VERSION); BrokerAdapter broker = new BrokerAdapter(entry.getId(), attributesCopy, _statisticsGatherer, _virtualHostRegistry, - _logRecorder, _rootMessageLogger, _authenticationProviderFactory,_groupProviderFactory, _accessControlProviderFactory, + _logRecorder, + _eventLogger, _authenticationProviderFactory,_groupProviderFactory, _accessControlProviderFactory, _portFactory, _taskExecutor, entry.getStore(), _brokerOptions); broker.addChangeListener(_storeChangeListener); diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java index 14b6d9f118..1c64c38156 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java @@ -23,8 +23,9 @@ package org.apache.qpid.server.configuration.startup; import org.apache.qpid.server.BrokerOptions; import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; import org.apache.qpid.server.configuration.RecovererProvider; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; @@ -55,7 +56,7 @@ public class DefaultRecovererProvider implements RecovererProvider private final StatisticsGatherer _brokerStatisticsGatherer; private final VirtualHostRegistry _virtualHostRegistry; private final LogRecorder _logRecorder; - private final RootMessageLogger _rootMessageLogger; + private final EventLogger _eventLogger; private final AuthenticationProviderFactory _authenticationProviderFactory; private final AccessControlProviderFactory _accessControlProviderFactory; private final PortFactory _portFactory; @@ -66,7 +67,7 @@ public class DefaultRecovererProvider implements RecovererProvider private final StoreConfigurationChangeListener _storeChangeListener; public DefaultRecovererProvider(StatisticsGatherer brokerStatisticsGatherer, VirtualHostRegistry virtualHostRegistry, - LogRecorder logRecorder, RootMessageLogger rootMessageLogger, TaskExecutor taskExecutor, BrokerOptions brokerOptions, StoreConfigurationChangeListener storeChangeListener) + LogRecorder logRecorder, EventLogger eventLogger, TaskExecutor taskExecutor, BrokerOptions brokerOptions, StoreConfigurationChangeListener storeChangeListener) { _authenticationProviderFactory = new AuthenticationProviderFactory(new QpidServiceLoader<AuthenticationManagerFactory>()); _accessControlProviderFactory = new AccessControlProviderFactory(new QpidServiceLoader<AccessControlFactory>()); @@ -75,7 +76,7 @@ public class DefaultRecovererProvider implements RecovererProvider _brokerStatisticsGatherer = brokerStatisticsGatherer; _virtualHostRegistry = virtualHostRegistry; _logRecorder = logRecorder; - _rootMessageLogger = rootMessageLogger; + _eventLogger = eventLogger; _pluginFactoryServiceLoader = new QpidServiceLoader<PluginFactory>(); _taskExecutor = taskExecutor; _brokerOptions = brokerOptions; @@ -88,7 +89,8 @@ public class DefaultRecovererProvider implements RecovererProvider if (Broker.class.getSimpleName().equals(type)) { return new BrokerRecoverer(_authenticationProviderFactory, _groupProviderFactory, _accessControlProviderFactory, _portFactory, - _brokerStatisticsGatherer, _virtualHostRegistry, _logRecorder, _rootMessageLogger, _taskExecutor, _brokerOptions, _storeChangeListener); + _brokerStatisticsGatherer, _virtualHostRegistry, _logRecorder, + _eventLogger, _taskExecutor, _brokerOptions, _storeChangeListener); } else if(VirtualHost.class.getSimpleName().equals(type)) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java index 7396f74c0e..30e15f4c45 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java @@ -24,8 +24,8 @@ import java.security.AccessControlException; import java.util.ArrayList; import org.apache.log4j.Logger; import org.apache.qpid.server.binding.BindingImpl; +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.ExchangeMessages; import org.apache.qpid.server.logging.subjects.ExchangeLogSubject; import org.apache.qpid.server.message.InstanceProperties; @@ -104,6 +104,8 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>> private StateChangeListener<BindingImpl, State> _bindingListener; + private final EventLogger _eventLogger; + public AbstractExchange(VirtualHost vhost, Map<String, Object> attributes) throws UnknownExchangeException { super(MapValueConverter.getUUIDAttribute(org.apache.qpid.server.model.Exchange.ID, attributes), @@ -117,6 +119,7 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>> LifetimePolicy.PERMANENT); _autoDelete = _lifetimePolicy != LifetimePolicy.PERMANENT; _logSubject = new ExchangeLogSubject(this, this.getVirtualHost()); + _eventLogger = vhost.getEventLogger(); // check ACL _virtualHost.getSecurityManager().authoriseCreateExchange(this); @@ -166,7 +169,13 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>> } }; // Log Exchange creation - SystemLog.message(ExchangeMessages.CREATED(getExchangeType().getType(), getName(), _durable)); + getEventLogger().message(ExchangeMessages.CREATED(getExchangeType().getType(), getName(), _durable)); + } + + @Override + public EventLogger getEventLogger() + { + return _eventLogger; } public abstract ExchangeType<T> getExchangeType(); @@ -204,7 +213,7 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>> _alternateExchange.removeReference(this); } - SystemLog.message(_logSubject, ExchangeMessages.DELETED()); + _eventLogger.message(_logSubject, ExchangeMessages.DELETED()); for(Action<ExchangeImpl> task : _closeTaskList) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeImpl.java index 35d28d3384..799bb79595 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeImpl.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.exchange; import org.apache.qpid.server.binding.BindingImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageDestination; import org.apache.qpid.server.model.Exchange; import org.apache.qpid.server.plugin.ExchangeType; @@ -113,6 +114,8 @@ public interface ExchangeImpl<T extends ExchangeImpl<T>> extends Exchange<T>, Ex BindingImpl getBinding(String bindingName, AMQQueue queue); + EventLogger getEventLogger(); + public interface BindingListener { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java index 4717e7ccf2..4a246f83d2 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java @@ -41,7 +41,7 @@ import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CONNECTIO import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.SOCKET_FORMAT; import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORMAT; -public abstract class AbstractRootMessageLogger implements RootMessageLogger +public abstract class AbstractMessageLogger implements MessageLogger { public static final String DEFAULT_LOG_HIERARCHY_PREFIX = "qpid.message."; @@ -49,12 +49,12 @@ public abstract class AbstractRootMessageLogger implements RootMessageLogger private boolean _enabled = true; - public AbstractRootMessageLogger() + public AbstractMessageLogger() { } - public AbstractRootMessageLogger(boolean statusUpdatesEnabled) + public AbstractMessageLogger(boolean statusUpdatesEnabled) { _enabled = statusUpdatesEnabled; } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeStartupMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeStartupMessageLogger.java index d21fd62045..ec9ca360c7 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeStartupMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeStartupMessageLogger.java @@ -20,11 +20,11 @@ */ package org.apache.qpid.server.logging; -public class CompositeStartupMessageLogger implements RootMessageLogger +public class CompositeStartupMessageLogger implements MessageLogger { - private RootMessageLogger[] _loggers; + private MessageLogger[] _loggers; - public CompositeStartupMessageLogger(RootMessageLogger[] loggers) + public CompositeStartupMessageLogger(MessageLogger[] loggers) { super(); _loggers = loggers; @@ -34,7 +34,7 @@ public class CompositeStartupMessageLogger implements RootMessageLogger @Override public boolean isEnabled() { - for(RootMessageLogger l : _loggers) + for(MessageLogger l : _loggers) { if(l.isEnabled()) { @@ -47,7 +47,7 @@ public class CompositeStartupMessageLogger implements RootMessageLogger @Override public boolean isMessageEnabled(final String logHierarchy) { - for(RootMessageLogger l : _loggers) + for(MessageLogger l : _loggers) { if(l.isMessageEnabled(logHierarchy)) { @@ -60,7 +60,7 @@ public class CompositeStartupMessageLogger implements RootMessageLogger @Override public void message(final LogMessage message) { - for(RootMessageLogger l : _loggers) + for(MessageLogger l : _loggers) { l.message(message); } @@ -69,7 +69,7 @@ public class CompositeStartupMessageLogger implements RootMessageLogger @Override public void message(final LogSubject subject, final LogMessage message) { - for(RootMessageLogger l : _loggers) + for(MessageLogger l : _loggers) { l.message(subject, message); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemLog.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java index b722c5360b..70d1db794e 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemLog.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java @@ -20,9 +20,19 @@ */ package org.apache.qpid.server.logging; -public class SystemLog +public class EventLogger { - private static RootMessageLogger _rootMessageLogger = new NullRootMessageLogger(); + private MessageLogger _messageLogger; + + public EventLogger() + { + this(new NullMessageLogger()); + } + + public EventLogger(final MessageLogger messageLogger) + { + _messageLogger = messageLogger; + } /** * Logs the specified LogMessage about the LogSubject @@ -30,9 +40,9 @@ public class SystemLog * @param subject The subject that is being logged * @param message The message to log */ - public static void message(LogSubject subject, LogMessage message) + public void message(LogSubject subject, LogMessage message) { - getRootMessageLogger().message(subject, message); + _messageLogger.message(subject, message); } /** @@ -40,19 +50,13 @@ public class SystemLog * * @param message The message to log */ - public static void message(LogMessage message) - { - getRootMessageLogger().message((message)); - } - - private synchronized static RootMessageLogger getRootMessageLogger() + public void message(LogMessage message) { - final RootMessageLogger rootMessageLogger = _rootMessageLogger; - return rootMessageLogger == null ? new NullRootMessageLogger() : rootMessageLogger; + _messageLogger.message((message)); } - public static synchronized void setRootMessageLogger(final RootMessageLogger rootMessageLogger) + public void setMessageLogger(final MessageLogger messageLogger) { - _rootMessageLogger = rootMessageLogger; + _messageLogger = messageLogger; } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java index 896ca84361..3149386b98 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java @@ -22,7 +22,7 @@ package org.apache.qpid.server.logging; import org.apache.log4j.Logger; -public class Log4jMessageLogger extends AbstractRootMessageLogger +public class Log4jMessageLogger extends AbstractMessageLogger { public Log4jMessageLogger() { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/MessageLogger.java index 92318ed8b0..f7f4aa47c9 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/MessageLogger.java @@ -25,7 +25,7 @@ package org.apache.qpid.server.logging; * logging is enabled for the requested message and to provide the actual * message that should be logged. */ -public interface RootMessageLogger +public interface MessageLogger { /** * Determine whether the MessageLogger is enabled diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullMessageLogger.java index c7cf609503..8db58d0e41 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullMessageLogger.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging; -public class NullRootMessageLogger extends AbstractRootMessageLogger +public class NullMessageLogger extends AbstractMessageLogger { @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java index 297085427d..9bf7e21328 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java @@ -21,7 +21,7 @@ package org.apache.qpid.server.logging; -public class SystemOutMessageLogger extends AbstractRootMessageLogger +public class SystemOutMessageLogger extends AbstractMessageLogger { @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/AccessControlMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/AccessControlMessages.java index 9894db5000..efda825aeb 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/AccessControlMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/AccessControlMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BindingMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BindingMessages.java index f160235e43..a4c73f3b88 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BindingMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BindingMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java index d4ba32673f..4156fc8157 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ChannelMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ChannelMessages.java index 66fdc93c6d..0cd0828623 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ChannelMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ChannelMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConfigStoreMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConfigStoreMessages.java index a07e0e3fe4..f720ff6385 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConfigStoreMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConfigStoreMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java index 2766f0c1f1..ad44dc1d97 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ExchangeMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ExchangeMessages.java index f9e86ef8b3..5e5abaff96 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ExchangeMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ExchangeMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessages.java index df700b2222..16a115d1ae 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/MessageStoreMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/MessageStoreMessages.java index 2c700df31c..7114c8532b 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/MessageStoreMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/MessageStoreMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/QueueMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/QueueMessages.java index 75fa5b533e..b8f95dfc28 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/QueueMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/QueueMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/SubscriptionMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/SubscriptionMessages.java index b58b324ece..43c9754afa 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/SubscriptionMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/SubscriptionMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/TransactionLogMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/TransactionLogMessages.java index 22c54f0ec7..9e2f64ff39 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/TransactionLogMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/TransactionLogMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/VirtualHostMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/VirtualHostMessages.java index 149d6d2e89..d1a90f0b91 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/VirtualHostMessages.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/VirtualHostMessages.java @@ -20,7 +20,7 @@ */ package org.apache.qpid.server.logging.messages; -import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; +import static org.apache.qpid.server.logging.AbstractMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.BrokerProperties; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java index 28375b0773..dd6e70692d 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java @@ -21,12 +21,11 @@ package org.apache.qpid.server.model; import java.net.SocketAddress; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.configuration.updater.TaskExecutor; import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.SubjectCreator; @@ -202,12 +201,6 @@ public interface Broker<X extends Broker<X>> extends ConfiguredObject<X> Collection<GroupProvider<?>> getGroupProviders(); /** - * A temporary hack to expose root message logger via broker instance. - * TODO We need a better way to do operational logging, for example, via logging listeners - */ - RootMessageLogger getRootMessageLogger(); - - /** * A temporary hack to expose security manager via broker instance. * TODO We need to add and implement an authorization provider configured object instead */ @@ -248,4 +241,6 @@ public interface Broker<X extends Broker<X>> extends ConfiguredObject<X> boolean isManagementMode(); AuthenticationProvider<?> getAuthenticationProvider(SocketAddress localAddress); + + EventLogger getEventLogger(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java index 5e203532c6..53909fb09d 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java @@ -73,7 +73,7 @@ public class AccessControlProviderFactory { for (AccessControlFactory factory : _factories) { - AccessControl accessControl = factory.createInstance(attributes); + AccessControl accessControl = factory.createInstance(attributes, broker.getEventLogger()); if (accessControl != null) { return new AccessControlProviderAdapter(id, broker,accessControl, attributes, factory.getAttributeNames()); diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java index 1fcf169dc8..93bbbf935f 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java @@ -34,7 +34,6 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.qpid.server.configuration.BrokerProperties; import org.apache.qpid.server.configuration.IllegalConfigurationException; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.logging.messages.BrokerMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.KeyStore; @@ -99,7 +98,7 @@ public class AmqpPortAdapter extends PortAdapter<AmqpPortAdapter> _transport.start(); for(Transport transport : getTransports()) { - SystemLog.message(BrokerMessages.LISTENING(String.valueOf(transport), getPort())); + _broker.getEventLogger().message(BrokerMessages.LISTENING(String.valueOf(transport), getPort())); } } @@ -110,7 +109,7 @@ public class AmqpPortAdapter extends PortAdapter<AmqpPortAdapter> { for(Transport transport : getTransports()) { - SystemLog.message(BrokerMessages.SHUTTING_DOWN(String.valueOf(transport), getPort())); + _broker.getEventLogger().message(BrokerMessages.SHUTTING_DOWN(String.valueOf(transport), getPort())); } _transport.close(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index ed5d371079..6a8405649a 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -39,9 +39,9 @@ import org.apache.qpid.server.configuration.BrokerConfigurationStoreCreator; import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.configuration.updater.TaskExecutor; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -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.logging.messages.BrokerMessages; import org.apache.qpid.server.model.*; import org.apache.qpid.server.plugin.PreferencesProviderFactory; @@ -146,10 +146,10 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN}; + private final EventLogger _eventLogger; private final StatisticsGatherer _statisticsGatherer; private final VirtualHostRegistry _virtualHostRegistry; private final LogRecorder _logRecorder; - private final RootMessageLogger _rootMessageLogger; private final Map<String, VirtualHost<?>> _vhostAdapters = new HashMap<String, VirtualHost<?>>(); private final Map<UUID, Port<?>> _portAdapters = new HashMap<UUID, Port<?>>(); @@ -175,7 +175,7 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject private BrokerOptions _brokerOptions; public BrokerAdapter(UUID id, Map<String, Object> attributes, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry, - LogRecorder logRecorder, RootMessageLogger rootMessageLogger, AuthenticationProviderFactory authenticationProviderFactory, + LogRecorder logRecorder, EventLogger eventLogger, AuthenticationProviderFactory authenticationProviderFactory, GroupProviderFactory groupProviderFactory, AccessControlProviderFactory accessControlProviderFactory, PortFactory portFactory, TaskExecutor taskExecutor, ConfigurationEntryStore brokerStore, BrokerOptions brokerOptions) { @@ -183,7 +183,7 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject _statisticsGatherer = statisticsGatherer; _virtualHostRegistry = virtualHostRegistry; _logRecorder = logRecorder; - _rootMessageLogger = rootMessageLogger; + _eventLogger = eventLogger; _authenticationProviderFactory = authenticationProviderFactory; _groupProviderFactory = groupProviderFactory; _accessControlProviderFactory = accessControlProviderFactory; @@ -1053,7 +1053,7 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject if (isManagementMode()) { - SystemLog.message(BrokerMessages.MANAGEMENT_MODE(BrokerOptions.MANAGEMENT_MODE_USER_NAME, + _eventLogger.message(BrokerMessages.MANAGEMENT_MODE(BrokerOptions.MANAGEMENT_MODE_USER_NAME, _brokerOptions.getManagementModePassword())); } return true; @@ -1235,12 +1235,6 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject } @Override - public RootMessageLogger getRootMessageLogger() - { - return _rootMessageLogger; - } - - @Override public SecurityManager getSecurityManager() { return _securityManager; @@ -1434,4 +1428,10 @@ public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject { return _stillInUsePortNumbers.containsValue(port.getPort()); } + + @Override + public EventLogger getEventLogger() + { + return _eventLogger; + } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java index 0298789672..afea8204a5 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.plugin; import java.util.Collection; import java.util.Map; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.security.AccessControl; @@ -28,7 +29,7 @@ public interface AccessControlFactory extends Pluggable { public static final String ATTRIBUTE_TYPE = AccessControlProvider.TYPE; - AccessControl createInstance(Map<String, Object> attributes); + AccessControl createInstance(Map<String, Object> attributes, final EventLogger eventLogger); /** * Returns the access control provider type @@ -38,7 +39,7 @@ public interface AccessControlFactory extends Pluggable /** * Get the names of attributes of the access control which can be passed into - * {@link #createInstance(Map)} to create the group manager + * {@link #createInstance(java.util.Map, org.apache.qpid.server.logging.EventLogger)} to create the group manager * * @return the collection of attribute names */ diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ProtocolEngineCreator.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ProtocolEngineCreator.java index 2fa9084b8b..df5aa01003 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ProtocolEngineCreator.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ProtocolEngineCreator.java @@ -30,6 +30,10 @@ public interface ProtocolEngineCreator extends Pluggable { AmqpProtocolVersion getVersion(); byte[] getHeaderIdentifier(); - ServerProtocolEngine newProtocolEngine(Broker broker, NetworkConnection network, Port port, Transport transport, long id); + ServerProtocolEngine newProtocolEngine(Broker broker, + NetworkConnection network, + Port port, + Transport transport, + long id); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java index 2b86f257b5..050b358f53 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java @@ -34,7 +34,6 @@ import javax.security.auth.Subject; import org.apache.log4j.Logger; import org.apache.qpid.protocol.ServerProtocolEngine; -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; @@ -326,7 +325,9 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine } if(equal) { - newDelegate = _creators[i].newProtocolEngine(_broker, _network, _port, _transport, _id); + newDelegate = _creators[i].newProtocolEngine(_broker, + _network, _port, _transport, _id + ); } } @@ -440,7 +441,7 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine public void readerIdle() { - SystemLog.message(ConnectionMessages.IDLE_CLOSE()); + _broker.getEventLogger().message(ConnectionMessages.IDLE_CLOSE()); _network.close(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java index 7ed54499ec..663d177541 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java @@ -36,7 +36,7 @@ import org.apache.qpid.server.binding.BindingImpl; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.connection.SessionPrincipal; import org.apache.qpid.server.exchange.ExchangeImpl; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.model.*; import org.apache.qpid.server.model.Queue; @@ -97,6 +97,7 @@ public abstract class AbstractQueue }; private final VirtualHost _virtualHost; + private final EventLogger _eventLogger; /** null means shared */ private String _description; @@ -204,6 +205,7 @@ public abstract class AbstractQueue { super(MapValueConverter.getUUIDAttribute(Queue.ID, attributes), Collections.<String,Object>emptyMap(), attributes, virtualHost.getTaskExecutor()); + _eventLogger = virtualHost.getEventLogger(); if (virtualHost == null) { throw new IllegalArgumentException("Virtual Host must not be null"); @@ -407,7 +409,7 @@ public abstract class AbstractQueue // Log the creation of this Queue. // The priorities display is toggled on if we set priorities > 0 - SystemLog.message(_logSubject, + _eventLogger.message(_logSubject, QueueMessages.CREATED(ownerString, _entries.getPriorities(), ownerString != null, @@ -1419,6 +1421,11 @@ public abstract class AbstractQueue return _consumerList; } + public EventLogger getEventLogger() + { + return _eventLogger; + } + public static interface QueueEntryFilter { @@ -1680,7 +1687,7 @@ public abstract class AbstractQueue stop(); //Log Queue Deletion - SystemLog.message(_logSubject, QueueMessages.DELETED()); + _eventLogger.message(_logSubject, QueueMessages.DELETED()); } return getQueueDepthMessages(); @@ -1703,7 +1710,7 @@ public abstract class AbstractQueue { _overfull.set(true); //Overfull log message - SystemLog.message(_logSubject, QueueMessages.OVERFULL(_atomicQueueSize.get(), _capacity)); + _eventLogger.message(_logSubject, QueueMessages.OVERFULL(_atomicQueueSize.get(), _capacity)); _blockedChannels.add(channel); @@ -1713,7 +1720,7 @@ public abstract class AbstractQueue { //Underfull log message - SystemLog.message(_logSubject, QueueMessages.UNDERFULL(_atomicQueueSize.get(), _flowResumeCapacity)); + _eventLogger.message(_logSubject, QueueMessages.UNDERFULL(_atomicQueueSize.get(), _flowResumeCapacity)); channel.unblock(this); _blockedChannels.remove(channel); @@ -1734,7 +1741,7 @@ public abstract class AbstractQueue { if(_overfull.compareAndSet(true,false)) {//Underfull log message - SystemLog.message(_logSubject, QueueMessages.UNDERFULL(_atomicQueueSize.get(), _flowResumeCapacity)); + _eventLogger.message(_logSubject, QueueMessages.UNDERFULL(_atomicQueueSize.get(), _flowResumeCapacity)); } for(final AMQSessionModel blockedChannel : _blockedChannels) diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java index ca6be01136..ebddc6318d 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java @@ -24,8 +24,8 @@ import org.apache.log4j.Logger; import org.apache.qpid.server.filter.FilterManager; import org.apache.qpid.server.filter.JMSSelectorFilter; import org.apache.qpid.server.filter.MessageFilter; +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.SubscriptionMessages; import org.apache.qpid.server.logging.subjects.QueueLogSubject; import org.apache.qpid.server.message.MessageInstance; @@ -84,6 +84,7 @@ class QueueConsumerImpl STATE_MAP.put(ConsumerTarget.State.CLOSED, State.DELETED); } + private final EventLogger _eventLogger; private final ConsumerTarget _target; private final SubFlushRunner _runner = new SubFlushRunner(this); private volatile QueueContext _queueContext; @@ -91,7 +92,7 @@ class QueueConsumerImpl { public void stateChanged(QueueConsumerImpl sub, State oldState, State newState) { - SystemLog.message(SubscriptionMessages.STATE(newState.toString())); + _eventLogger.message(SubscriptionMessages.STATE(newState.toString())); } }; @ManagedAttributeField @@ -125,6 +126,7 @@ class QueueConsumerImpl _isTransient = optionSet.contains(Option.TRANSIENT); _target = target; _queue = queue; + _eventLogger = queue.getEventLogger(); setupLogging(); // Access control @@ -178,12 +180,12 @@ class QueueConsumerImpl { if(_targetClosed.compareAndSet(false,true)) { - SystemLog.message(getLogSubject(), SubscriptionMessages.CLOSE()); + _eventLogger.message(getLogSubject(), SubscriptionMessages.CLOSE()); } } else { - SystemLog.message(getLogSubject(), SubscriptionMessages.STATE(newState.toString())); + _eventLogger.message(getLogSubject(), SubscriptionMessages.STATE(newState.toString())); } } @@ -297,7 +299,7 @@ class QueueConsumerImpl private void setupLogging() { final String filterLogString = getFilterLogString(); - SystemLog.message(this, + _eventLogger.message(this, SubscriptionMessages.CREATE(filterLogString, _queue.isDurable() && _exclusive, filterLogString.length() > 0)); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java index 0dd241906b..e3e2ec272c 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java @@ -64,9 +64,11 @@ public class ApplicationRegistry implements IApplicationRegistry { private static final Logger _logger = Logger.getLogger(ApplicationRegistry.class); - private final VirtualHostRegistry _virtualHostRegistry = new VirtualHostRegistry(); + private final EventLogger _eventLogger; - private volatile RootMessageLogger _rootMessageLogger; + private final VirtualHostRegistry _virtualHostRegistry; + + private volatile MessageLogger _messageLogger; private Broker _broker; @@ -78,14 +80,11 @@ public class ApplicationRegistry implements IApplicationRegistry private ConfigurationEntryStore _store; private TaskExecutor _taskExecutor; - protected void setRootMessageLogger(RootMessageLogger rootMessageLogger) - { - _rootMessageLogger = rootMessageLogger; - } - - public ApplicationRegistry(ConfigurationEntryStore store) + public ApplicationRegistry(ConfigurationEntryStore store, EventLogger eventLogger) { _store = store; + _eventLogger = eventLogger; + _virtualHostRegistry = new VirtualHostRegistry(eventLogger); initialiseStatistics(); } @@ -93,14 +92,14 @@ public class ApplicationRegistry implements IApplicationRegistry { // Create the RootLogger to be used during broker operation boolean statusUpdatesEnabled = Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES, "true")); - _rootMessageLogger = new Log4jMessageLogger(statusUpdatesEnabled); + _messageLogger = new Log4jMessageLogger(statusUpdatesEnabled); _logRecorder = new LogRecorder(); //Create the composite (log4j+SystemOut MessageLogger to be used during startup - RootMessageLogger[] messageLoggers = {new SystemOutMessageLogger(), _rootMessageLogger}; + MessageLogger[] messageLoggers = {new SystemOutMessageLogger(), _messageLogger}; CompositeStartupMessageLogger startupMessageLogger = new CompositeStartupMessageLogger(messageLoggers); - SystemLog.setRootMessageLogger(startupMessageLogger); + _eventLogger.setMessageLogger(startupMessageLogger); logStartupMessages(); @@ -108,7 +107,8 @@ public class ApplicationRegistry implements IApplicationRegistry _taskExecutor.start(); StoreConfigurationChangeListener storeChangeListener = new StoreConfigurationChangeListener(_store); - RecovererProvider provider = new DefaultRecovererProvider((StatisticsGatherer)this, _virtualHostRegistry, _logRecorder, _rootMessageLogger, _taskExecutor, brokerOptions, storeChangeListener); + RecovererProvider provider = new DefaultRecovererProvider((StatisticsGatherer)this, _virtualHostRegistry, _logRecorder, + _eventLogger, _taskExecutor, brokerOptions, storeChangeListener); ConfiguredObjectRecoverer<? extends ConfiguredObject> brokerRecoverer = provider.getRecoverer(Broker.class.getSimpleName()); _broker = (Broker) brokerRecoverer.create(provider, _store.getRootEntry()); @@ -119,8 +119,8 @@ public class ApplicationRegistry implements IApplicationRegistry // starting the broker _broker.setDesiredState(State.INITIALISING, State.ACTIVE); - SystemLog.message(BrokerMessages.READY()); - SystemLog.setRootMessageLogger(_rootMessageLogger); + _eventLogger.message(BrokerMessages.READY()); + _eventLogger.setMessageLogger(_messageLogger); } @@ -133,7 +133,7 @@ public class ApplicationRegistry implements IApplicationRegistry if (report > 0L) { _reportingTimer = new Timer("Statistics-Reporting", true); - StatisticsReportingTask task = new StatisticsReportingTask(reset, _rootMessageLogger); + StatisticsReportingTask task = new StatisticsReportingTask(reset, _messageLogger); _reportingTimer.scheduleAtFixedRate(task, report / 2, report); } } @@ -144,10 +144,10 @@ public class ApplicationRegistry implements IApplicationRegistry private final int RECEIVED = 1; private final boolean _reset; - private final RootMessageLogger _logger; + private final MessageLogger _logger; private final Subject _subject; - public StatisticsReportingTask(boolean reset, RootMessageLogger logger) + public StatisticsReportingTask(boolean reset, MessageLogger logger) { _reset = reset; _logger = logger; @@ -174,10 +174,12 @@ public class ApplicationRegistry implements IApplicationRegistry { try { - SystemLog.message(BrokerMessages.STATS_DATA(DELIVERED, _dataDelivered.getPeak() / 1024.0, _dataDelivered.getTotal())); - SystemLog.message(BrokerMessages.STATS_MSGS(DELIVERED, _messagesDelivered.getPeak(), _messagesDelivered.getTotal())); - SystemLog.message(BrokerMessages.STATS_DATA(RECEIVED, _dataReceived.getPeak() / 1024.0, _dataReceived.getTotal())); - SystemLog.message(BrokerMessages.STATS_MSGS(RECEIVED, _messagesReceived.getPeak(), _messagesReceived.getTotal())); + _eventLogger.message(BrokerMessages.STATS_DATA(DELIVERED, _dataDelivered.getPeak() / 1024.0, _dataDelivered.getTotal())); + _eventLogger.message(BrokerMessages.STATS_MSGS(DELIVERED, _messagesDelivered.getPeak(), _messagesDelivered.getTotal())); + _eventLogger.message(BrokerMessages.STATS_DATA(RECEIVED, _dataReceived.getPeak() / 1024.0, _dataReceived.getTotal())); + _eventLogger.message(BrokerMessages.STATS_MSGS(RECEIVED, + _messagesReceived.getPeak(), + _messagesReceived.getTotal())); Collection<VirtualHost> hosts = _virtualHostRegistry.getVirtualHosts(); if (hosts.size() > 1) @@ -189,11 +191,11 @@ public class ApplicationRegistry implements IApplicationRegistry StatisticsCounter messagesDelivered = vhost.getMessageDeliveryStatistics(); StatisticsCounter dataReceived = vhost.getDataReceiptStatistics(); StatisticsCounter messagesReceived = vhost.getMessageReceiptStatistics(); - - SystemLog.message(VirtualHostMessages.STATS_DATA(name, DELIVERED, dataDelivered.getPeak() / 1024.0, dataDelivered.getTotal())); - SystemLog.message(VirtualHostMessages.STATS_MSGS(name, DELIVERED, messagesDelivered.getPeak(), messagesDelivered.getTotal())); - SystemLog.message(VirtualHostMessages.STATS_DATA(name, RECEIVED, dataReceived.getPeak() / 1024.0, dataReceived.getTotal())); - SystemLog.message(VirtualHostMessages.STATS_MSGS(name, RECEIVED, messagesReceived.getPeak(), messagesReceived.getTotal())); + EventLogger logger = vhost.getEventLogger(); + logger.message(VirtualHostMessages.STATS_DATA(name, DELIVERED, dataDelivered.getPeak() / 1024.0, dataDelivered.getTotal())); + logger.message(VirtualHostMessages.STATS_MSGS(name, DELIVERED, messagesDelivered.getPeak(), messagesDelivered.getTotal())); + logger.message(VirtualHostMessages.STATS_DATA(name, RECEIVED, dataReceived.getPeak() / 1024.0, dataReceived.getTotal())); + logger.message(VirtualHostMessages.STATS_MSGS(name, RECEIVED, messagesReceived.getPeak(), messagesReceived.getTotal())); } } @@ -256,7 +258,7 @@ public class ApplicationRegistry implements IApplicationRegistry _taskExecutor.stop(); } - SystemLog.message(BrokerMessages.STOPPED()); + _eventLogger.message(BrokerMessages.STOPPED()); _logRecorder.closeLogRecorder(); @@ -327,15 +329,15 @@ public class ApplicationRegistry implements IApplicationRegistry private void logStartupMessages() { - SystemLog.message(BrokerMessages.STARTUP(QpidProperties.getReleaseVersion(), QpidProperties.getBuildVersion())); + _eventLogger.message(BrokerMessages.STARTUP(QpidProperties.getReleaseVersion(), QpidProperties.getBuildVersion())); - SystemLog.message(BrokerMessages.PLATFORM(System.getProperty("java.vendor"), + _eventLogger.message(BrokerMessages.PLATFORM(System.getProperty("java.vendor"), System.getProperty("java.runtime.version", System.getProperty("java.version")), SystemUtils.getOSName(), SystemUtils.getOSVersion(), SystemUtils.getOSArch())); - SystemLog.message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory())); + _eventLogger.message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory())); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java index 37c379da86..ba07fb56a7 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java @@ -97,7 +97,7 @@ public class SecurityManager implements ConfigurationChangeListener public SecurityManager(SecurityManager parent, String aclFile, String vhostName) { _managementMode = parent._managementMode; - + _broker = parent._broker; if(!_managementMode) { configureVirtualHostAclPlugin(aclFile, vhostName); @@ -118,7 +118,7 @@ public class SecurityManager implements ConfigurationChangeListener for (AccessControlFactory provider : (new QpidServiceLoader<AccessControlFactory>()).instancesOf(AccessControlFactory.class)) { - AccessControl accessControl = provider.createInstance(attributes); + AccessControl accessControl = provider.createInstance(attributes, _broker.getEventLogger()); accessControl.open(); if(accessControl != null) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java index bdc059e912..6696426c0e 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java @@ -28,7 +28,7 @@ import java.util.Map; import java.util.UUID; 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.EventLogger; import org.apache.qpid.server.logging.messages.ConfigStoreMessages; import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; @@ -47,6 +47,7 @@ public class DurableConfigurationRecoverer implements ConfigurationRecoveryHandl new HashMap<String, Map<UUID, List<DependencyListener>>>(); private final Map<String, DurableConfiguredObjectRecoverer> _recoverers; private final UpgraderProvider _upgraderProvider; + private final EventLogger _eventLogger; private DurableConfigurationStoreUpgrader _upgrader; @@ -57,11 +58,12 @@ public class DurableConfigurationRecoverer implements ConfigurationRecoveryHandl public DurableConfigurationRecoverer(final String name, Map<String, DurableConfiguredObjectRecoverer> recoverers, - UpgraderProvider upgraderProvider) + UpgraderProvider upgraderProvider, EventLogger eventLogger) { _recoverers = recoverers; _name = name; _upgraderProvider = upgraderProvider; + _eventLogger = eventLogger; } @Override @@ -102,7 +104,7 @@ public class DurableConfigurationRecoverer implements ConfigurationRecoveryHandl checkUnresolvedDependencies(); applyUpgrade(); - SystemLog.message(_logSubject, ConfigStoreMessages.RECOVERY_COMPLETE()); + _eventLogger.message(_logSubject, ConfigStoreMessages.RECOVERY_COMPLETE()); return CURRENT_CONFIG_VERSION; } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/OperationalLoggingListener.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/OperationalLoggingListener.java index 1420c950d9..43c75f75b1 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/OperationalLoggingListener.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/OperationalLoggingListener.java @@ -19,8 +19,8 @@ */ package org.apache.qpid.server.store; +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.ConfigStoreMessages; import org.apache.qpid.server.logging.messages.MessageStoreMessages; import org.apache.qpid.server.logging.messages.TransactionLogMessages; @@ -29,10 +29,13 @@ public class OperationalLoggingListener implements EventListener { protected final LogSubject _logSubject; private MessageStore _store; + private final EventLogger _eventLogger; - private OperationalLoggingListener(final MessageStore store, LogSubject logSubject) + + private OperationalLoggingListener(final MessageStore store, LogSubject logSubject, final EventLogger eventLogger) { _logSubject = logSubject; + _eventLogger = eventLogger; store.addEventListener(this, Event.BEFORE_INIT, Event.AFTER_INIT, @@ -42,45 +45,47 @@ public class OperationalLoggingListener implements EventListener Event.PERSISTENT_MESSAGE_SIZE_OVERFULL, Event.PERSISTENT_MESSAGE_SIZE_UNDERFULL); _store = store; + } public void event(Event event) { + switch(event) { case BEFORE_INIT: - SystemLog.message(_logSubject, ConfigStoreMessages.CREATED()); + _eventLogger.message(_logSubject, ConfigStoreMessages.CREATED()); break; case AFTER_INIT: - SystemLog.message(_logSubject, MessageStoreMessages.CREATED()); - SystemLog.message(_logSubject, TransactionLogMessages.CREATED()); + _eventLogger.message(_logSubject, MessageStoreMessages.CREATED()); + _eventLogger.message(_logSubject, TransactionLogMessages.CREATED()); String storeLocation = _store.getStoreLocation(); if (storeLocation != null) { - SystemLog.message(_logSubject, MessageStoreMessages.STORE_LOCATION(storeLocation)); + _eventLogger.message(_logSubject, MessageStoreMessages.STORE_LOCATION(storeLocation)); } break; case BEFORE_ACTIVATE: - SystemLog.message(_logSubject, MessageStoreMessages.RECOVERY_START()); + _eventLogger.message(_logSubject, MessageStoreMessages.RECOVERY_START()); break; case AFTER_ACTIVATE: - SystemLog.message(_logSubject, MessageStoreMessages.RECOVERY_COMPLETE()); + _eventLogger.message(_logSubject, MessageStoreMessages.RECOVERY_COMPLETE()); break; case AFTER_CLOSE: - SystemLog.message(_logSubject, MessageStoreMessages.CLOSED()); + _eventLogger.message(_logSubject, MessageStoreMessages.CLOSED()); break; case PERSISTENT_MESSAGE_SIZE_OVERFULL: - SystemLog.message(_logSubject, MessageStoreMessages.OVERFULL()); + _eventLogger.message(_logSubject, MessageStoreMessages.OVERFULL()); break; case PERSISTENT_MESSAGE_SIZE_UNDERFULL: - SystemLog.message(_logSubject, MessageStoreMessages.UNDERFULL()); + _eventLogger.message(_logSubject, MessageStoreMessages.UNDERFULL()); break; } } - public static void listen(final MessageStore store, LogSubject logSubject) + public static void listen(final MessageStore store, LogSubject logSubject, final EventLogger eventLogger) { - new OperationalLoggingListener(store, logSubject); + new OperationalLoggingListener(store, logSubject, eventLogger); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index 2eb2790382..650abd360c 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -38,7 +38,7 @@ import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.server.configuration.updater.TaskExecutor; import org.apache.qpid.server.exchange.AMQUnknownExchangeType; import org.apache.qpid.server.exchange.ExchangeImpl; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.configuration.ExchangeConfiguration; @@ -125,6 +125,8 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg private final Map<String, MessageSource> _systemNodeSources = Collections.synchronizedMap(new HashMap<String,MessageSource>()); + private final EventLogger _eventLogger; + public AbstractVirtualHost(VirtualHostRegistry virtualHostRegistry, StatisticsGatherer brokerStatisticsGatherer, @@ -148,10 +150,11 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg _name = _vhostConfig.getName(); _dtxRegistry = new DtxRegistry(); _model = virtualHost; + _eventLogger = virtualHostRegistry.getEventLogger(); _id = UUIDGenerator.generateVhostUUID(_name); - SystemLog.message(VirtualHostMessages.CREATED(_name)); + _eventLogger.message(VirtualHostMessages.CREATED(_name)); _securityManager = new SecurityManager(parentSecurityManager, _vhostConfig.getConfig().getString("security.acl"), _name); @@ -212,6 +215,12 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg return false; } + @Override + public EventLogger getEventLogger() + { + return _eventLogger; + } + /** * Initialise a housekeeping task to iterate over queues cleaning expired messages with no consumers * and checking for idle or open transactions that have exceeded the permitted thresholds. @@ -705,7 +714,7 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg _state = State.STOPPED; - SystemLog.message(VirtualHostMessages.CLOSED()); + _eventLogger.message(VirtualHostMessages.CLOSED()); } protected void closeStorage() @@ -912,7 +921,7 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg { if (state == State.ERRORED) { - SystemLog.message(VirtualHostMessages.ERRORED()); + _eventLogger.message(VirtualHostMessages.ERRORED()); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHost.java index 3ab6a57839..9b576bf41f 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHost.java @@ -90,7 +90,7 @@ public class StandardVirtualHost extends AbstractVirtualHost final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(getName(), messageStore.getClass().getSimpleName()); - OperationalLoggingListener.listen(messageStore, storeLogSubject); + OperationalLoggingListener.listen(messageStore, storeLogSubject, getEventLogger()); return messageStore; } @@ -126,10 +126,10 @@ public class StandardVirtualHost extends AbstractVirtualHost DurableConfigurationRecoverer configRecoverer = new DurableConfigurationRecoverer(getName(), getDurableConfigurationRecoverers(), - new DefaultUpgraderProvider(this, getExchangeRegistry())); + new DefaultUpgraderProvider(this, getExchangeRegistry()), getEventLogger()); _durableConfigurationStore.configureConfigStore(virtualHost, configRecoverer); - VirtualHostConfigRecoveryHandler recoveryHandler = new VirtualHostConfigRecoveryHandler(this, getExchangeRegistry(), getExchangeFactory()); + VirtualHostConfigRecoveryHandler recoveryHandler = new VirtualHostConfigRecoveryHandler(this); _messageStore.configureMessageStore(virtualHost, recoveryHandler, recoveryHandler); initialiseModel(hostConfig); diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java index 63b76f36a6..52bf2fb216 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java @@ -31,6 +31,7 @@ import org.apache.qpid.common.Closeable; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.connection.IConnectionRegistry; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageDestination; import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.plugin.ExchangeType; @@ -137,4 +138,6 @@ public interface VirtualHost extends DurableConfigurationStore.Source, Closeable TaskExecutor getTaskExecutor(); org.apache.qpid.server.model.VirtualHost getModel(); + + EventLogger getEventLogger(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java index c5ea2c7ac1..bc6739eef4 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java @@ -26,9 +26,7 @@ import java.util.TreeMap; import java.util.UUID; import org.apache.log4j.Logger; -import org.apache.qpid.server.exchange.ExchangeFactory; -import org.apache.qpid.server.exchange.ExchangeRegistry; -import org.apache.qpid.server.logging.SystemLog; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.TransactionLogMessages; import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; import org.apache.qpid.server.message.EnqueueableMessage; @@ -62,27 +60,22 @@ public class VirtualHostConfigRecoveryHandler implements private final Map<String, Integer> _queueRecoveries = new TreeMap<String, Integer>(); private final Map<Long, ServerMessage> _recoveredMessages = new HashMap<Long, ServerMessage>(); private final Map<Long, StoredMessage> _unusedMessages = new HashMap<Long, StoredMessage>(); - - private final ExchangeRegistry _exchangeRegistry; - private final ExchangeFactory _exchangeFactory; + private final EventLogger _eventLogger; private MessageStoreLogSubject _logSubject; private MessageStore _store; - public VirtualHostConfigRecoveryHandler(VirtualHost virtualHost, - ExchangeRegistry exchangeRegistry, - ExchangeFactory exchangeFactory) + public VirtualHostConfigRecoveryHandler(VirtualHost virtualHost) { _virtualHost = virtualHost; - _exchangeRegistry = exchangeRegistry; - _exchangeFactory = exchangeFactory; + _eventLogger = virtualHost.getEventLogger(); } public VirtualHostConfigRecoveryHandler begin(MessageStore store) { _logSubject = new MessageStoreLogSubject(_virtualHost.getName(), store.getClass().getSimpleName()); _store = store; - SystemLog.message(_logSubject, TransactionLogMessages.RECOVERY_START(null, false)); + _eventLogger.message(_logSubject, TransactionLogMessages.RECOVERY_START(null, false)); return this; } @@ -149,7 +142,7 @@ public class VirtualHostConfigRecoveryHandler implements else { StringBuilder xidString = xidAsString(id); - SystemLog.message(_logSubject, + _eventLogger.message(_logSubject, TransactionLogMessages.XA_INCOMPLETE_MESSAGE(xidString.toString(), Long.toString(messageId))); @@ -159,7 +152,7 @@ public class VirtualHostConfigRecoveryHandler implements else { StringBuilder xidString = xidAsString(id); - SystemLog.message(_logSubject, + _eventLogger.message(_logSubject, TransactionLogMessages.XA_INCOMPLETE_QUEUE(xidString.toString(), record.getResource().getId().toString())); @@ -199,7 +192,7 @@ public class VirtualHostConfigRecoveryHandler implements else { StringBuilder xidString = xidAsString(id); - SystemLog.message(_logSubject, + _eventLogger.message(_logSubject, TransactionLogMessages.XA_INCOMPLETE_MESSAGE(xidString.toString(), Long.toString(messageId))); @@ -209,7 +202,7 @@ public class VirtualHostConfigRecoveryHandler implements else { StringBuilder xidString = xidAsString(id); - SystemLog.message(_logSubject, + _eventLogger.message(_logSubject, TransactionLogMessages.XA_INCOMPLETE_QUEUE(xidString.toString(), record.getResource().getId().toString())); } @@ -238,7 +231,7 @@ public class VirtualHostConfigRecoveryHandler implements _logger.warn("Message id " + m.getMessageNumber() + " in store, but not in any queue - removing...."); m.remove(); } - SystemLog.message(_logSubject, TransactionLogMessages.RECOVERY_COMPLETE(null, false)); + _eventLogger.message(_logSubject, TransactionLogMessages.RECOVERY_COMPLETE(null, false)); } public void complete() @@ -316,9 +309,9 @@ public class VirtualHostConfigRecoveryHandler implements for(Map.Entry<String,Integer> entry : _queueRecoveries.entrySet()) { - SystemLog.message(_logSubject, TransactionLogMessages.RECOVERED(entry.getValue(), entry.getKey())); + _eventLogger.message(_logSubject, TransactionLogMessages.RECOVERED(entry.getValue(), entry.getKey())); - SystemLog.message(_logSubject, TransactionLogMessages.RECOVERY_COMPLETE(entry.getKey(), true)); + _eventLogger.message(_logSubject, TransactionLogMessages.RECOVERY_COMPLETE(entry.getKey(), true)); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java index 483e11942b..563db8e0f3 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.virtualhost; import org.apache.qpid.common.Closeable; +import org.apache.qpid.server.logging.EventLogger; import java.util.ArrayList; import java.util.Collection; @@ -32,11 +33,12 @@ public class VirtualHostRegistry implements Closeable { private final Map<String, VirtualHost> _registry = new ConcurrentHashMap<String, VirtualHost>(); private String _defaultVirtualHostName; + private final EventLogger _eventLogger; - public VirtualHostRegistry() + public VirtualHostRegistry(EventLogger eventLogger) { - super(); + _eventLogger = eventLogger; } public synchronized void registerVirtualHost(VirtualHost host) @@ -92,4 +94,8 @@ public class VirtualHostRegistry implements Closeable } } + public EventLogger getEventLogger() + { + return _eventLogger; + } } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java index 4548bd9210..74bd8c2d94 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java @@ -31,10 +31,10 @@ import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import org.apache.qpid.server.TransactionTimeoutHelper.CloseAction; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -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.txn.ServerTransaction; import org.apache.qpid.test.utils.QpidTestCase; import org.hamcrest.Description; @@ -42,7 +42,7 @@ import org.mockito.ArgumentMatcher; public class TransactionTimeoutHelperTest extends QpidTestCase { - private final RootMessageLogger _rootLogger = mock(RootMessageLogger.class); + private final MessageLogger _rootLogger = mock(MessageLogger.class); private final LogSubject _logSubject = mock(LogSubject.class); private final ServerTransaction _transaction = mock(ServerTransaction.class); private final CloseAction _closeAction = mock(CloseAction.class); @@ -154,8 +154,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase when(_logSubject.toLogString()).thenReturn(""); when(_rootLogger.isEnabled()).thenReturn(true); when(_rootLogger.isMessageEnabled(anyString())).thenReturn(true); - SystemLog.setRootMessageLogger(_rootLogger); - _transactionTimeoutHelper = new TransactionTimeoutHelper(_logSubject, _closeAction); + EventLogger eventLogger = new EventLogger(_rootLogger); + + _transactionTimeoutHelper = new TransactionTimeoutHelper(_logSubject, _closeAction, eventLogger); _now = System.currentTimeMillis(); } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java index ee90d71028..bd11f7192b 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java @@ -26,6 +26,8 @@ import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; +import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.NullMessageLogger; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.queue.PriorityQueue; import org.apache.qpid.server.queue.AMQQueue; @@ -49,7 +51,8 @@ public class VirtualHostConfigurationTest extends QpidTestCase _configXml = new XMLConfiguration(); _configXml.addProperty("virtualhosts.virtualhost(-1).name", getName()); _configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.class", TestableMemoryMessageStore.class.getName()); - _virtualHostRegistry = new VirtualHostRegistry(); + EventLogger eventLogger = new EventLogger(); + _virtualHostRegistry = new VirtualHostRegistry(eventLogger); _broker = mock(Broker.class); when(_broker.getAttribute(Broker.VIRTUALHOST_HOUSEKEEPING_CHECK_PERIOD)).thenReturn(30000l); } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java index c9f17f8443..0c7a5fa586 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java @@ -38,8 +38,9 @@ import org.apache.qpid.server.configuration.ConfigurationEntry; import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.configuration.RecovererProvider; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfiguredObject; @@ -77,7 +78,7 @@ public class BrokerRecovererTest extends TestCase super.setUp(); _brokerRecoverer = new BrokerRecoverer(mock(AuthenticationProviderFactory.class), mock(GroupProviderFactory.class), mock(AccessControlProviderFactory.class), mock(PortFactory.class), - mock(StatisticsGatherer.class), mock(VirtualHostRegistry.class), mock(LogRecorder.class), mock(RootMessageLogger.class), mock(TaskExecutor.class), mock(BrokerOptions.class), + mock(StatisticsGatherer.class), mock(VirtualHostRegistry.class), mock(LogRecorder.class), new EventLogger(), mock(TaskExecutor.class), mock(BrokerOptions.class), mock(StoreConfigurationChangeListener.class)); when(_brokerEntry.getId()).thenReturn(_brokerId); when(_brokerEntry.getChildren()).thenReturn(_brokerEntryChildren); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java index 8f3afe3468..abb66d9196 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java @@ -25,8 +25,9 @@ import junit.framework.TestCase; import org.apache.qpid.server.BrokerOptions; import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogRecorder; -import org.apache.qpid.server.logging.RootMessageLogger; +import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.GroupProvider; @@ -53,11 +54,11 @@ public class DefaultRecovererProviderTest extends TestCase StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class); VirtualHostRegistry virtualHostRegistry = mock(VirtualHostRegistry.class); LogRecorder logRecorder = mock(LogRecorder.class); - RootMessageLogger rootMessageLogger = mock(RootMessageLogger.class); + TaskExecutor taskExecutor = mock(TaskExecutor.class); DefaultRecovererProvider provider = new DefaultRecovererProvider(statisticsGatherer, virtualHostRegistry, - logRecorder, rootMessageLogger, taskExecutor, mock(BrokerOptions.class), + logRecorder, new EventLogger(), taskExecutor, mock(BrokerOptions.class), mock(StoreConfigurationChangeListener.class)); for (String configuredObjectType : supportedTypes) { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java index 0532386ff9..39c2a9bbf6 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java @@ -33,6 +33,7 @@ import java.util.UUID; import junit.framework.TestCase; import org.apache.qpid.common.AMQPFilterTypes; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.InstanceProperties; import org.apache.qpid.server.message.ServerMessage; @@ -60,6 +61,7 @@ public class FanoutExchangeTest extends TestCase _virtualHost = mock(VirtualHost.class); SecurityManager securityManager = mock(SecurityManager.class); when(_virtualHost.getSecurityManager()).thenReturn(securityManager); + when(_virtualHost.getEventLogger()).thenReturn(new EventLogger()); _exchange = new FanoutExchange(_virtualHost, attributes); } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java index 50b448eea3..607bcbf076 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java @@ -24,6 +24,7 @@ import java.util.Collection; import junit.framework.TestCase; import org.apache.qpid.server.binding.BindingImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; @@ -146,8 +147,11 @@ public class HeadersBindingTest extends TestCase VirtualHost vhost = mock(VirtualHost.class); when(_queue.getVirtualHost()).thenReturn(vhost); when(vhost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); + final EventLogger eventLogger = new EventLogger(); + when(vhost.getEventLogger()).thenReturn(eventLogger); _exchange = mock(ExchangeImpl.class); when(_exchange.getExchangeType()).thenReturn(mock(ExchangeType.class)); + when(_exchange.getEventLogger()).thenReturn(eventLogger); } protected String getQueueName() diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java index 9377bbac47..4a453167f7 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java @@ -30,6 +30,7 @@ import java.util.Set; import java.util.UUID; import junit.framework.TestCase; import org.apache.qpid.common.AMQPFilterTypes; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.InstanceProperties; import org.apache.qpid.server.message.ServerMessage; @@ -59,6 +60,7 @@ public class HeadersExchangeTest extends TestCase _virtualHost = mock(VirtualHost.class); SecurityManager securityManager = mock(SecurityManager.class); when(_virtualHost.getSecurityManager()).thenReturn(securityManager); + when(_virtualHost.getEventLogger()).thenReturn(new EventLogger()); Map<String,Object> attributes = new HashMap<String, Object>(); attributes.put(Exchange.ID, UUID.randomUUID()); attributes.put(Exchange.NAME, "test"); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java index be31f3d039..285072bc3f 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java @@ -24,7 +24,7 @@ package org.apache.qpid.server.logging; import java.util.LinkedList; import java.util.List; -public class UnitTestMessageLogger extends AbstractRootMessageLogger +public class UnitTestMessageLogger extends AbstractMessageLogger { private final List<Object> _log = new LinkedList<Object>(); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java index 57ef51e170..801ecfa984 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java @@ -23,7 +23,6 @@ package org.apache.qpid.server.logging.actors; import org.apache.qpid.server.connection.ConnectionPrincipal; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -import org.apache.qpid.server.logging.SystemLog; import javax.security.auth.Subject; import java.security.PrivilegedAction; @@ -108,7 +107,7 @@ public class AMQPConnectionActorTest extends BaseConnectionActorTestCase @Override public Object run() { - SystemLog.message(new LogSubject() + getEventLogger().message(new LogSubject() { public String toLogString() { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java index 4ff46658ef..3fa6c475cf 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java @@ -20,10 +20,10 @@ */ package org.apache.qpid.server.logging.actors; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -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.logging.UnitTestMessageLogger; import org.apache.qpid.test.utils.QpidTestCase; @@ -31,15 +31,16 @@ public class BaseActorTestCase extends QpidTestCase { private boolean _statusUpdatesEnabled = true; private UnitTestMessageLogger _rawLogger; - private RootMessageLogger _rootLogger; + private MessageLogger _rootLogger; + private EventLogger _eventLogger; @Override public void setUp() throws Exception { super.setUp(); _rawLogger = new UnitTestMessageLogger(_statusUpdatesEnabled); + _eventLogger = new EventLogger(_rawLogger); _rootLogger = _rawLogger; - SystemLog.setRootMessageLogger(_rootLogger); } @Override @@ -62,7 +63,7 @@ public class BaseActorTestCase extends QpidTestCase public void sendTestLogMessage(final String message) { - SystemLog.message(new LogSubject() + getEventLogger().message(new LogSubject() { public String toLogString() { @@ -99,9 +100,9 @@ public class BaseActorTestCase extends QpidTestCase return _rawLogger; } - public RootMessageLogger getRootLogger() + public EventLogger getEventLogger() { - return _rootLogger; + return _eventLogger; } } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/HttpManagementActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/HttpManagementActorTest.java index 5b98693970..f762d84bf1 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/HttpManagementActorTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/HttpManagementActorTest.java @@ -23,7 +23,6 @@ package org.apache.qpid.server.logging.actors; import javax.security.auth.Subject; import org.apache.qpid.server.logging.LogMessage; -import org.apache.qpid.server.logging.SystemLog; import org.apache.qpid.server.security.auth.ManagementConnectionPrincipal; import org.apache.qpid.server.security.auth.TestPrincipalUtils; @@ -125,7 +124,7 @@ public class HttpManagementActorTest extends BaseActorTestCase @Override public Object run() { - SystemLog.message(EMPTY_MESSAGE); + getEventLogger().message(EMPTY_MESSAGE); List<Object> logs = getRawLogger().getLogMessages(); assertEquals("Message log size not as expected.", 1, logs.size()); @@ -148,7 +147,7 @@ public class HttpManagementActorTest extends BaseActorTestCase { public String run() { - SystemLog.message(EMPTY_MESSAGE); + getEventLogger().message(EMPTY_MESSAGE); List<Object> logs = getRawLogger().getLogMessages(); assertEquals("Message log size not as expected.", 1, logs.size()); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java index 5eb4d2f1b0..db52bb0e29 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java @@ -23,9 +23,9 @@ package org.apache.qpid.server.logging.messages; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.qpid.server.logging.EventLogger; 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.UnitTestMessageLogger; import org.apache.qpid.server.logging.subjects.TestBlankSubject; import org.apache.qpid.server.util.BrokerTestHelper; @@ -39,6 +39,7 @@ public abstract class AbstractTestMessages extends QpidTestCase protected LogMessage _logMessage = null; protected UnitTestMessageLogger _logger; protected LogSubject _logSubject = new TestBlankSubject(); + private EventLogger _eventLogger; @Override public void setUp() throws Exception @@ -47,7 +48,7 @@ public abstract class AbstractTestMessages extends QpidTestCase BrokerTestHelper.setUp(); _logger = new UnitTestMessageLogger(); - SystemLog.setRootMessageLogger(_logger); + _eventLogger = new EventLogger(_logger); } @Override @@ -67,6 +68,10 @@ public abstract class AbstractTestMessages extends QpidTestCase _logger.clearLogMessages(); } + public EventLogger getEventLogger() + { + return _eventLogger; + } protected List<Object> performLog() { @@ -74,7 +79,7 @@ public abstract class AbstractTestMessages extends QpidTestCase { throw new NullPointerException("LogMessage has not been set"); } - SystemLog.message(_logSubject, _logMessage); + _eventLogger.message(_logSubject, _logMessage); return _logger.getLogMessages(); } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java index f3982f9be3..4789fa8c47 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java @@ -32,7 +32,7 @@ public class ExchangeMessagesTest extends AbstractTestMessages { public void testExchangeCreated_Transient() throws Exception { - ExchangeImpl exchange = BrokerTestHelper.createExchange("test", false); + ExchangeImpl exchange = BrokerTestHelper.createExchange("test", false, getEventLogger()); String type = exchange.getTypeName(); String name = exchange.getName(); @@ -47,7 +47,7 @@ public class ExchangeMessagesTest extends AbstractTestMessages public void testExchangeCreated_Persistent() throws Exception { - ExchangeImpl exchange = BrokerTestHelper.createExchange("test", true); + ExchangeImpl exchange = BrokerTestHelper.createExchange("test", true, getEventLogger()); String type = exchange.getTypeName(); String name = exchange.getName(); @@ -72,7 +72,7 @@ public class ExchangeMessagesTest extends AbstractTestMessages public void testExchangeDiscardedMessage() throws Exception { - ExchangeImpl exchange = BrokerTestHelper.createExchange("test", false); + ExchangeImpl exchange = BrokerTestHelper.createExchange("test", false, getEventLogger()); final String name = exchange.getName(); final String routingKey = "routingKey"; diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java index fd976e252e..b2582b293b 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java @@ -22,9 +22,9 @@ package org.apache.qpid.server.logging.subjects; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; 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.UnitTestMessageLogger; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.util.BrokerTestHelper; @@ -71,9 +71,9 @@ public abstract class AbstractTestLogSubject extends QpidTestCase } UnitTestMessageLogger logger = new UnitTestMessageLogger(statusUpdatesEnabled); - SystemLog.setRootMessageLogger(logger); + EventLogger eventLogger = new EventLogger(logger); - SystemLog.message(_subject, new LogMessage() + eventLogger.message(_subject, new LogMessage() { public String toString() { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java index cf7aa86320..a7dff974e7 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java @@ -63,7 +63,7 @@ public class ConfiguredObjectStateTransitionTest extends QpidTestCase when(_broker.getTaskExecutor()).thenReturn(executor); _recovererProvider = new DefaultRecovererProvider(statisticsGatherer, _broker.getVirtualHostRegistry(), - _broker.getLogRecorder(), _broker.getRootMessageLogger(), executor, new BrokerOptions(), mock(StoreConfigurationChangeListener.class)); + _broker.getLogRecorder(), _broker.getEventLogger(), executor, new BrokerOptions(), mock(StoreConfigurationChangeListener.class)); _store = mock(ConfigurationEntryStore.class); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java index 4302e4a83c..31a0b9d358 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java @@ -37,6 +37,7 @@ import org.apache.qpid.server.configuration.QueueConfiguration; import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.exchange.DefaultExchangeFactory; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.plugin.ExchangeType; @@ -69,6 +70,7 @@ public class AMQQueueFactoryTest extends QpidTestCase VirtualHostConfiguration vhostConfig = mock(VirtualHostConfiguration.class); when(_virtualHost.getConfiguration()).thenReturn(vhostConfig); + when(_virtualHost.getEventLogger()).thenReturn(new EventLogger()); _queueConfiguration = mock(QueueConfiguration.class); when(vhostConfig.getQueueConfiguration(anyString())).thenReturn(_queueConfiguration); DurableConfigurationStore store = mock(DurableConfigurationStore.class); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java index 54a25dd0e9..f8d06392e2 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import junit.framework.TestCase; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.ServerMessage; @@ -56,7 +57,7 @@ public class ConflationQueueListTest extends TestCase queueAttributes.put(Queue.LVQ_KEY, CONFLATION_KEY); final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(SecurityManager.class)); - + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); _queue = new ConflationQueue(virtualHost, queueAttributes); _list = (ConflationQueueList) _queue.getEntries(); } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java index 6e444419a4..7eda8ea4fa 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java @@ -23,6 +23,7 @@ package org.apache.qpid.server.queue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; @@ -55,6 +56,7 @@ public class PriorityQueueListTest extends QpidTestCase queueAttributes.put(Queue.PRIORITIES, 10); final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(SecurityManager.class)); + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); PriorityQueue queue = new PriorityQueue(virtualHost, queueAttributes); _list = (PriorityQueueList) queue.getEntries(); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java index d5639c1de8..c1f2986ab9 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java @@ -20,6 +20,7 @@ package org.apache.qpid.server.queue; import junit.framework.TestCase; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageInstance; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; @@ -196,6 +197,7 @@ public abstract class QueueEntryImplTestBase extends TestCase queueAttributes.put(Queue.NAME, getName()); final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); StandardQueue queue = new StandardQueue(virtualHost, queueAttributes); OrderedQueueEntryList queueEntryList = (OrderedQueueEntryList) queue.getEntries(); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java index 29413dd1a7..ae59f9ec65 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.server.queue; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Queue; @@ -46,7 +47,7 @@ public class SimpleQueueEntryImplTest extends QueueEntryImplTestBase queueAttributes.put(Queue.NAME, "SimpleQueueEntryImplTest"); final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); - + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); StandardQueue queue = new StandardQueue(virtualHost, queueAttributes); queueEntryList = (OrderedQueueEntryList) queue.getEntries(); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java index 792e656a97..3caafa1b3d 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java @@ -21,11 +21,13 @@ package org.apache.qpid.server.queue; import java.util.Collections; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; +import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.virtualhost.VirtualHost; import java.util.Arrays; @@ -83,8 +85,8 @@ public class SortedQueueEntryListTest extends QueueEntryListTestBase // Create test list final VirtualHost virtualHost = mock(VirtualHost.class); - when(virtualHost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); - + when(virtualHost.getSecurityManager()).thenReturn(mock(SecurityManager.class)); + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); _testQueue = new SortedQueue(virtualHost, attributes, new QueueEntryListFactory() { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java index e45a7667cd..06c00d7e61 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; @@ -55,7 +56,7 @@ public class SortedQueueEntryTest extends QueueEntryImplTestBase final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); - + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); SortedQueue queue = new SortedQueue(virtualHost, attributes, new QueueEntryListFactory() { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java index e3e1a3f659..8ee570733c 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.server.queue; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Queue; @@ -52,7 +53,8 @@ public class StandardQueueEntryListTest extends QueueEntryListTestBase queueAttributes.put(Queue.ID, UUID.randomUUID()); queueAttributes.put(Queue.NAME, getName()); final VirtualHost virtualHost = mock(VirtualHost.class); - when(virtualHost.getSecurityManager()).thenReturn(mock(org.apache.qpid.server.security.SecurityManager.class)); + when(virtualHost.getSecurityManager()).thenReturn(mock(SecurityManager.class)); + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); _testQueue = new StandardQueue(virtualHost, queueAttributes); _sqel = (StandardQueueEntryList) _testQueue.getEntries(); @@ -98,6 +100,7 @@ public class StandardQueueEntryListTest extends QueueEntryListTestBase queueAttributes.put(Queue.NAME, getName()); final VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getSecurityManager()).thenReturn(mock(SecurityManager.class)); + when(virtualHost.getEventLogger()).thenReturn(new EventLogger()); StandardQueue queue = new StandardQueue(virtualHost, queueAttributes); return (StandardQueueEntryList) queue.getEntries(); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java index 0ad56f3061..11c2451118 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java @@ -40,6 +40,7 @@ import org.apache.commons.configuration.Configuration; import org.apache.qpid.common.AMQPFilterTypes; import org.apache.qpid.server.binding.BindingImpl; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.EnqueueableMessage; import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; @@ -114,6 +115,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest when(_exchange.getId()).thenReturn(_exchangeId); when(_exchange.getExchangeType()).thenReturn(mock(ExchangeType.class)); + when(_exchange.getEventLogger()).thenReturn(new EventLogger()); when(_configuration.getString(eq(MessageStoreConstants.ENVIRONMENT_PATH_PROPERTY), anyString())).thenReturn( _storePath); when(_virtualHost.getAttribute(eq(VirtualHost.STORE_PATH))).thenReturn(_storePath); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java index 20a718bd23..aa9483a894 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/OperationalLoggingListenerTest.java @@ -19,24 +19,27 @@ package org.apache.qpid.server.store; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -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.logging.messages.ConfigStoreMessages; import org.apache.qpid.server.logging.messages.MessageStoreMessages; import org.apache.qpid.server.logging.messages.TransactionLogMessages; +import static org.mockito.Mockito.mock; + public class OperationalLoggingListenerTest extends TestCase { public static final String STORE_LOCATION = "The moon!"; + private EventLogger _eventLogger; protected void setUp() throws Exception { super.setUp(); - + _eventLogger = new EventLogger(); } public void testOperationalLoggingWithStoreLocation() throws Exception @@ -44,7 +47,7 @@ public class OperationalLoggingListenerTest extends TestCase TestMessageStore messageStore = new TestMessageStore(); LogSubject logSubject = LOG_SUBJECT; - OperationalLoggingListener.listen(messageStore, logSubject); + OperationalLoggingListener.listen(messageStore, logSubject, _eventLogger); performTests(messageStore, true); @@ -55,7 +58,7 @@ public class OperationalLoggingListenerTest extends TestCase TestMessageStore messageStore = new TestMessageStore(); LogSubject logSubject = LOG_SUBJECT; - OperationalLoggingListener.listen(messageStore, logSubject); + OperationalLoggingListener.listen(messageStore, logSubject, _eventLogger); performTests(messageStore, false); } @@ -64,7 +67,7 @@ public class OperationalLoggingListenerTest extends TestCase { final List<LogMessage> messages = new ArrayList<LogMessage>(); - SystemLog.setRootMessageLogger(new TestRootLogger(messages)); + _eventLogger.setMessageLogger(new TestLogger(messages)); if(setStoreLocation) { @@ -146,11 +149,11 @@ public class OperationalLoggingListenerTest extends TestCase } } - private static class TestRootLogger implements RootMessageLogger + private static class TestLogger implements MessageLogger { private final List<LogMessage> _messages; - private TestRootLogger(final List<LogMessage> messages) + private TestLogger(final List<LogMessage> messages) { _messages = messages; } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java index f93036142c..857cc60a7e 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java @@ -32,6 +32,7 @@ import java.util.UUID; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.protocol.AMQConnectionModel; import org.apache.qpid.server.protocol.AMQSessionModel; @@ -67,8 +68,9 @@ public class BrokerTestHelper when(broker.getAttribute(Broker.VIRTUALHOST_HOUSEKEEPING_CHECK_PERIOD)).thenReturn(10000l); when(broker.getId()).thenReturn(UUID.randomUUID()); when(broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(subjectCreator); - when(broker.getVirtualHostRegistry()).thenReturn(new VirtualHostRegistry()); + when(broker.getVirtualHostRegistry()).thenReturn(new VirtualHostRegistry(new EventLogger())); when(broker.getSecurityManager()).thenReturn(new SecurityManager(mock(Broker.class), false)); + when(broker.getEventLogger()).thenReturn(new EventLogger()); return broker; } @@ -107,7 +109,8 @@ public class BrokerTestHelper public static VirtualHost createVirtualHost(VirtualHostConfiguration virtualHostConfiguration) throws Exception { - return createVirtualHost(virtualHostConfiguration, null); + + return createVirtualHost(virtualHostConfiguration, new VirtualHostRegistry(new EventLogger())); } public static VirtualHost createVirtualHost(String name, VirtualHostRegistry virtualHostRegistry) throws Exception @@ -160,12 +163,13 @@ public class BrokerTestHelper return connection; } - public static ExchangeImpl createExchange(String hostName, final boolean durable) throws Exception + public static ExchangeImpl createExchange(String hostName, final boolean durable, final EventLogger eventLogger) throws Exception { SecurityManager securityManager = new SecurityManager(mock(Broker.class), false); VirtualHost virtualHost = mock(VirtualHost.class); when(virtualHost.getName()).thenReturn(hostName); when(virtualHost.getSecurityManager()).thenReturn(securityManager); + when(virtualHost.getEventLogger()).thenReturn(eventLogger); DefaultExchangeFactory factory = new DefaultExchangeFactory(virtualHost); Map<String,Object> attributes = new HashMap<String, Object>(); attributes.put(org.apache.qpid.server.model.Exchange.ID, UUIDGenerator.generateExchangeUUID("amp.direct", virtualHost.getName())); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java index 5455f03ebd..928ed6be74 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.UUID; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.exchange.DirectExchange; @@ -179,7 +180,7 @@ public class DurableConfigurationRecovererTest extends QpidTestCase } _durableConfigurationRecoverer = new DurableConfigurationRecoverer(_vhost.getName(), recovererMap, - new DefaultUpgraderProvider(_vhost, _exchangeRegistry)); + new DefaultUpgraderProvider(_vhost, _exchangeRegistry), new EventLogger()); _store = mock(DurableConfigurationStore.class); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java index 90829ca271..f3f4b0d06e 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java @@ -27,6 +27,7 @@ import org.apache.qpid.server.configuration.VirtualHostConfiguration; import org.apache.qpid.server.configuration.updater.TaskExecutor; import org.apache.qpid.server.connection.IConnectionRegistry; import org.apache.qpid.server.exchange.ExchangeImpl; +import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.message.MessageDestination; import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.plugin.ExchangeType; @@ -363,4 +364,10 @@ public class MockVirtualHost implements VirtualHost { return null; } + + @Override + public EventLogger getEventLogger() + { + return null; + } } 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() diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java index f92e361483..1d7c2ffa46 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java @@ -57,6 +57,7 @@ import org.apache.qpid.server.txn.AutoCommitTransaction; import org.apache.qpid.server.txn.ServerTransaction; import org.apache.qpid.server.util.BrokerTestHelper; import org.apache.qpid.server.virtualhost.VirtualHost; +import org.apache.qpid.server.virtualhost.VirtualHostRegistry; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.util.FileUtils; @@ -188,7 +189,7 @@ public class MessageStoreTest extends QpidTestCase try { - _virtualHost = BrokerTestHelper.createVirtualHost(new VirtualHostConfiguration(getClass().getName(), _config, _broker),null,getVirtualHostModel()); + _virtualHost = BrokerTestHelper.createVirtualHost(new VirtualHostConfiguration(getClass().getName(), _config, _broker),new VirtualHostRegistry(_broker.getEventLogger()),getVirtualHostModel()); } catch (Exception e) { |