LOG4J2-1121 ConfigurationMonitor returns the appropriate ReliabilityStrategy (since it knows if reconfiguration is possible)
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c817d70c Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c817d70c Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c817d70c Branch: refs/heads/master Commit: c817d70c74c5e28f66137f2af2672869c19e0e07 Parents: 1596a6f Author: rpopma <[email protected]> Authored: Sun Sep 20 05:30:38 2015 +0900 Committer: rpopma <[email protected]> Committed: Sun Sep 20 05:30:38 2015 +0900 ---------------------------------------------------------------------- .../log4j/core/config/ConfigurationMonitor.java | 2 +- .../config/DefaultConfigurationMonitor.java | 8 +++++++ .../core/config/FileConfigurationMonitor.java | 8 +++++++ .../core/config/ReliabilityStrategyFactory.java | 25 ++++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c817d70c/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationMonitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationMonitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationMonitor.java index baf97b2..3fc3d03 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationMonitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationMonitor.java @@ -19,7 +19,7 @@ package org.apache.logging.log4j.core.config; /** * Interface that must be implemented to provide notification of configuration changes. */ -public interface ConfigurationMonitor { +public interface ConfigurationMonitor extends ReliabilityStrategyFactory { /** * Called to determine if the configuration has changed. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c817d70c/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationMonitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationMonitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationMonitor.java index b3ede27..f52cfa7 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationMonitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationMonitor.java @@ -28,4 +28,12 @@ public class DefaultConfigurationMonitor implements ConfigurationMonitor { public void checkConfiguration() { // do nothing } + + /* (non-Javadoc) + * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#getReliabilityStrategy(org.apache.logging.log4j.core.config.LoggerConfig) + */ + @Override + public ReliabilityStrategy getReliabilityStrategy(LoggerConfig loggerConfig) { + return new DefaultReliabilityStrategy(loggerConfig); + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c817d70c/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java index 61d8205..8e95036 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/FileConfigurationMonitor.java @@ -107,4 +107,12 @@ public class FileConfigurationMonitor implements ConfigurationMonitor { listener.onChange(reconfigurable); } } + + /* (non-Javadoc) + * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#getReliabilityStrategy(org.apache.logging.log4j.core.config.LoggerConfig) + */ + @Override + public ReliabilityStrategy getReliabilityStrategy(LoggerConfig loggerConfig) { + return new AwaitCompletionReliabilityStrategy(loggerConfig); + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c817d70c/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategyFactory.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategyFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategyFactory.java new file mode 100644 index 0000000..2a9dab5 --- /dev/null +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategyFactory.java @@ -0,0 +1,25 @@ +/* + * 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.logging.log4j.core.config; + +/** + * Factory for ReliabilityStrategies. + */ +public interface ReliabilityStrategyFactory { + ReliabilityStrategy getReliabilityStrategy(final LoggerConfig loggerConfig); +}
