Remove logback related stuff
[controller.git] / opendaylight / config / logback-config / src / main / java / org / opendaylight / controller / config / yang / logback / config / ContextSetterImpl.java
diff --git a/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/ContextSetterImpl.java b/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/ContextSetterImpl.java
deleted file mode 100644 (file)
index cbb2182..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.config.yang.logback.config;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
-import ch.qos.logback.classic.filter.ThresholdFilter;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.Appender;
-import ch.qos.logback.core.rolling.FixedWindowRollingPolicy;
-import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;
-import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
-import ch.qos.logback.core.util.FileSize;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.slf4j.LoggerFactory;
-
-/**
- * Implementation of {@link ContextSetter}. Resets running logback
- * configuration.
- */
-public class ContextSetterImpl implements ContextSetter, Closeable {
-
-    private final LogbackStatusListener statusListener;
-    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(ContextSetterImpl.class);
-
-    public ContextSetterImpl(final LogbackRuntimeRegistrator rootRuntimeBeanRegistratorWrapper) {
-        statusListener = new LogbackStatusListener(rootRuntimeBeanRegistratorWrapper);
-        statusListener.register();
-    }
-
-    @Override
-    public void updateContext(final LogbackModule module) {
-        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
-
-        List<ch.qos.logback.classic.Logger> loggersBefore = context.getLoggerList();
-
-        createLoggers(context, module, Sets.newHashSet(loggersBefore));
-    }
-
-    private Map<String, Appender<ILoggingEvent>> createConsoleAppenders(final LoggerContext context, final LogbackModule module) {
-        Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
-        for (ConsoleAppenderTO appender : module.getConsoleAppenderTO()) {
-            Preconditions.checkState(appendersMap.containsKey(appender.getName()) == false,
-                    "Duplicate appender name %s", appender.getName());
-            ch.qos.logback.core.ConsoleAppender<ILoggingEvent> app = new ch.qos.logback.core.ConsoleAppender<>();
-            app.setContext(context);
-            PatternLayoutEncoder encoder = new PatternLayoutEncoder();
-            encoder.setContext(context);
-            encoder.setPattern(appender.getEncoderPattern());
-            encoder.start();
-            app.setEncoder(encoder);
-            ThresholdFilter filter = new ThresholdFilter();
-            filter.setContext(context);
-            filter.setLevel(appender.getThresholdFilter());
-            filter.start();
-            app.getCopyOfAttachedFiltersList().add(filter);
-            app.setName(appender.getName());
-            app.start();
-            appendersMap.put(app.getName(), app);
-        }
-        return appendersMap;
-    }
-
-    private void createLoggers(final LoggerContext context, final LogbackModule module,
-            final Set<ch.qos.logback.classic.Logger> loggersBefore) {
-
-        Map<String, Appender<ILoggingEvent>> appendersMap = getAppenders(module, context);
-
-        for (LoggerTO logger : module.getLoggerTO()) {
-            LOG.trace("Setting configuration for logger {}", logger.getLoggerName());
-            final ch.qos.logback.classic.Logger logbackLogger = context.getLogger(logger.getLoggerName());
-
-            Optional<Set<Appender<ILoggingEvent>>> appendersBefore = getAppendersBefore(loggersBefore, logbackLogger);
-            LOG.trace("Logger {}: Appenders registered before: {}", logger.getLoggerName(),
-                    appendersBefore.isPresent() ? appendersBefore.get() : "NO APPENDERS BEFORE");
-
-            logbackLogger.setLevel(Level.toLevel(logger.getLevel()));
-
-            addNewAppenders(appendersMap, logger, logbackLogger, appendersBefore);
-            removeBeforeAppenders(loggersBefore, logger, logbackLogger, appendersBefore);
-        }
-    }
-
-    private void addNewAppenders(final Map<String, Appender<ILoggingEvent>> appendersMap, final LoggerTO logger,
-            final ch.qos.logback.classic.Logger logbackLogger, final Optional<Set<Appender<ILoggingEvent>>> appendersBefore) {
-        if (logger.getAppenders() != null) {
-            for (String appenderName : logger.getAppenders()) {
-                if (appendersMap.containsKey(appenderName)) {
-                    logbackLogger.addAppender(appendersMap.get(appenderName));
-                    LOG.trace("Logger {}: Adding new appender: {}", logger.getLoggerName(), appenderName);
-                } else {
-                    throw new IllegalStateException("No appender " + appenderName
-                            + " found. This error should have been discovered by validation");
-                }
-            }
-        }
-    }
-
-    private void removeBeforeAppenders(final Set<ch.qos.logback.classic.Logger> loggersBefore, final LoggerTO logger,
-            final ch.qos.logback.classic.Logger logbackLogger, final Optional<Set<Appender<ILoggingEvent>>> appendersBefore) {
-        if (appendersBefore.isPresent()) {
-            for (Appender<ILoggingEvent> appenderBefore : appendersBefore.get()) {
-                logbackLogger.detachAppender(appenderBefore);
-                appenderBefore.stop();
-                LOG.trace("Logger {}: Removing old appender: {}", logger.getLoggerName(),
-                        appenderBefore.getName());
-            }
-            loggersBefore.remove(logbackLogger);
-        }
-    }
-
-    private Optional<Set<Appender<ILoggingEvent>>> getAppendersBefore(final Set<ch.qos.logback.classic.Logger> loggersBefore,
-            final ch.qos.logback.classic.Logger logbackLogger) {
-        if (loggersBefore.contains(logbackLogger)) {
-            Iterator<Appender<ILoggingEvent>> appenderIt = logbackLogger.iteratorForAppenders();
-            Set<Appender<ILoggingEvent>> appendersBefore = Sets.newHashSet();
-            while (appenderIt.hasNext()) {
-                appendersBefore.add(appenderIt.next());
-            }
-            return Optional.of(appendersBefore);
-        } else {
-            return Optional.absent();
-        }
-
-    }
-
-    private Map<String, Appender<ILoggingEvent>> getAppenders(final LogbackModule module, final LoggerContext context) {
-        Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
-        addAllAppenders(appendersMap, createRollingAppenders(context, module));
-        addAllAppenders(appendersMap, createFileAppenders(context, module));
-        addAllAppenders(appendersMap, createConsoleAppenders(context, module));
-
-        return appendersMap;
-    }
-
-    private void addAllAppenders(final Map<String, Appender<ILoggingEvent>> allAppenders,
-            final Map<String, Appender<ILoggingEvent>> appendersToAdd) {
-        for (String appenderName : appendersToAdd.keySet()) {
-            Preconditions.checkState(allAppenders.containsKey(appenderName) == false, "Duplicate appender name %s",
-                    appenderName);
-            allAppenders.put(appenderName, appendersToAdd.get(appenderName));
-        }
-    }
-
-    private Map<String, Appender<ILoggingEvent>> createFileAppenders(final LoggerContext context, final LogbackModule module) {
-        Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
-        for (FileAppenderTO appender : module.getFileAppenderTO()) {
-            Preconditions.checkState(appendersMap.containsKey(appender.getName()) == false,
-                    "Duplicate appender name %s", appender.getName());
-            ch.qos.logback.core.FileAppender<ILoggingEvent> app = new ch.qos.logback.core.FileAppender<>();
-            app.setAppend(appender.getAppend());
-            app.setContext(context);
-            PatternLayoutEncoder encoder = new PatternLayoutEncoder();
-            encoder.setContext(context);
-            encoder.setPattern(appender.getEncoderPattern());
-            encoder.start();
-            app.setEncoder(encoder);
-            app.setFile(appender.getFileName());
-            app.setName(appender.getName());
-            app.start();
-            appendersMap.put(app.getName(), app);
-        }
-
-        return appendersMap;
-    }
-
-    private Map<String, Appender<ILoggingEvent>> createRollingAppenders(final LoggerContext context, final LogbackModule module) {
-        Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
-        for (RollingFileAppenderTO appender : module.getRollingFileAppenderTO()) {
-            Preconditions.checkState(appendersMap.containsKey(appender.getName()) == false,
-                    "Duplicate appender name %s", appender.getName());
-            ch.qos.logback.core.rolling.RollingFileAppender<ILoggingEvent> app = new ch.qos.logback.core.rolling.RollingFileAppender<>();
-            app.setAppend(appender.getAppend());
-            app.setContext(context);
-            PatternLayoutEncoder encoder = new PatternLayoutEncoder();
-            encoder.setContext(context);
-            encoder.setPattern(appender.getEncoderPattern());
-            encoder.start();
-            app.setEncoder(encoder);
-            app.setFile(appender.getFileName());
-            if (appender.getRollingPolicyType().equals("FixedWindowRollingPolicy")) {
-                FixedWindowRollingPolicy policy = new FixedWindowRollingPolicy();
-                policy.setContext(context);
-                policy.setMaxIndex(appender.getMaxIndex());
-                policy.setMinIndex(appender.getMinIndex());
-                policy.setFileNamePattern(appender.getFileNamePattern());
-                policy.setParent(app);
-                policy.start();
-                app.setRollingPolicy(policy);
-            } else if (appender.getRollingPolicyType().equals("TimeBasedRollingPolicy")) {
-                TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<>();
-                policy.setContext(context);
-                policy.setMaxHistory(appender.getMaxHistory());
-                if (appender.getCleanHistoryOnStart() != null) {
-                    policy.setCleanHistoryOnStart(appender.getCleanHistoryOnStart());
-                }
-                policy.setFileNamePattern(appender.getFileNamePattern());
-                policy.setParent(app);
-                policy.start();
-                app.setRollingPolicy(policy);
-            }
-            SizeBasedTriggeringPolicy<ILoggingEvent> triggeringPolicy = new SizeBasedTriggeringPolicy<>();
-            triggeringPolicy.setContext(context);
-            triggeringPolicy.setMaxFileSize(FileSize.valueOf(appender.getMaxFileSize()));
-            triggeringPolicy.start();
-            app.setTriggeringPolicy(triggeringPolicy);
-            app.setName(appender.getName());
-            app.start();
-            appendersMap.put(app.getName(), app);
-        }
-        return appendersMap;
-    }
-
-    @Override
-    public void close() throws IOException {
-        statusListener.close();
-    }
-}