You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2008/11/01 13:24:35 UTC

svn commit: r709685 - in /maven/doxia/doxia-tools/trunk/doxia-converter/src: main/java/org/apache/maven/doxia/ main/java/org/apache/maven/doxia/cli/ site/apt/ test/java/org/apache/maven/doxia/

Author: vsiveton
Date: Sat Nov  1 05:24:35 2008
New Revision: 709685

URL: http://svn.apache.org/viewvc?rev=709685&view=rev
Log:
o added a format flag to format the XML generated files
o updated documentation

Modified:
    maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/Converter.java
    maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/DefaultConverter.java
    maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/CLIManager.java
    maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/ConverterCli.java
    maven/doxia/doxia-tools/trunk/doxia-converter/src/site/apt/usage.apt
    maven/doxia/doxia-tools/trunk/doxia-converter/src/test/java/org/apache/maven/doxia/ConverterTest.java

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/Converter.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/Converter.java?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/Converter.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/Converter.java Sat Nov  1 05:24:35 2008
@@ -60,4 +60,13 @@
      */
     void convert( InputReaderWrapper input, OutputWriterWrapper output )
         throws UnsupportedFormatException, ConverterException;
+
+    /**
+     * Make the generated files human readable.
+     * <br/>
+     * <b>Note</b>: actually, only XML based outputs could be formatted.
+     *
+     * @param formatOutput <code>true</code> to format the generated files, <code>false</code> otherwise.
+     */
+    void setFormatOutput( boolean formatOutput );
 }

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/DefaultConverter.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/DefaultConverter.java?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/DefaultConverter.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/DefaultConverter.java Sat Nov  1 05:24:35 2008
@@ -19,6 +19,7 @@
 package org.apache.maven.doxia;
 
 import java.io.BufferedInputStream;
+import java.io.CharArrayWriter;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -116,6 +117,9 @@
     public static final String[] SUPPORTED_TO_FORMAT =
         { APT_SINK, CONFLUENCE_SINK, DOCBOOK_SINK, FO_SINK, ITEXT_SINK, LATEX_SINK, RTF_SINK, TWIKI_SINK, XDOC_SINK, XHTML_SINK };
 
+    /** Flag to format the generated files, actually only for XML based sinks. */
+    private boolean formatOutput;
+
     /** Plexus container */
     private PlexusContainer plexus;
 
@@ -280,6 +284,12 @@
         }
     }
 
+    /** {@inheritDoc} */
+    public void setFormatOutput( boolean formatOutput )
+    {
+        this.formatOutput = formatOutput;
+    }
+
     // ----------------------------------------------------------------------
     // Private methods
     // ----------------------------------------------------------------------
@@ -403,6 +413,37 @@
         }
 
         parse( parser, inputFormat, reader, sink, writer );
+
+        if ( formatOutput && ( output.getFormat().equals( DOCBOOK_SINK ) || output.getFormat().equals( FO_SINK )
+            || output.getFormat().equals( ITEXT_SINK ) || output.getFormat().equals( XDOC_SINK )
+            || output.getFormat().equals( XHTML_SINK ) ) )
+        {
+            // format all xml files excluding docbook which is buggy
+            // TODO Add doc book format
+            if ( output.getFormat().equals( DOCBOOK_SINK ) || inputFormat.equals( DOCBOOK_PARSER ) )
+            {
+                return;
+            }
+            Reader r = null;
+            Writer w = null;
+            try
+            {
+                r = ReaderFactory.newXmlReader( outputFile );
+                CharArrayWriter caw = new CharArrayWriter();
+                XmlUtil.prettyFormat( r, caw );
+                w = WriterFactory.newXmlWriter( outputFile );
+                w.write( caw.toString() );
+            }
+            catch ( IOException e )
+            {
+                throw new ConverterException( "IOException: " + e.getMessage(), e );
+            }
+            finally
+            {
+                IOUtil.close( r );
+                IOUtil.close( w );
+            }
+        }
     }
 
     /**

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/CLIManager.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/CLIManager.java?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/CLIManager.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/CLIManager.java Sat Nov  1 05:24:35 2008
@@ -62,6 +62,9 @@
     /** inEncoding String */
     static final String INENCODING = "inEncoding";
 
+    /** f character */
+    static final char FORMAT = 'f';
+
     /** X character */
     static final char DEBUG = 'X';
 
@@ -91,6 +94,10 @@
                                                           "Input file encoding. "
                                                               + "If not specified, try to autodetect it." )
                                         .hasArg().create( INENCODING ) );
+        options.addOption( OptionBuilder.withLongOpt( "format" )
+                           .withDescription(
+                                             "Format the output (actually only xml based outputs) to be human readable." )
+                           .create( FORMAT ) );
 
         options.addOption( OptionBuilder.withLongOpt( "debug" )
                                         .withDescription( "Produce execution debug output." ).create( DEBUG ) );

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/ConverterCli.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/ConverterCli.java?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/ConverterCli.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/main/java/org/apache/maven/doxia/cli/ConverterCli.java Sat Nov  1 05:24:35 2008
@@ -161,6 +161,9 @@
             return 1;
         }
 
+        boolean format = commandLine.hasOption( CLIManager.FORMAT );
+        converter.setFormatOutput( format );
+
         try
         {
             converter.convert( input, output );

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/site/apt/usage.apt
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/site/apt/usage.apt?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/site/apt/usage.apt (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/site/apt/usage.apt Sat Nov  1 05:24:35 2008
@@ -39,16 +39,19 @@
              <arg> -to
 
 Options:
- -e,--errors                           Produce execution error messages
- -from <arg>                           From format
- -h,--help                             Display help information
- -in,--input <arg>                     Input file or directory
- -inEncoding,--inputEncoding <arg>     Input file encoding. If not
-                                       specified, autodetect the input encoding.
- -out,--output <arg>                   Output file or directory
- -to <arg>                             To format
- -v,--version                          Display version information
- -X,--debug                            Produce execution debug output
+ -e,--errors                         Produce execution error messages.
+ -f,--format                         Format the output (actually only xml
+                                     based outputs) to be human readable.
+ -from <arg>                         From format. If not specified, try to
+                                     autodetect it.
+ -h,--help                           Display help information.
+ -in,--input <arg>                   Input file or directory.
+ -inEncoding,--inputEncoding <arg>   Input file encoding. If not
+                                     specified, try to autodetect it.
+ -out,--output <arg>                 Output file or directory.
+ -to <arg>                           To format.
+ -v,--version                        Display version information.
+ -X,--debug                          Produce execution debug output.
 
 Supported Formats:
 from: apt, confluence, docbook, fml, twiki, xdoc, xhtml or autodetect

Modified: maven/doxia/doxia-tools/trunk/doxia-converter/src/test/java/org/apache/maven/doxia/ConverterTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-converter/src/test/java/org/apache/maven/doxia/ConverterTest.java?rev=709685&r1=709684&r2=709685&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-converter/src/test/java/org/apache/maven/doxia/ConverterTest.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-converter/src/test/java/org/apache/maven/doxia/ConverterTest.java Sat Nov  1 05:24:35 2008
@@ -44,7 +44,9 @@
 public class ConverterTest
     extends PlexusTestCase
 {
-    Converter converter;
+    private Converter converter;
+
+    private boolean formatOutput;
 
     /** {@inheritDoc} */
     protected void setUp()
@@ -53,6 +55,8 @@
         super.setUp();
 
         converter = new DefaultConverter();
+
+        formatOutput = Boolean.valueOf( System.getProperty( "format", "false" ) ).booleanValue();
     }
 
     /** {@inheritDoc} */
@@ -99,6 +103,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out, "Doxia.htm.apt" ).exists() );
         assertTrue( new File( out, "Doxia.htm.apt" ).length() != 0 );
@@ -125,6 +130,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -151,6 +157,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -163,6 +170,7 @@
         input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
         output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -187,6 +195,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -199,6 +208,7 @@
         input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
         output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
     }
 
@@ -221,6 +231,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -234,6 +245,7 @@
         // input = InputFileWrapper.valueOf( in, from, converter.getInputFormats() );
         // output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
         //
+        // converter.setFormatOutput( formatOutput );
         // converter.convert( input, output );
         // assertTrue( new File( out ).exists() );
     }
@@ -257,6 +269,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -271,6 +284,7 @@
             input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
             output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             assertFalse( true );
@@ -300,6 +314,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -312,6 +327,7 @@
         input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
         output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
     }
 
@@ -334,6 +350,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -346,6 +363,7 @@
         input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
         output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -370,6 +388,7 @@
         OutputFileWrapper output =
             OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -382,6 +401,7 @@
         input = InputFileWrapper.valueOf( in, from, ReaderFactory.UTF_8, converter.getInputFormats() );
         output = OutputFileWrapper.valueOf( out, to, converter.getOutputFormats() );
 
+        converter.setFormatOutput( formatOutput );
         converter.convert( input, output );
         assertTrue( new File( out ).exists() );
         assertTrue( new File( out ).length() != 0 );
@@ -416,6 +436,7 @@
                 InputReaderWrapper.valueOf( new FileReader( inFile ), from, converter.getInputFormats() );
             OutputWriterWrapper output = OutputWriterWrapper.valueOf( writer, to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             IOUtil.copy( writer.toString(), fw );
@@ -459,6 +480,7 @@
             OutputWriterWrapper output =
                 OutputWriterWrapper.valueOf( new FileWriter( outFile ), to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             IOUtil.copy( writer.toString(), fw );
@@ -502,6 +524,7 @@
             OutputFileWrapper output =
                 OutputFileWrapper.valueOf( outFile.getAbsolutePath(), to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             IOUtil.copy( writer.toString(), fw );
@@ -534,6 +557,7 @@
             OutputFileWrapper output =
                 OutputFileWrapper.valueOf( outFile.getAbsolutePath(), to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             IOUtil.copy( writer.toString(), fw );
@@ -564,6 +588,7 @@
             OutputFileWrapper output =
                 OutputFileWrapper.valueOf( outFile.getAbsolutePath(), to, converter.getOutputFormats() );
 
+            converter.setFormatOutput( formatOutput );
             converter.convert( input, output );
 
             assertFalse( true );