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);
+}

Reply via email to