Author: ceki
Date: Tue Mar 18 22:10:40 2008
New Revision: 1646

Modified:
   
logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java
   
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java
   
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/DynamicConverter.java
   
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java
   
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java

Log:
- composite patterns (those with parentheses) pass initial tests
- startConverters method moved from DynamicConverter to ConvertUtil class. 
  In fact, CompositeConverter have to be started as well. This was previously 
not the case
  and patterns with composites in them would not work. 

Modified: 
logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java
==============================================================================
--- 
logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java
   (original)
+++ 
logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java
   Tue Mar 18 22:10:40 2008
@@ -78,6 +78,20 @@
     assertTrue(val.contains("java.lang.Exception: Bogus exception"));
   }
 
+  public void testCompositePattern() {
+    PatternLayout pl = new PatternLayout();
+    pl.setPattern("%-56(%d [%t] %lo{20}) - %m%n");
+    Context context = new LoggerContext();
+    pl.setContext(context);
+    pl.start();
+    String val = pl.doLayout(getEventObject());
+    // 2008-03-18 21:55:54,250 [main] c.q.l.c.pattern.ConverterTest - Some 
message
+    String regex = Contants4T.ISO_REGEX+" \\[main] c.q.l.c.p.ConverterTest   - 
Some message\\s*";
+    System.out.println(val);
+    assertTrue(val.matches(regex));
+
+  }
+  
   public void testNopExeptionHandler() {
     PatternLayout pl = new PatternLayout();
     pl.setPattern("%nopex %m%n");

Modified: 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java
==============================================================================
--- 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java
       (original)
+++ 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java
       Tue Mar 18 22:10:40 2008
@@ -4,7 +4,7 @@
 
 import ch.qos.logback.core.LayoutBase;
 import ch.qos.logback.core.pattern.Converter;
-import ch.qos.logback.core.pattern.DynamicConverter;
+import ch.qos.logback.core.pattern.ConverterUtil;
 import ch.qos.logback.core.pattern.parser.Node;
 import ch.qos.logback.core.pattern.parser.Parser;
 import ch.qos.logback.core.pattern.parser.ScanException;
@@ -74,7 +74,7 @@
       p.setContext(getContext());
       Node t = p.parse();
       this.head = p.compile(t, getDefaultConverterMap());
-      DynamicConverter.startConverters(this.head);
+      ConverterUtil.startConverters(this.head);
     } catch (ScanException ex) {
       addError("Incorrect pattern found", ex);
       errorCount++;

Modified: 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/DynamicConverter.java
==============================================================================
--- 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/DynamicConverter.java
  (original)
+++ 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/DynamicConverter.java
  Tue Mar 18 22:10:40 2008
@@ -52,19 +52,4 @@
   protected List getOptionList() {
     return optionList;
   }
-  
-  /**
-   * Used to start DynamicConvertes in a chain of converters.
-   * @param head
-   */
-  public static void startConverters(Converter head) {
-    Converter c = head;
-    while (c != null) {
-      if (c instanceof DynamicConverter) {
-        DynamicConverter dc = (DynamicConverter) c;
-        dc.start();
-      }
-      c = c.getNext();
-    }
-  }
 }

Modified: 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java
==============================================================================
--- 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java
 (original)
+++ 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java
 Tue Mar 18 22:10:40 2008
@@ -78,7 +78,7 @@
       Node t = p.parse();
       this.head = p.compile(t, getEffectiveConverterMap());
       postCompileProcessing(head);
-      DynamicConverter.startConverters(this.head);
+      ConverterUtil.startConverters(this.head);
       super.start();
     } catch (ScanException sce) {
       StatusManager sm = getContext().getStatusManager();

Modified: 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java
==============================================================================
--- 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java
    (original)
+++ 
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java
    Tue Mar 18 22:10:40 2008
@@ -16,7 +16,7 @@
 
 import ch.qos.logback.core.Context;
 import ch.qos.logback.core.pattern.Converter;
-import ch.qos.logback.core.pattern.DynamicConverter;
+import ch.qos.logback.core.pattern.ConverterUtil;
 import ch.qos.logback.core.pattern.parser.Node;
 import ch.qos.logback.core.pattern.parser.Parser;
 import ch.qos.logback.core.pattern.parser.ScanException;
@@ -47,7 +47,7 @@
     setPattern(patternArg);
     setContext(contextArg);
     parse();
-    DynamicConverter.startConverters(this.headTokenConverter);
+    ConverterUtil.startConverters(this.headTokenConverter);
   }
 
   void parse() {
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to