You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2007/02/27 23:42:09 UTC

svn commit: r512465 - in /maven/jxr/trunk/src: main/java/org/apache/maven/jxr/ main/java/org/apache/maven/jxr/pacman/ test/java/org/apache/maven/jxr/ test/resources/exclude/ test/resources/include/

Author: dennisl
Date: Tue Feb 27 14:42:08 2007
New Revision: 512465

URL: http://svn.apache.org/viewvc?view=rev&rev=512465
Log:
[JXR-17] JXR has no option to include / exclude source files

Added:
    maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java   (with props)
    maven/jxr/trunk/src/test/resources/exclude/
    maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java   (with props)
    maven/jxr/trunk/src/test/resources/include/
    maven/jxr/trunk/src/test/resources/include/IncludedClass.java   (with props)
    maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java   (with props)
Modified:
    maven/jxr/trunk/src/main/java/org/apache/maven/jxr/JXR.java
    maven/jxr/trunk/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java

Modified: maven/jxr/trunk/src/main/java/org/apache/maven/jxr/JXR.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/main/java/org/apache/maven/jxr/JXR.java?view=diff&rev=512465&r1=512464&r2=512465
==============================================================================
--- maven/jxr/trunk/src/main/java/org/apache/maven/jxr/JXR.java (original)
+++ maven/jxr/trunk/src/main/java/org/apache/maven/jxr/JXR.java Tue Feb 27 14:42:08 2007
@@ -52,6 +52,11 @@
         "<a href=\"http://maven.apache.org/\">Maven</a>";
 
     /**
+     * The default list of include patterns to use.
+     */
+    private static final String[] DEFAULT_INCLUDES = {"**/*.java"};
+
+    /**
      * Path to destination.
      */
     private String dest = "";
@@ -79,6 +84,16 @@
     private String revision;
 
     /**
+     * The list of exclude patterns to use.
+     */
+    private String[] excludes = null;
+
+    /**
+     * The list of include patterns to use.
+     */
+    private String[] includes = DEFAULT_INCLUDES;
+
+    /**
      * Now that we have instantiated everything. Process this JXR task.
      *
      * @param packageManager
@@ -91,6 +106,10 @@
         this.transformer = new JavaCodeTransform( packageManager );
 
         DirectoryScanner ds = new DirectoryScanner();
+        // I'm not sure why we don't use the directoryScanner in packageManager,
+        // but since we don't we need to set includes/excludes here as well
+        ds.setExcludes( excludes );
+        ds.setIncludes( includes );
         ds.addDefaultExcludes();
 
         File dir = new File( source );
@@ -238,6 +257,8 @@
         fileManager.setEncoding( inputEncoding );
 
         PackageManager pkgmgr = new PackageManager( log, fileManager );
+        pkgmgr.setExcludes( excludes );
+        pkgmgr.setIncludes( includes );
 
         // go through each source directory and xref the java files
         for ( Iterator i = sourceDirs.iterator(); i.hasNext(); )
@@ -382,5 +403,24 @@
         }
 
         return fromLink.append( toLink.toString() ).toString();
+    }
+
+    public void setExcludes( String[] excludes )
+    {
+        this.excludes = excludes;
+    }
+
+
+    public void setIncludes( String[] includes )
+    {
+        if ( includes == null )
+        {
+            // We should not include non-java files, so we use a sensible default pattern
+            this.includes = DEFAULT_INCLUDES;
+        }
+        else
+        {
+            this.includes = includes;
+        }
     }
 }

Modified: maven/jxr/trunk/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java?view=diff&rev=512465&r1=512464&r2=512465
==============================================================================
--- maven/jxr/trunk/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java (original)
+++ maven/jxr/trunk/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java Tue Feb 27 14:42:08 2007
@@ -50,6 +50,16 @@
 
     private FileManager fileManager;
 
+    /**
+     * The list of exclude patterns to use.
+     */
+    private String[] excludes = null;
+
+    /**
+     * The list of include patterns to use.
+     */
+    private String[] includes = {"**/*.java"};
+
     public PackageManager( Log log, FileManager fileManager )
     {
         this.log = log;
@@ -99,7 +109,7 @@
         DirectoryScanner directoryScanner = new DirectoryScanner();
         File baseDir = new File( directory );
         directoryScanner.setBasedir( baseDir );
-        String[] includes = {"**/*.java"};
+        directoryScanner.setExcludes( excludes );
         directoryScanner.setIncludes( includes );
         directoryScanner.scan();
         String[] files = directoryScanner.getIncludedFiles();
@@ -200,6 +210,17 @@
     public FileManager getFileManager()
     {
         return fileManager;
+    }
+
+    public void setExcludes( String[] excludes )
+    {
+        this.excludes = excludes;
+    }
+
+
+    public void setIncludes( String[] includes )
+    {
+        this.includes = includes;
     }
 }
 

Added: maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java?view=auto&rev=512465
==============================================================================
--- maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java (added)
+++ maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java Tue Feb 27 14:42:08 2007
@@ -0,0 +1,65 @@
+package org.apache.maven.jxr;
+
+/*
+ * 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.
+ */
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.util.Collections;
+
+/**
+ * Test include/exclude patterns.
+ *
+ * @author <a href="mailto:dennisl@apache.org">Dennis Lundberg</a>
+ * @version $Id: IncludeExcludeTest.java 497825 2007-01-19 14:22:06Z dennisl $
+ */
+public class IncludeExcludeTest extends TestCase
+{
+    private JXR jxr;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        jxr = new JXR();
+        jxr.setDest( System.getProperty( "basedir" ) + "/target" );
+        jxr.setInputEncoding( "ISO-8859-1" );
+        jxr.setOutputEncoding( "ISO-8859-1" );
+        jxr.setJavadocLinkDir( "" );
+        jxr.setLog( new DummyLog() );
+    }
+
+    public void testIncludeExclude()
+        throws Exception
+    {
+        String[] excludes = {"**/exclude/ExcludedClass.java"};
+        jxr.setExcludes( excludes );
+        String[] includes = {"**/exclude/*.java", "**/include/IncludedClass.java"};
+        jxr.setIncludes( includes );
+        jxr.xref( Collections.singletonList( System.getProperty( "basedir" ) + "/src/test/resources" ), "templates",
+                  "title", "title", "copyright" );
+        File excludedFile = new File( System.getProperty( "basedir" ) + "/target/exclude/ExcludedClass.html" );
+        assertFalse( excludedFile.exists() );
+        File includedFile = new File( System.getProperty( "basedir" ) + "/target/include/IncludedClass.html" );
+        assertTrue( includedFile.exists() );
+        File notIncludedFile = new File( System.getProperty( "basedir" ) + "/target/include/NotIncludedClass.html" );
+        assertFalse( notIncludedFile.exists() );
+    }
+}

Propchange: maven/jxr/trunk/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java?view=auto&rev=512465
==============================================================================
--- maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java (added)
+++ maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java Tue Feb 27 14:42:08 2007
@@ -0,0 +1,8 @@
+package exclude;
+
+/**
+ * An excluded class.
+ */
+public class ExcludedClass
+{
+}

Propchange: maven/jxr/trunk/src/test/resources/exclude/ExcludedClass.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/jxr/trunk/src/test/resources/include/IncludedClass.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/test/resources/include/IncludedClass.java?view=auto&rev=512465
==============================================================================
--- maven/jxr/trunk/src/test/resources/include/IncludedClass.java (added)
+++ maven/jxr/trunk/src/test/resources/include/IncludedClass.java Tue Feb 27 14:42:08 2007
@@ -0,0 +1,8 @@
+package include;
+
+/**
+ * An included class.
+ */
+public class IncludedClass
+{
+}

Propchange: maven/jxr/trunk/src/test/resources/include/IncludedClass.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java
URL: http://svn.apache.org/viewvc/maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java?view=auto&rev=512465
==============================================================================
--- maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java (added)
+++ maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java Tue Feb 27 14:42:08 2007
@@ -0,0 +1,8 @@
+package include;
+
+/**
+ * A class that is not included.
+ */
+public class NotIncludedClass
+{
+}

Propchange: maven/jxr/trunk/src/test/resources/include/NotIncludedClass.java
------------------------------------------------------------------------------
    svn:eol-style = native