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() {