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 tr...@apache.org on 2006/07/13 14:32:44 UTC

svn commit: r421602 - in /maven/doxia/trunk: ./ doxia-core/src/main/java/org/apache/maven/doxia/macro/ doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/ doxia-core/src/main/java/org/apache/maven/doxia/module/apt/ doxia-core/src/main/java/o...

Author: trygvis
Date: Thu Jul 13 05:32:43 2006
New Revision: 421602

URL: http://svn.apache.org/viewvc?rev=421602&view=rev
Log:
o Adding a version to make sure a working Plexus plugin is used.
o Adding the ability to give a file= argument to the Snippet macro. Useful to
  include files that's in the same checkout.
  Adding a basedir parameter to the MacroRequest. This parameter is currently 
  set to File( "" ) which is not correct in all cases.

Modified:
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
    maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
    maven/doxia/trunk/pom.xml

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java Thu Jul 13 05:32:43 2006
@@ -24,6 +24,11 @@
 public class MacroExecutionException
     extends Exception
 {
+    public MacroExecutionException( String message )
+    {
+        super( message );
+    }
+
     public MacroExecutionException( String message, Throwable cause )
     {
         super( message, cause );

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java Thu Jul 13 05:32:43 2006
@@ -17,6 +17,7 @@
  */
 
 import java.util.Map;
+import java.io.File;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -24,16 +25,29 @@
  */
 public class MacroRequest
 {
+    private File basedir;
+
     private Map parameters;
 
-    public Map getParameters()
+    public MacroRequest( Map parameters, File basedir )
     {
-        return parameters;
+        this.parameters = parameters;
+        this.basedir = basedir;
     }
 
-    public MacroRequest( Map parameters )
+    public File getBasedir()
     {
-        this.parameters = parameters;
+        return basedir;
+    }
+
+    public void setBasedir( File basedir )
+    {
+        this.basedir = basedir;
+    }
+
+    public Map getParameters()
+    {
+        return parameters;
     }
 
     public Object getParameter( String key )

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java Thu Jul 13 05:32:43 2006
@@ -20,8 +20,12 @@
 import org.apache.maven.doxia.macro.MacroExecutionException;
 import org.apache.maven.doxia.macro.MacroRequest;
 import org.apache.maven.doxia.sink.Sink;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.FileUtils;
 
 import java.io.IOException;
+import java.io.File;
+import java.io.FileNotFoundException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.HashMap;
@@ -53,29 +57,50 @@
 
         String urlParam = (String) request.getParameter( "url" );
 
-        required( urlParam, "url" );
+        String fileParam = (String) request.getParameter( "file" );
 
-        URL url;
+        StringBuffer snippet;
 
-        try
+        if ( !StringUtils.isEmpty( urlParam ) )
         {
-            url = new URL( urlParam );
+            try
+            {
+                snippet = getSnippet( new URL( urlParam ), id );
+            }
+            catch ( MalformedURLException e )
+            {
+                throw new IllegalArgumentException( urlParam + " is a malformed URL" );
+            }
+            catch ( IOException e )
+            {
+                throw new MacroExecutionException( "Error reading snippet", e );
+            }
         }
-        catch ( MalformedURLException e )
+        else if ( !StringUtils.isEmpty( fileParam ) )
         {
-            throw new IllegalArgumentException( urlParam + " is a malformed URL" );
-        }
+            File f = new File( fileParam );
 
-        String lang = (String) request.getParameter( "lang" );
+            if ( !f.isAbsolute() )
+            {
+                f = new File( request.getBasedir(), fileParam );
+            }
 
-        StringBuffer snippet = null;
-        try
-        {
-            snippet = getSnippet( url, id );
+            try
+            {
+                snippet = new StringBuffer( FileUtils.fileRead( f ) );
+            }
+            catch ( FileNotFoundException e )
+            {
+                throw new MacroExecutionException( "No such file: '" + f.getAbsolutePath() + "'." );
+            }
+            catch ( IOException e )
+            {
+                throw new MacroExecutionException( "Error while readin file: '" + f.getAbsolutePath() + "'.", e );
+            }
         }
-        catch ( IOException e )
+        else
         {
-            throw new MacroExecutionException( "Error reading snippet", e );
+            throw new IllegalArgumentException( "Either the 'url' or the 'file' param has to be given." );
         }
 
         sink.verbatim( true );
@@ -85,7 +110,7 @@
         sink.verbatim_();
     }
 
-    StringBuffer getSnippet( URL url, String id )
+    private StringBuffer getSnippet( URL url, String id )
         throws IOException
     {
         StringBuffer result;
@@ -109,7 +134,7 @@
 
             if ( debug )
             {
-                result.append( "(Fetched from url, cache content " + cache + ")" );
+                result.append( "(Fetched from url, cache content " ).append( cache ).append( ")" );
             }
         }
 

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java Thu Jul 13 05:32:43 2006
@@ -564,7 +564,7 @@
         sink.definitionList_();
     }
 
-    private final void nextLine()
+    private void nextLine()
         throws AptParseException
     {
         line = source.getNextLine();
@@ -782,17 +782,17 @@
 
     // -----------------------------------------------------------------------
 
-    private static final boolean isOctalChar( char c )
+    private static boolean isOctalChar( char c )
     {
         return ( c >= '0' && c <= '7' );
     }
 
-    private static final boolean isHexChar( char c )
+    private static boolean isHexChar( char c )
     {
         return ( ( c >= '0' && c <= '9' ) || ( c >= 'a' && c <= 'f' ) || ( c >= 'A' && c <= 'F' ) );
     }
 
-    private static final char charAt( String string, int length, int i )
+    private static char charAt( String string, int length, int i )
     {
         return ( i < length ) ? string.charAt( i ) : '\0';
     }
@@ -1106,7 +1106,7 @@
         flushTraversed( buffer, sink );
     }
 
-    private static final void flushTraversed( StringBuffer buffer, Sink sink )
+    private static void flushTraversed( StringBuffer buffer, Sink sink )
     {
         if ( buffer.length() > 0 )
         {
@@ -1762,7 +1762,7 @@
             int columns = 0;
             StringBuffer[] cells = null;
             boolean[] headers = null;
-            boolean grid = false;
+            boolean grid;
 
             AptParser.this.sink.table();
 
@@ -2138,7 +2138,7 @@
                 parameters.put( param[0], param[1] );
             }
 
-            MacroRequest request = new MacroRequest( parameters );
+            MacroRequest request = new MacroRequest( parameters, getBasedir() );
 
             try
             {

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Thu Jul 13 05:32:43 2006
@@ -85,7 +85,7 @@
                 {
                     sink.anchor( parser.getAttributeValue( null, "name" ) );
                     sink.anchor_();
-                    
+
                     sink.section1();
 
                     sink.sectionTitle1();
@@ -98,7 +98,7 @@
                 {
                     sink.anchor( parser.getAttributeValue( null, "name" ) );
                     sink.anchor_();
-                    
+
                     sink.section2();
 
                     sink.sectionTitle2();
@@ -172,7 +172,7 @@
                         parameters.put( parser.getAttributeName( i ), parser.getAttributeValue( i ) );
                     }
 
-                    MacroRequest request = new MacroRequest( parameters );
+                    MacroRequest request = new MacroRequest( parameters, getBasedir() );
 
                     executeMacro( macroId, request, sink );
                 }

Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java Thu Jul 13 05:32:43 2006
@@ -22,6 +22,9 @@
 import org.apache.maven.doxia.macro.manager.MacroManager;
 import org.apache.maven.doxia.macro.manager.MacroNotFoundException;
 import org.apache.maven.doxia.sink.Sink;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -44,5 +47,22 @@
         Macro macro = macroManager.getMacro( macroId );
 
         macro.execute( sink, request );
+    }
+
+    protected File getBasedir()
+    {
+        // TODO: This is baaad, it should come in with the request.
+
+        String basedir = System.getProperty( "basedir" );
+
+        if ( basedir != null )
+        {
+            return new File( basedir );
+        }
+
+        System.out.println(
+            "new File( new File( \"\" ).getAbsolutePath() ) = " + new File( new File( "" ).getAbsolutePath() ) );
+
+        return new File( new File( "" ).getAbsolutePath() );
     }
 }

Modified: maven/doxia/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/pom.xml?rev=421602&r1=421601&r2=421602&view=diff
==============================================================================
--- maven/doxia/trunk/pom.xml (original)
+++ maven/doxia/trunk/pom.xml Thu Jul 13 05:32:43 2006
@@ -46,6 +46,7 @@
       <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-maven-plugin</artifactId>
+        <version>1.2</version>
         <executions>
           <execution>
             <goals>
@@ -63,6 +64,7 @@
     <module>doxia-decoration-model</module>
     <module>doxia-modules</module>
     <module>doxia-sandbox</module>
+    <module>doxia-site</module>
   </modules>
   <distributionManagement>
     <site>