(refactor) Tests cleanup

- move to JUnit 4
- remove obsolete cvs tags
- use Java 7 syntax
diff --git a/pom.xml b/pom.xml
index be5d0bb..0662009 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,7 @@
 
   <properties>
     <mavenVersion>2.0.5</mavenVersion>
+    <surefire.version>2.22.2</surefire.version>
     <javaVersion>7</javaVersion>
     <project.build.outputTimestamp>2020-08-05T13:26:53Z</project.build.outputTimestamp>
   </properties>
@@ -73,6 +74,7 @@
       </dependency>
     </dependencies>
   </dependencyManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.ow2.asm</groupId>
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java
deleted file mode 100644
index 1860b02..0000000
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/AbstractFileTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.maven.shared.dependency.analyzer;
-
-/*
- * 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.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.jar.JarOutputStream;
-import java.util.zip.ZipEntry;
-
-import org.apache.commons.io.FileUtils;
-
-import junit.framework.TestCase;
-
-/**
- * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
- */
-public abstract class AbstractFileTest extends TestCase
-{
-    // protected methods ------------------------------------------------------
-
-    protected File createJar() throws IOException
-    {
-        File file = File.createTempFile( "test", ".jar" );
-        file.deleteOnExit();
-
-        return file;
-    }
-
-    protected File createDir() throws IOException
-    {
-        File file = File.createTempFile( "test", null );
-        file.delete();
-
-        if ( !file.mkdir() )
-            throw new IOException( "Cannot create temporary directory: " + file );
-
-        return file;
-    }
-
-    protected File createFile( File parent, String child, String data ) throws IOException
-    {
-        File file = new File( parent, child );
-        FileUtils.write( file, data, StandardCharsets.UTF_8 );
-        return file;
-    }
-
-    protected File mkdirs( File parent, String child ) throws IOException
-    {
-        File dir = new File( parent, child );
-
-        FileUtils.forceMkdir( dir );
-
-        return dir;
-    }
-
-    protected void writeEntry( JarOutputStream out, String path, String data ) throws IOException
-    {
-        out.putNextEntry( new ZipEntry( path ) );
-
-        byte[] bytes = data.getBytes( "UTF-8" );
-
-        out.write( bytes, 0, bytes.length );
-    }
-}
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
index cdc7141..afdb796 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtilsTest.java
@@ -19,122 +19,137 @@
  * under the License.
  */
 
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Test;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
+import static org.junit.Assert.*;
 
 /**
  * Tests <code>ClassFileVisitorUtils</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ClassFileVisitorUtils
  */
 public class ClassFileVisitorUtilsTest
-    extends AbstractFileTest
 {
-    
-    private MockVisitor visitor = new MockVisitor();
+    private MockVisitor visitor;
 
     private static class MockVisitor implements ClassFileVisitor
     {
-        
-        ArrayList<String> classNames = new ArrayList<>();
-        ArrayList<String> data = new ArrayList<>();
+        final List<String> classNames = new ArrayList<>();
+        final List<String> data = new ArrayList<>();
 
         @Override
         public void visitClass( String className, InputStream in )
         {
             classNames.add( className );
-            try {
+            try
+            {
                 List<String> lines = IOUtils.readLines( in, StandardCharsets.UTF_8 );
                 data.addAll( lines );
-            } catch (IOException ex) {
+            }
+            catch ( IOException ex )
+            {
                 throw new RuntimeException( ex );
             }
         }
-
     }
 
-    public void testAcceptJar()
-        throws IOException
+    @Before
+    public void setUp()
     {
-        File file = createJar();
-        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
-        {
-            writeEntry( out, "a/b/c.class", "class a.b.c" );
-            writeEntry( out, "x/y/z.class", "class x.y.z" );
-        }
-
-        ClassFileVisitorUtils.accept( file.toURI().toURL(), visitor );
-        
-        assertTrue(visitor.classNames.contains( "a.b.c" ));
-        assertTrue(visitor.classNames.contains( "x.y.z" ));
-        assertTrue(visitor.data.contains( "class a.b.c" ));
-        assertTrue(visitor.data.contains( "class x.y.z" ));
+        visitor = new MockVisitor();
     }
 
-    public void testAcceptJarWithNonClassEntry()
-        throws IOException
+    @Test
+    public void testAcceptJar() throws IOException
     {
-        File file = createJar();
+        File file = File.createTempFile( "test", ".jar" );
+        file.deleteOnExit();
+
         try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
         {
-            writeEntry( out, "a/b/c.jpg", "jpeg a.b.c" );
+            addZipEntry( out, "a/b/c.class", "class a.b.c" );
+            addZipEntry( out, "x/y/z.class", "class x.y.z" );
         }
 
         ClassFileVisitorUtils.accept( file.toURI().toURL(), visitor );
 
-        assertTrue(visitor.classNames.isEmpty());
+        assertTrue( visitor.classNames.contains( "a.b.c" ) );
+        assertTrue( visitor.classNames.contains( "x.y.z" ) );
+        assertTrue( visitor.data.contains( "class a.b.c" ) );
+        assertTrue( visitor.data.contains( "class x.y.z" ) );
     }
 
-    public void testAcceptDir()
-        throws IOException
+    @Test
+    public void testAcceptJarWithNonClassEntry() throws IOException
     {
-        File dir = createDir();
+        File file = File.createTempFile( "test", ".jar" );
+        file.deleteOnExit();
 
-        File abDir = mkdirs( dir, "a/b" );
-        createFile( abDir, "c.class", "class a.b.c" );
+        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
+        {
+            addZipEntry( out, "a/b/c.jpg", "jpeg a.b.c" );
+        }
 
-        File xyDir = mkdirs( dir, "x/y" );
-        createFile( xyDir, "z.class", "class x.y.z" );
+        ClassFileVisitorUtils.accept( file.toURI().toURL(), visitor );
 
-        ClassFileVisitorUtils.accept( dir.toURI().toURL(), visitor );
-
-        FileUtils.deleteDirectory( dir );
-
-        assertTrue(visitor.classNames.contains( "a.b.c" ));
-        assertTrue(visitor.classNames.contains( "x.y.z" ));
-        assertTrue(visitor.data.contains( "class a.b.c" ));
-        assertTrue(visitor.data.contains( "class x.y.z" ));
+        assertTrue( visitor.classNames.isEmpty() );
     }
 
-    public void testAcceptDirWithNonClassFile()
-        throws IOException
+    @Test
+    public void testAcceptDir() throws IOException
     {
-        File dir = createDir();
+        Path dir = Files.createTempDirectory( "d-a-test" );
 
-        File abDir = mkdirs( dir, "a/b" );
-        createFile( abDir, "c.jpg", "jpeg a.b.c" );
+        Path abDir = Files.createDirectories( dir.resolve( "a/b" ) );
+        writeToFile( abDir, "c.class", "class a.b.c" );
 
-        ClassFileVisitorUtils.accept( dir.toURI().toURL(), visitor );
+        Path xyDir = Files.createDirectories( dir.resolve( "x/y" ) );
+        writeToFile( xyDir, "z.class", "class x.y.z" );
 
-        FileUtils.deleteDirectory( dir );
+        ClassFileVisitorUtils.accept( dir.toUri().toURL(), visitor );
 
-        assertTrue(visitor.classNames.isEmpty());
+        FileUtils.deleteDirectory( dir.toFile() );
+
+        assertTrue( visitor.classNames.contains( "a.b.c" ) );
+        assertTrue( visitor.classNames.contains( "x.y.z" ) );
+        assertTrue( visitor.data.contains( "class a.b.c" ) );
+        assertTrue( visitor.data.contains( "class x.y.z" ) );
     }
 
-    public void testAcceptWithFile()
-        throws IOException
+    @Test
+    public void testAcceptDirWithNonClassFile() throws IOException
+    {
+        Path dir = Files.createTempDirectory( "d-a-test" );
+
+        Path abDir = Files.createDirectories( dir.resolve( "a/b" ) );
+        writeToFile( abDir, "c.jpg", "jpeg a.b.c" );
+
+        ClassFileVisitorUtils.accept( dir.toUri().toURL(), visitor );
+
+        FileUtils.deleteDirectory( dir.toFile() );
+
+        assertTrue( visitor.classNames.isEmpty() );
+    }
+
+    @Test
+    public void testAcceptWithFile() throws IOException
     {
         File file = File.createTempFile( "test", ".class" );
         file.deleteOnExit();
@@ -144,7 +159,7 @@
         try
         {
             ClassFileVisitorUtils.accept( url, visitor );
-            fail("expected IllegalArgumentException");
+            fail( "expected IllegalArgumentException" );
         }
         catch ( IllegalArgumentException exception )
         {
@@ -152,19 +167,31 @@
         }
     }
 
-    public void testAcceptWithUnsupportedScheme()
-        throws IOException
+    @Test
+    public void testAcceptWithUnsupportedScheme() throws IOException
     {
         URL url = new URL( "http://localhost/" );
 
         try
         {
             ClassFileVisitorUtils.accept( url, visitor );
-            fail("expected IllegalArgumentException");
+            fail( "expected IllegalArgumentException" );
         }
         catch ( IllegalArgumentException exception )
         {
             assertEquals( "Cannot accept visitor on URL: " + url, exception.getMessage() );
         }
     }
+
+    private void writeToFile( Path parent, String file, String data ) throws IOException
+    {
+        Files.write( parent.resolve( file ), data.getBytes( StandardCharsets.UTF_8 ) );
+    }
+
+    private void addZipEntry( JarOutputStream out, String fileName, String content ) throws IOException
+    {
+        out.putNextEntry( new ZipEntry( fileName ) );
+        byte[] bytes = content.getBytes( StandardCharsets.UTF_8 );
+        out.write( bytes, 0, bytes.length );
+    }
 }
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
index 51cf492..237d4ba 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/CollectorClassFileVisitorTest.java
@@ -19,46 +19,37 @@
  * under the License.
  */
 
+import org.junit.Before;
+import org.junit.Test;
+
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.maven.shared.dependency.analyzer.CollectorClassFileVisitor;
-
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>CollectorClassFileVisitor</code>.
- * 
+ *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see CollectorClassFileVisitor
  */
 public class CollectorClassFileVisitorTest
-    extends TestCase
 {
-    // fields -----------------------------------------------------------------
-
     private CollectorClassFileVisitor visitor;
 
-    // TestCase thods ---------------------------------------------------------
-
-    /*
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp()
-        throws Exception
+    @Before
+    public void setUp()
     {
         visitor = new CollectorClassFileVisitor();
     }
 
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testVisitClass()
     {
         visitor.visitClass( "a.b.c", null );
         visitor.visitClass( "x.y.z", null );
 
-        Set<String> expected = new HashSet<String>();
+        Set<String> expected = new HashSet<>();
         expected.add( "a.b.c" );
         expected.add( "x.y.z" );
 
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
index 40b3553..f4d54b5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
@@ -19,79 +19,101 @@
  * under the License.
  */
 
+import org.codehaus.plexus.util.IOUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
 
-import org.codehaus.plexus.util.IOUtil;
+import static org.junit.Assert.*;
 
 /**
  * Tests <code>DefaultClassAnalyzer</code>.
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see DefaultClassAnalyzer
  */
 public class DefaultClassAnalyzerTest
-    extends AbstractFileTest
 {
-    private File file;
+    private Path file;
 
-    public void setUp() throws IOException {
-        file = createJar();
-        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) ) )
+    @Before
+    public void setUp() throws IOException
+    {
+        file = Files.createTempFile( "test", ".jar" );
+        try ( JarOutputStream out = new JarOutputStream( new FileOutputStream( file.toFile() ) ) )
         {
-            writeEntry( out, "a/b/c.class", "class a.b.c" );
-            writeEntry( out, "x/y/z.class", "class x.y.z" );
+            addZipEntry( out, "a/b/c.class", "class a.b.c" );
+            addZipEntry( out, "x/y/z.class", "class x.y.z" );
         }
     }
-    
-    
-    public void testAnalyzeWithJar()
-        throws IOException
+
+    @After
+    public void cleanup() throws IOException
     {
-        Set<String> expectedClasses = new HashSet<String>();
+        if ( file != null )
+        {
+            Files.deleteIfExists( file );
+        }
+    }
+
+    @Test
+    public void testAnalyzeWithJar() throws IOException
+    {
+        Set<String> expectedClasses = new HashSet<>();
         expectedClasses.add( "a.b.c" );
         expectedClasses.add( "x.y.z" );
 
         DefaultClassAnalyzer analyzer = new DefaultClassAnalyzer();
-        Set<String> actualClasses = analyzer.analyze( file.toURI().toURL() );
+        Set<String> actualClasses = analyzer.analyze( file.toUri().toURL() );
 
         assertEquals( expectedClasses, actualClasses );
     }
 
-    public void testAnalyzeBadJar()
-        throws IOException
+    @Test
+    public void testAnalyzeBadJar() throws IOException
     {
         //to reproduce MDEP-143
         // corrupt the jar file by altering its contents
-        FileInputStream fis = new FileInputStream( file );
+        FileInputStream fis = new FileInputStream( file.toFile() );
         ByteArrayOutputStream baos = new ByteArrayOutputStream( 100 );
         IOUtil.copy( fis, baos, 100 );
         fis.close();
-        byte [] ba = baos.toByteArray();
+        byte[] ba = baos.toByteArray();
         ba[50] = 1;
-        FileOutputStream fos = new FileOutputStream( file );
+        FileOutputStream fos = new FileOutputStream( file.toFile() );
         IOUtil.copy( ba, fos );
         fos.close();
 
-        DefaultClassAnalyzer analyzer = new DefaultClassAnalyzer();
+        ClassAnalyzer analyzer = new DefaultClassAnalyzer();
 
         try
         {
-            analyzer.analyze( file.toURI().toURL() );
+            analyzer.analyze( file.toUri().toURL() );
             fail( "Exception expected" );
         }
         catch ( ZipException e )
         {
             assertTrue( e.getMessage().startsWith( "Cannot process Jar entry on URL:" ) );
         }
+    }
 
+    private void addZipEntry( JarOutputStream out, String fileName, String content ) throws IOException
+    {
+        out.putNextEntry( new ZipEntry( fileName ) );
+        byte[] bytes = content.getBytes( StandardCharsets.UTF_8 );
+        out.write( bytes, 0, bytes.length );
     }
 }
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
index 807be0f..cefd20e 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
@@ -1,16 +1,4 @@
 package org.apache.maven.shared.dependency.analyzer;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.lang3.JavaVersion;
-import org.apache.commons.lang3.SystemUtils;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -30,6 +18,7 @@
  * under the License.
  */
 
+import org.apache.commons.lang3.JavaVersion;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
@@ -44,18 +33,25 @@
 import org.apache.maven.shared.test.plugin.TestToolsException;
 import org.codehaus.plexus.PlexusTestCase;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import static org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast;
+
 /**
  * Tests <code>DefaultProjectDependencyAnalyzer</code>.
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see DefaultProjectDependencyAnalyzer
  */
 public class DefaultProjectDependencyAnalyzerTest
     extends PlexusTestCase
 {
-    // fields -----------------------------------------------------------------
-
     private BuildTool buildTool;
 
     private ProjectTool projectTool;
@@ -64,8 +60,6 @@
 
     private static File localRepo;
 
-    // TestCase methods -------------------------------------------------------
-
     /*
      * @see org.codehaus.plexus.PlexusTestCase#setUp()
      */
@@ -121,7 +115,7 @@
     public void testJava8methodRefs()
         throws TestToolsException, ProjectDependencyAnalyzerException
     {
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -135,7 +129,7 @@
 
         Artifact project1 = createArtifact( "commons-io", "commons-io", "jar", "2.4", "compile" );
         Artifact project2 = createArtifact( "commons-lang", "commons-lang", "jar", "2.6", "compile" );
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>( Arrays.asList( project1, project2 ) );
+        Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, project2 ) );
 
         ProjectDependencyAnalysis expectedAnalysis =
             new ProjectDependencyAnalysis( usedDeclaredArtifacts, new HashSet<Artifact>(), new HashSet<Artifact>(),
@@ -147,7 +141,7 @@
     public void testInlinedStaticReference()
         throws TestToolsException, ProjectDependencyAnalyzerException
     {
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -242,9 +236,9 @@
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "test" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
-            Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>( Arrays.asList( project1, junit ) );
+            Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( project1, junit ) );
             expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, null, null, null );
         }
         else
@@ -292,7 +286,7 @@
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "compile" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
             Set<Artifact> nonTestScopedTestArtifacts = Collections.singleton( junit );
@@ -325,7 +319,7 @@
         Artifact junit = createArtifact( "junit", "junit", "jar", "3.8.1", "runtime" );
 
         ProjectDependencyAnalysis expectedAnalysis;
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             Set<Artifact> usedDeclaredArtifacts = new HashSet<>( Arrays.asList( artifact1, junit ) );
             expectedAnalysis = new ProjectDependencyAnalysis( usedDeclaredArtifacts, null, null,
@@ -377,7 +371,7 @@
             throws TestToolsException, ProjectDependencyAnalyzerException
     {
         // java.lang.annotation.ElementType.TYPE_USE introduced with Java 1.8
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -404,7 +398,7 @@
             throws TestToolsException, ProjectDependencyAnalyzerException
     {
         // java.lang.annotation.ElementType.TYPE_USE introduced with Java 1.8
-        if ( !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
+        if ( !isJavaVersionAtLeast( JavaVersion.JAVA_1_8 ) )
         {
             return;
         }
@@ -437,7 +431,7 @@
 
     private void compileProject(String pomPath, Properties properties) throws TestToolsException {
         File pom = getTestFile( "target/test-classes/", pomPath );
-        if ( SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_9 )
+        if ( isJavaVersionAtLeast( JavaVersion.JAVA_9 )
              && !properties.containsKey( "maven.compiler.source" ) )
         {
           properties.put( "maven.compiler.source", "1.7" );
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
index 8f3d7ae..be53be5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
@@ -24,26 +24,25 @@
 
 import org.apache.maven.artifact.Artifact;
 
-import junit.framework.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>ProjectDependencyAnalysis</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ProjectDependencyAnalysis
  */
 public class ProjectDependencyAnalysisTest
-    extends TestCase
 {
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testConstructor()
     {
-        Set<Artifact> usedDeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> usedUndeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> unusedDeclaredArtifacts = new HashSet<Artifact>();
-        Set<Artifact> testArtifactsWithNonTestScope = new HashSet<Artifact>();
+        Set<Artifact> usedDeclaredArtifacts = new HashSet<>();
+        Set<Artifact> usedUndeclaredArtifacts = new HashSet<>();
+        Set<Artifact> unusedDeclaredArtifacts = new HashSet<>();
+        Set<Artifact> testArtifactsWithNonTestScope = new HashSet<>();
 
         ProjectDependencyAnalysis analysis =
             new ProjectDependencyAnalysis( usedDeclaredArtifacts, usedUndeclaredArtifacts, unusedDeclaredArtifacts,
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
index 4a3fa7b..ef8b995 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalyzerExceptionTest.java
@@ -19,19 +19,19 @@
  * under the License.
  */
 
-import junit.framework.TestCase;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 
 /**
  * Tests <code>ProjectDependencyAnalyzerException</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  * @see ProjectDependencyAnalyzerException
  */
-public class ProjectDependencyAnalyzerExceptionTest extends TestCase
+public class ProjectDependencyAnalyzerExceptionTest
 {
-    // tests ------------------------------------------------------------------
-
+    @Test
     public void testConstructor()
     {
         ProjectDependencyAnalyzerException exception = new ProjectDependencyAnalyzerException( "a" );
@@ -39,6 +39,7 @@
         assertEquals( "a", exception.getMessage() );
     }
 
+    @Test
     public void testConstructorWithThrowable()
     {
         Throwable throwable = new Exception();
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
index b56fa02..ad6d97a 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzerTest.java
@@ -20,12 +20,16 @@
  */

 

 import java.net.URL;

+import java.util.Set;

 

+import org.apache.maven.shared.dependency.analyzer.DependencyAnalyzer;

 import org.junit.Test;

 

+import static org.junit.Assert.assertFalse;

+

 public class ASMDependencyAnalyzerTest

 {

-    private ASMDependencyAnalyzer analyzer = new ASMDependencyAnalyzer(); 

+    private final DependencyAnalyzer analyzer = new ASMDependencyAnalyzer();

 

     @Test

     public void test() throws Exception

@@ -34,7 +38,9 @@
 

         String fileUrl = jarUrl.toString().substring( "jar:".length(), jarUrl.toString().indexOf( "!/" ) );

 

-        analyzer.analyze( new URL(fileUrl) );

+        Set<String> result = analyzer.analyze( new URL( fileUrl ) );

+

+        assertFalse( result.isEmpty() );

     }

 

 }

diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
index 3ab84a9..64ea041 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
@@ -24,78 +24,71 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import junit.framework.TestCase;
-
+import org.junit.Before;
+import org.junit.Test;
 import org.objectweb.asm.*;
 import org.objectweb.asm.signature.SignatureVisitor;
 
+import static org.junit.Assert.assertEquals;
+
 /**
  * Tests <code>DependencyVisitor</code>.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class DependencyVisitorTest
-    extends TestCase
 {
-    private ResultCollector resultCollector = new ResultCollector();
-    private DefaultClassVisitor classVisitor;
+    private final ResultCollector resultCollector = new ResultCollector();
     private DefaultClassVisitor visitor;
-    private AnnotationVisitor annotationVisitor;
-    private SignatureVisitor signatureVisitor;
-    private FieldVisitor fieldVisitor;
     private MethodVisitor mv;
 
-    // TestCase methods -------------------------------------------------------
-
-    /*
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp()
-            throws Exception
+    @Before
+    public void setUp()
     {
-        annotationVisitor = new DefaultAnnotationVisitor(resultCollector);
-        signatureVisitor = new DefaultSignatureVisitor(resultCollector);
-        fieldVisitor = new DefaultFieldVisitor(annotationVisitor, resultCollector);
-        mv = new DefaultMethodVisitor(annotationVisitor, signatureVisitor, resultCollector);
-        visitor = classVisitor = new DefaultClassVisitor(signatureVisitor, annotationVisitor,
-                fieldVisitor, mv, resultCollector);
+        AnnotationVisitor annotationVisitor = new DefaultAnnotationVisitor( resultCollector );
+        SignatureVisitor signatureVisitor = new DefaultSignatureVisitor( resultCollector );
+        FieldVisitor fieldVisitor = new DefaultFieldVisitor( annotationVisitor, resultCollector );
+        mv = new DefaultMethodVisitor( annotationVisitor, signatureVisitor, resultCollector);
+        visitor = new DefaultClassVisitor( signatureVisitor, annotationVisitor, fieldVisitor, mv, resultCollector);
     }
 
-    // visit tests ------------------------------------------------------------
-
+    @Test
     public void testVisitWithDefaultSuperclass()
     {
         // class a.b.c
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", null );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", null );
 
         assertClasses( "java.lang.Object" );
     }
 
+    @Test
     public void testVisitWithSuperclass()
     {
         // class a.b.c
-        classVisitor.visit( 50, 0, "a/b/c", null, "x/y/z", null );
+        visitor.visit( 50, 0, "a/b/c", null, "x/y/z", null );
 
         assertClasses( "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterface()
     {
         // class a.b.c implements x.y.z
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "x/y/z" } );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "x/y/z" } );
 
         assertClasses( "java.lang.Object", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterfaces()
     {
         // class a.b.c implements p.q.r, x.y.z
-        classVisitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "p/q/r", "x/y/z" } );
+        visitor.visit( 50, 0, "a/b/c", null, "java/lang/Object", new String[] { "p/q/r", "x/y/z" } );
 
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithUnboundedClassTypeParameter()
     {
         // class a.b.c<T>
@@ -106,6 +99,7 @@
         assertClasses( "java.lang.Object" );
     }
 
+    @Test
     public void testVisitWithBoundedClassTypeParameter()
     {
         // class a.b.c<T extends x.y.z>
@@ -116,6 +110,7 @@
         assertClasses( "java.lang.Object", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithBoundedClassTypeParameters()
     {
         // class a.b.c<K extends p.q.r, V extends x.y.z>
@@ -126,6 +121,7 @@
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithGenericInterface()
     {
         // class a.b.c implements p.q.r<x.y.z>
@@ -136,6 +132,7 @@
         assertClasses( "java.lang.Object", "p.q.r", "x.y.z" );
     }
 
+    @Test
     public void testVisitWithInterfaceBound()
     {
         // class a.b.c<T> implements x.y.z<T>
@@ -148,6 +145,7 @@
 
     // visitSource tests ------------------------------------------------------
 
+    @Test
     public void testVisitSource()
     {
         visitor.visitSource( null, null );
@@ -157,6 +155,7 @@
 
     // visitOuterClass tests --------------------------------------------------
 
+    @Test
     public void testVisitOuterClass()
     {
         // class a.b.c
@@ -170,6 +169,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitOuterClassInMethod()
     {
         // class a.b.c
@@ -188,6 +188,7 @@
 
     // visitAnnotation tests --------------------------------------------------
 
+    @Test
     public void testVisitAnnotation()
     {
         assertVisitor( visitor.visitAnnotation( "La/b/c;", false ) );
@@ -195,6 +196,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitAnnotationWithRuntimeVisibility()
     {
         assertVisitor( visitor.visitAnnotation( "La/b/c;", true ) );
@@ -204,6 +206,7 @@
 
     // visitAttribute tests ---------------------------------------------------
 
+    @Test
     public void testVisitAttribute()
     {
         visitor.visitAttribute( new MockAttribute( "a" ) );
@@ -213,6 +216,7 @@
 
     // visitInnerClass tests --------------------------------------------------
 
+    @Test
     public void testVisitInnerClass()
     {
         // TODO: ensure innerName is correct
@@ -223,6 +227,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitInnerClassAnonymous()
     {
         // class a.b.c { new class x.y.z { } }
@@ -233,6 +238,7 @@
 
     // visitField tests -------------------------------------------------------
 
+    @Test
     public void testVisitField()
     {
         // a.b.c a
@@ -246,6 +252,7 @@
     // {
     // }
 
+    @Test
     public void testVisitFieldArray()
     {
         // a.b.c[] a
@@ -254,6 +261,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitFieldGeneric()
     {
         // a.b.c<x.y.z> a
@@ -264,6 +272,7 @@
 
     // visitMethod tests ------------------------------------------------------
 
+    @Test
     public void testVisitMethod()
     {
         // void a()
@@ -272,6 +281,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArgument()
     {
         // void a(int)
@@ -280,6 +290,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArrayArgument()
     {
         // void a(int[])
@@ -288,6 +299,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithObjectArgument()
     {
         // void a(a.b.c)
@@ -296,6 +308,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArguments()
     {
         // void a(a.b.c, x.y.z)
@@ -304,6 +317,7 @@
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArrayArgument()
     {
         // void a(a.b.c[])
@@ -312,6 +326,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithGenericArgument()
     {
         // void a(a.b.c<x.y.z>)
@@ -320,6 +335,7 @@
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveReturnType()
     {
         // int a()
@@ -328,6 +344,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithPrimitiveArrayReturnType()
     {
         // int[] a()
@@ -336,6 +353,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMethodWithObjectReturnType()
     {
         // a.b.c a()
@@ -344,6 +362,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithObjectArrayReturnType()
     {
         // a.b.c[] a()
@@ -352,6 +371,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithException()
     {
         // void a() throws a.b.c
@@ -360,6 +380,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodWithExceptions()
     {
         // void a() throws a.b.c, x.y.z
@@ -370,6 +391,7 @@
 
     // visitAnnotationDefault tests -------------------------------------------
 
+    @Test
     public void testVisitAnnotationDefault()
     {
         assertVisitor( mv.visitAnnotationDefault() );
@@ -378,6 +400,7 @@
 
     // visitParameterAnnotation tests -------------------------------------------
 
+    @Test
     public void testVisitParameterAnnotation()
     {
         // @a.b.c
@@ -388,6 +411,7 @@
 
     // visitCode tests --------------------------------------------------------
 
+    @Test
     public void testVisitCode()
     {
         mv.visitCode();
@@ -397,6 +421,7 @@
 
     // visitFrame tests -------------------------------------------------------
 
+    @Test
     public void testVisitFrame()
     {
         mv.visitFrame( Opcodes.F_NEW, 0, new Object[0], 0, new Object[0] );
@@ -406,6 +431,7 @@
 
     // visitInsn tests --------------------------------------------------------
 
+    @Test
     public void testVisitInsn()
     {
         mv.visitInsn( Opcodes.NOP );
@@ -415,6 +441,7 @@
 
     // visitIntInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitIntInsn()
     {
         mv.visitIntInsn( Opcodes.BIPUSH, 0 );
@@ -424,6 +451,7 @@
 
     // visitVarInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitVarInsn()
     {
         mv.visitVarInsn( Opcodes.ILOAD, 0 );
@@ -433,6 +461,7 @@
 
     // visitTypeInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitTypeInsn()
     {
         mv.visitTypeInsn( Opcodes.NEW, "a/b/c" );
@@ -442,6 +471,7 @@
 
     // visitFieldInsn tests ---------------------------------------------------
 
+    @Test
     public void testVisitFieldInsnWithPrimitive()
     {
         mv.visitFieldInsn( Opcodes.GETFIELD, "a/b/c", "x", "I" );
@@ -449,6 +479,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitFieldInsnWithObject()
     {
         mv.visitFieldInsn( Opcodes.GETFIELD, "a/b/c", "x", "Lx/y/z;" );
@@ -458,6 +489,7 @@
 
     // visitMethodInsn tests --------------------------------------------------
 
+    @Test
     public void testVisitMethodInsn()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()V", false );
@@ -465,6 +497,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(I)V", false );
@@ -472,6 +505,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArrayArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "([I)V", false );
@@ -479,6 +513,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(Lx/y/z;)V", false );
@@ -486,6 +521,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArguments()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "(Lp/q/r;Lx/y/z;)V", false );
@@ -493,6 +529,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArrayArgument()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "([Lx/y/z;)V", false );
@@ -500,6 +537,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()I", false );
@@ -507,6 +545,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithPrimitiveArrayReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()[I", false );
@@ -514,6 +553,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()Lx/y/z;", false );
@@ -521,6 +561,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitMethodInsnWithObjectArrayReturnType()
     {
         mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, "a/b/c", "x", "()[Lx/y/z;", false );
@@ -530,6 +571,7 @@
 
     // visitJumpInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitJumpInsn()
     {
         mv.visitJumpInsn( Opcodes.IFEQ, new Label() );
@@ -539,6 +581,7 @@
 
     // visitLabel tests -------------------------------------------------------
 
+    @Test
     public void testVisitLabel()
     {
         mv.visitLabel( new Label() );
@@ -548,6 +591,7 @@
 
     // visitLdcInsn tests -----------------------------------------------------
 
+    @Test
     public void testVisitLdcInsnWithNonType()
     {
         mv.visitLdcInsn( "a" );
@@ -555,6 +599,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLdcInsnWithPrimitiveType()
     {
         mv.visitLdcInsn( Type.INT_TYPE );
@@ -562,6 +607,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLdcInsnWithObjectType()
     {
         mv.visitLdcInsn( Type.getType( "La/b/c;" ) );
@@ -571,6 +617,7 @@
 
     // visitIincInsn tests ----------------------------------------------------
 
+    @Test
     public void testVisitIincInsn()
     {
         mv.visitIincInsn( 0, 1 );
@@ -580,15 +627,17 @@
 
     // visitTableSwitchInsn tests ---------------------------------------------
 
+    @Test
     public void testVisitTableSwitchInsn()
     {
-        mv.visitTableSwitchInsn( 0, 1, new Label(), new Label[] { new Label() } );
+        mv.visitTableSwitchInsn( 0, 1, new Label(), new Label() );
 
         assertNoClasses();
     }
 
     // visitLookupSwitchInsn tests --------------------------------------------
 
+    @Test
     public void testVisitLookupSwitchInsn()
     {
         mv.visitLookupSwitchInsn( new Label(), new int[] { 0 }, new Label[] { new Label() } );
@@ -598,6 +647,7 @@
 
     // visitMultiANewArrayInsn tests ------------------------------------------
 
+    @Test
     public void testVisitMultiANewArrayInsnWithPrimitive()
     {
         mv.visitMultiANewArrayInsn( "I", 2 );
@@ -605,6 +655,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitMultiANewArrayInsnWithObject()
     {
         mv.visitMultiANewArrayInsn( "La/b/c;", 2 );
@@ -614,6 +665,7 @@
 
     // visitTryCatchBlock tests -----------------------------------------------
 
+    @Test
     public void testVisitTryCatchBlock()
     {
         mv.visitTryCatchBlock( new Label(), new Label(), new Label(), "a/b/c" );
@@ -621,6 +673,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitTryCatchBlockForFinally()
     {
         mv.visitTryCatchBlock( new Label(), new Label(), new Label(), null );
@@ -630,6 +683,7 @@
 
     // visitLocalVariable tests -----------------------------------------------
 
+    @Test
     public void testVisitLocalVariableWithPrimitive()
     {
         mv.visitLocalVariable( "a", "I", null, new Label(), new Label(), 0 );
@@ -637,6 +691,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLocalVariableWithPrimitiveArray()
     {
         mv.visitLocalVariable( "a", "[I", null, new Label(), new Label(), 0 );
@@ -644,6 +699,7 @@
         assertNoClasses();
     }
 
+    @Test
     public void testVisitLocalVariableWithObject()
     {
         mv.visitLocalVariable( "a", "La/b/c;", null, new Label(), new Label(), 0 );
@@ -651,6 +707,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitLocalVariableWithObjectArray()
     {
         mv.visitLocalVariable( "a", "[La/b/c;", null, new Label(), new Label(), 0 );
@@ -658,6 +715,7 @@
         assertClasses( "a.b.c" );
     }
 
+    @Test
     public void testVisitLocalVariableWithGenericObject()
     {
         mv.visitLocalVariable( "a", "La/b/c;", "La/b/c<Lx/y/z;>;", new Label(), new Label(), 0 );
@@ -665,6 +723,7 @@
         assertClasses( "a.b.c", "x.y.z" );
     }
 
+    @Test
     public void testVisitLocalVariableWithGenericObjectArray()
     {
         mv.visitLocalVariable( "a", "La/b/c;", "[La/b/c<Lx/y/z;>;", new Label(), new Label(), 0 );
@@ -674,6 +733,7 @@
 
     // visitLineNumber tests --------------------------------------------------
 
+    @Test
     public void testVisitLineNumber()
     {
         mv.visitLineNumber( 0, new Label() );
@@ -683,6 +743,7 @@
 
     // visitMaxs tests --------------------------------------------------------
 
+    @Test
     public void testVisitMaxs()
     {
         mv.visitMaxs( 0, 0 );
@@ -690,8 +751,6 @@
         assertNoClasses();
     }
 
-    // private methods --------------------------------------------------------
-
     private void assertVisitor( Object actualVisitor )
     {
         //assertEquals( visitor, actualVisitor );
@@ -719,7 +778,7 @@
 
     private void assertClasses( String[] expectedClasses )
     {
-        assertClasses( new HashSet<String>( Arrays.asList( expectedClasses ) ) );
+        assertClasses( new HashSet<>( Arrays.asList( expectedClasses ) ) );
     }
 
     private void assertClasses( Set<String> expectedClasses )
diff --git a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
index 7ee2dda..c9c74e5 100644
--- a/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
+++ b/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/MockAttribute.java
@@ -25,7 +25,6 @@
  * A simple ASM <code>Attribute</code> for use in tests.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class MockAttribute extends Attribute
 {
diff --git a/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java b/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
index 91a47d9..3fe7fb7 100644
--- a/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
+++ b/src/test/resources/jarWithCompileDependency/project1/src/main/java/jarWithCompileDependency/project1/Project1.java
@@ -23,12 +23,9 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java b/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
index 4f540b2..5bc71ce 100644
--- a/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
+++ b/src/test/resources/jarWithCompileDependency/project2/src/main/java/jarWithCompileDependency/project2/Project2.java
@@ -25,12 +25,9 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..2c5e8a5 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithCompileScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -23,12 +23,9 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..6930e48 100644
--- a/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithCompileScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -25,7 +25,6 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +33,6 @@
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java b/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
index accc39d..962cd73 100644
--- a/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
+++ b/src/test/resources/jarWithNoDependencies/src/main/java/jarWithNoDependencies/Project.java
@@ -23,12 +23,9 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project
 {
-    // constructors -----------------------------------------------------------
-
     public Project()
     {
         // no-op
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..2c5e8a5 100644
--- a/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithRuntimeScopedTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -23,12 +23,9 @@
  * 
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..33d1302 100644
--- a/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithRuntimeScopedTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -23,9 +23,7 @@
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +32,6 @@
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();
diff --git a/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java b/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
index 4f4572d..539e9dc 100644
--- a/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
+++ b/src/test/resources/jarWithTestDependency/project1/src/main/java/jarWithTestDependency/project1/Project1.java
@@ -21,14 +21,10 @@
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project1
 {
-    // constructors -----------------------------------------------------------
-
     public Project1()
     {
         // no-op
diff --git a/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java b/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
index e64c057..33d1302 100644
--- a/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
+++ b/src/test/resources/jarWithTestDependency/project2/src/test/java/jarWithTestDependency/project2/Project2.java
@@ -23,9 +23,7 @@
 
 /**
  * 
- * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
- * @version $Id$
  */
 public class Project2
 {
@@ -34,8 +32,6 @@
     // Not the case any more, since we sniff it from the constant pool
     public final static int STATUS_ERROR = junit.runner.TestRunListener.STATUS_ERROR;
 
-    // constructors -----------------------------------------------------------
-
     public Project2()
     {
         Project1 project = new Project1();