From 19b2671cbd4af77ac52c222605c09b06cab7ced6 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Sat, 8 Mar 2014 14:36:06 +0000 Subject: QPID-5611 : Fix other logging to always use the most current event logger held at the broker git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1575547 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/TransactionTimeoutHelper.java | 14 ++++++++---- .../qpid/server/logging/EventLoggerProvider.java | 26 ++++++++++++++++++++++ .../java/org/apache/qpid/server/model/Broker.java | 3 ++- .../adapter/AccessControlProviderFactory.java | 2 +- .../qpid/server/plugin/AccessControlFactory.java | 3 ++- .../qpid/server/security/SecurityManager.java | 2 +- .../qpid/server/virtualhost/VirtualHost.java | 4 +++- .../qpid/server/TransactionTimeoutHelperTest.java | 6 +++-- 8 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLoggerProvider.java (limited to 'qpid/java/broker-core/src') 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 dd47a28296..2bf9fae19d 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 @@ -19,6 +19,7 @@ package org.apache.qpid.server; import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.EventLoggerProvider; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.messages.ChannelMessages; @@ -32,15 +33,15 @@ public class TransactionTimeoutHelper private final LogSubject _logSubject; private final CloseAction _closeAction; - private final EventLogger _eventLogger; + private final EventLoggerProvider _eventLoggerProvider; public TransactionTimeoutHelper(final LogSubject logSubject, final CloseAction closeAction, - final EventLogger eventLogger) + final EventLoggerProvider eventLoggerProvider) { _logSubject = logSubject; _closeAction = closeAction; - _eventLogger = eventLogger; + _eventLoggerProvider = eventLoggerProvider; } public void checkIdleOrOpenTimes(ServerTransaction transaction, long openWarn, long openClose, long idleWarn, long idleClose) @@ -76,7 +77,7 @@ public class TransactionTimeoutHelper { if (isTimedOut(timeSoFar, warnTimeout)) { - _eventLogger.message(_logSubject, warnMessage); + getEventLogger().message(_logSubject, warnMessage); } if(isTimedOut(timeSoFar, closeTimeout)) @@ -100,4 +101,9 @@ public class TransactionTimeoutHelper void doTimeoutAction(String reason); } + public EventLogger getEventLogger() + { + return _eventLoggerProvider.getEventLogger(); + } + } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLoggerProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLoggerProvider.java new file mode 100644 index 0000000000..c628f0dcfa --- /dev/null +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLoggerProvider.java @@ -0,0 +1,26 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.server.logging; + +public interface EventLoggerProvider +{ + public EventLogger getEventLogger(); +} 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 ab07b3eec6..bb3e635326 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 @@ -24,6 +24,7 @@ import java.net.SocketAddress; import java.util.Collection; import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.EventLoggerProvider; import org.apache.qpid.server.logging.LogRecorder; import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.configuration.updater.TaskExecutor; @@ -32,7 +33,7 @@ import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; @ManagedObject -public interface Broker> extends ConfiguredObject +public interface Broker> extends ConfiguredObject, EventLoggerProvider { String BUILD_VERSION = "buildVersion"; 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 53909fb09d..e98cc2800c 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, broker.getEventLogger()); + AccessControl accessControl = factory.createInstance(attributes, broker); 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/plugin/AccessControlFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java index afea8204a5..3d7c479ba2 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 @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.Map; import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.EventLoggerProvider; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.security.AccessControl; @@ -29,7 +30,7 @@ public interface AccessControlFactory extends Pluggable { public static final String ATTRIBUTE_TYPE = AccessControlProvider.TYPE; - AccessControl createInstance(Map attributes, final EventLogger eventLogger); + AccessControl createInstance(Map attributes, final EventLoggerProvider eventLogger); /** * Returns the access control provider type 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 c45b7bb2be..ac0521b34e 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 @@ -144,7 +144,7 @@ public class SecurityManager implements ConfigurationChangeListener for (AccessControlFactory provider : (new QpidServiceLoader()).instancesOf(AccessControlFactory.class)) { - AccessControl accessControl = provider.createInstance(attributes, _broker.getEventLogger()); + AccessControl accessControl = provider.createInstance(attributes, _broker); accessControl.open(); if(accessControl != null) { 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 52bf2fb216..a06056de8f 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 @@ -32,6 +32,7 @@ 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.logging.EventLoggerProvider; import org.apache.qpid.server.message.MessageDestination; import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.plugin.ExchangeType; @@ -43,7 +44,8 @@ import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.txn.DtxRegistry; -public interface VirtualHost extends DurableConfigurationStore.Source, Closeable, StatisticsGatherer +public interface VirtualHost extends DurableConfigurationStore.Source, Closeable, StatisticsGatherer, + EventLoggerProvider { IConnectionRegistry getConnectionRegistry(); 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 74bd8c2d94..744c609845 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 @@ -32,6 +32,7 @@ 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.EventLoggerProvider; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.MessageLogger; @@ -155,8 +156,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase when(_rootLogger.isEnabled()).thenReturn(true); when(_rootLogger.isMessageEnabled(anyString())).thenReturn(true); EventLogger eventLogger = new EventLogger(_rootLogger); - - _transactionTimeoutHelper = new TransactionTimeoutHelper(_logSubject, _closeAction, eventLogger); + EventLoggerProvider eventLoggerProvider = mock(EventLoggerProvider.class); + when(eventLoggerProvider.getEventLogger()).thenReturn(eventLogger); + _transactionTimeoutHelper = new TransactionTimeoutHelper(_logSubject, _closeAction, eventLoggerProvider); _now = System.currentTimeMillis(); } -- cgit v1.2.1