You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2021/04/16 12:13:08 UTC

[maven-jxr] branch JXR-145 created (now 415b635)

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a change to branch JXR-145
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git.


      at 415b635  [JXR-145] Support custom codetransformers

This branch includes the following new commits:

     new 415b635  [JXR-145] Support custom codetransformers

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven-jxr] 01/01: [JXR-145] Support custom codetransformers

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch JXR-145
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git

commit 415b6351b13306ae867e2b09ffd575fc82130d9e
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Apr 16 14:09:15 2021 +0200

    [JXR-145] Support custom codetransformers
---
 .../apache/maven/plugin/jxr/AbstractJxrReport.java |   6 +-
 .../org/apache/maven/plugin/jxr/JxrReport.html     |   2 +-
 maven-jxr/pom.xml                                  |   6 ++
 .../java/org/apache/maven/jxr/CodeTransformer.java |  54 ++++++++++
 .../src/main/java/org/apache/maven/jxr/JXR.java    | 119 ++++++++++-----------
 .../org/apache/maven/jxr/JavaCodeTransform.java    |  93 ++++++++--------
 .../org/apache/maven/jxr/IncludeExcludeTest.java   |   4 +-
 .../test/java/org/apache/maven/jxr/JXR141Test.java |   4 +-
 .../apache/maven/jxr/JavaCodeTransformTest.java    |   8 +-
 .../java/org/apache/maven/jxr/JxrBeanTest.java     |   4 +-
 10 files changed, 175 insertions(+), 125 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 10f9467..3d9a346 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
@@ -32,6 +32,7 @@ import java.util.Locale;
 import java.util.ResourceBundle;
 
 import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.jxr.CodeTransformer;
 import org.apache.maven.jxr.JXR;
 import org.apache.maven.jxr.JavaCodeTransform;
 import org.apache.maven.jxr.JxrException;
@@ -269,9 +270,9 @@ public abstract class AbstractJxrReport
     {
         FileManager fileManager = new FileManager();
         PackageManager packageManager = new PackageManager( fileManager );
-        JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager );
+        CodeTransformer codeTransform = new JavaCodeTransform( packageManager, fileManager );
         
-        JXR jxr = new JXR( packageManager, codeTransform );
+        JXR jxr = new JXR( packageManager, Collections.singletonMap( "java", codeTransform ) );
         jxr.setDest( Paths.get( destinationDirectory ) );
         if ( StringUtils.isEmpty( inputEncoding ) )
         {
@@ -282,7 +283,6 @@ public abstract class AbstractJxrReport
         jxr.setInputEncoding( inputEncoding );
         jxr.setLocale( locale );
         jxr.setOutputEncoding( getOutputEncoding() );
-        jxr.setRevision( "HEAD" );
         jxr.setJavadocLinkDir( getJavadocLocation() );
         // Set include/exclude patterns on the jxr instance
         if ( excludes != null && !excludes.isEmpty() )
diff --git a/maven-jxr-plugin/src/site/resources/example/xref/org/apache/maven/plugin/jxr/JxrReport.html b/maven-jxr-plugin/src/site/resources/example/xref/org/apache/maven/plugin/jxr/JxrReport.html
index 2e228e7..6adf638 100644
--- a/maven-jxr-plugin/src/site/resources/example/xref/org/apache/maven/plugin/jxr/JxrReport.html
+++ b/maven-jxr-plugin/src/site/resources/example/xref/org/apache/maven/plugin/jxr/JxrReport.html
@@ -394,7 +394,7 @@ under the License.
 <a name="366" href="#366">366</a>         jxr.setLocale( locale );
 <a name="367" href="#367">367</a>         jxr.setLog( <strong>new</strong> PluginLogAdapter( getLog() ) );
 <a name="368" href="#368">368</a>         jxr.setOutputEncoding( outputEncoding );
-<a name="369" href="#369">369</a>         jxr.setRevision( <span class="string">"HEAD"</span> );
+<a name="369" href="#369">369</a>
 <a name="370" href="#370">370</a> 
 <a name="371" href="#371">371</a>         jxr.xref( sourceDirs, templateDir, windowTitle, docTitle, bottom );
 <a name="372" href="#372">372</a> 
diff --git a/maven-jxr/pom.xml b/maven-jxr/pom.xml
index 7e815e5..b29ca9f 100644
--- a/maven-jxr/pom.xml
+++ b/maven-jxr/pom.xml
@@ -107,6 +107,12 @@ under the License.
       <artifactId>commons-lang3</artifactId>
       <version>3.8.1</version>
     </dependency>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <version>1</version>
+      <scope>provided</scope>
+    </dependency>
 
     <dependency>
       <groupId>junit</groupId>
diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/CodeTransformer.java b/maven-jxr/src/main/java/org/apache/maven/jxr/CodeTransformer.java
new file mode 100644
index 0000000..be79907
--- /dev/null
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/CodeTransformer.java
@@ -0,0 +1,54 @@
+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 java.io.IOException;
+import java.nio.file.Path;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * The code transformer, responsible to turn code into JXR documentation
+ * 
+ * @author Robert Scholte
+ * @since 3.1.0
+ */
+public interface CodeTransformer
+{
+    /**
+     * This is the public method for doing all transforms of code.
+     *
+     * @param sourcefile String
+     * @param destfile String
+     * @param locale String
+     * @param inputEncoding String
+     * @param outputEncoding String
+     * @param javadocLinkDir String
+     * @param bottom TODO
+     * @throws IOException
+     */
+    void transform( Path sourcefile, Path destfile, Locale locale, String inputEncoding, String outputEncoding,
+                    Path javadocLinkDir, String bottom )
+        throws IOException;
+    
+    Set<String> getDefaultIncludes();
+    
+    boolean canTransform( String fileExtension );
+}
\ No newline at end of file
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 5aeec74..ba8db99 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
@@ -27,8 +27,12 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Main entry point into Maven used to kick off the XReference code building.
@@ -45,14 +49,9 @@ public class JXR
      * Handles taking .java files and changing them into html. "More than meets
      * the eye!" :)
      */
-    private final JavaCodeTransform transformer;
+    private Map<String, CodeTransformer> transformers;
     
     /**
-     * The default list of include patterns to use.
-     */
-    private static final String[] DEFAULT_INCLUDES = { "**/*.java" };
-
-    /**
      * Path to destination.
      */
     private Path destDir;
@@ -68,26 +67,20 @@ public class JXR
      */
     private Path javadocLinkDir;
 
-
-    /**
-     * The revision of the module currently being processed.
-     */
-    private String revision;
-
     /**
      * The list of exclude patterns to use.
      */
-    private String[] excludes = null;
+    private String[] excludes;
 
     /**
      * The list of include patterns to use.
      */
-    private String[] includes = DEFAULT_INCLUDES;
+    private String[] includes;
     
-    public JXR( PackageManager pkgmgr, JavaCodeTransform transformer )
+    public JXR( PackageManager pkgmgr, Map<String, CodeTransformer> transformers )
     {
         this.pkgmgr = pkgmgr;
-        this.transformer = transformer;
+        this.transformers = transformers;
     }
 
     /**
@@ -98,56 +91,70 @@ public class JXR
      * @param bottom
      * @throws IOException
      */
-    public void processPath( PackageManager packageManager, Path sourceDir, String bottom )
+    public void processPath( Path sourceDir, String bottom )
         throws IOException
     {
+        
         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 );
+        if ( includes != null )
+        {
+            ds.setIncludes( includes );
+        }
+        else
+        {
+            Set<String> transformerIncludes = new HashSet<>();
+            for ( CodeTransformer transformer: transformers.values() )
+            {
+               transformerIncludes.addAll( transformer.getDefaultIncludes() ); 
+            }
+            ds.setIncludes( transformerIncludes.toArray( new String[0] ) );
+        }
         ds.addDefaultExcludes();
 
         ds.setBasedir( sourceDir.toString() );
         ds.scan();
 
         //now get the list of included files
-
         String[] files = ds.getIncludedFiles();
-
+        
+        Map<String, CodeTransformer> transformerForExtension = new HashMap<>();
+        
         for ( String file : files )
         {
             Path sourceFile = sourceDir.resolve( file );
+            
+            String fileExtension = getExtension( sourceFile );
 
-            if ( isJavaFile( sourceFile.toString() ) )
+            CodeTransformer transformer = transformerForExtension.get( fileExtension );
+            if ( !transformerForExtension.containsKey( fileExtension ) )
+            {
+                for ( CodeTransformer ct : transformers.values() )
+                {
+                    if ( ct.canTransform( fileExtension ) )
+                    {
+                        transformer = ct;
+                        break;
+                    }
+                }
+                transformerForExtension.put( fileExtension, transformer );
+            }
+            
+            if ( transformer != null )
             {
-                String newFileName = file.replaceFirst( ".java$", ".html" );
+                String newFileName = file.replaceFirst( fileExtension + '$', ".html" );
                 
-                transform( sourceFile, this.destDir.resolve( newFileName ), bottom );
+                transform( transformer, sourceFile, this.destDir.resolve( newFileName ), bottom );
             }
         }
     }
-
-    /**
-     * Check to see if the file is a Java source file.
-     *
-     * @param filename The name of the file to check
-     * @return <code>true</code> if the file is a Java file
-     */
-    public static boolean isJavaFile( String filename )
-    {
-        return filename.endsWith( ".java" );
-    }
-
-    /**
-     * Check to see if the file is an HTML file.
-     *
-     * @param filename The name of the file to check
-     * @return <code>true</code> if the file is an HTML file
-     */
-    public static boolean isHtmlFile( String filename )
+    
+    private String getExtension( Path file ) 
     {
-        return filename.endsWith( ".html" );
+        String fileName = file.getFileName().toString(); 
+        return fileName.substring( fileName.indexOf( '.' ) );
     }
 
     /**
@@ -192,14 +199,6 @@ public class JXR
     }
 
     /**
-     * @param revision
-     */
-    public void setRevision( String revision )
-    {
-        this.revision = revision;
-    }
-
-    /**
      * @param sourceDirs
      * @param templateDir
      * @param windowTitle
@@ -221,7 +220,7 @@ public class JXR
 
             pkgmgr.process( path );
 
-            processPath( pkgmgr, path, bottom );
+            processPath( path, bottom );
         }
 
         // once we have all the source files xref'd, create the index pages
@@ -246,15 +245,14 @@ public class JXR
      * @param bottom The bottom footer text just as in the package pages
      * @throws IOException Thrown if the transform can't happen for some reason.
      */
-    private void transform( Path sourceFile, Path destFile, String bottom )
+    private void transform( CodeTransformer transformer, Path sourceFile, Path destFile, String bottom )
         throws IOException
     {
         LOGGER.debug( sourceFile + " -> " + destFile );
 
         // get a relative link to the javadocs
         Path javadoc = javadocLinkDir != null ? getRelativeLink( destFile.getParent(), javadocLinkDir ) : null;
-        transformer.transform( sourceFile, destFile, locale, inputEncoding, outputEncoding, javadoc,
-            this.revision, bottom );
+        transformer.transform( sourceFile, destFile, locale, inputEncoding, outputEncoding, javadoc, bottom );
     }
 
     /**
@@ -280,17 +278,8 @@ public class JXR
         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;
-        }
+        this.includes = includes;
     }
 }
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 adea5fb..d7e41d8 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
@@ -1,5 +1,33 @@
 package org.apache.maven.jxr;
 
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.Writer;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 /*
  * CodeViewer.java
  * CoolServlets.com
@@ -40,30 +68,6 @@ import org.apache.maven.jxr.pacman.PackageType;
 import org.apache.maven.jxr.util.SimpleWordTokenizer;
 import org.apache.maven.jxr.util.StringEntry;
 
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.Writer;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
 /**
  * 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
@@ -91,8 +95,10 @@ import java.util.Set;
  *                                  importFilter
  * </pre>
  */
+@Named( "java" )
+@Singleton
 public class JavaCodeTransform
-    implements Serializable
+    implements Serializable, CodeTransformer
 {
     // ----------------------------------------------------------------------
     // public fields
@@ -185,11 +191,6 @@ public class JavaCodeTransform
     private Path currentFilename = null;
 
     /**
-     * The current CVS revision of the currently transformed document
-     */
-    private String revision = null;
-
-    /**
      * The output encoding
      */
     private String outputEncoding = null;
@@ -278,6 +279,18 @@ public class JavaCodeTransform
         this.fileManager = fileManager;
     }
 
+    @Override
+    public boolean canTransform( String fileExtension )
+    {
+        return ".java".equals( fileExtension );
+    }
+    
+    @Override
+    public Set<String> getDefaultIncludes()
+    {
+        return Collections.singleton( "**/*.java" );
+    }
+    
     // ----------------------------------------------------------------------
     // public methods
     // ----------------------------------------------------------------------
@@ -385,18 +398,16 @@ public class JavaCodeTransform
      * @param locale String
      * @param outputEncoding String
      * @param javadocLinkDir String
-     * @param revision String
      * @param bottom string
      * @throws IOException
      */
     private void transform( Reader sourceReader, Writer destWriter, Locale locale,
-                                 String outputEncoding, Path javadocLinkDir, String revision, String bottom )
+                                 String outputEncoding, Path javadocLinkDir, String bottom )
         throws IOException
     {
         this.locale = locale;
         this.outputEncoding = outputEncoding;
         this.javadocLinkDir = javadocLinkDir;
-        this.revision = revision;
 
         BufferedReader in = new BufferedReader( sourceReader );
 
@@ -434,12 +445,12 @@ public class JavaCodeTransform
      * @param inputEncoding String
      * @param outputEncoding String
      * @param javadocLinkDir String
-     * @param revision String
      * @param bottom TODO
      * @throws IOException
      */
+    @Override
     public final void transform( Path sourcefile, Path destfile, Locale locale, String inputEncoding,
-                                 String outputEncoding, Path javadocLinkDir, String revision, String bottom )
+                                 String outputEncoding, Path javadocLinkDir, String bottom )
         throws IOException
     {
         this.setCurrentFilename( sourcefile );
@@ -449,7 +460,7 @@ public class JavaCodeTransform
 
         try ( Reader fr = getReader( sourcefile, inputEncoding ); Writer fw = getWriter( destfile, outputEncoding ) )
         {
-            transform( fr, fw, locale, outputEncoding, javadocLinkDir, revision, bottom );
+            transform( fr, fw, locale, outputEncoding, javadocLinkDir, bottom );
         }
         catch ( RuntimeException e )
         {
@@ -595,16 +606,6 @@ public class JavaCodeTransform
     }
 
     /**
-     * The current revision of the CVS module
-     *
-     * @return String
-     */
-    public final String getRevision()
-    {
-        return this.revision;
-    }
-
-    /**
      * Cross Reference the given line with JXR returning the new content.
      *
      * @param line String
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 02e07f1..d333777 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
@@ -47,9 +47,9 @@ public class IncludeExcludeTest
     {
         FileManager fileManager = new FileManager();
         PackageManager packageManager = new PackageManager( fileManager );
-        JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager );
+        CodeTransformer codeTransform = new JavaCodeTransform( packageManager, fileManager );
         
-        jxr = new JXR( packageManager, codeTransform );
+        jxr = new JXR( packageManager, Collections.singletonMap( "java", codeTransform ) );
         jxr.setDest( Paths.get( "target" ) );
         jxr.setInputEncoding( "ISO-8859-1" );
         jxr.setOutputEncoding( "ISO-8859-1" );
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 6b04be3..9c9180f 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
@@ -46,9 +46,9 @@ public class JXR141Test
     {
         FileManager fileManager = new FileManager();
         PackageManager packageManager = new PackageManager( fileManager );
-        JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager );
+        CodeTransformer codeTransform = new JavaCodeTransform( packageManager, fileManager );
         
-        jxr = new JXR( packageManager, codeTransform );    
+        jxr = new JXR( packageManager, Collections.singletonMap( "java", codeTransform ) );    
     }
     
     @Test
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 e2f661c..a186b62 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
@@ -38,7 +38,7 @@ import org.junit.Test;
 public class JavaCodeTransformTest
 {
     /** JavaCodeTransform object under test */
-    private JavaCodeTransform codeTransform;
+    private CodeTransformer codeTransform;
 
     /**
      * Set up this test.
@@ -64,7 +64,7 @@ public class JavaCodeTransformTest
         multiline comment text
 
         */ codeTransform.transform( sourceFile, Paths.get( "target/JavaCodeTransformTest.html" ) // additional comment
-           , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "", "" );
+           , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "" );
         assertTrue( /**/ Files.exists( Paths.get( "target/JavaCodeTransformTest.html" ) ) );
     }
 
@@ -79,7 +79,7 @@ public class JavaCodeTransformTest
         assertTrue( Files.exists( sourceFile ) );
 
         codeTransform.transform( sourceFile, Paths.get( "target/EmptyClass.html" )
-            , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "", "" );
+            , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "" );
         assertTrue( Files.exists( Paths.get( "target/EmptyClass.html" ) ) );
     }
 
@@ -94,7 +94,7 @@ public class JavaCodeTransformTest
         assertTrue( Files.exists( sourceFile ) );
 
         codeTransform.transform( sourceFile, Paths.get( "target/ClassWithLink.html" )
-            , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "", "" );
+            , Locale.ENGLISH, "ISO-8859-1", "ISO-8859-1", Paths.get( "." ), "" );
         assertTrue( Files.exists( Paths.get( "target/ClassWithLink.html" ) ) );
 
         byte[] bytes = Files.readAllBytes( Paths.get( "target/ClassWithLink.html" ) );
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 10c7549..8ab6e21 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
@@ -35,8 +35,8 @@ public class JxrBeanTest
     public void setUp()
     {   FileManager fileManager = new FileManager();
         PackageManager packageManager = new PackageManager( fileManager );
-        JavaCodeTransform codeTransform = new JavaCodeTransform( packageManager, fileManager );
-        jxrBean = new JXR( packageManager, codeTransform );
+        CodeTransformer codeTransform = new JavaCodeTransform( packageManager, fileManager );
+        jxrBean = new JXR( packageManager, Collections.singletonMap( "java", codeTransform ) );
         jxrBean.setDest( Paths.get( "target" ) );
         jxrBean.setInputEncoding( "ISO-8859-1" );
         jxrBean.setOutputEncoding( "ISO-8859-1" );