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 br...@apache.org on 2006/03/13 01:52:25 UTC
svn commit: r385397 - in
/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia: macro/
macro/snippet/ module/apt/ parser/
Author: brett
Date: Sun Mar 12 16:52:22 2006
New Revision: 385397
URL: http://svn.apache.org/viewcvs?rev=385397&view=rev
Log:
[DOXIA-56] clean up macro exception handling
Added:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java (with props)
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.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/AptParseException.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/parser/AbstractParser.java
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java?rev=385397&r1=385396&r2=385397&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/EchoMacro.java Sun Mar 12 16:52:22 2006
@@ -28,7 +28,6 @@
extends AbstractMacro
{
public void execute( Sink sink, MacroRequest request )
- throws Exception
{
sink.verbatim( true );
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java?rev=385397&r1=385396&r2=385397&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/Macro.java Sun Mar 12 16:52:22 2006
@@ -27,6 +27,6 @@
String ROLE = Macro.class.getName();
void execute( Sink sink, MacroRequest request )
- throws Exception;
+ throws MacroExecutionException;
}
Added: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java?rev=385397&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java (added)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java Sun Mar 12 16:52:22 2006
@@ -0,0 +1,31 @@
+package org.apache.maven.doxia.macro;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Warp an exception that occurs during the execution of a Doxia macro.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class MacroExecutionException
+ extends Exception
+{
+ public MacroExecutionException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+}
Propchange: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroExecutionException.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java?rev=385397&r1=385396&r2=385397&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 Sun Mar 12 16:52:22 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.doxia.macro.AbstractMacro;
+import org.apache.maven.doxia.macro.MacroExecutionException;
import org.apache.maven.doxia.macro.MacroRequest;
import org.apache.maven.doxia.sink.Sink;
@@ -44,7 +45,7 @@
private boolean debug = false;
public void execute( Sink sink, MacroRequest request )
- throws Exception
+ throws MacroExecutionException
{
String id = (String) request.getParameter( "id" );
@@ -67,7 +68,15 @@
String lang = (String) request.getParameter( "lang" );
- StringBuffer snippet = getSnippet( url, id );
+ StringBuffer snippet = null;
+ try
+ {
+ snippet = getSnippet( url, id );
+ }
+ catch ( IOException e )
+ {
+ throw new MacroExecutionException( "Error reading snippet", e );
+ }
sink.verbatim( true );
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParseException.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParseException.java?rev=385397&r1=385396&r2=385397&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParseException.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParseException.java Sun Mar 12 16:52:22 2006
@@ -26,6 +26,11 @@
super( null, message, source.getName(), source.getLineNumber() );
}
+ public AptParseException( String message, AptSource source, Exception e )
+ {
+ super( e, message, source.getName(), source.getLineNumber() );
+ }
+
public AptParseException( String message )
{
super( message );
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=385397&r1=385396&r2=385397&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 Sun Mar 12 16:52:22 2006
@@ -16,7 +16,9 @@
* limitations under the License.
*/
+import org.apache.maven.doxia.macro.MacroExecutionException;
import org.apache.maven.doxia.macro.MacroRequest;
+import org.apache.maven.doxia.macro.manager.MacroNotFoundException;
import org.apache.maven.doxia.parser.AbstractParser;
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkAdapter;
@@ -84,9 +86,6 @@
private AptSource source;
- /**
- * @ignore
- */
private Sink sink;
private String line;
@@ -2134,7 +2133,18 @@
MacroRequest request = new MacroRequest( parameters );
- AptParser.this.executeMacro( macroId, request, sink );
+ try
+ {
+ AptParser.this.executeMacro( macroId, request, sink );
+ }
+ catch ( MacroExecutionException e )
+ {
+ throw new AptParseException( "Unable to execute macro in the APT document", source, e );
+ }
+ catch ( MacroNotFoundException e )
+ {
+ throw new AptParseException( "Unable to find macro used in the APT document", source, e );
+ }
}
}
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractParser.java?rev=385397&r1=385396&r2=385397&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 Sun Mar 12 16:52:22 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.doxia.macro.Macro;
+import org.apache.maven.doxia.macro.MacroExecutionException;
import org.apache.maven.doxia.macro.MacroRequest;
import org.apache.maven.doxia.macro.manager.MacroManager;
import org.apache.maven.doxia.macro.manager.MacroNotFoundException;
@@ -38,25 +39,10 @@
// Made public right now because of the structure of the APT parser and
// all its inner classes.
public void executeMacro( String macroId, MacroRequest request, Sink sink )
+ throws MacroExecutionException, MacroNotFoundException
{
- try
- {
- Macro macro = macroManager.getMacro( macroId );
+ Macro macro = macroManager.getMacro( macroId );
- try
- {
- macro.execute( sink, request );
- }
- catch ( Exception e )
- {
- // TODO: this is not right
- e.printStackTrace();
- }
- }
- catch ( MacroNotFoundException e )
- {
- // TODO: this should probably be thrown out somewhere
- System.out.println( "The requested macro with id = " + macroId + " cannot be found." );
- }
+ macro.execute( sink, request );
}
}