svn commit: r418874 - in /maven/doxia/trunk: doxia-doc-renderer/ doxia-site-renderer/

2006-07-03 Thread trygvis
Author: trygvis
Date: Mon Jul  3 16:32:28 2006
New Revision: 418874

URL: http://svn.apache.org/viewvc?rev=418874&view=rev
Log:
o Setting svn:ignore.

Modified:
maven/doxia/trunk/doxia-doc-renderer/   (props changed)
maven/doxia/trunk/doxia-site-renderer/   (props changed)

Propchange: maven/doxia/trunk/doxia-doc-renderer/
--
--- svn:ignore (added)
+++ svn:ignore Mon Jul  3 16:32:28 2006
@@ -0,0 +1,8 @@
+target
+*~
+*.log
+.classpath
+.project
+*.ipr
+*.iws
+*.iml

Propchange: maven/doxia/trunk/doxia-site-renderer/
--
--- svn:ignore (original)
+++ svn:ignore Mon Jul  3 16:32:28 2006
@@ -1,2 +1,8 @@
 target
+*~
+*.log
+.classpath
+.project
+*.ipr
+*.iws
 *.iml




svn commit: r418875 - in /maven/doxia/trunk/doxia-core/src/main: java/org/apache/maven/doxia/module/latex/ resources/org/ resources/org/apache/ resources/org/apache/maven/ resources/org/apache/maven/d

2006-07-03 Thread trygvis
Author: trygvis
Date: Mon Jul  3 16:33:10 2006
New Revision: 418875

URL: http://svn.apache.org/viewvc?rev=418875&view=rev
Log:
o Cleaning up LaTeX sink. Should be usable by the book system now.

Added:
maven/doxia/trunk/doxia-core/src/main/resources/org/
maven/doxia/trunk/doxia-core/src/main/resources/org/apache/
maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/
maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/

maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/

maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/

maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/default_preamble.tex

maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/default_sink_commands.tex
Modified:

maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java

Modified: 
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java?rev=418875&r1=418874&r2=418875&view=diff
==
--- 
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
 (original)
+++ 
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
 Mon Jul  3 16:33:10 2006
@@ -19,19 +19,29 @@
 import org.apache.maven.doxia.module.apt.AptParser;
 import org.apache.maven.doxia.sink.SinkAdapter;
 import org.apache.maven.doxia.util.LineBreaker;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.Writer;
+import java.io.IOException;
+import java.io.InputStream;
 
-/**
- * @componentx
- */
 public class LatexSink
 extends SinkAdapter
 {
 private static final String EOL = System.getProperty( "line.separator" );
 
+/**
+ * Flag that indicates if the document to be written is only a fragment.
+ *
+ * This implies that \\begin{document}, 
\\ptitle{..} will not be output.
+ */
+private boolean fragmentDocument;
+
 private LineBreaker out;
 
+private String sinkCommands;
+
 private String preamble;
 
 private boolean titleFlag;
@@ -52,29 +62,58 @@
 
 private int cellCount;
 
-// ---
+private boolean isTitle;
+
+private String title;
+
+// --
+//
+// --
 
 public LatexSink( Writer out )
+throws IOException
 {
-this( out, defaultPreamble );
+this( out, IOUtil.toString( getDefaultSinkCommands() ), 
IOUtil.toString( getDefaultPreamble() ) );
 }
 
-public LatexSink( Writer out, String preamble )
+public LatexSink( Writer out, String sinkCommands, String preamble )
 {
 this.out = new LineBreaker( out );
-setPreamble( preamble );
+this.sinkCommands = sinkCommands;
+this.preamble = preamble;
 }
 
-public void setPreamble( String preamble )
+public LatexSink( Writer out, String sinkCommands, String preamble, 
boolean fragmentDocument )
 {
+this.out = new LineBreaker( out );
+this.sinkCommands = sinkCommands;
 this.preamble = preamble;
+this.fragmentDocument = fragmentDocument;
+}
+
+// --
+// Overridables
+// --
+
+protected String getDocumentStart()
+{
+return "\\documentclass[a4paper]{article}";
+}
+
+protected String getDocumentBegin()
+{
+return "\\begin{document}";
 }
 
-public String getPreamble()
+protected String getDocumentEnd()
 {
-return preamble;
+return "\\end{document}" + EOL;
 }
 
+// --
+// Sink Implementation
+// --
+
 public void head()
 {
 titleFlag = false;
@@ -87,13 +126,21 @@
 cellJustif = null;
 cellCount = 0;
 
-markup( preamble );
-markup( "\\begin{document}" + EOL + EOL );
+if ( !fragmentDocument )
+{
+markup( sinkCommands );
+
+markup( preamble );
+
+markup( getDocumentStart() );
+
+markup( getDocumentBegin() );
+}
 }
 
 public void body()
 {
-if ( titleFlag )
+if ( !fragmentDocument && titleFlag )
 {
 titleFlag = false;
 markup( "\\pmak

svn commit: r418876 - in /maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/jav

2006-07-03 Thread trygvis
Author: trygvis
Date: Mon Jul  3 16:34:22 2006
New Revision: 418876

URL: http://svn.apache.org/viewvc?rev=418876&view=rev
Log:
o Adding a Maven plugin to render Doxia Books.

Added:
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/   (with props)
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/

maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/

maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/

maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/

maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java

maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java

Propchange: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/
--
--- svn:ignore (added)
+++ svn:ignore Mon Jul  3 16:34:22 2006
@@ -0,0 +1,8 @@
+target
+*~
+*.log
+.classpath
+.project
+*.ipr
+*.iws
+*.iml

Added: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml?rev=418876&view=auto
==
--- maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml (added)
+++ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml Mon Jul  3 
16:34:22 2006
@@ -0,0 +1,24 @@
+
+  4.0.0
+  
+org.apache.maven.doxia
+doxia
+  1.0-alpha-9-SNAPSHOT
+  
+  doxia-maven-plugin
+  1.0-alpha-1-SNAPSHOT
+  maven-plugin
+  Doxia Maven Plugin
+  
+
+  org.apache.maven
+  maven-plugin-api
+  2.0
+
+
+  ${project.groupId}
+  doxia-book
+  1.0-alpha-1-SNAPSHOT
+
+  
+

Added: 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java?rev=418876&view=auto
==
--- 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java
 (added)
+++ 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java
 Mon Jul  3 16:34:22 2006
@@ -0,0 +1,45 @@
+package org.apache.maven.doxia.plugin;
+
+import java.util.List;
+
+/**
+ * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl
+ * @version $Id$
+ */
+public class Book
+{
+private String descriptor;
+
+private List formats;
+
+private String directory;
+
+private List includes;
+
+private List excludes;
+
+public String getDescriptor()
+{
+return descriptor;
+}
+
+public List getFormats()
+{
+return formats;
+}
+
+public String getDirectory()
+{
+return directory;
+}
+
+public List getIncludes()
+{
+return includes;
+}
+
+public List getExcludes()
+{
+return excludes;
+}
+}

Added: 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java?rev=418876&view=auto
==
--- 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java
 (added)
+++ 
maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java
 Mon Jul  3 16:34:22 2006
@@ -0,0 +1,191 @@
+package org.apache.maven.doxia.plugin;
+
+import org.apache.maven.doxia.book.BookDoxia;
+import org.apache.maven.doxia.book.BookDoxiaException;
+import org.apache.maven.doxia.book.InvalidBookDescriptorException;
+import org.apache.maven.doxia.book.services.validation.ValidationResult;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @goal render-books
+ *
+ * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl
+ * @version $

svn commit: r418877 - in /maven/doxia/trunk/doxia-sandbox/doxia-book/src/main: java/org/apache/maven/doxia/book/services/renderer/ java/org/apache/maven/doxia/book/services/renderer/latex/ java/org/ap

2006-07-03 Thread trygvis
Author: trygvis
Date: Mon Jul  3 16:34:53 2006
New Revision: 418877

URL: http://svn.apache.org/viewvc?rev=418877&view=rev
Log:
o More work done. Adding LaTeX book sink.

Added:

maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java

maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/latex/

maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/latex/LatexBookSink.java
Modified:

maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/validation/DefaultBookValidator.java
maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/modello/book.mdo

Added: 
maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java?rev=418877&view=auto
==
--- 
maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
 (added)
+++ 
maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java
 Mon Jul  3 16:34:53 2006
@@ -0,0 +1,198 @@
+package org.apache.maven.doxia.book.services.renderer;
+
+import org.apache.maven.doxia.book.BookDoxiaException;
+import org.apache.maven.doxia.book.services.renderer.latex.LatexBookSink;
+import org.apache.maven.doxia.book.context.BookContext;
+import org.apache.maven.doxia.book.model.Book;
+import org.apache.maven.doxia.book.model.Chapter;
+import org.apache.maven.doxia.book.model.Section;
+import org.apache.maven.doxia.module.latex.LatexSink;
+import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
+import org.apache.maven.doxia.parser.ParseException;
+import org.apache.maven.doxia.Doxia;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.FileReader;
+import java.io.FileNotFoundException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @plexus.component role-hint="latex"
+ *
+ * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl
+ * @version $Id$
+ */
+public class LatexBookRenderer
+implements BookRenderer
+{
+/**
+ * @plexus.requirement
+ */
+private Doxia doxia;
+
+// --
+// BookRenderer Implementatino
+// --
+
+public void renderBook( BookContext context )
+throws BookDoxiaException
+{
+Book book = context.getBook();
+
+if ( !context.getOutputDirectory().exists() )
+{
+if ( !context.getOutputDirectory().mkdirs() )
+{
+throw new BookDoxiaException(
+"Could not make directory: " + 
context.getOutputDirectory().getAbsolutePath() + "." );
+}
+}
+
+File bookFile = new File( context.getOutputDirectory(), book.getId() + 
".tex" );
+
+FileWriter fileWriter = null;
+
+try
+{
+fileWriter = new FileWriter( bookFile );
+
+PrintWriter writer = new PrintWriter( fileWriter );
+
+writeBook( book, context, writer );
+}
+catch ( IOException e )
+{
+throw new BookDoxiaException( "Error while opening file.", e );
+}
+finally
+{
+IOUtil.close( fileWriter );
+}
+}
+
+// --
+// Private
+// --
+
+private static class SectionInfo
+{
+private String id;
+
+private String title;
+}
+
+private void writeBook( Book book, BookContext context, PrintWriter writer 
)
+throws IOException, BookDoxiaException
+{
+// 
--
+// Process all the section documents and collect their names
+// 
--
+
+Map sectionInfos = new HashMap();
+
+for ( Iterator it = book.getChapters().iterator(); it.hasNext(); )
+{
+Chapter chapter = (Chapter) it.next();
+
+for ( Iterator j = chapter.getSections().iterator(); j.hasNext(); )
+{
+Section section = (Section) j.next();
+
+