svn commit: r1036 - in logback/trunk/logback-classic: . lib src/main/java/ch/qos/logback/classic/turbo src/test/java/ch/qos/logback/classic src/test/java/ch/qos/logback/classic/turbo

Author: ceki Date: Wed Nov 29 20:51:05 2006 New Revision: 1036 Added: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerTurboFilter.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MatchingTurboFilter.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java - copied unchanged from r1035, /logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerTurboFilterTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/PackageTest.java Removed: logback/trunk/logback-classic/build.properties logback/trunk/logback-classic/build.xml logback/trunk/logback-classic/lib/ logback/trunk/logback-classic/mdcfilter.xml logback/trunk/logback-classic/site.xml logback/trunk/logback-classic/slf4j.xml logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/DebugUsersTurboFilter.java Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCTurboFilter.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java Log: - removed a bunch of unused jars and other files. - Added MatchingTurboFilter which takes over some responsability from TurboFilter - Added corresponding test cases Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCTurboFilter.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCTurboFilter.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MDCTurboFilter.java Wed Nov 29 20:51:05 2006 @@ -27,7 +27,7 @@ * @author Ceki Gülcü * @author Sébastien Pennec */ -public class MDCTurboFilter extends TurboFilter { +public class MDCTurboFilter extends MatchingTurboFilter { String MDCKey; String value; Added: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerTurboFilter.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerTurboFilter.java Wed Nov 29 20:51:05 2006 @@ -0,0 +1,50 @@ +package ch.qos.logback.classic.turbo; + +import org.slf4j.Marker; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.core.spi.FilterReply; + +/** + * Checks whether the marker in the event matches the marker specified by the user as a property. + */ +public class MarkerTurboFilter extends MatchingTurboFilter { + + Marker marker2Match; + + @Override + public void start() { + if(marker2Match != null) { + super.start(); + } else { + addError("The marker property must be set for ["+getName()+"]"); + } + } + + @Override + public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) { + if(!isStarted()) { + return FilterReply.NEUTRAL; + } + + if(marker == null) { + return onMismatch; + } + + if(marker2Match.contains(marker)) { + return onMatch; + } else { + return onMismatch; + } + } + + /** + * The marker to match in the event. + * + * @param marker2Match + */ + public void setMarker(Marker marker2Match) { + this.marker2Match = marker2Match; + } +} Added: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MatchingTurboFilter.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MatchingTurboFilter.java Wed Nov 29 20:51:05 2006 @@ -0,0 +1,35 @@ +package ch.qos.logback.classic.turbo; + +import ch.qos.logback.core.spi.FilterReply; + +/** + * An abstract class containing support for {@link #onMatch} on {@link #onMismatch} + * attributes, shared by many but not all tubo filters. + * + * @author Ceki Gulcu + */ +public abstract class MatchingTurboFilter extends TurboFilter { + + protected FilterReply onMatch = FilterReply.NEUTRAL; + protected FilterReply onMismatch = FilterReply.NEUTRAL; + + final public void setOnMatch(String action) { + if ("NEUTRAL".equals(action)) { + onMatch = FilterReply.NEUTRAL; + } else if ("ACCEPT".equals(action)) { + onMatch = FilterReply.ACCEPT; + } else if ("DENY".equals(action)) { + onMatch = FilterReply.DENY; + } + } + + final public void setOnMismatch(String action) { + if ("NEUTRAL".equals(action)) { + onMismatch = FilterReply.NEUTRAL; + } else if ("ACCEPT".equals(action)) { + onMismatch = FilterReply.ACCEPT; + } else if ("DENY".equals(action)) { + onMismatch = FilterReply.DENY; + } + } +} Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/turbo/TurboFilter.java Wed Nov 29 20:51:05 2006 @@ -9,9 +9,9 @@ import ch.qos.logback.core.spi.LifeCycle; /** - * TurboFilter is a specialized filter with a decide method that takes a bunch of parameters - * instead of a single event object. The latter is cleaner but the latter is much more - * performant. + * TurboFilter is a specialized filter with a decide method that takes a bunch + * of parameters instead of a single event object. The latter is cleaner but + * the latter is much more performant. * * @author Ceki Gulcu */ @@ -19,9 +19,7 @@ private String name; boolean start = false; - protected FilterReply onMatch = FilterReply.NEUTRAL; - protected FilterReply onMismatch = FilterReply.NEUTRAL; - + /** * Points to the next filter in the filter chain. @@ -51,12 +49,10 @@ public boolean isStarted() { return this.start; } - + public void stop() { this.start = false; } - - /** * Set the next filter pointer. */ @@ -78,25 +74,4 @@ public void setName(String name) { this.name = name; } - - final public void setOnMatch(String action) { - if ("NEUTRAL".equals(action)) { - onMatch = FilterReply.NEUTRAL; - } else if ("ACCEPT".equals(action)) { - onMatch = FilterReply.ACCEPT; - } else if ("DENY".equals(action)) { - onMatch = FilterReply.DENY; - } - } - - final public void setOnMismatch(String action) { - if ("NEUTRAL".equals(action)) { - onMismatch = FilterReply.NEUTRAL; - } else if ("ACCEPT".equals(action)) { - onMismatch = FilterReply.ACCEPT; - } else if ("DENY".equals(action)) { - onMismatch = FilterReply.DENY; - } - } - } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java Wed Nov 29 20:51:05 2006 @@ -28,6 +28,7 @@ suite.addTest(ch.qos.logback.classic.pattern.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.db.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.spi.PackageTest.suite()); + suite.addTest(ch.qos.logback.classic.turbo.PackageTest.suite()); return suite; } } Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerTurboFilterTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerTurboFilterTest.java Wed Nov 29 20:51:05 2006 @@ -0,0 +1,49 @@ +package ch.qos.logback.classic.turbo; + +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; + +import ch.qos.logback.core.spi.FilterReply; + +import junit.framework.TestCase; + +public class MarkerTurboFilterTest extends TestCase { + + static String MARKER_NAME = "toto"; + + Marker totoMarker = MarkerFactory.getMarker(MARKER_NAME); + + public MarkerTurboFilterTest(String arg0) { + super(arg0); + } + + protected void setUp() throws Exception { + super.setUp(); + } + + protected void tearDown() throws Exception { + super.tearDown(); + } + + public void testNoMarker() { + MarkerTurboFilter mkt = new MarkerTurboFilter(); + mkt.start(); + assertFalse(mkt.isStarted()); + assertEquals(FilterReply.NEUTRAL, mkt.decide(totoMarker, null, null, null, null, null)); + assertEquals(FilterReply.NEUTRAL, mkt.decide(null, null, null, null, null, null)); + + } + + public void testBasic() { + MarkerTurboFilter mkt = new MarkerTurboFilter(); + mkt.setMarker(totoMarker); + mkt.setOnMatch("ACCEPT"); + mkt.setOnMismatch("DENY"); + + mkt.start(); + assertTrue(mkt.isStarted()); + assertEquals(FilterReply.DENY, mkt.decide(null, null, null, null, null, null)); + assertEquals(FilterReply.ACCEPT, mkt.decide(totoMarker, null, null, null, null, null)); + } + +} Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/PackageTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/turbo/PackageTest.java Wed Nov 29 20:51:05 2006 @@ -0,0 +1,24 @@ +/** + * Logback: the generic, reliable, fast and flexible logging framework. + * + * Copyright (C) 1999-2006, QOS.ch + * + * This library is free software, you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation. + */ +package ch.qos.logback.classic.turbo; + + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class PackageTest extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(MarkerTurboFilterTest.class); + return suite; + } +} \ No newline at end of file
participants (1)
-
noreply.ceki@qos.ch