From doxia-commits-return-752-apmail-maven-doxia-commits-archive=maven.apache.org@maven.apache.org Fri Feb 15 13:23:00 2008 Return-Path: Delivered-To: apmail-maven-doxia-commits-archive@www.apache.org Received: (qmail 86505 invoked from network); 15 Feb 2008 13:22:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Feb 2008 13:22:58 -0000 Received: (qmail 12965 invoked by uid 500); 15 Feb 2008 13:22:53 -0000 Delivered-To: apmail-maven-doxia-commits-archive@maven.apache.org Received: (qmail 12929 invoked by uid 500); 15 Feb 2008 13:22:53 -0000 Mailing-List: contact doxia-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: doxia-dev@maven.apache.org Delivered-To: mailing list doxia-commits@maven.apache.org Received: (qmail 12918 invoked by uid 99); 15 Feb 2008 13:22:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Feb 2008 05:22:53 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Feb 2008 13:22:14 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7CBEF1A9832; Fri, 15 Feb 2008 05:22:33 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r628059 - in /maven/doxia/doxia/trunk: ./ doxia-core/ doxia-core/src/main/java/org/apache/maven/doxia/ doxia-core/src/main/java/org/apache/maven/doxia/macro/ doxia-core/src/main/java/org/apache/maven/doxia/parser/ doxia-core/src/main/java/o... Date: Fri, 15 Feb 2008 13:22:31 -0000 To: doxia-commits@maven.apache.org From: vsiveton@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080215132233.7CBEF1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vsiveton Date: Fri Feb 15 05:22:30 2008 New Revision: 628059 URL: http://svn.apache.org/viewvc?rev=628059&view=rev Log: DOXIA-145: Adding logger feature o based on lukas's work o collaborative work after good discussions on IRC Added: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java (with props) Modified: maven/doxia/doxia/trunk/doxia-core/pom.xml maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/AbstractMacro.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/WellformednessCheckingSink.java maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java maven/doxia/doxia/trunk/doxia-sink-api/pom.xml maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java maven/doxia/doxia/trunk/pom.xml Modified: maven/doxia/doxia/trunk/doxia-core/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/pom.xml?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/pom.xml (original) +++ maven/doxia/doxia/trunk/doxia-core/pom.xml Fri Feb 15 05:22:30 2008 @@ -21,11 +21,13 @@ 4.0.0 + doxia org.apache.maven.doxia 1.0-beta-1-SNAPSHOT + doxia-core Doxia :: Core Doxia core classes and interfaces. @@ -78,10 +80,15 @@ + org.apache.maven.doxia doxia-sink-api + + + org.apache.maven.doxia + doxia-logging-api org.codehaus.plexus Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/DefaultDoxia.java Fri Feb 15 05:22:30 2008 @@ -19,12 +19,15 @@ * under the License. */ +import org.apache.maven.doxia.logging.PlexusLoggerWrapper; import org.apache.maven.doxia.parser.ParseException; import org.apache.maven.doxia.parser.Parser; import org.apache.maven.doxia.parser.manager.ParserManager; import org.apache.maven.doxia.parser.manager.ParserNotFoundException; import org.apache.maven.doxia.sink.Sink; +import org.codehaus.plexus.logging.AbstractLogEnabled; + import java.io.Reader; /** @@ -37,11 +40,10 @@ * @plexus.component */ public class DefaultDoxia + extends AbstractLogEnabled implements Doxia { - /** - * @plexus.requirement - */ + /** @plexus.requirement */ private ParserManager parserManager; // ---------------------------------------------------------------------- @@ -55,6 +57,8 @@ throws ParserNotFoundException, ParseException { Parser parser = parserManager.getParser( parserId ); + + parser.enableLogging( new PlexusLoggerWrapper( getLogger() ) ); parser.parse( source, sink ); } Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/AbstractMacro.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/AbstractMacro.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/AbstractMacro.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/AbstractMacro.java Fri Feb 15 05:22:30 2008 @@ -19,6 +19,9 @@ * under the License. */ +import org.apache.maven.doxia.logging.Log; +import org.apache.maven.doxia.logging.SystemStreamLog; + /** * Abstract base class to execute Macro. * @@ -29,6 +32,31 @@ public abstract class AbstractMacro implements Macro { + /** Log instance. */ + private Log log; + + /** {@inheritDoc} */ + public void enableLogging( Log log ) + { + this.log = log; + } + + /** + * Returns a logger for this macro. + * If no logger has been configured, a new SystemStreamLog is returned. + * + * @return Log + */ + protected Log getLog() + { + if ( log == null ) + { + log = new SystemStreamLog(); + } + + return log; + } + /** * Check if the given parameter is required. Throws an * IllegalArgumentException if paramValue is null or empty. Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java Fri Feb 15 05:22:30 2008 @@ -19,6 +19,7 @@ * under the License. */ +import org.apache.maven.doxia.logging.LogEnabled; import org.apache.maven.doxia.sink.Sink; /** @@ -29,6 +30,7 @@ * @since 1.0 */ public interface Macro + extends LogEnabled { /** The Plexus lookup role. */ String ROLE = Macro.class.getName(); Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java Fri Feb 15 05:22:30 2008 @@ -21,6 +21,8 @@ import java.io.File; +import org.apache.maven.doxia.logging.Log; +import org.apache.maven.doxia.logging.SystemStreamLog; import org.apache.maven.doxia.macro.Macro; import org.apache.maven.doxia.macro.MacroExecutionException; import org.apache.maven.doxia.macro.MacroRequest; @@ -46,6 +48,9 @@ /** @plexus.requirement */ protected MacroManager macroManager; + /** Log instance. */ + private Log log; + /** {@inheritDoc} */ public int getType() { @@ -68,6 +73,8 @@ { Macro macro = macroManager.getMacro( macroId ); + macro.enableLogging( getLog() ); + macro.execute( sink, request ); } @@ -98,5 +105,27 @@ public void setSecondParsing( boolean second ) { this.secondParsing = second; + } + + /** {@inheritDoc} */ + public void enableLogging( Log log ) + { + this.log = log; + } + + /** + * Returns the current logger for this parser. + * If no logger has been configured yet, a new SystemStreamLog is returned. + * + * @return Log + */ + protected Log getLog() + { + if ( log == null ) + { + log = new SystemStreamLog(); + } + + return log; } } Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/Parser.java Fri Feb 15 05:22:30 2008 @@ -19,6 +19,7 @@ * under the License. */ +import org.apache.maven.doxia.logging.LogEnabled; import org.apache.maven.doxia.sink.Sink; import java.io.Reader; @@ -33,6 +34,7 @@ * @since 1.0 */ public interface Parser + extends LogEnabled { /** The Plexus lookup role. */ String ROLE = Parser.class.getName(); Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java Fri Feb 15 05:22:30 2008 @@ -41,10 +41,10 @@ public class XhtmlBaseParser extends AbstractXmlParser { - /** Used to distinguish from . */ + /** Used to distinguish <a href=""> from <a name="">. */ private boolean isLink; - /** Used to distinguish from . */ + /** Used to distinguish <a href=""> from <a name="">. */ private boolean isAnchor; /** Used for nested lists. */ @@ -528,7 +528,14 @@ { if ( !baseStartTag( parser, sink ) ) { - // TODO: log( "Unrecognized start tag!" ); + if ( getLog().isWarnEnabled() ) + { + String position = "[" + parser.getLineNumber() + ":" + + parser.getColumnNumber() + "]"; + String tag = "<" + parser.getName() + ">"; + + getLog().warn( "Unrecognized tag: " + tag + " at " + position ); + } } } @@ -543,7 +550,14 @@ { if ( !baseEndTag( parser, sink ) ) { - // TODO: log( "Unrecognized end tag!" ); + if ( getLog().isWarnEnabled() ) + { + String position = "[" + parser.getLineNumber() + ":" + + parser.getColumnNumber() + "]"; + String tag = "<" + parser.getName() + ">"; + + getLog().warn( "Unrecognized tag: " + tag + " at " + position ); + } } } Added: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java?rev=628059&view=auto ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java (added) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java Fri Feb 15 05:22:30 2008 @@ -0,0 +1,59 @@ +package org.apache.maven.doxia.sink; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.doxia.logging.Log; +import org.apache.maven.doxia.logging.SystemStreamLog; + +/** + * An abstract base class that defines some convenience methods for sinks. + * + * @author ltheussl + * @author Vincent Siveton + * @version $Id$ + * @since 1.0-beta-1 + */ +public abstract class AbstractSink + implements Sink +{ + private Log log; + + /** {@inheritDoc} */ + public void enableLogging( Log log ) + { + this.log = log; + } + + /** + * Returns a logger for this sink. + * If no logger has been configured, a new SystemStreamLog is returned. + * + * @return Log + */ + protected Log getLog() + { + if ( log == null ) + { + log = new SystemStreamLog(); + } + + return log; + } +} Propchange: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/AbstractSink.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/SinkAdapter.java Fri Feb 15 05:22:30 2008 @@ -28,7 +28,7 @@ * @version $Id$ */ public class SinkAdapter - implements Sink + extends AbstractSink { /** {@inheritDoc} */ public void head() Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/WellformednessCheckingSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/WellformednessCheckingSink.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/WellformednessCheckingSink.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/WellformednessCheckingSink.java Fri Feb 15 05:22:30 2008 @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.doxia.sink.AbstractSink; import java.util.LinkedList; import java.util.List; @@ -33,7 +33,7 @@ * @version $Id$ */ public class WellformednessCheckingSink - implements Sink + extends AbstractSink { private Stack elements = new Stack(); Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/TextSink.java Fri Feb 15 05:22:30 2008 @@ -27,7 +27,7 @@ * Useful for testing purposes. */ public class TextSink - implements Sink + extends AbstractSink { /** System-dependent end-of-line string. */ @@ -582,7 +582,7 @@ } catch ( IOException e ) { - // TODO: log + getLog().warn( "Could not flush sink: " + e.getMessage(), e ); } } @@ -595,7 +595,7 @@ } catch ( IOException e ) { - // TODO: log + getLog().warn( "Could not close sink: " + e.getMessage(), e ); } } @@ -613,7 +613,7 @@ } catch ( IOException e ) { - // TODO: log + getLog().warn( "Could not write to sink: " + e.getMessage(), e ); } } @@ -627,6 +627,4 @@ write( text ); write( EOL ); } - - } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Fri Feb 15 05:22:30 2008 @@ -56,7 +56,7 @@ /** The source content of the input reader. Used to pass into macros. */ private String sourceContent; - /** True if a block is read. CDATA sections within are handled as rawText. */ + /** True if a <script></script> block is read. CDATA sections within are handled as rawText. */ private boolean scriptBlock; /** Empty elements don't write a closing tag. */ @@ -215,7 +215,14 @@ { // TODO: remove handleRawText( sink, parser ); - // TODO: log( "Unrecognized tag!" ); + if ( getLog().isWarnEnabled() ) + { + String position = "[" + parser.getLineNumber() + ":" + + parser.getColumnNumber() + "]"; + String tag = "<" + parser.getName() + ">"; + + getLog().warn( "Unrecognized tag: " + tag + " at " + position ); + } } } Modified: maven/doxia/doxia/trunk/doxia-sink-api/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-sink-api/pom.xml?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-sink-api/pom.xml (original) +++ maven/doxia/doxia/trunk/doxia-sink-api/pom.xml Fri Feb 15 05:22:30 2008 @@ -21,12 +21,21 @@ 4.0.0 + doxia org.apache.maven.doxia 1.0-beta-1-SNAPSHOT + doxia-sink-api Doxia :: Sink API Doxia Sink API. + + + + org.apache.maven.doxia + doxia-logging-api + + Modified: maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java (original) +++ maven/doxia/doxia/trunk/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java Fri Feb 15 05:22:30 2008 @@ -19,6 +19,8 @@ * under the License. */ +import org.apache.maven.doxia.logging.LogEnabled; + /** * A Sink consumes Doxia events in a resultant output format like * Docbook, PDF, or XHTML. @@ -54,6 +56,7 @@ * @version $Id$ */ public interface Sink + extends LogEnabled { /** * The Plexus Sink Role Modified: maven/doxia/doxia/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/pom.xml?rev=628059&r1=628058&r2=628059&view=diff ============================================================================== --- maven/doxia/doxia/trunk/pom.xml (original) +++ maven/doxia/doxia/trunk/pom.xml Fri Feb 15 05:22:30 2008 @@ -21,12 +21,14 @@ 4.0.0 + org.apache.maven maven-parent 7 ../../pom/maven/pom.xml + org.apache.maven.doxia doxia 1.0-beta-1-SNAPSHOT @@ -199,6 +201,11 @@ org.apache.maven.doxia + doxia-logging-api + ${projectVersion} + + + org.apache.maven.doxia doxia-core ${projectVersion} @@ -233,6 +240,7 @@ doxia-core + doxia-logging-api doxia-sink-api doxia-modules doxia-book