X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Flogback-config%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Flogback%2Fconfig%2FLogbackWithXmlConfigModuleTest.java;h=517302b3515e995c516c1b6cc07a4d3c64c7da4d;hp=ce3a019410d6617620b9992746373a132c58966c;hb=6c6c85af56a95fe57389f5ac420876d7ce5cd0e5;hpb=655dffff17a7c45d181d0b15decf627fdd1238eb diff --git a/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackWithXmlConfigModuleTest.java b/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackWithXmlConfigModuleTest.java index ce3a019410..517302b351 100644 --- a/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackWithXmlConfigModuleTest.java +++ b/opendaylight/config/logback-config/src/test/java/org/opendaylight/controller/config/yang/logback/config/LogbackWithXmlConfigModuleTest.java @@ -12,6 +12,8 @@ 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.List; import javax.management.InstanceAlreadyExistsException; import javax.management.InstanceNotFoundException; @@ -26,6 +28,8 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; import org.slf4j.LoggerFactory; +import com.google.common.collect.Lists; + import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.joran.spi.JoranException; @@ -39,15 +43,13 @@ public class LogbackWithXmlConfigModuleTest extends AbstractConfigTest { public void setUp() throws JoranException, IOException { factory = new LogbackModuleFactory(); - super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver( - factory)); + super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory)); lc = (LoggerContext) LoggerFactory.getILoggerFactory(); JoranConfigurator configurator = new JoranConfigurator(); lc.reset(); 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); @@ -57,16 +59,12 @@ public class LogbackWithXmlConfigModuleTest extends AbstractConfigTest { * Tests configuration of Logger factory. */ @Test - public void test() throws InstanceAlreadyExistsException, - InstanceNotFoundException { + public void test() throws InstanceAlreadyExistsException, InstanceNotFoundException { - ConfigTransactionJMXClient transaction = configRegistryClient - .createTransaction(); - ObjectName nameCreated = transaction.createModule( - factory.getImplementationName(), "singleton"); + ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); + ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), "singleton"); - LogbackModuleMXBean bean = transaction.newMXBeanProxy(nameCreated, - LogbackModuleMXBean.class); + LogbackModuleMXBean bean = transaction.newMXBeanProxy(nameCreated, LogbackModuleMXBean.class); assertEquals(1, bean.getConsoleAppenderTO().size()); @@ -76,11 +74,9 @@ public class LogbackWithXmlConfigModuleTest extends AbstractConfigTest { transaction = configRegistryClient.createTransaction(); - nameCreated = transaction.lookupConfigBean( - factory.getImplementationName(), "singleton"); + nameCreated = transaction.lookupConfigBean(factory.getImplementationName(), "singleton"); - bean = JMX.newMXBeanProxy(platformMBeanServer, nameCreated, - LogbackModuleMXBean.class); + bean = JMX.newMXBeanProxy(platformMBeanServer, nameCreated, LogbackModuleMXBean.class); assertEquals(1, bean.getConsoleAppenderTO().size()); assertEquals(1, bean.getRollingFileAppenderTO().size()); @@ -92,22 +88,47 @@ public class LogbackWithXmlConfigModuleTest extends AbstractConfigTest { * loggers should be removed. */ @Test - public void testAllLoggers() throws InstanceAlreadyExistsException, - InstanceNotFoundException { - ConfigTransactionJMXClient transaction = configRegistryClient - .createTransaction(); + public void testAllLoggers() throws InstanceAlreadyExistsException, InstanceNotFoundException { + ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); transaction.createModule(factory.getImplementationName(), "singleton"); transaction.commit(); 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(5, bean.getLoggerTO().size()); } + /** + * Add new logger using FileAppender + */ + @Test + public void testAddNewLogger() throws InstanceAlreadyExistsException, InstanceNotFoundException { + + ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); + ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), "singleton"); + LogbackModuleMXBean bean = transaction.newMXBeanProxy(nameCreated, LogbackModuleMXBean.class); + + assertEquals(5, bean.getLoggerTO().size()); + + List loggers = Lists.newArrayList(bean.getLoggerTO()); + LoggerTO logger = new LoggerTO(); + logger.setAppenders(Lists.newArrayList("FILE")); + logger.setLevel("INFO"); + logger.setLoggerName("fileLogger"); + loggers.add(logger); + bean.setLoggerTO(loggers); + + transaction.commit(); + + transaction = configRegistryClient.createTransaction(); + nameCreated = transaction.lookupConfigBean(factory.getImplementationName(), "singleton"); + bean = JMX.newMXBeanProxy(platformMBeanServer, nameCreated, LogbackModuleMXBean.class); + + assertEquals(6, bean.getLoggerTO().size()); + } + }