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:[EMAIL PROTECTED]">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