Author: rfscholte
Date: Sat Apr  6 12:21:13 2013
New Revision: 1465234

URL: http://svn.apache.org/r1465234
Log:
[DOXIA-397] Cannot link to javadoc methods 

Modified:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=1465234&r1=1465233&r2=1465234&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 Sat Apr  6 12:21:13 2013
@@ -477,7 +477,12 @@ public class AptParser
                                     logMessage( "ambiguousLink", msg );
                                 }
 
-                                if ( !DoxiaUtils.isValidId( hash ) )
+                                // link##anchor means literal
+                                if( hash.startsWith( "#" ) )
+                                {
+                                    linkAnchor = linkAnchor.substring( 0, 
hashIndex ) + hash;
+                                }
+                                else if ( !DoxiaUtils.isValidId( hash ) )
                                 {
                                     linkAnchor =
                                         linkAnchor.substring( 0, hashIndex ) + 
"#"

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java?rev=1465234&r1=1465233&r2=1465234&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
 Sat Apr  6 12:21:13 2013
@@ -513,6 +513,26 @@ public class AptParserTest
         assertFalse( it.hasNext() );
     }
 
+    public void testLiteralAnchor()
+        throws Exception
+    {
+        // DOXIA-397
+        String text =
+            
"{{{../apidocs/groovyx/net/http/ParserRegistry.html##parseText(org.apache.http.HttpResponse)}ParserRegistry}}";
+
+        SinkEventTestingSink sink = new SinkEventTestingSink();
+
+        parser.parse( text, sink );
+
+        Iterator<SinkEventElement> it = sink.getEventList().iterator();
+        assertEquals( it, "head", "head_", "body", "section1", "sectionTitle1" 
);
+        assertEquals( it.next(), "link",
+                      
"../apidocs/groovyx/net/http/ParserRegistry.html#parseText(org.apache.http.HttpResponse)"
 );
+        assertEquals( it.next(), "text", "ParserRegistry" );
+        assertEquals( it, "link_", "sectionTitle1_", "section1_", "body_" );
+        assertFalse( it.hasNext() );
+    }
+
     /** {@inheritDoc} */
     protected String outputExtension()
     {


Reply via email to