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 vs...@apache.org on 2009/08/02 14:28:50 UTC

svn commit: r800044 - in /maven/doxia/doxia-tools/trunk/doxia-linkcheck/src: main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java test/resources/linkincomment.html

Author: vsiveton
Date: Sun Aug  2 12:28:50 2009
New Revision: 800044

URL: http://svn.apache.org/viewvc?rev=800044&view=rev
Log:
o removed links in XML comments
o added test case

Added:
    maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html   (with props)
Modified:
    maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java
    maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java

Modified: maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java?rev=800044&r1=800043&r2=800044&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/main/java/org/apache/maven/doxia/linkcheck/LinkMatcher.java Sun Aug  2 12:28:50 2009
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
@@ -60,38 +59,33 @@
     }
 
     /**
-     * Reads a file and returns a StringBuffer with its contents.
+     * Reads a file and returns its contents without any XML comments.
      *
      * @param file the file we are reading
      * @param encoding the encoding file used
      * @return a StringBuffer with file's contents.
      * @throws IOException if something goes wrong.
+     * @see ReaderFactory#newReader(File, String)
+     * @see IOUtil#toString(Reader)
      */
-    private static StringBuffer fileToStringBuffer( File file, String encoding )
+    private static String toString( File file, String encoding )
         throws IOException
     {
-        final StringBuffer pageBuffer = new StringBuffer();
-
-        BufferedReader reader = null;
-        Reader r = null;
+        String content;
+        Reader reader = null;
         try
         {
-            r = ReaderFactory.newReader( file, encoding );
-            reader = new BufferedReader( r );
+            reader = ReaderFactory.newReader( file, encoding );
 
-            String line;
-            while ( ( line = reader.readLine() ) != null )
-            {
-                pageBuffer.append( line );
-            }
+            content = IOUtil.toString( reader );
         }
         finally
         {
-            IOUtil.close( r );
             IOUtil.close( reader );
         }
 
-        return pageBuffer;
+        // some link could be in comments, remove them
+        return content.replaceAll( "(?s)<!--.*?-->", "" );
     }
 
     /**
@@ -107,7 +101,7 @@
     {
         LINK_LIST.clear();
 
-        final Matcher m = MATCH_PATTERN.matcher( fileToStringBuffer( file, encoding ) );
+        final Matcher m = MATCH_PATTERN.matcher( toString( file, encoding ) );
 
         String link;
 
@@ -133,5 +127,4 @@
 
         return LINK_LIST;
     }
-
 }

Modified: maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java?rev=800044&r1=800043&r2=800044&view=diff
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java (original)
+++ maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/java/org/apache/maven/doxia/linkcheck/LinkCheckTest.java Sun Aug  2 12:28:50 2009
@@ -73,7 +73,7 @@
             map.put( ftc.getRelativePath(), ftc );
         }
 
-        assertEquals( "files.size()", 8, result.getFiles().size() );
+        assertEquals( "files.size()", 9, result.getFiles().size() );
 
         check( map, "nolink.html", 0 );
         check( map, "test-resources/nolink.html", 0 );
@@ -81,6 +81,7 @@
         check( map, "test-resources/test1/test2.html", 0 );
         check( map, "test1/test1.html", 1 );
         check( map, "testA.html", 3 );
+        check( map, "linkincomment.html", 1 );
 
         /* test excludes */
         String fileName = "testExcludes.html";

Added: maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html?rev=800044&view=auto
==============================================================================
--- maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html (added)
+++ maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html Sun Aug  2 12:28:50 2009
@@ -0,0 +1,27 @@
+<!--
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+ -->
+<html>
+<body>
+
+<!-- <a href="todo.html">test that isn't here</a> -->
+
+<a href="testA.html">real link</a>
+
+</body>
+</html>
\ No newline at end of file

Propchange: maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia-tools/trunk/doxia-linkcheck/src/test/resources/linkincomment.html
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision