Simplify LoggerAdapter interface. - Moved one method down to abstract class. - Use Closeable interface instead of stop method.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/48f3a4ed Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/48f3a4ed Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/48f3a4ed Branch: refs/heads/master Commit: 48f3a4ed981a787f0ab809bb6c861611435ca263 Parents: 2d73203 Author: Matt Sicker <[email protected]> Authored: Sun Sep 21 12:08:58 2014 -0500 Committer: Matt Sicker <[email protected]> Committed: Sun Sep 21 12:08:58 2014 -0500 ---------------------------------------------------------------------- .../logging/log4j/spi/AbstractLoggerAdapter.java | 10 ++++++++-- .../apache/logging/log4j/spi/LoggerAdapter.java | 17 ++--------------- .../apache/logging/log4j/jcl/LogFactoryImpl.java | 6 +++++- 3 files changed, 15 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/48f3a4ed/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java index 8d30758..1252af7 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java @@ -23,6 +23,7 @@ import java.util.concurrent.ConcurrentMap; /** * Provides an abstract base class to use for implementing ExternalLoggerContextRegistry. + * @param <L> the Logger class to adapt * @since 2.1 */ public abstract class AbstractLoggerAdapter<L> implements LoggerAdapter<L> { @@ -44,7 +45,12 @@ public abstract class AbstractLoggerAdapter<L> implements LoggerAdapter<L> { return loggers.get(name); } - @Override + /** + * Gets or creates the ConcurrentMap of named loggers for a given LoggerContext. + * + * @param context the LoggerContext to get loggers for + * @return the map of loggers for the given LoggerContext + */ public ConcurrentMap<String, L> getLoggersInContext(final LoggerContext context) { synchronized (registry) { ConcurrentMap<String, L> loggers = registry.get(context); @@ -75,7 +81,7 @@ public abstract class AbstractLoggerAdapter<L> implements LoggerAdapter<L> { protected abstract LoggerContext getContext(); @Override - public void stop() { + public void close() { registry.clear(); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/48f3a4ed/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerAdapter.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerAdapter.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerAdapter.java index 4e3c431..26f2dcf 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerAdapter.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerAdapter.java @@ -1,6 +1,6 @@ package org.apache.logging.log4j.spi; -import java.util.concurrent.ConcurrentMap; +import java.io.Closeable; /** * A basic registry for {@link LoggerContext} objects and their associated external @@ -10,7 +10,7 @@ import java.util.concurrent.ConcurrentMap; * @param <L> the external logger class for this registry (e.g., {@code org.slf4j.Logger}) * @since 2.1 */ -public interface LoggerAdapter<L> { +public interface LoggerAdapter<L> extends Closeable { /** * Gets a named logger. Implementations should defer to the abstract methods in {@link AbstractLoggerAdapter}. @@ -19,17 +19,4 @@ public interface LoggerAdapter<L> { * @return the named logger */ L getLogger(String name); - - /** - * Gets or creates the ConcurrentMap of named loggers for a given LoggerContext. - * - * @param context the LoggerContext to get loggers for - * @return the map of loggers for the given LoggerContext - */ - ConcurrentMap<String, L> getLoggersInContext(LoggerContext context); - - /** - * Shuts down this registry. Implementations should clear out any instance data and perform any relevant clean-up. - */ - void stop(); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/48f3a4ed/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java ---------------------------------------------------------------------- diff --git a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java index 2c0bb6d..22b1480 100644 --- a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java +++ b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java @@ -16,6 +16,7 @@ */ package org.apache.logging.log4j.jcl; +import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -60,7 +61,10 @@ public class LogFactoryImpl extends LogFactory { */ @Override public void release() { - adapter.stop(); + try { + adapter.close(); + } catch (final IOException ignored) { + } } @Override
