This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch JXR-154 in repository https://gitbox.apache.org/repos/asf/maven-jxr.git
The following commit(s) were added to refs/heads/JXR-154 by this push: new 737fdbe [JXR-154] Use constructors, as these instances hold a state 737fdbe is described below commit 737fdbed58af9018ce2c096cea5aaf2d60dfe396 Author: rfscholte <rfscho...@apache.org> AuthorDate: Sat May 30 11:42:00 2020 +0200 [JXR-154] Use constructors, as these instances hold a state --- .../apache/maven/plugin/jxr/AbstractJxrReport.java | 11 ++++-- .../src/main/java/org/apache/maven/jxr/JXR.java | 40 ++++++++-------------- .../org/apache/maven/jxr/JavaCodeTransform.java | 18 +++++----- .../org/apache/maven/jxr/pacman/FileManager.java | 5 --- .../apache/maven/jxr/pacman/PackageManager.java | 29 +++++++++------- .../org/apache/maven/jxr/DirectoryIndexerTest.java | 27 +++++++++------ .../org/apache/maven/jxr/IncludeExcludeTest.java | 27 ++++++++------- .../test/java/org/apache/maven/jxr/JXR141Test.java | 28 ++++++++++----- .../apache/maven/jxr/JavaCodeTransformTest.java | 23 +++++++------ .../java/org/apache/maven/jxr/JxrBeanTest.java | 26 +++++++------- 10 files changed, 122 insertions(+), 112 deletions(-) diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java index 2f6586a..c0520cc 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java @@ -33,7 +33,10 @@ import java.util.ResourceBundle; import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.jxr.JXR; +import org.apache.maven.jxr.JavaCodeTransform; import org.apache.maven.jxr.JxrException; +import org.apache.maven.jxr.pacman.FileManager; +import org.apache.maven.jxr.pacman.PackageManager; import org.apache.maven.model.ReportPlugin; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Component; @@ -163,9 +166,6 @@ public abstract class AbstractJxrReport @Parameter( property = "javadocVersion" ) private String javadocVersion; - @Component - private JXR jxr; - /** * Version of the Javadoc templates to use. */ @@ -267,6 +267,11 @@ public abstract class AbstractJxrReport private void createXref( Locale locale, String destinationDirectory, List<String> sourceDirs ) throws IOException, JxrException, MavenReportException { + FileManager fileManager = new FileManager(); + PackageManager packageManager = new PackageManager( fileManager ); + JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager ); + + JXR jxr = new JXR( packageManager, codeTransform ); jxr.setDest( Paths.get( destinationDirectory ) ); if ( StringUtils.isEmpty( inputEncoding ) ) { diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java b/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java index 46b7ddd..5aeec74 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java @@ -20,9 +20,9 @@ package org.apache.maven.jxr; */ import org.apache.maven.jxr.ant.DirectoryScanner; -import org.apache.maven.jxr.pacman.FileManager; import org.apache.maven.jxr.pacman.PackageManager; -import org.codehaus.plexus.logging.AbstractLogEnabled; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.nio.file.Path; @@ -30,27 +30,22 @@ import java.nio.file.Paths; import java.util.List; import java.util.Locale; -import javax.inject.Inject; -import javax.inject.Named; - /** * Main entry point into Maven used to kick off the XReference code building. * * @author <a href="mailto:bur...@apache.org">Kevin A. Burton</a> - * @version $Id$ */ -@Named -public class JXR extends AbstractLogEnabled +public class JXR { - @Inject - private PackageManager pkgmgr; + private static final Logger LOGGER = LoggerFactory.getLogger( JXR.class ); + + private final PackageManager pkgmgr; /** * Handles taking .java files and changing them into html. "More than meets * the eye!" :) */ - @Inject - private JavaCodeTransform transformer; + private final JavaCodeTransform transformer; /** * The default list of include patterns to use. @@ -88,6 +83,12 @@ public class JXR extends AbstractLogEnabled * The list of include patterns to use. */ private String[] includes = DEFAULT_INCLUDES; + + public JXR( PackageManager pkgmgr, JavaCodeTransform transformer ) + { + this.pkgmgr = pkgmgr; + this.transformer = transformer; + } /** * Now that we have instantiated everything. Process this JXR task. @@ -191,14 +192,6 @@ public class JXR extends AbstractLogEnabled } /** - * @param transformer - */ - public void setTransformer( JavaCodeTransform transformer ) - { - this.transformer = transformer; - } - - /** * @param revision */ public void setRevision( String revision ) @@ -218,11 +211,6 @@ public class JXR extends AbstractLogEnabled public void xref( List<String> sourceDirs, String templateDir, String windowTitle, String docTitle, String bottom ) throws IOException, JxrException { - // first collect package and class info - FileManager fileManager = new FileManager(); - fileManager.setEncoding( inputEncoding ); - - pkgmgr.setExcludes( excludes ); pkgmgr.setIncludes( includes ); @@ -261,7 +249,7 @@ public class JXR extends AbstractLogEnabled private void transform( Path sourceFile, Path destFile, String bottom ) throws IOException { - getLogger().debug( sourceFile + " -> " + destFile ); + LOGGER.debug( sourceFile + " -> " + destFile ); // get a relative link to the javadocs Path javadoc = javadocLinkDir != null ? getRelativeLink( destFile.getParent(), javadocLinkDir ) : null; diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java index 6f35d20..07e7fed 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java @@ -64,10 +64,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - /** * Syntax highlights java by turning it into html. A codeviewer object is created and then keeps state as lines are * passed in. Each line passed in as java test, is returned as syntax highlighted html text. Users of the class can set @@ -95,8 +91,6 @@ import javax.inject.Singleton; * importFilter * </pre> */ -@Named -@Singleton public class JavaCodeTransform implements Serializable { @@ -213,14 +207,12 @@ public class JavaCodeTransform /** * Package Manager for this project. */ - @Inject - private PackageManager packageManager; + private final PackageManager packageManager; /** * current file manager */ - @Inject - private FileManager fileManager; + private final FileManager fileManager; { reservedWords.put( "abstract", "abstract" ); @@ -280,6 +272,12 @@ public class JavaCodeTransform reservedWords.put( "implements", "implements" ); } + public JavaCodeTransform( PackageManager packageManager, FileManager fileManager ) + { + this.packageManager = packageManager; + this.fileManager = fileManager; + } + // ---------------------------------------------------------------------- // public methods // ---------------------------------------------------------------------- diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/FileManager.java b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/FileManager.java index 9f140b4..6f73616 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/FileManager.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/FileManager.java @@ -24,9 +24,6 @@ import java.nio.file.Path; import java.util.HashMap; import java.util.Map; -import javax.inject.Named; -import javax.inject.Singleton; - /** * <p> * @@ -38,8 +35,6 @@ import javax.inject.Singleton; * Note. This assumes that the file will not be modified on disk while * Alexandria is running. </p> */ -@Named -@Singleton public class FileManager { private Map<Path, JavaFile> files = new HashMap<>(); diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java index 18f638a..c48dd5f 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/PackageManager.java @@ -19,8 +19,9 @@ package org.apache.maven.jxr.pacman; * under the License. */ -import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.DirectoryScanner; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.nio.file.Path; @@ -30,18 +31,15 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import javax.inject.Inject; -import javax.inject.Named; - /** * Given a list of directories, parse them out and store them as rendered * packages, classes, imports, etc. */ -@Named -public class PackageManager extends AbstractLogEnabled +public class PackageManager { - @Inject - private FileManager fileManager; + private static final Logger LOGGER = LoggerFactory.getLogger( PackageManager.class ); + + private final FileManager fileManager; private Set<Path> directories = new HashSet<>(); @@ -66,6 +64,11 @@ public class PackageManager extends AbstractLogEnabled */ private String[] includes = { "**/*.java" }; + public PackageManager( FileManager fileManager ) + { + this.fileManager = fileManager; + } + /** * Given the name of a package (Ex: org.apache.maven.util) obtain it from * the PackageManager @@ -105,7 +108,7 @@ public class PackageManager extends AbstractLogEnabled { // Go through each directory and get the java source // files for this dir. - getLogger().debug( "Scanning " + baseDir ); + LOGGER.debug( "Scanning " + baseDir ); DirectoryScanner directoryScanner = new DirectoryScanner(); directoryScanner.setBasedir( baseDir.toFile() ); directoryScanner.setExcludes( excludes ); @@ -114,7 +117,7 @@ public class PackageManager extends AbstractLogEnabled for ( String file : directoryScanner.getIncludedFiles() ) { - getLogger().debug( "parsing... " + file ); + LOGGER.debug( "parsing... " + file ); //now parse out this file to get the packages/classname/etc try @@ -168,16 +171,16 @@ public class PackageManager extends AbstractLogEnabled public void dump() { - getLogger().debug( "Dumping out PackageManager structure" ); + LOGGER.debug( "Dumping out PackageManager structure" ); for ( PackageType current : getPackageTypes() ) { - getLogger().debug( current.getName() ); + LOGGER.debug( current.getName() ); //get the classes under the package and print those too. for ( ClassType currentClass : current.getClassTypes() ) { - getLogger().debug( '\t' + currentClass.getName() ); + LOGGER.debug( '\t' + currentClass.getName() ); } } } diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java b/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java index 605655c..e67acba 100644 --- a/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java +++ b/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java @@ -1,6 +1,5 @@ package org.apache.maven.jxr; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -20,6 +19,9 @@ package org.apache.maven.jxr; * under the License. */ +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.nio.file.Paths; import java.util.Iterator; import java.util.Map; @@ -27,27 +29,32 @@ import java.util.Map; import org.apache.maven.jxr.DirectoryIndexer.ClassInfo; import org.apache.maven.jxr.DirectoryIndexer.PackageInfo; import org.apache.maven.jxr.DirectoryIndexer.ProjectInfo; +import org.apache.maven.jxr.pacman.FileManager; import org.apache.maven.jxr.pacman.PackageManager; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.PlexusTestCase; +import org.junit.Before; +import org.junit.Test; -public class DirectoryIndexerTest extends PlexusTestCase +public class DirectoryIndexerTest { - @Override - protected void customizeContainerConfiguration( ContainerConfiguration configuration ) + private DirectoryIndexer directoryIndexer; + + @Before + public void setUp() { - configuration.setClassPathScanning( "INDEX" ); + FileManager fileManager = new FileManager(); + PackageManager packageManager = new PackageManager( fileManager ); + packageManager.process( Paths.get( "src/test/resources/jxr68" ) ); + + directoryIndexer = new DirectoryIndexer( packageManager, "" ); } /** * Parse the files in test/resources/jxr68 packages, ensure all are present in the allClasses Map, * in the correct order. */ + @Test public void testJXR_68() throws Exception { - PackageManager packageManager = lookup( PackageManager.class ); - packageManager.process( Paths.get( "src/test/resources/jxr68" ) ); - DirectoryIndexer directoryIndexer = new DirectoryIndexer( packageManager, "" ); ProjectInfo packageInfo = directoryIndexer.getProjectInfo(); final Map<String, PackageInfo> allPackages = packageInfo.getAllPackages(); diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java b/maven-jxr/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java index d203baa..02e07f1 100644 --- a/maven-jxr/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java +++ b/maven-jxr/src/test/java/org/apache/maven/jxr/IncludeExcludeTest.java @@ -19,13 +19,18 @@ package org.apache.maven.jxr; * under the License. */ +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.PlexusTestCase; +import org.apache.maven.jxr.pacman.FileManager; +import org.apache.maven.jxr.pacman.PackageManager; +import org.junit.Before; +import org.junit.Test; /** * Test include/exclude patterns. @@ -33,27 +38,25 @@ import org.codehaus.plexus.PlexusTestCase; * @author <a href="mailto:denn...@apache.org">Dennis Lundberg</a> * @version $Id$ */ -public class IncludeExcludeTest extends PlexusTestCase +public class IncludeExcludeTest { private JXR jxr; - @Override - protected void customizeContainerConfiguration( ContainerConfiguration configuration ) - { - configuration.setClassPathScanning( "INDEX" ); - } - - @Override + @Before public void setUp() throws Exception { - super.setUp(); - jxr = lookup( JXR.class ); + FileManager fileManager = new FileManager(); + PackageManager packageManager = new PackageManager( fileManager ); + JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager ); + + jxr = new JXR( packageManager, codeTransform ); jxr.setDest( Paths.get( "target" ) ); jxr.setInputEncoding( "ISO-8859-1" ); jxr.setOutputEncoding( "ISO-8859-1" ); jxr.setJavadocLinkDir( Paths.get( "." ) ); } + @Test public void testIncludeExclude() throws Exception { diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/JXR141Test.java b/maven-jxr/src/test/java/org/apache/maven/jxr/JXR141Test.java index e5afaa6..6b04be3 100644 --- a/maven-jxr/src/test/java/org/apache/maven/jxr/JXR141Test.java +++ b/maven-jxr/src/test/java/org/apache/maven/jxr/JXR141Test.java @@ -19,6 +19,8 @@ package org.apache.maven.jxr; * under the License. */ +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -26,24 +28,32 @@ import java.nio.file.Paths; import java.util.Collections; import java.util.List; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.PlexusTestCase; +import org.apache.maven.jxr.pacman.FileManager; +import org.apache.maven.jxr.pacman.PackageManager; +import org.junit.Before; +import org.junit.Test; /** * Simple unit-testtest that illustrates a line with more * than one "token" to replace */ -public class JXR141Test extends PlexusTestCase +public class JXR141Test { - @Override - protected void customizeContainerConfiguration( ContainerConfiguration configuration ) + private JXR jxr; + + @Before + public void setUp() { - configuration.setClassPathScanning( "INDEX" ); + FileManager fileManager = new FileManager(); + PackageManager packageManager = new PackageManager( fileManager ); + JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager ); + + jxr = new JXR( packageManager, codeTransform ); } + @Test public void testProcessPath() throws Exception { - JXR jxr = lookup( JXR.class ); jxr.setDest( Paths.get("target/jxr-141" ) ); jxr.setOutputEncoding( "UTF-8" ); jxr.xref( Collections.singletonList( "src/test/resources/jxr141" ),"templates/jdk4", @@ -67,7 +77,7 @@ public class JXR141Test extends PlexusTestCase assertEquals( "<a class=\"jxr_linenumber\" name=\"L27\" href=\"#L27\">27</a> " + "<strong class=\"jxr_keyword\">public</strong> <strong class=\"jxr_keyword\">static</strong> " + "<strong class=\"jxr_keyword\">final</strong> " + - "Test141 instance = <strong class=\"jxr_keyword\">new</strong> " + - "Test141();" , line27 ); + "<a name=\"Test141\" href=\"..//Test141.html#Test141\">Test141</a> instance = <strong class=\"jxr_keyword\">new</strong> " + + "<a name=\"Test141\" href=\"..//Test141.html#Test141\">Test141</a>();" , line27 ); } } \ No newline at end of file diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/JavaCodeTransformTest.java b/maven-jxr/src/test/java/org/apache/maven/jxr/JavaCodeTransformTest.java index 1b1f37c..53017c3 100644 --- a/maven-jxr/src/test/java/org/apache/maven/jxr/JavaCodeTransformTest.java +++ b/maven-jxr/src/test/java/org/apache/maven/jxr/JavaCodeTransformTest.java @@ -1,5 +1,7 @@ package org.apache.maven.jxr; +import static org.junit.Assert.assertTrue; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -25,36 +27,35 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Locale; +import org.apache.maven.jxr.pacman.FileManager; +import org.apache.maven.jxr.pacman.PackageManager; import org.codehaus.plexus.ContainerConfiguration; import org.codehaus.plexus.PlexusTestCase; +import org.junit.Before; +import org.junit.Test; /** * JUnit test for {@link JavaCodeTransform}. */ -public class JavaCodeTransformTest extends PlexusTestCase +public class JavaCodeTransformTest { /** JavaCodeTransform object under test */ private JavaCodeTransform codeTransform; - @Override - protected void customizeContainerConfiguration( ContainerConfiguration configuration ) - { - configuration.setClassPathScanning( "INDEX" ); - } - /** * Set up this test. */ - @Override + @Before public void setUp() throws Exception { - super.setUp(); - codeTransform = lookup( JavaCodeTransform.class ); + FileManager fileManager = new FileManager(); + codeTransform = new JavaCodeTransform( new PackageManager( fileManager ), fileManager); } /** * Test basic transformation of a java source file. */ + @Test public void testTransform() //test transforms its own sourcefile, so add some comments throws Exception // single line despite /* @@ -72,6 +73,7 @@ public class JavaCodeTransformTest extends PlexusTestCase /** * Test what happens with an empty sourcefile. */ + @Test public void testTransformWithEmptyClassFile() throws Exception { @@ -86,6 +88,7 @@ public class JavaCodeTransformTest extends PlexusTestCase /** * Test proper handling of link */ + @Test public void testLinkHandling() throws Exception { diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/JxrBeanTest.java b/maven-jxr/src/test/java/org/apache/maven/jxr/JxrBeanTest.java index 7ecefdf..10c7549 100644 --- a/maven-jxr/src/test/java/org/apache/maven/jxr/JxrBeanTest.java +++ b/maven-jxr/src/test/java/org/apache/maven/jxr/JxrBeanTest.java @@ -22,30 +22,28 @@ package org.apache.maven.jxr; import java.nio.file.Paths; import java.util.Collections; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.PlexusTestCase; +import org.apache.maven.jxr.pacman.FileManager; +import org.apache.maven.jxr.pacman.PackageManager; +import org.junit.Before; +import org.junit.Test; -public class JxrBeanTest extends PlexusTestCase +public class JxrBeanTest { private JXR jxrBean; - @Override - protected void customizeContainerConfiguration( ContainerConfiguration configuration ) - { - configuration.setClassPathScanning( "INDEX" ); - } - - @Override - public void setUp() throws Exception - { - super.setUp(); - jxrBean = lookup( JXR.class ); + @Before + public void setUp() + { FileManager fileManager = new FileManager(); + PackageManager packageManager = new PackageManager( fileManager ); + JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager ); + jxrBean = new JXR( packageManager, codeTransform ); jxrBean.setDest( Paths.get( "target" ) ); jxrBean.setInputEncoding( "ISO-8859-1" ); jxrBean.setOutputEncoding( "ISO-8859-1" ); jxrBean.setJavadocLinkDir( Paths.get( "." ) ); } + @Test public void testXref() throws Exception {