X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Flogback-config%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Flogback%2Fconfig%2FLogbackModuleWithInitialConfigurationTest.java;h=37bfb6d9578920c62115fd4deebaf7dc8c2cf750;hb=abca01a0016ee55b6cdcb71c81419c4b143bb63a;hp=2bdfa47b5492a3e752ba57b193d8fe2ec82d9a1e;hpb=655dffff17a7c45d181d0b15decf627fdd1238eb;p=controller.git diff --git a/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleWithInitialConfigurationTest.java b/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleWithInitialConfigurationTest.java index 2bdfa47b54..37bfb6d957 100644 --- a/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleWithInitialConfigurationTest.java +++ b/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackModuleWithInitialConfigurationTest.java @@ -7,22 +7,19 @@ */ package org.opendaylight.controller.config.yang.logback.config; -import static org.junit.Assert.assertEquals; - -import java.io.File; -import java.io.IOException; -import java.lang.management.ManagementFactory; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.management.InstanceAlreadyExistsException; -import javax.management.JMX; -import javax.management.ObjectName; - +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.encoder.PatternLayoutEncoder; +import ch.qos.logback.classic.joran.JoranConfigurator; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.joran.spi.JoranException; +import ch.qos.logback.core.rolling.FixedWindowRollingPolicy; +import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy; +import com.google.common.collect.Lists; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.Test; +import org.opendaylight.controller.config.api.ConflictingVersionException; +import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; import org.opendaylight.controller.config.manager.impl.AbstractConfigTest; import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver; @@ -30,18 +27,21 @@ import org.opendaylight.controller.config.util.ConfigTransactionClient; import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; import org.slf4j.LoggerFactory; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.encoder.PatternLayoutEncoder; -import ch.qos.logback.classic.joran.JoranConfigurator; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.joran.spi.JoranException; -import ch.qos.logback.core.rolling.FixedWindowRollingPolicy; -import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.JMX; +import javax.management.MalformedObjectNameException; +import javax.management.ObjectName; +import java.io.File; +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; -import com.google.common.collect.Lists; +import static org.junit.Assert.assertEquals; -public class LogbackModuleWithInitialConfigurationTest extends - AbstractConfigTest { +public class LogbackModuleWithInitialConfigurationTest extends AbstractConfigTest { private LogbackModuleFactory factory; @@ -49,36 +49,32 @@ public class LogbackModuleWithInitialConfigurationTest extends public void setUp() throws IOException, ClassNotFoundException { factory = new LogbackModuleFactory(); - super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver( - factory)); + super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext,factory)); } /** * Tests that initial configuration was changed. Changed attributes: - * location, fileName, duplicateInsertTries - * + * location, fileName, duplicateInsertTries. Added new FileAppender. */ @Test public void test() throws Exception { createBeans(); - ConfigTransactionClient transaction = configRegistryClient - .createTransaction(); + ConfigTransactionClient transaction = configRegistryClient.createTransaction(); - LogbackModuleMXBean bean = JMX.newMXBeanProxy( - ManagementFactory.getPlatformMBeanServer(), - transaction.lookupConfigBean("logback", "singleton"), - LogbackModuleMXBean.class); + LogbackModuleMXBean bean = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), + transaction.lookupConfigBean("logback", "singleton"), LogbackModuleMXBean.class); assertEquals(1, bean.getConsoleAppenderTO().size()); assertEquals(1, bean.getRollingFileAppenderTO().size()); + assertEquals(0, bean.getFileAppenderTO().size()); assertEquals(1, bean.getLoggerTO().size()); RollingFileAppenderTO rolling = new RollingFileAppenderTO(); - RollingFileAppenderTO old = bean - .getRollingFileAppenderTO().get(0); + RollingFileAppenderTO old = bean.getRollingFileAppenderTO().get(0); rolling.setAppend(old.getAppend()); rolling.setEncoderPattern(old.getEncoderPattern()); + rolling.setRollingPolicyType(old.getRollingPolicyType()); rolling.setFileName("target/logFile1.log"); rolling.setFileNamePattern("target/%i.log"); rolling.setMaxFileSize(old.getMaxFileSize()); @@ -91,56 +87,70 @@ public class LogbackModuleWithInitialConfigurationTest extends console.setName("SYSTEM"); console.setThresholdFilter("DEBUG"); + FileAppenderTO file = new FileAppenderTO(); + file.setName("FILE_APPENDER"); + file.setAppend(true); + file.setEncoderPattern("%-4relative [%thread] %-5level %logger{35} - %msg%n"); + file.setFileName("target/testFile.log"); + bean.setConsoleAppenderTO(Lists.newArrayList(console)); bean.setRollingFileAppenderTO(Lists.newArrayList(rolling)); + bean.setFileAppenderTO(Lists.newArrayList(file)); LoggerTO logger = new LoggerTO(); logger.setLevel("INFO"); logger.setLoggerName("logger"); logger.setAppenders(Lists.newArrayList("SYSTEM")); - List loggers = Lists - .newArrayList(logger); + + LoggerTO fileLogger = new LoggerTO(); + fileLogger.setLevel("DEBUG"); + fileLogger.setLoggerName("fileLogger"); + fileLogger.setAppenders(Lists.newArrayList("FILE_APPENDER")); + + List loggers = Lists.newArrayList(logger, fileLogger); bean.setLoggerTO(loggers); transaction.commit(); LogbackModuleMXBean logback = configRegistryClient.newMXBeanProxy( - ObjectNameUtil.createReadOnlyModuleON("logback", "singleton"), - LogbackModuleMXBean.class); - + ObjectNameUtil.createReadOnlyModuleON("logback", "singleton"), LogbackModuleMXBean.class); - List rollingList = logback - .getRollingFileAppenderTO(); + List rollingList = logback.getRollingFileAppenderTO(); assertEquals(1, rollingList.size()); - RollingFileAppenderTO rollingApp = rollingList - .get(0); + RollingFileAppenderTO rollingApp = rollingList.get(0); assertEquals(rollingApp.getFileName(), "target/logFile1.log"); assertEquals(rollingApp.getName(), "FILE"); - List consoleList = logback - .getConsoleAppenderTO(); + List consoleList = logback.getConsoleAppenderTO(); assertEquals(1, consoleList.size()); - ConsoleAppenderTO consoleApp = consoleList - .get(0); + ConsoleAppenderTO consoleApp = consoleList.get(0); assertEquals(consoleApp.getThresholdFilter(), "DEBUG"); assertEquals(consoleApp.getName(), "SYSTEM"); + List fileList = logback.getFileAppenderTO(); + assertEquals(1, fileList.size()); + + FileAppenderTO fileApp = fileList.get(0); + assertEquals(fileApp.getFileName(), "target/testFile.log"); + assertEquals(fileApp.getName(), "FILE_APPENDER"); + loggers = logback.getLoggerTO(); - assertEquals(1, loggers.size()); + assertEquals(2, loggers.size()); + assertEquals("logger", loggers.get(0).getLoggerName()); + assertEquals("fileLogger", loggers.get(1).getLoggerName()); } - public ObjectName createBeans() throws JoranException, - InstanceAlreadyExistsException, IOException { + public ObjectName createBeans() throws JoranException, InstanceAlreadyExistsException, IOException, + MalformedObjectNameException, InstanceNotFoundException, ValidationException, ConflictingVersionException { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); - configurator - .doConfigure("src/test/resources/simple_config_logback.xml"); + configurator.doConfigure("src/test/resources/simple_config_logback.xml"); File f = new File("target/it"); if (f.exists()) FileUtils.cleanDirectory(f); @@ -155,12 +165,11 @@ public class LogbackModuleWithInitialConfigurationTest extends List rollingAppenders = new ArrayList<>(); RollingFileAppenderTO rollingApp = new RollingFileAppenderTO(); rollingApp.setAppend(fileAppender.isAppend()); - PatternLayoutEncoder enc = (PatternLayoutEncoder) fileAppender - .getEncoder(); + PatternLayoutEncoder enc = (PatternLayoutEncoder) fileAppender.getEncoder(); rollingApp.setEncoderPattern(enc.getPattern()); rollingApp.setFileName(fileAppender.getFile()); - FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) fileAppender - .getRollingPolicy(); + FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) fileAppender.getRollingPolicy(); + rollingApp.setRollingPolicyType("FixedWindowRollingPolicy"); rollingApp.setMaxIndex(rollingPolicy.getMaxIndex()); rollingApp.setMinIndex(rollingPolicy.getMinIndex()); SizeBasedTriggeringPolicy triggeringPolicy = (SizeBasedTriggeringPolicy) fileAppender @@ -182,28 +191,27 @@ public class LogbackModuleWithInitialConfigurationTest extends consoleApp.setThresholdFilter("ALL"); consoleAppenders.add(consoleApp); + List fileAppenders = new ArrayList<>(); + List loggersDTOs = new ArrayList<>(); LoggerTO log = new LoggerTO(); - log.setAppenders(Arrays.asList(fileAppender.getName(), - consoleApp.getName())); + log.setAppenders(Arrays.asList(fileAppender.getName(), consoleApp.getName())); log.setLevel(logger.getLevel().toString()); log.setLoggerName(logger.getName()); loggersDTOs.add(log); - ConfigTransactionJMXClient transaction = configRegistryClient - .createTransaction(); - ObjectName nameCreated = transaction.createModule( - factory.getImplementationName(), "singleton"); - LogbackModuleMXBean bean = transaction.newMXBeanProxy(nameCreated, - LogbackModuleMXBean.class); + ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); + ObjectName nameRetrieved = transaction.lookupConfigBean(factory.getImplementationName(), LogbackModuleFactory.INSTANCE_NAME); + LogbackModuleMXBean bean = transaction.newMXBeanProxy(nameRetrieved, LogbackModuleMXBean.class); bean.setLoggerTO(loggersDTOs); bean.setRollingFileAppenderTO(rollingAppenders); bean.setConsoleAppenderTO(consoleAppenders); + bean.setFileAppenderTO(fileAppenders); transaction.commit(); - return nameCreated; + return nameRetrieved; } }