You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/04/11 11:50:43 UTC

[maven-indexer] branch MINDEXER-116 created (now 03ba810)

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

slachiewicz pushed a change to branch MINDEXER-116
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git.


      at 03ba810  [MINDEXER-116] Move syntax to Java 8 + fix IDE warnings

This branch includes the following new commits:

     new 10e6567  [MINDEXER-116] Require Java 8 at runtime
     new 3e4db24  [MINDEXER-116] Move code to Java 7 syntax
     new 03ba810  [MINDEXER-116] Move syntax to Java 8 + fix IDE warnings

The 3 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-indexer] 01/03: [MINDEXER-116] Require Java 8 at runtime

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

slachiewicz pushed a commit to branch MINDEXER-116
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git

commit 10e6567d2e7afdc07f1db461bb6e454d28bee4d6
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Apr 11 13:48:30 2020 +0200

    [MINDEXER-116] Require Java 8 at runtime
---
 Jenkinsfile | 2 +-
 pom.xml     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 09ac70f..ab4282b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -17,4 +17,4 @@
  * under the License.
  */
 
-asfMavenTlpStdBuild()
+asfMavenTlpStdBuild(jdk:['8','11','14','15'])
diff --git a/pom.xml b/pom.xml
index 6f1c93d..6c422fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,7 @@ under the License.
   </distributionManagement>
 
   <properties>
-    <javaVersion>7</javaVersion>
+    <javaVersion>8</javaVersion>
     <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
     <failsafe.redirectTestOutputToFile>true</failsafe.redirectTestOutputToFile>
     <checkstyle.violation.ignore>MagicNumber,ParameterNumber,MethodLength,JavadocType,AvoidNestedBlocks,InterfaceIsType</checkstyle.violation.ignore>


[maven-indexer] 03/03: [MINDEXER-116] Move syntax to Java 8 + fix IDE warnings

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

slachiewicz pushed a commit to branch MINDEXER-116
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git

commit 03ba81089df69b388d90bbe07f023e2fc4b3ec4e
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Mon Feb 3 01:42:12 2020 +0100

    [MINDEXER-116] Move syntax to Java 8 + fix IDE warnings
---
 .../apache/maven/index/cli/NexusIndexerCliIT.java  | 19 ++---
 .../maven/index/cli/NexusIndexerCliTest.java       |  3 +-
 .../java/org/apache/maven/index/ArtifactInfo.java  |  9 +--
 .../index/DefaultArtifactContextProducer.java      | 19 ++---
 .../org/apache/maven/index/DefaultIndexer.java     |  9 +--
 .../maven/index/DefaultIteratorResultSet.java      |  8 +-
 .../apache/maven/index/DefaultNexusIndexer.java    |  3 +-
 .../apache/maven/index/DefaultQueryCreator.java    |  2 +-
 .../org/apache/maven/index/FlatSearchRequest.java  |  2 +-
 .../apache/maven/index/GroupedSearchRequest.java   |  2 +-
 .../apache/maven/index/IndexerFieldVersion.java    |  2 +-
 .../apache/maven/index/IteratorSearchRequest.java  |  2 +-
 .../apache/maven/index/IteratorSearchResponse.java |  2 +-
 .../org/apache/maven/index/MatchHighlightMode.java |  2 +-
 .../artifact/DefaultArtifactPackagingMapper.java   | 11 +--
 .../java/org/apache/maven/index/artifact/Gav.java  | 13 +---
 .../maven/index/artifact/M1GavCalculator.java      |  4 +-
 .../maven/index/artifact/M2GavCalculator.java      | 25 ++-----
 .../index/context/DefaultIndexingContext.java      |  5 +-
 .../index/creator/JarFileContentsIndexCreator.java |  4 +-
 .../creator/MinimalArtifactInfoIndexCreator.java   | 13 ++--
 .../index/creator/OsgiArtifactIndexCreator.java    |  4 +-
 .../incremental/DefaultIncrementalHandler.java     | 17 +----
 .../maven/index/packer/DefaultIndexPacker.java     |  4 +-
 .../apache/maven/index/packer/DigesterUtils.java   | 13 ++--
 .../maven/index/packer/IndexPackingRequest.java    |  2 +-
 .../maven/index/treeview/DefaultIndexTreeView.java | 29 ++++----
 .../org/apache/maven/index/treeview/TreeNode.java  |  2 +-
 .../maven/index/updater/DefaultIndexUpdater.java   |  8 +-
 .../maven/index/updater/FSDirectoryFactory.java    |  9 +--
 .../maven/index/updater/IndexDataReader.java       |  9 +--
 .../maven/index/updater/IndexDataWriter.java       |  4 +-
 .../apache/maven/index/updater/WagonHelper.java    | 20 ++---
 .../maven/index/AbstractNexusIndexerTest.java      |  3 -
 .../org/apache/maven/index/ConcurrentUseTest.java  |  3 +-
 .../index/ConcurrentUseWithMergedContextTest.java  |  1 -
 .../maven/index/DefaultSearchEngineTest.java       | 16 ++--
 .../maven/index/Mindexer35NexusIndexerTest.java    |  2 +-
 .../maven/index/Nexus1179NexusIndexerTest.java     |  2 +-
 .../maven/index/Nexus13NexusIndexerTest.java       |  3 -
 .../maven/index/Nexus2046NexusIndexerTest.java     |  2 +-
 .../index/Nexus3293TimestampSnapshotTest.java      |  2 +-
 .../maven/index/Nexus3881NexusIndexerTest.java     |  4 +-
 .../maven/index/Nexus645NexusIndexerTest.java      |  2 +-
 .../org/apache/maven/index/NexusIndexerTest.java   | 27 +++----
 .../maven/index/UniqueArtifactFilterTest.java      |  2 +-
 .../maven/index/artifact/M2GavCalculatorTest.java  |  2 +-
 .../creator/OsgiArtifactIndexCreatorTest.java      |  2 +-
 .../index/updater/DefaultIndexUpdaterTest.java     |  3 +-
 .../updater/DownloadRemoteIndexerManagerTest.java  | 11 +--
 .../maven/index/updater/LocalIndexCacheTest.java   |  3 +-
 .../index/updater/fixtures/ServerTestFixture.java  |  2 +-
 .../maven/indexer/examples/BasicUsageExample.java  | 23 +++---
 .../org/apache/maven/index/reader/ChunkReader.java |  4 +-
 .../org/apache/maven/index/reader/ChunkWriter.java |  4 +-
 .../org/apache/maven/index/reader/IndexReader.java |  8 +-
 .../java/org/apache/maven/index/reader/Record.java |  2 +-
 .../apache/maven/index/reader/RecordCompactor.java | 22 ++----
 .../maven/index/reader/CachingResourceHandler.java |  9 +--
 .../index/reader/DirectoryResourceHandler.java     |  4 +-
 .../apache/maven/index/reader/IndexReaderTest.java | 24 ++++--
 .../apache/maven/index/reader/IndexWriterTest.java | 12 ++-
 .../org/apache/maven/index/reader/TestUtils.java   | 86 +++++++++-------------
 .../apache/maven/index/reader/TransformTest.java   | 23 +++---
 64 files changed, 230 insertions(+), 363 deletions(-)

diff --git a/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliIT.java b/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliIT.java
index 16a5d33..ea883ba 100644
--- a/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliIT.java
+++ b/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliIT.java
@@ -38,19 +38,16 @@ public class NexusIndexerCliIT
     {
         super.setUp();
 
-        sout = new StreamConsumer()
+        sout = line ->
         {
-            public void consumeLine( String line )
+            try
             {
-                try
-                {
-                    out.write( line.getBytes() );
-                    out.write( "\n".getBytes() );
-                }
-                catch ( IOException e )
-                {
-                    throw new RuntimeException( e.getMessage(), e );
-                }
+                out.write( line.getBytes() );
+                out.write( "\n".getBytes() );
+            }
+            catch ( IOException e )
+            {
+                throw new RuntimeException( e.getMessage(), e );
             }
         };
     }
diff --git a/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliTest.java b/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliTest.java
index a04d0d8..12fe715 100644
--- a/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliTest.java
+++ b/indexer-cli/src/test/java/org/apache/maven/index/cli/NexusIndexerCliTest.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
@@ -70,7 +69,7 @@ public class NexusIndexerCliTest
     {
         @SuppressWarnings( "unchecked" )
         List<Option> optList = new ArrayList<Option>( new NexusIndexerCli().buildDefaultCliOptions().getOptions() );
-        Collections.sort( optList, new OptionComparator() );
+        optList.sort( new OptionComparator() );
 
         StringBuilder sb = new StringBuilder();
         boolean a = true;
diff --git a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
index b2a1549..c74e150 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
@@ -386,14 +386,9 @@ public class ArtifactInfo
 
     public String getUinfo()
     {
-        return new StringBuilder() //
-        .append( groupId ).append( FS ) //
-        .append( artifactId ).append( FS ) //
-        .append( version ).append( FS ) //
-        .append( nvl( classifier ) ).append( FS ) //
-        .append( fileExtension )
+        return groupId + FS + artifactId + FS + version + FS + nvl( classifier ) + FS + fileExtension;
+        // extension is stored in the packaging field when classifier is not used
         // .append( StringUtils.isEmpty( classifier ) || StringUtils.isEmpty( packaging ) ? "" : FS + packaging ) //
-        .toString(); // extension is stored in the packaging field when classifier is not used
     }
 
     public String getRootGroup()
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
index 6a66bf3..88e6fa7 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
@@ -143,18 +143,13 @@ public class DefaultArtifactContextProducer
 
         String filename = file.getName();
 
-        if ( filename.equals( "maven-metadata.xml" )
-        // || filename.endsWith( "-javadoc.jar" )
-        // || filename.endsWith( "-javadocs.jar" )
-        // || filename.endsWith( "-sources.jar" )
-            || filename.endsWith( ".properties" )
-            // || filename.endsWith( ".xml" ) // NEXUS-3029
-            || filename.endsWith( ".asc" ) || filename.endsWith( ".md5" ) || filename.endsWith( ".sha1" ) )
-        {
-            return false;
-        }
-
-        return true;
+        return !filename.equals( "maven-metadata.xml" )
+                // || filename.endsWith( "-javadoc.jar" )
+                // || filename.endsWith( "-javadocs.jar" )
+                // || filename.endsWith( "-sources.jar" )
+                && !filename.endsWith( ".properties" )
+                // || filename.endsWith( ".xml" ) // NEXUS-3029
+                && !filename.endsWith( ".asc" ) && !filename.endsWith( ".md5" ) && !filename.endsWith( ".sha1" );
     }
 
     protected Gav getGavFromPath( IndexingContext context, String repositoryPath, String artifactPath )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
index f230a48..9590fa2 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
@@ -156,7 +156,7 @@ public class DefaultIndexer
     {
         if ( request.getContexts().isEmpty() )
         {
-            return new FlatSearchResponse( request.getQuery(), 0, Collections.<ArtifactInfo>emptySet() );
+            return new FlatSearchResponse( request.getQuery(), 0, Collections.emptySet() );
         }
         else
         {
@@ -182,8 +182,7 @@ public class DefaultIndexer
     {
         if ( request.getContexts().isEmpty() )
         {
-            return new GroupedSearchResponse( request.getQuery(), 0,
-                                              Collections.<String, ArtifactInfoGroup>emptyMap() );
+            return new GroupedSearchResponse( request.getQuery(), 0, Collections.emptyMap() );
         }
         else
         {
@@ -213,9 +212,7 @@ public class DefaultIndexer
         }
         catch ( NoSuchAlgorithmException ex )
         {
-            IOException ioe = new IOException( "Unable to calculate digest" );
-            ioe.initCause( ex );
-            throw ioe;
+            throw new IOException( "Unable to calculate digest", ex );
         }
     }
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
index 2a70159..65ea55d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
@@ -300,11 +300,11 @@ public class DefaultIteratorResultSet
     protected void calculateHighlights( IndexingContext context, Document d, ArtifactInfo ai )
         throws IOException
     {
-        IndexerField field = null;
+        IndexerField field;
 
-        String text = null;
+        String text;
 
-        List<String> highlightFragment = null;
+        List<String> highlightFragment;
 
         for ( MatchHighlightRequest hr : matchHighlightRequests )
         {
@@ -373,7 +373,7 @@ public class DefaultIteratorResultSet
         
         CachingTokenFilter tokenStream = new CachingTokenFilter( baseTokenStream );
 
-        Formatter formatter = null;
+        Formatter formatter;
 
         if ( MatchHighlightMode.HTML.equals( hr.getHighlightMode() ) )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
index 73a35dc..cfd0429 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
@@ -303,8 +303,7 @@ public class DefaultNexusIndexer
         }
         catch ( Exception ex )
         {
-            throw (IOException) new IOException( "Error scanning context " + context.getId() + ": " + ex ).initCause(
-                ex );
+            throw new IOException( "Error scanning context " + context.getId() + ": " + ex, ex );
         }
         finally
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
index 8fab44b..e1dfe4a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
@@ -129,7 +129,7 @@ public class DefaultQueryCreator
     @Deprecated
     public Query constructQuery( String field, String query )
     {
-        Query result = null;
+        Query result;
 
         if ( MinimalArtifactInfoIndexCreator.FLD_GROUP_ID_KW.getKey().equals( field )
             || MinimalArtifactInfoIndexCreator.FLD_ARTIFACT_ID_KW.getKey().equals( field )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/FlatSearchRequest.java b/indexer-core/src/main/java/org/apache/maven/index/FlatSearchRequest.java
index e13a2db..b64958e 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/FlatSearchRequest.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/FlatSearchRequest.java
@@ -52,7 +52,7 @@ public class FlatSearchRequest
 
     public FlatSearchRequest( Query query, Comparator<ArtifactInfo> artifactInfoComparator, IndexingContext context )
     {
-        super( query, context != null ? Arrays.asList( new IndexingContext[] { context } ) : null );
+        super( query, context != null ? Arrays.asList( context ) : null );
 
         this.artifactInfoComparator = artifactInfoComparator;
     }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/GroupedSearchRequest.java b/indexer-core/src/main/java/org/apache/maven/index/GroupedSearchRequest.java
index aa813ef..16797c2 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/GroupedSearchRequest.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/GroupedSearchRequest.java
@@ -56,7 +56,7 @@ public class GroupedSearchRequest
     public GroupedSearchRequest( Query query, Grouping grouping, Comparator<String> groupKeyComparator,
                                  IndexingContext context )
     {
-        super( query, context != null ? Arrays.asList( new IndexingContext[] { context } ) : null );
+        super( query, context != null ? Arrays.asList( context ) : null );
 
         this.grouping = grouping;
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/IndexerFieldVersion.java b/indexer-core/src/main/java/org/apache/maven/index/IndexerFieldVersion.java
index 51564b3..e89cc52 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/IndexerFieldVersion.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/IndexerFieldVersion.java
@@ -39,5 +39,5 @@ public enum IndexerFieldVersion
     /**
      * The 4.x line.
      */
-    V4;
+    V4
 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchRequest.java b/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchRequest.java
index d380509..b0df393 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchRequest.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchRequest.java
@@ -46,7 +46,7 @@ public class IteratorSearchRequest
 
     public IteratorSearchRequest( Query query, IndexingContext context )
     {
-        this( query, context != null ? Arrays.asList( new IndexingContext[] { context } ) : null, null );
+        this( query, context != null ? Arrays.asList( context ) : null, null );
     }
 
     public IteratorSearchRequest( Query query, List<IndexingContext> contexts )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchResponse.java b/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchResponse.java
index cbd55a1..f82b383 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchResponse.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/IteratorSearchResponse.java
@@ -107,7 +107,7 @@ public class IteratorSearchResponse
         }
     };
 
-    public static final IteratorSearchResponse empty( final Query q )
+    public static IteratorSearchResponse empty( final Query q )
     {
         return new IteratorSearchResponse( q, 0, EMPTY_ITERATOR_RESULT_SET );
     }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/MatchHighlightMode.java b/indexer-core/src/main/java/org/apache/maven/index/MatchHighlightMode.java
index 4cba338..8c582f7 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/MatchHighlightMode.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/MatchHighlightMode.java
@@ -21,5 +21,5 @@ package org.apache.maven.index;
 
 public enum MatchHighlightMode
 {
-    HTML;
+    HTML
 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
index 5c1097a..b64cb53 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
@@ -158,14 +158,7 @@ public class DefaultArtifactPackagingMapper
             return "jar";
         }
 
-        if ( getPackaging2extensionMapping().containsKey( packaging ) )
-        {
-            return getPackaging2extensionMapping().get( packaging );
-        }
-        else
-        {
-            // default's to packaging name, ie. "jar", "war", "pom", etc.
-            return packaging;
-        }
+        // default's to packaging name, ie. "jar", "war", "pom", etc.
+        return getPackaging2extensionMapping().getOrDefault( packaging, packaging );
     }
 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
index dd70ab7..fa9c72e 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
@@ -47,18 +47,11 @@ public class Gav
         @Override
         public String toString()
         {
-            switch ( this )
+            if ( this == SignatureType.gpg )
             {
-                case gpg:
-                {
-                    return "asc";
-                }
-
-                default:
-                {
-                    return "unknown-signature-type";
-                }
+                return "asc";
             }
+            return "unknown-signature-type";
         }
     }
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
index d922bd2..eb06fab 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
@@ -159,8 +159,6 @@ public class M1GavCalculator
         if ( gav.getClassifier() == null )
         {
             path.append( gav.getExtension() );
-
-            path.append( "s" );
         }
         else
         {
@@ -176,8 +174,8 @@ public class M1GavCalculator
             {
                 path.append( gav.getClassifier() );
             }
-            path.append( "s" );
         }
+        path.append( "s" );
 
         path.append( "/" );
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
index 5405a0a..b95d5c4 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
@@ -159,9 +159,9 @@ public class M2GavCalculator
 
         String vSnapshot = s.substring( vSnapshotStart, vSnapshotStart + 8 );
 
-        String classifier = null;
+        String classifier;
 
-        String ext = null;
+        String ext;
 
         if ( "SNAPSHOT".equals( vSnapshot ) )
         {
@@ -184,7 +184,7 @@ public class M2GavCalculator
         else
         {
             StringBuilder sb = new StringBuilder( vSnapshot );
-            sb.append( s.substring( vSnapshotStart + sb.length(), vSnapshotStart + sb.length() + 8 ) );
+            sb.append( s, vSnapshotStart + sb.length(), vSnapshotStart + sb.length() + 8 );
 
             try
             {
@@ -231,23 +231,10 @@ public class M2GavCalculator
 
     public String gavToPath( Gav gav )
     {
-        StringBuilder path = new StringBuilder( "/" );
 
-        path.append( gav.getGroupId().replaceAll( "(?m)(.)\\.", "$1/" ) ); // replace all '.' except the first char
-
-        path.append( "/" );
-
-        path.append( gav.getArtifactId() );
-
-        path.append( "/" );
-
-        path.append( gav.getBaseVersion() );
-
-        path.append( "/" );
-
-        path.append( calculateArtifactName( gav ) );
-
-        return path.toString();
+        return "/" + gav.getGroupId().replaceAll( "(?m)(.)\\.",
+                "$1/" ) + // replace all '.' except the first char
+                "/" + gav.getArtifactId() + "/" + gav.getBaseVersion() + "/" + calculateArtifactName( gav );
     }
 
     public String calculateArtifactName( Gav gav )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
index d557805..e118800 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
@@ -326,7 +326,6 @@ public class DefaultIndexingContext
                 {
                     // eh? this is buggy index it seems, just iron it out then
                     storeDescriptor();
-                    return;
                 }
                 else
                 {
@@ -671,7 +670,7 @@ public class DefaultIndexingContext
             final IndexWriter w = getIndexWriter();
             try ( IndexReader directoryReader = DirectoryReader.open( directory ) )
             {
-                TopScoreDocCollector collector = null;
+                TopScoreDocCollector collector;
                 int numDocs = directoryReader.maxDoc();
 
                 Bits liveDocs = MultiFields.getLiveDocs( directoryReader );
@@ -761,7 +760,7 @@ public class DefaultIndexingContext
 
     public List<IndexCreator> getIndexCreators()
     {
-        return Collections.<IndexCreator>unmodifiableList( indexCreators );
+        return Collections.unmodifiableList( indexCreators );
     }
 
     // groups
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
index 4659f85..dbacade 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
@@ -185,13 +185,13 @@ public class JarFileContentsIndexCreator
                         if ( StringUtils.isBlank( strippedPrefix ) )
                         {
                             // class name without ".class"
-                            sb.append( name.substring( 0, name.length() - 6 ) ).append( '\n' );
+                            sb.append( name, 0, name.length() - 6 ).append( '\n' );
                         }
                         else if ( name.startsWith( strippedPrefix )
                             && ( name.length() > ( strippedPrefix.length() + 6 ) ) )
                         {
                             // class name without ".class" and stripped prefix
-                            sb.append( name.substring( strippedPrefix.length(), name.length() - 6 ) ).append( '\n' );
+                            sb.append( name, strippedPrefix.length(), name.length() - 6 ).append( '\n' );
                         }
                     }
                 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
index d899705..d2f71e6 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
@@ -255,14 +255,11 @@ public class MinimalArtifactInfoIndexCreator
 
     public void updateDocument( ArtifactInfo ai, Document doc )
     {
-        String info =
-            new StringBuilder().append( ArtifactInfo.nvl( ai.getPackaging() ) )
-                .append( ArtifactInfo.FS ).append( Long.toString( ai.getLastModified() ) )
-                .append( ArtifactInfo.FS ).append( Long.toString( ai.getSize() ) )
-                .append( ArtifactInfo.FS ).append( ai.getSourcesExists().toString() )
-                .append( ArtifactInfo.FS ).append( ai.getJavadocExists().toString() )
-                .append( ArtifactInfo.FS ).append( ai.getSignatureExists().toString() )
-                .append( ArtifactInfo.FS ).append( ai.getFileExtension() ).toString();
+        String info = ArtifactInfo.nvl(
+                ai.getPackaging() ) + ArtifactInfo.FS + ai.getLastModified() + ArtifactInfo.FS + ai.getSize()
+                 + ArtifactInfo.FS + ai.getSourcesExists().toString() + ArtifactInfo.FS
+                  + ai.getJavadocExists().toString() + ArtifactInfo.FS + ai.getSignatureExists().toString()
+                   + ArtifactInfo.FS + ai.getFileExtension();
 
         doc.add( FLD_INFO.toField( info ) );
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
index 6baf299..9e50447 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
@@ -623,12 +623,12 @@ public class OsgiArtifactIndexCreator
 
             try ( DigestInputStream in = new DigestInputStream( new FileInputStream( f ), digest ) )
             {
-                byte buf[] = new byte[8192];
+                byte[] buf = new byte[8192];
                 while ( in.read( buf ) >= 0 )
                 {
                     // nop
                 }
-                byte digestBytes[] = digest.digest();
+                byte[] digestBytes = digest.digest();
                 StringBuilder builder = new StringBuilder( 64 );
                 for ( int b : digestBytes )
                 {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java b/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
index c729caa..dfad0c4 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
@@ -229,22 +229,11 @@ public class DefaultIncrementalHandler
     }
 
     private void cleanUpIncrementalChunks( IndexPackingRequest request, Properties properties )
-        throws IOException
     {
-        File[] files = request.getTargetDir().listFiles( new FilenameFilter()
+        File[] files = request.getTargetDir().listFiles( ( dir, name ) ->
         {
-            public boolean accept( File dir, String name )
-            {
-                String[] parts = name.split( "\\." );
-
-                if ( parts.length == 3 && parts[0].equals( IndexingContext.INDEX_FILE_PREFIX ) && parts[2].equals(
-                    "gz" ) )
-                {
-                    return true;
-                }
-
-                return false;
-            }
+            String[] parts = name.split( "\\." );
+            return parts.length == 3 && parts[0].equals( IndexingContext.INDEX_FILE_PREFIX ) && parts[2].equals( "gz" );
         } );
 
         for ( File file : files )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java b/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
index 9821d5c..d614b4e 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
@@ -102,7 +102,7 @@ public class DefaultIndexPacker
         // These are all of the files we'll be dealing with (except for the incremental chunks of course)
         File v1File = new File( request.getTargetDir(), IndexingContext.INDEX_FILE_PREFIX + ".gz" );
 
-        Properties info = null;
+        Properties info;
 
         try
         {
@@ -180,7 +180,7 @@ public class DefaultIndexPacker
     private Properties readIndexProperties( IndexPackingRequest request )
         throws IOException
     {
-        File file = null;
+        File file;
 
         if ( request.isUseTargetProperties() || request.getContext().getIndexDirectoryFile() == null )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java b/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
index 27f8397..c341ad2 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
@@ -26,9 +26,12 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 /**
  * A util class to calculate various digests on Strings. Useful for some simple password management.
  * 
@@ -47,7 +50,7 @@ public class DigesterUtils
     private static String getDigest( String alg, InputStream is )
         throws NoSuchAlgorithmException
     {
-        String result = null;
+        String result;
 
         try
         {
@@ -98,11 +101,11 @@ public class DigesterUtils
     {
         try
         {
-            InputStream fis = new ByteArrayInputStream( content.getBytes( "UTF-8" ) );
+            InputStream fis = new ByteArrayInputStream( content.getBytes( UTF_8 ) );
 
             return getDigest( "SHA1", fis );
         }
-        catch ( NoSuchAlgorithmException | UnsupportedEncodingException e )
+        catch ( NoSuchAlgorithmException e )
         {
             // will not happen
             return null;
@@ -160,11 +163,11 @@ public class DigesterUtils
     {
         try
         {
-            InputStream fis = new ByteArrayInputStream( content.getBytes( "UTF-8" ) );
+            InputStream fis = new ByteArrayInputStream( content.getBytes( UTF_8 ) );
 
             return getDigest( "MD5", fis );
         }
-        catch ( NoSuchAlgorithmException | UnsupportedEncodingException e )
+        catch ( NoSuchAlgorithmException e )
         {
             // will not happen
             return null;
diff --git a/indexer-core/src/main/java/org/apache/maven/index/packer/IndexPackingRequest.java b/indexer-core/src/main/java/org/apache/maven/index/packer/IndexPackingRequest.java
index 850d9d8..effc344 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/packer/IndexPackingRequest.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/packer/IndexPackingRequest.java
@@ -146,6 +146,6 @@ public class IndexPackingRequest
      */
     public enum IndexFormat
     {
-        FORMAT_V1;
+        FORMAT_V1
     }
 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
index f80b7b4..fb739c3 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
@@ -65,7 +65,7 @@ public class DefaultIndexTreeView
         throws IOException
     {
         // get the last path elem
-        String name = null;
+        String name;
 
         if ( !"/".equals( request.getPath() ) )
         {
@@ -79,7 +79,7 @@ public class DefaultIndexTreeView
                 name = request.getPath();
             }
 
-            name = name.substring( name.lastIndexOf( '/' ) + 1, name.length() );
+            name = name.substring( name.lastIndexOf( '/' ) + 1 );
 
             // root is "/"
             if ( !name.equals( "/" ) && name.endsWith( "/" ) )
@@ -163,7 +163,7 @@ public class DefaultIndexTreeView
                     {
                         TreeNode groupParentResource = root;
 
-                        TreeNode groupResource = root;
+                        TreeNode groupResource;
 
                         // here comes the twist: we have to search for parent G node
                         String partialGroupId = null;
@@ -190,8 +190,7 @@ public class DefaultIndexTreeView
                                     MAVEN.GROUP_ID ).length() )
                             {
                                 String gNodeName = partialGroupId.lastIndexOf( '.' ) > -1 ? partialGroupId.substring(
-                                        partialGroupId.lastIndexOf( '.' ) + 1,
-                                        partialGroupId.length() ) : partialGroupId;
+                                        partialGroupId.lastIndexOf( '.' ) + 1 ) : partialGroupId;
 
                                 groupResource = request.getFactory().createGNode( this, request,
                                         "/" + partialGroupId.replaceAll( "\\.", "/" ) + "/", gNodeName );
@@ -331,7 +330,7 @@ public class DefaultIndexTreeView
                     group = group.substring( 0, nextDot );
                 }
 
-                if ( group.length() > 0 && !result.contains( group ) )
+                if ( group.length() > 0 )
                 {
                     result.add( group );
                 }
@@ -351,16 +350,16 @@ public class DefaultIndexTreeView
 
         String path = root.getPath();
 
-        IteratorSearchResponse result = null;
+        IteratorSearchResponse result;
 
-        String g = null;
+        String g;
 
-        String a = null;
+        String a;
 
-        String v = null;
+        String v;
 
         // "working copy" of path
-        String wp = null;
+        String wp;
 
         // remove last / from path
         if ( path.endsWith( "/" ) )
@@ -393,7 +392,7 @@ public class DefaultIndexTreeView
             // reset wp
             wp = path;
 
-            a = wp.substring( wp.lastIndexOf( '/' ) + 1, wp.length() );
+            a = wp.substring( wp.lastIndexOf( '/' ) + 1 );
 
             g = wp.substring( 1, wp.lastIndexOf( '/' ) ).replace( '/', '.' );
 
@@ -415,11 +414,11 @@ public class DefaultIndexTreeView
                 // reset wp
                 wp = path;
 
-                v = wp.substring( wp.lastIndexOf( '/' ) + 1, wp.length() );
+                v = wp.substring( wp.lastIndexOf( '/' ) + 1 );
 
                 wp = wp.substring( 0, wp.lastIndexOf( '/' ) );
 
-                a = wp.substring( wp.lastIndexOf( '/' ) + 1, wp.length() );
+                a = wp.substring( wp.lastIndexOf( '/' ) + 1 );
 
                 g = wp.substring( 1, wp.lastIndexOf( '/' ) ).replace( '/', '.' );
 
@@ -492,7 +491,7 @@ public class DefaultIndexTreeView
     {
         assert g != null;
 
-        Query groupIdQ = null;
+        Query groupIdQ;
         Query artifactIdQ = null;
         Query versionQ = null;
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeNode.java b/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeNode.java
index f444cdf..b5128aa 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeNode.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeNode.java
@@ -27,7 +27,7 @@ public interface TreeNode
     enum Type
     {
         G, A, V, artifact
-    };
+    }
 
     Type getType();
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
index 0768918..f1038c3 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
@@ -197,10 +197,10 @@ public class DefaultIndexUpdater
         try ( BufferedInputStream is = new BufferedInputStream( fetcher.retrieve( remoteIndexFile ) ); //
                         Directory directory = updateRequest.getFSDirectoryFactory().open( indexDir ) )
         {
-            Date timestamp = null;
+            Date timestamp;
 
-            Set<String> rootGroups = null;
-            Set<String> allGroups = null;
+            Set<String> rootGroups;
+            Set<String> allGroups;
             if ( remoteIndexFile.endsWith( ".gz" ) )
             {
                 IndexDataReadResult result = unpackIndexData( is, directory, updateRequest.getIndexingContext() );
@@ -734,7 +734,7 @@ public class DefaultIndexUpdater
 
         if ( !updateRequest.isIncrementalOnly() )
         {
-            Date timestamp = null;
+            Date timestamp;
             try
             {
                 timestamp = target.setIndexFile( source, IndexingContext.INDEX_FILE_PREFIX + ".gz" );
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java b/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
index 92342cc..7e6352d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
@@ -35,14 +35,7 @@ public interface FSDirectoryFactory
     /**
      * Default implementation that lets Lucene choose FSDirectory implementation.
      */
-    FSDirectoryFactory DEFAULT = new FSDirectoryFactory()
-    {
-        public FSDirectory open( File indexDir )
-            throws IOException
-        {
-            return FSDirectory.open( indexDir.toPath() );
-        }
-    };
+    FSDirectoryFactory DEFAULT = indexDir -> FSDirectory.open( indexDir.toPath() );
 
     FSDirectory open( File indexDir )
         throws IOException;
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
index c5f1d71..bddb378 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
@@ -212,11 +212,8 @@ public class IndexDataReader
         }
         catch ( OutOfMemoryError e )
         {
-            final IOException ex =
-                new IOException( "Index data content is inappropriate (is junk?), leads to OutOfMemoryError!"
-                    + " See MINDEXER-28 for more information!" );
-            ex.initCause( e );
-            throw ex;
+            throw new IOException( "Index data content is inappropriate (is junk?), leads to OutOfMemoryError!"
+                + " See MINDEXER-28 for more information!", e );
         }
 
         int c, char2, char3;
@@ -284,7 +281,7 @@ public class IndexDataReader
                         throw new UTFDataFormatException( "malformed input around byte " + ( count - 1 ) );
                     }
                     chararr[chararrCount++] =
-                        (char) ( ( ( c & 0x0F ) << 12 ) | ( ( char2 & 0x3F ) << 6 ) | ( ( char3 & 0x3F ) << 0 ) );
+                        (char) ( ( ( c & 0x0F ) << 12 ) | ( ( char2 & 0x3F ) << 6 ) | ( ( char3 & 0x3F ) ) );
                     break;
 
                 default:
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
index f470dd1..00090fb 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
@@ -313,12 +313,12 @@ public class IndexDataWriter
             {
                 bytearr[count++] = (byte) ( 0xE0 | ( ( c >> 12 ) & 0x0F ) );
                 bytearr[count++] = (byte) ( 0x80 | ( ( c >> 6 ) & 0x3F ) );
-                bytearr[count++] = (byte) ( 0x80 | ( ( c >> 0 ) & 0x3F ) );
+                bytearr[count++] = (byte) ( 0x80 | ( ( c ) & 0x3F ) );
             }
             else
             {
                 bytearr[count++] = (byte) ( 0xC0 | ( ( c >> 6 ) & 0x1F ) );
-                bytearr[count++] = (byte) ( 0x80 | ( ( c >> 0 ) & 0x3F ) );
+                bytearr[count++] = (byte) ( 0x80 | ( ( c ) & 0x3F ) );
             }
         }
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/WagonHelper.java b/indexer-core/src/main/java/org/apache/maven/index/updater/WagonHelper.java
index 40ea1d9..1f806e5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/WagonHelper.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/WagonHelper.java
@@ -162,17 +162,13 @@ public class WagonHelper
             {
                 String msg = "Authentication exception connecting to " + repository;
                 logError( msg, ex );
-                IOException ioException = new IOException( msg );
-                ioException.initCause( ex );
-                throw ioException;
+                throw new IOException( msg, ex );
             }
             catch ( WagonException ex )
             {
                 String msg = "Wagon exception connecting to " + repository;
                 logError( msg, ex );
-                IOException ioException = new IOException( msg );
-                ioException.initCause( ex );
-                throw ioException;
+                throw new IOException( msg, ex );
             }
         }
 
@@ -187,9 +183,7 @@ public class WagonHelper
                 }
                 catch ( ConnectionException ex )
                 {
-                    IOException ioe = new IOException( ex.toString() );
-                    ioe.initCause( ex );
-                    throw ioe;
+                    throw new IOException( ex.toString(), ex );
                 }
             }
         }
@@ -224,9 +218,7 @@ public class WagonHelper
                 targetFile.delete();
                 String msg = "Authorization exception retrieving " + name;
                 logError( msg, e );
-                IOException ioException = new IOException( msg );
-                ioException.initCause( e );
-                throw ioException;
+                throw new IOException( msg, e );
             }
             catch ( ResourceDoesNotExistException e )
             {
@@ -242,9 +234,7 @@ public class WagonHelper
                 targetFile.delete();
                 String msg = "Transfer for " + name + " failed";
                 logError( msg, e );
-                IOException ioException = new IOException( msg + "; " + e.getMessage() );
-                ioException.initCause( e );
-                throw ioException;
+                throw new IOException( msg + "; " + e.getMessage(), e );
             }
         }
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java
index 8394c6e..16c1d1c 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java
@@ -19,15 +19,12 @@ package org.apache.maven.index;
  * under the License.
  */
 
-import java.io.File;
 import java.io.IOException;
 import java.util.Collection;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.PrefixQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.store.SimpleFSDirectory;
 import org.apache.maven.index.ArtifactInfo;
 import org.apache.maven.index.FlatSearchRequest;
 import org.apache.maven.index.FlatSearchResponse;
diff --git a/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseTest.java b/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseTest.java
index fd9e6de..7c428fc 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseTest.java
@@ -26,7 +26,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 import junit.framework.Assert;
 
 import org.apache.lucene.search.Query;
-import org.apache.maven.index.context.DefaultIndexingContext;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.expr.UserInputSearchExpression;
 
@@ -115,7 +114,7 @@ public class ConcurrentUseTest
     {
         final ArtifactInfo artifactInfo =
             new ArtifactInfo( "test-default", "org.apache.maven.indexer", "index-concurrent-artifact", "1."
-                + String.valueOf( versionSource.getAndIncrement() ), null , "jar");
+                + versionSource.getAndIncrement(), null , "jar");
 
         final ArtifactContext ac = new ArtifactContext( null, null, null, artifactInfo, artifactInfo.calculateGav() );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseWithMergedContextTest.java b/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseWithMergedContextTest.java
index 9be555e..8db7c9e 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseWithMergedContextTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/ConcurrentUseWithMergedContextTest.java
@@ -23,7 +23,6 @@ import java.util.Arrays;
 
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.maven.index.context.DefaultIndexingContext;
 import org.apache.maven.index.context.IndexingContext;
 
 /**
diff --git a/indexer-core/src/test/java/org/apache/maven/index/DefaultSearchEngineTest.java b/indexer-core/src/test/java/org/apache/maven/index/DefaultSearchEngineTest.java
index 4753304..81e4851 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/DefaultSearchEngineTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/DefaultSearchEngineTest.java
@@ -62,7 +62,7 @@ public class DefaultSearchEngineTest
             {
                 count++;
             }
-        };
+        }
 
         @Override
         public void releaseIndexSearcher( IndexSearcher is )
@@ -115,19 +115,13 @@ public class DefaultSearchEngineTest
     {
         Query q = nexusIndexer.constructQuery( MAVEN.GROUP_ID, "com.adobe.flexunit", SearchType.EXACT );
         IteratorSearchRequest request = new IteratorSearchRequest( q );
-        request.setArtifactInfoFilter( new ArtifactInfoFilter()
+        request.setArtifactInfoFilter( ( ctx, ai ) ->
         {
-            public boolean accepts( IndexingContext ctx, ArtifactInfo ai )
-            {
-                throw new RuntimeException();
-            }
+            throw new RuntimeException();
         } );
-        request.setArtifactInfoPostprocessor( new ArtifactInfoPostprocessor()
+        request.setArtifactInfoPostprocessor( ( ctx, ai ) ->
         {
-            public void postprocess( IndexingContext ctx, ArtifactInfo ai )
-            {
-                throw new RuntimeException();
-            }
+            throw new RuntimeException();
         } );
 
         try
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
index 3b696c6..841cf3f 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
@@ -55,7 +55,7 @@ public class Mindexer35NexusIndexerTest
 
         List<ArtifactInfo> list = new ArrayList<>( r );
 
-        ArtifactInfo ai = null;
+        ArtifactInfo ai;
 
         // g a v p c #1
         ai = list.get( 0 );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus1179NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus1179NexusIndexerTest.java
index a764c38..89cca56 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus1179NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus1179NexusIndexerTest.java
@@ -60,7 +60,7 @@ public class Nexus1179NexusIndexerTest
 
         List<ArtifactInfo> list = new ArrayList<>( r );
 
-        ArtifactInfo ai = null;
+        ArtifactInfo ai;
 
         // g a v p c #1
         ai = list.get( 0 );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
index 042843a..76acc5b 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
@@ -19,8 +19,6 @@ package org.apache.maven.index;
  * under the License.
  */
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.nio.file.Files;
 import java.util.ArrayList;
@@ -36,7 +34,6 @@ import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.maven.index.context.IndexingContext;
-import org.apache.maven.index.packer.DefaultIndexPacker;
 import org.apache.maven.index.packer.IndexPacker;
 import org.apache.maven.index.packer.IndexPackingRequest;
 import org.apache.maven.index.search.grouping.GAGrouping;
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus2046NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus2046NexusIndexerTest.java
index f150666..1044e08 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus2046NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus2046NexusIndexerTest.java
@@ -53,7 +53,7 @@ public class Nexus2046NexusIndexerTest
 
         List<ArtifactInfo> list = new ArrayList<>( r );
 
-        ArtifactInfo ai = null;
+        ArtifactInfo ai;
 
         // g a v p c #1
         ai = list.get( 0 );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus3293TimestampSnapshotTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus3293TimestampSnapshotTest.java
index 6a4500a..48cacaf 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus3293TimestampSnapshotTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus3293TimestampSnapshotTest.java
@@ -41,7 +41,7 @@ public class Nexus3293TimestampSnapshotTest
     {
         NexusIndexer indexer = lookup( NexusIndexer.class );
 
-        File indexDir = new File( getBasedir(), "target/index/test-" + Long.toString( System.currentTimeMillis() ) );
+        File indexDir = new File( getBasedir(), "target/index/test-" + System.currentTimeMillis() );
         FileUtils.deleteDirectory( indexDir );
 
         File repo = new File( getBasedir(), "src/test/nexus-3293" );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
index 6b309c9..dbc3750 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
@@ -69,8 +69,6 @@ public class Nexus3881NexusIndexerTest
             lastRel = ai.getLuceneScore();
         }
 
-        Assert.assertTrue(
-            String.format( "The relevance span should be small! (%s)",
-                new Object[] {firstRel - lastRel} ), firstRel - lastRel < 0.35 );
+        assertTrue( String.format( "The relevance span should be small! (%s)", firstRel - lastRel ), firstRel - lastRel < 0.35 );
     }
 }
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus645NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus645NexusIndexerTest.java
index c72ec39..8d10a79 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus645NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus645NexusIndexerTest.java
@@ -52,7 +52,7 @@ public class Nexus645NexusIndexerTest
 
         List<ArtifactInfo> list = new ArrayList<>( r );
 
-        ArtifactInfo ai = null;
+        ArtifactInfo ai;
 
         // g a v p c #1
         ai = list.get( 0 );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
index 33a3ff1..ec99400 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
@@ -20,8 +20,6 @@ package org.apache.maven.index;
  */
 
 import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
@@ -78,7 +76,7 @@ public class NexusIndexerTest
         context = indexer.addIndexingContext( "test", "test", repo, indexDir, null, null, DEFAULT_CREATORS );
         indexer.scan( context );
 
-        Query q = null;
+        Query q;
         
         // scored search against field having tokenized IndexerField only (should be impossible).
         q = indexer.constructQuery( MAVEN.NAME, "Some artifact name from Pom", SearchType.SCORED );
@@ -90,7 +88,7 @@ public class NexusIndexerTest
     {
         NexusIndexer indexer = prepare();
 
-        Query q = null;
+        Query q;
 
         // exact search against field stored in both ways (tokenized/untokenized)
         q = indexer.constructQuery( MAVEN.GROUP_ID, "commons-loggin*", SearchType.EXACT );
@@ -141,12 +139,12 @@ public class NexusIndexerTest
     public void performQueryCreatorNGSearch( NexusIndexer indexer, IndexingContext context )
         throws Exception
     {
-        String qstr = null;
-        Query q = null;
+        String qstr;
+        Query q;
 
-        IteratorSearchRequest req = null;
+        IteratorSearchRequest req;
 
-        IteratorSearchResponse res = null;
+        IteratorSearchResponse res;
 
         // case01: "the most usual" case:
         // explanation: commons-logging should top the results, but commons-cli will be at the end too (lower score but
@@ -292,7 +290,7 @@ public class NexusIndexerTest
 
         PrintWriter pw = new PrintWriter( sw );
 
-        String line = null;
+        String line;
 
         line =
             "### Searched for field " + field.toString() + " using query \"" + query + "\" (QC create LQL \""
@@ -336,7 +334,7 @@ public class NexusIndexerTest
         PrintWriter respw = new PrintWriter( ressw );
 
         BufferedReader reader = new BufferedReader( new FileReader( expectedResults ) );
-        String currentline = null;
+        String currentline;
 
         while ( ( currentline = reader.readLine() ) != null )
         {
@@ -376,13 +374,10 @@ public class NexusIndexerTest
 
         Query q = indexer.constructQuery( MAVEN.GROUP_ID, "qdox", SearchType.SCORED );
 
-        IteratorSearchRequest request = new IteratorSearchRequest( q, new ArtifactInfoFilter()
+        IteratorSearchRequest request = new IteratorSearchRequest( q, ( ctx, ai ) ->
         {
-            public boolean accepts( IndexingContext ctx, ArtifactInfo ai )
-            {
-                // we reject version "1.5" for fun
-                return !StringUtils.equals( ai.getVersion(), "1.5" );
-            }
+            // we reject version "1.5" for fun
+            return !StringUtils.equals( ai.getVersion(), "1.5" );
         } );
 
         IteratorSearchResponse response = indexer.searchIterator( request );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/UniqueArtifactFilterTest.java b/indexer-core/src/test/java/org/apache/maven/index/UniqueArtifactFilterTest.java
index 6c3b538..7f2ca57 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/UniqueArtifactFilterTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/UniqueArtifactFilterTest.java
@@ -90,7 +90,7 @@ public class UniqueArtifactFilterTest
         NexusIndexer indexer = lookup( NexusIndexer.class );
 
         // Directory indexDir = new RAMDirectory();
-        File indexDir = new File( getBasedir(), "target/index/test-" + Long.toString( System.currentTimeMillis() ) );
+        File indexDir = new File( getBasedir(), "target/index/test-" + System.currentTimeMillis() );
         FileUtils.deleteDirectory( indexDir );
 
         File repo = new File( getBasedir(), "src/test/repo" );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
index 315b462..7fbda14 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
@@ -745,7 +745,7 @@ public class M2GavCalculatorTest
         assertEquals( "nexus-3148", gav.getArtifactId() );
         assertEquals( null, gav.getClassifier() );
         assertEquals( "pom", gav.getExtension() );
-        assertEquals( new Integer( 1 ), gav.getSnapshotBuildNumber() );
+        assertEquals( Integer.valueOf( 1 ), gav.getSnapshotBuildNumber() );
         // the timestamp is UTC, not EST timezoned!
         // also, the Gav is it seems TZ sensitive!!!
         assertEquals( parseTimestamp( "20100111.064938" ), gav.getSnapshotTimeStamp() );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
index f90224e..5dcec94 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
@@ -173,7 +173,7 @@ public class OsgiArtifactIndexCreatorTest
         repoIndexDir.mkdirs();
 
         List<IndexCreator> indexCreators =
-            Arrays.<IndexCreator>asList( new MinimalArtifactInfoIndexCreator(), new JarFileContentsIndexCreator(),
+            Arrays.asList( new MinimalArtifactInfoIndexCreator(), new JarFileContentsIndexCreator(),
                                          new MavenPluginArtifactInfoIndexCreator(), new OsgiArtifactIndexCreator() );
 
         IndexingContext indexingContext =
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
index 2b89320..4deea97 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
@@ -43,7 +43,6 @@ import org.apache.maven.index.MAVEN;
 import org.apache.maven.index.SearchType;
 import org.apache.maven.index.context.IndexUtils;
 import org.apache.maven.index.context.IndexingContext;
-import org.codehaus.plexus.util.IOUtil;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 import org.jmock.api.Invocation;
@@ -950,7 +949,7 @@ public class DefaultIndexUpdaterTest
     private static class IndexDirectoryFileAction
         extends VoidAction
     {
-        File file = null;
+        File file;
 
         public IndexDirectoryFileAction( Properties properties, File basedir )
             throws Exception
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/DownloadRemoteIndexerManagerTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/DownloadRemoteIndexerManagerTest.java
index 7e0b0c3..508aed2 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/DownloadRemoteIndexerManagerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/DownloadRemoteIndexerManagerTest.java
@@ -20,8 +20,6 @@ package org.apache.maven.index.updater;
  */
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -41,7 +39,6 @@ import org.apache.maven.index.context.DocumentFilter;
 import org.apache.maven.index.context.IndexingContext;
 import org.codehaus.plexus.util.FileUtils;
 import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Response;
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.handler.DefaultHandler;
 import org.mortbay.jetty.handler.HandlerList;
@@ -135,13 +132,7 @@ public class DownloadRemoteIndexerManagerTest
             new IndexUpdateRequest( centralContext, new WagonHelper( getContainer() ).getWagonResourceFetcher( null ) );
         iur.setForceFullUpdate( true );
         // just a dummy filter to invoke filtering! -- this is what I broke unnoticing it
-        iur.setDocumentFilter( new DocumentFilter()
-        {
-            public boolean accept( Document doc )
-            {
-                return true;
-            }
-        });
+        iur.setDocumentFilter( doc -> true );
 
         updater.fetchAndUpdateIndex( iur );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/LocalIndexCacheTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/LocalIndexCacheTest.java
index 16fd1d7..1b4fb02 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/LocalIndexCacheTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/LocalIndexCacheTest.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.file.Files;
 
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.TermQuery;
@@ -263,7 +262,7 @@ public class LocalIndexCacheTest
                     throw new IOException();
                 }
                 return super.retrieve( name );
-            };
+            }
         };
         updateRequest = new IndexUpdateRequest( getNewTempContext(), fetcher );
         updateRequest.setLocalIndexCacheDir( localCacheDir );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java b/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
index 25bcf7f..0140673 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
@@ -156,7 +156,7 @@ public class ServerTestFixture
             {
                 OutputStream out = resp.getOutputStream();
 
-                int read = -1;
+                int read;
                 byte[] buf = new byte[64];
                 while ( ( read = in.read( buf ) ) > -1 )
                 {
diff --git a/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java b/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
index d5babfe..a918dfd 100644
--- a/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
+++ b/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
@@ -246,21 +246,18 @@ public class BasicUsageExample
             .build();
 
         // construct the filter to express "V greater than"
-        final ArtifactInfoFilter versionFilter = new ArtifactInfoFilter()
+        final ArtifactInfoFilter versionFilter = ( ctx, ai ) ->
         {
-            public boolean accepts( final IndexingContext ctx, final ArtifactInfo ai )
+            try
             {
-                try
-                {
-                    final Version aiV = versionScheme.parseVersion( ai.getVersion() );
-                    // Use ">=" if you are INCLUSIVE
-                    return aiV.compareTo( version ) > 0;
-                }
-                catch ( InvalidVersionSpecificationException e )
-                {
-                    // do something here? be safe and include?
-                    return true;
-                }
+                final Version aiV = versionScheme.parseVersion( ai.getVersion() );
+                // Use ">=" if you are INCLUSIVE
+                return aiV.compareTo( version ) > 0;
+            }
+            catch ( InvalidVersionSpecificationException e )
+            {
+                // do something here? be safe and include?
+                return true;
             }
         };
 
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
index 0354676..c42c4ea 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
@@ -205,9 +205,7 @@ public class ChunkReader
         }
         catch ( OutOfMemoryError e )
         {
-            IOException ioex = new IOException( "Index data content is corrupt" );
-            ioex.initCause( e );
-            throw ioex;
+            throw new IOException( "Index data content is corrupt", e );
         }
 
         int c, char2, char3;
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkWriter.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkWriter.java
index 7d1275c..c3c8e18 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkWriter.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkWriter.java
@@ -183,12 +183,12 @@ public class ChunkWriter
             {
                 bytearr[count++] = (byte) ( 0xE0 | ( ( c >> 12 ) & 0x0F ) );
                 bytearr[count++] = (byte) ( 0x80 | ( ( c >> 6 ) & 0x3F ) );
-                bytearr[count++] = (byte) ( 0x80 | ( ( c >> 0 ) & 0x3F ) );
+                bytearr[count++] = (byte) ( 0x80 | ( ( c ) & 0x3F ) );
             }
             else
             {
                 bytearr[count++] = (byte) ( 0xC0 | ( ( c >> 6 ) & 0x1F ) );
-                bytearr[count++] = (byte) ( 0x80 | ( ( c >> 0 ) & 0x3F ) );
+                bytearr[count++] = (byte) ( 0x80 | ( ( c ) & 0x3F ) );
             }
         }
         dataOutput.write( bytearr, 0, utflen );
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexReader.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexReader.java
index b2c11f9..d546f8a 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexReader.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexReader.java
@@ -82,7 +82,7 @@ public class IndexReader
                     this.localIndexProperties = localProperties;
                     String remoteIndexId = remoteIndexProperties.getProperty( "nexus.index.id" );
                     String localIndexId = localIndexProperties.getProperty( "nexus.index.id" );
-                    if ( remoteIndexId == null || localIndexId == null || !remoteIndexId.equals( localIndexId ) )
+                    if ( remoteIndexId == null || !remoteIndexId.equals( localIndexId ) )
                     {
                         throw new IllegalArgumentException(
                             "local and remote index IDs does not match or is null: " + localIndexId + ", "
@@ -110,9 +110,7 @@ public class IndexReader
         }
         catch ( ParseException e )
         {
-            IOException ex = new IOException( "Index properties corrupted" );
-            ex.initCause( e );
-            throw ex;
+            throw new IOException( "Index properties corrupted", e );
         }
     }
 
@@ -228,7 +226,7 @@ public class IndexReader
         String remoteChainId = remoteIndexProperties.getProperty( "nexus.index.chain-id" );
 
         // If no chain id, or not the same, do full update
-        if ( localChainId == null || remoteChainId == null || !localChainId.equals( remoteChainId ) )
+        if ( localChainId == null || !localChainId.equals( remoteChainId ) )
         {
             return false;
         }
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
index 0205e6e..194ba7a 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
@@ -50,7 +50,7 @@ public final class Record
 
         public T coerce( final Object object )
         {
-            return (T) proto.cast( object );
+            return proto.cast( object );
         }
 
         public String getName()
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
index fd29dc8..3e0e042 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
@@ -110,21 +110,13 @@ public class RecordCompactor
         // Minimal
         result.put( UINFO, compactUinfo( record ) );
 
-        StringBuilder info = new StringBuilder();
-        info.append( nvl( record.get( Record.PACKAGING ) ) );
-        info.append( FIELD_SEPARATOR );
-        info.append( record.get( Record.FILE_MODIFIED ) );
-        info.append( FIELD_SEPARATOR );
-        info.append( record.get( Record.FILE_SIZE ) );
-        info.append( FIELD_SEPARATOR );
-        info.append( record.get( Record.HAS_SOURCES ) ? "1" : "0" );
-        info.append( FIELD_SEPARATOR );
-        info.append( record.get( Record.HAS_JAVADOC ) ? "1" : "0" );
-        info.append( FIELD_SEPARATOR );
-        info.append( record.get( Record.HAS_SIGNATURE ) ? "1" : "0" );
-        info.append( FIELD_SEPARATOR );
-        info.append( nvl( record.get( Record.FILE_EXTENSION ) ) );
-        result.put( INFO, info.toString() );
+        String info = nvl( record.get( Record.PACKAGING ) ) + FIELD_SEPARATOR + record.get(
+                Record.FILE_MODIFIED ) + FIELD_SEPARATOR + record.get(
+                Record.FILE_SIZE ) + FIELD_SEPARATOR + ( record.get(
+                Record.HAS_SOURCES ) ? "1" : "0" ) + FIELD_SEPARATOR + ( record.get(
+                Record.HAS_JAVADOC ) ? "1" : "0" ) + FIELD_SEPARATOR + ( record.get(
+                Record.HAS_SIGNATURE ) ? "1" : "0" ) + FIELD_SEPARATOR + nvl( record.get( Record.FILE_EXTENSION ) );
+        result.put( INFO, info );
 
         putIfNotNullTS( record.get( Record.REC_MODIFIED ), result, "m" );
         putIfNotNull( record.get( Record.NAME ), result, "n" );
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
index 6961d9b..5e2dd32 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
@@ -33,14 +33,7 @@ import java.util.Set;
 public class CachingResourceHandler
     implements ResourceHandler
 {
-    private static final Resource NOT_EXISTING_RESOURCE = new Resource()
-    {
-        public InputStream read()
-            throws IOException
-        {
-            return null;
-        }
-    };
+    private static final Resource NOT_EXISTING_RESOURCE = () -> null;
 
     private final WritableResourceHandler local;
 
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/DirectoryResourceHandler.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/DirectoryResourceHandler.java
index c799034..eaa49e8 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/DirectoryResourceHandler.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/DirectoryResourceHandler.java
@@ -53,14 +53,14 @@ public class DirectoryResourceHandler
   }
 
   public WritableResource locate(final String name) throws IOException {
-    return new FileResource(new File(rootDirectory, name));
+    return new FileResource( new File( rootDirectory, name ) );
   }
 
   public void close() throws IOException {
     // nop
   }
 
-  private class FileResource
+  private static class FileResource
       implements WritableResource
   {
     private final File file;
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
index 39c695c..cc5c2d2 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
@@ -19,6 +19,10 @@ package org.apache.maven.index.reader;
  * under the License.
  */
 
+import org.apache.maven.index.reader.Record.Type;
+import org.junit.Ignore;
+import org.junit.Test;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -26,13 +30,11 @@ import java.net.URL;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 
-import org.apache.maven.index.reader.Record.Type;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import static org.apache.maven.index.reader.TestUtils.expandFunction;
 import static com.google.common.collect.Iterables.transform;
+import static org.apache.maven.index.reader.TestUtils.expandFunction;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNot.not;
 import static org.hamcrest.core.IsNull.nullValue;
@@ -60,7 +62,9 @@ public class IndexReaderTest
         assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
         assertThat( chunkReader.getVersion(), equalTo( 1 ) );
         assertThat( chunkReader.getTimestamp().getTime(), equalTo( 1243533418015L ) );
-        for ( Record record : transform( chunkReader, expandFunction ) )
+        for ( Record ignored : StreamSupport.stream( chunkReader.spliterator(), false )
+          .map( expandFunction )
+          .collect( Collectors.toList() ) )
         {
           records++;
         }
@@ -88,7 +92,9 @@ public class IndexReaderTest
         assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
         assertThat( chunkReader.getVersion(), equalTo( 1 ) );
         assertThat( chunkReader.getTimestamp().getTime(), equalTo( 1243533418015L ) );
-        for ( Record record : transform( chunkReader, expandFunction ) )
+        for ( Record ignored : StreamSupport.stream( chunkReader.spliterator(), false )
+            .map( expandFunction )
+            .collect( Collectors.toList() ) )
         {
           records++;
         }
@@ -141,7 +147,9 @@ public class IndexReaderTest
         assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
         assertThat( chunkReader.getVersion(), equalTo( 1 ) );
         // assertThat(chunkReader.getTimestamp().getTime(), equalTo(1243533418015L));
-        for ( Record record : transform( chunkReader, expandFunction ) )
+        for ( Record record : StreamSupport.stream( chunkReader.spliterator(), false )
+            .map( expandFunction )
+            .collect( Collectors.toList() ) )
         {
           records++;
         }
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexWriterTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexWriterTest.java
index d1e9bc4..48aadb2 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexWriterTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexWriterTest.java
@@ -19,13 +19,15 @@ package org.apache.maven.index.reader;
  * under the License.
  */
 
+import org.junit.Test;
+
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 
-import org.junit.Test;
-
-import static org.apache.maven.index.reader.TestUtils.expandFunction;
 import static com.google.common.collect.Iterables.transform;
+import static org.apache.maven.index.reader.TestUtils.expandFunction;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
@@ -78,7 +80,9 @@ public class IndexWriterTest
         assertThat(chunkReader.getName(), equalTo("nexus-maven-repository-index.gz"));
         assertThat(chunkReader.getVersion(), equalTo(1));
         // assertThat(chunkReader.getTimestamp().getTime(), equalTo(1243533418015L));
-        for (Record record : transform(chunkReader, expandFunction)) {
+        for (Record record : StreamSupport.stream( chunkReader.spliterator(), false )
+            .map( expandFunction )
+            .collect( Collectors.toList() ) ) {
           records++;
         }
       }
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
index 0e68cac..2e6912b 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
@@ -19,19 +19,17 @@ package org.apache.maven.index.reader;
  * under the License.
  */
 
+import org.apache.maven.index.reader.Record.Type;
+
 import java.util.Map;
 import java.util.TreeSet;
-
-import com.google.common.base.Function;
-import org.apache.maven.index.reader.Record.Type;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 
 import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.transform;
 import static java.util.Collections.singletonList;
-import static org.apache.maven.index.reader.Utils.allGroups;
-import static org.apache.maven.index.reader.Utils.descriptor;
-import static org.apache.maven.index.reader.Utils.rootGroup;
-import static org.apache.maven.index.reader.Utils.rootGroups;
+import static org.apache.maven.index.reader.Utils.*;
 
 /**
  * Helpers to transform records from one to another representation, and, some helpers for publishing using Guava.
@@ -46,21 +44,9 @@ public final class TestUtils
 
   private static final RecordExpander RECORD_EXPANDER = new RecordExpander();
 
-  public static Function<Record, Map<String, String>> compactFunction =
-      new Function<Record, Map<String, String>>()
-      {
-        public Map<String, String> apply(final Record input) {
-          return RECORD_COMPACTOR.apply(input);
-        }
-      };
+  public static Function<Record, Map<String, String>> compactFunction = RECORD_COMPACTOR::apply;
 
-  public static Function<Map<String, String>, Record> expandFunction =
-      new Function<Map<String, String>, Record>()
-      {
-        public Record apply(final Map<String, String> input) {
-          return RECORD_EXPANDER.apply(input);
-        }
-      };
+  public static Function<Map<String, String>, Record> expandFunction = RECORD_EXPANDER::apply;
 
   /**
    * Helper method, that "decorates" the stream of records to be written out with "special" Maven Indexer records, so
@@ -74,35 +60,35 @@ public final class TestUtils
   {
     final TreeSet<String> allGroupsSet = new TreeSet<>();
     final TreeSet<String> rootGroupsSet = new TreeSet<>();
-    return transform(
-        concat(
-            singletonList(descriptor(repoId)),
-            iterable,
-            singletonList(allGroups(allGroupsSet)), // placeholder, will be recreated at the end with proper content
-            singletonList(rootGroups(rootGroupsSet)) // placeholder, will be recreated at the end with proper content
-        ),
-        new Function<Record, Record>()
+    return StreamSupport.stream(
+            concat( singletonList( descriptor( repoId ) ), iterable, singletonList( allGroups( allGroupsSet ) ),
+                    // placeholder, will be recreated at the end with proper content
+                    singletonList( rootGroups( rootGroupsSet ) )
+                    // placeholder, will be recreated at the end with proper content
+            ).spliterator(), false ).map( rec ->
+    {
+      if ( Type.DESCRIPTOR == rec.getType() )
+      {
+        return rec;
+      }
+      else if ( Type.ALL_GROUPS == rec.getType() )
+      {
+        return allGroups( allGroupsSet );
+      }
+      else if ( Type.ROOT_GROUPS == rec.getType() )
+      {
+        return rootGroups( rootGroupsSet );
+      }
+      else
+      {
+        final String groupId = rec.get( Record.GROUP_ID );
+        if ( groupId != null )
         {
-          public Record apply(final Record rec) {
-            if (Type.DESCRIPTOR == rec.getType()) {
-              return rec;
-            }
-            else if (Type.ALL_GROUPS == rec.getType()) {
-              return allGroups(allGroupsSet);
-            }
-            else if (Type.ROOT_GROUPS == rec.getType()) {
-              return rootGroups(rootGroupsSet);
-            }
-            else {
-              final String groupId = rec.get(Record.GROUP_ID);
-              if (groupId != null) {
-                allGroupsSet.add(groupId);
-                rootGroupsSet.add(rootGroup(groupId));
-              }
-              return rec;
-            }
-          }
+          allGroupsSet.add( groupId );
+          rootGroupsSet.add( rootGroup( groupId ) );
         }
-    );
+        return rec;
+      }
+    } ).collect( Collectors.toList() );
   }
 }
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
index a099a84..1ea6155 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
@@ -19,19 +19,21 @@ package org.apache.maven.index.reader;
  * under the License.
  */
 
+import org.apache.maven.index.reader.Record.EntryKey;
+import org.apache.maven.index.reader.Record.Type;
+import org.junit.Test;
+
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 
-import org.apache.maven.index.reader.Record.EntryKey;
-import org.apache.maven.index.reader.Record.Type;
-import org.junit.Test;
-
-import static org.apache.maven.index.reader.TestUtils.decorate;
-import static org.apache.maven.index.reader.TestUtils.compactFunction;
 import static com.google.common.collect.Iterables.transform;
+import static org.apache.maven.index.reader.TestUtils.compactFunction;
+import static org.apache.maven.index.reader.TestUtils.decorate;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
@@ -48,10 +50,11 @@ public class TransformTest
     final Record r1 = new Record(Type.ARTIFACT_ADD, artifactMap("org.apache"));
     final Record r2 = new Record(Type.ARTIFACT_ADD, artifactMap("org.foo"));
     final Record r3 = new Record(Type.ARTIFACT_ADD, artifactMap("com.bar"));
-    Iterable<Map<String, String>> iterable = transform(
-        decorate(Arrays.asList(r1, r2, r3), indexId),
-        compactFunction
-    );
+
+    Iterable<Map<String, String>> iterable = StreamSupport.stream(
+            decorate( Arrays.asList( r1, r2, r3 ), indexId ).spliterator(), false )
+            .map( compactFunction )
+            .collect( Collectors.toList() );
 
     WritableResourceHandler writableResourceHandler = createWritableResourceHandler();
     try {


[maven-indexer] 02/03: [MINDEXER-116] Move code to Java 7 syntax

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

slachiewicz pushed a commit to branch MINDEXER-116
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git

commit 3e4db241b9c251142310d9f0eadbdd6ca781103b
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Mon Feb 3 01:13:41 2020 +0100

    [MINDEXER-116] Move code to Java 7 syntax
---
 .../apache/maven/index/cli/NexusIndexerCli.java    |   4 +-
 .../maven/index/cli/PartialImplementation.java     |   6 +-
 .../java/org/apache/maven/index/ArtifactInfo.java  |   2 +-
 .../org/apache/maven/index/ArtifactInfoGroup.java  |   2 +-
 .../org/apache/maven/index/DefaultIndexer.java     |  11 +-
 .../apache/maven/index/DefaultIndexerEngine.java   |   2 +-
 .../maven/index/DefaultIteratorResultSet.java      |   6 +-
 .../apache/maven/index/DefaultNexusIndexer.java    |   2 +-
 .../org/apache/maven/index/DefaultScanner.java     |   2 +-
 .../apache/maven/index/DefaultScannerListener.java |   8 +-
 .../apache/maven/index/DefaultSearchEngine.java    |  25 +--
 .../index/UniqueArtifactFilterPostprocessor.java   |   4 +-
 .../index/UniqueGAArtifactFilterPostprocessor.java |   2 +-
 .../archetype/AbstractArchetypeDataSource.java     |   2 +-
 .../artifact/DefaultArtifactPackagingMapper.java   |   4 +-
 .../java/org/apache/maven/index/artifact/Gav.java  | 197 ++-------------------
 .../maven/index/artifact/M1ArtifactRecognizer.java |   2 +-
 .../maven/index/artifact/M1GavCalculator.java      |   4 -
 .../maven/index/artifact/M2ArtifactRecognizer.java |   2 +-
 .../maven/index/artifact/M2GavCalculator.java      |   8 +-
 .../index/context/DefaultIndexingContext.java      |  14 +-
 .../maven/index/context/MergedIndexingContext.java |   8 +-
 .../maven/index/context/NexusIndexMultiReader.java |   6 +-
 .../index/context/StaticContextMemberProvider.java |   2 +-
 .../maven/index/context/TrackingLockFactory.java   |   2 +-
 .../maven/index/creator/AbstractIndexCreator.java  |   2 +-
 .../MavenPluginArtifactInfoIndexCreator.java       |   2 +-
 .../index/creator/OsgiArtifactIndexCreator.java    |   7 +-
 .../incremental/DefaultIncrementalHandler.java     |  10 +-
 .../maven/index/packer/DefaultIndexPacker.java     |  12 +-
 .../apache/maven/index/packer/DigesterUtils.java   |  28 +--
 .../maven/index/treeview/DefaultIndexTreeView.java |  35 ++--
 .../maven/index/treeview/TreeViewRequest.java      |   2 +-
 .../maven/index/updater/DefaultIndexUpdater.java   |   4 +-
 .../maven/index/updater/IndexDataWriter.java       |   4 +-
 .../maven/index/util/IndexCreatorSorter.java       |   2 +-
 .../maven/index/AbstractIndexCreatorHelper.java    |   6 +-
 .../maven/index/AbstractRepoNexusIndexerTest.java  |   8 +-
 .../maven/index/DefaultIndexNexusIndexerTest.java  |   2 +-
 .../apache/maven/index/DuplicateSearchTest.java    |   4 +-
 .../maven/index/Mindexer35NexusIndexerTest.java    |   2 +-
 .../maven/index/Nexus13NexusIndexerTest.java       |   6 +-
 .../maven/index/Nexus1911IncrementalTest.java      |  21 +--
 .../maven/index/Nexus3881NexusIndexerTest.java     |   2 +-
 .../maven/index/Nexus687NexusIndexerTest.java      |   2 +-
 .../maven/index/SearchWithAnEmptyIndexTest.java    |   4 +-
 .../maven/index/artifact/M1GavCalculatorTest.java  |   2 +-
 .../maven/index/artifact/M2GavCalculatorTest.java  |   2 +-
 .../maven/index/context/NexusAnalyzerTest.java     |   2 +-
 .../MavenPluginArtifactInfoIndexCreatorTest.java   |   2 +-
 .../updater/DefaultIndexUpdaterEmbeddingIT.java    |   2 +-
 .../index/updater/FullBootProofOfConcept.java      |  20 +--
 .../apache/maven/index/updater/IndexDataTest.java  |   2 +-
 .../maven/index/updater/TrackingFetcher.java       |   2 +-
 .../index/updater/fixtures/ServerTestFixture.java  |  17 +-
 .../examples/indexing/IndexerConfiguration.java    |   2 +-
 .../org/apache/maven/index/reader/ChunkReader.java |   2 +-
 .../org/apache/maven/index/reader/IndexWriter.java |   9 +-
 .../java/org/apache/maven/index/reader/Record.java |  87 +++++----
 .../apache/maven/index/reader/RecordCompactor.java |  10 +-
 .../apache/maven/index/reader/RecordExpander.java  |  10 +-
 .../java/org/apache/maven/index/reader/Utils.java  |   6 +-
 .../maven/index/reader/CachingResourceHandler.java |  10 +-
 .../apache/maven/index/reader/IndexReaderTest.java | 100 +++++------
 .../org/apache/maven/index/reader/TestSupport.java |  10 +-
 .../org/apache/maven/index/reader/TestUtils.java   |   4 +-
 .../apache/maven/index/reader/TransformTest.java   |   2 +-
 67 files changed, 245 insertions(+), 550 deletions(-)

diff --git a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
index d64f039..1d34714 100644
--- a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
+++ b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
@@ -377,7 +377,7 @@ public class NexusIndexerCli
 
                 if ( chunkCount != null )
                 {
-                    request.setMaxIndexChunks( chunkCount.intValue() );
+                    request.setMaxIndexChunks( chunkCount );
                 }
 
                 packIndex( packer, request, debug, quiet );
@@ -450,7 +450,7 @@ public class NexusIndexerCli
             type = cli.getOptionValue( TYPE );
         }
 
-        List<IndexCreator> indexers = new ArrayList<IndexCreator>(); // NexusIndexer.DEFAULT_INDEX;
+        List<IndexCreator> indexers = new ArrayList<>(); // NexusIndexer.DEFAULT_INDEX;
 
         if ( "default".equals( type ) )
         {
diff --git a/indexer-cli/src/main/java/org/apache/maven/index/cli/PartialImplementation.java b/indexer-cli/src/main/java/org/apache/maven/index/cli/PartialImplementation.java
index fce26d1..514bb63 100644
--- a/indexer-cli/src/main/java/org/apache/maven/index/cli/PartialImplementation.java
+++ b/indexer-cli/src/main/java/org/apache/maven/index/cli/PartialImplementation.java
@@ -42,11 +42,7 @@ public class PartialImplementation
             final Method localMethod = getClass().getMethod( method.getName(), method.getParameterTypes() );
             return localMethod.invoke( this, args );
         }
-        catch ( NoSuchMethodException e )
-        {
-            throw new UnsupportedOperationException( "Method " + method.getName() + "() is not supported" );
-        }
-        catch ( IllegalAccessException e )
+        catch ( NoSuchMethodException | IllegalAccessException e )
         {
             throw new UnsupportedOperationException( "Method " + method.getName() + "() is not supported" );
         }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
index 7f75838..b2a1549 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
@@ -330,7 +330,7 @@ public class ArtifactInfo
      */
     private String bundleRequiredExecutionEnvironment;
 
-    private final Map<String, String> attributes = new HashMap<String, String>();
+    private final Map<String, String> attributes = new HashMap<>();
 
     private final List<MatchHighlight> matchHighlights = new ArrayList<>();
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoGroup.java b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoGroup.java
index aa03678..c7881aa 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoGroup.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoGroup.java
@@ -43,7 +43,7 @@ public class ArtifactInfoGroup
     {
         this.groupKey = groupKey;
 
-        this.artifactInfos = new TreeSet<ArtifactInfo>( comparator );
+        this.artifactInfos = new TreeSet<>( comparator );
     }
 
     public String getGroupKey()
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
index 36909b1..f230a48 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
@@ -222,21 +222,16 @@ public class DefaultIndexer
     public Collection<ArtifactInfo> identify( Query query, Collection<IndexingContext> contexts )
         throws IOException
     {
-        final IteratorSearchResponse result =
-            searcher.searchIteratorPaged( new IteratorSearchRequest( query ), contexts );
-        try
+        try ( IteratorSearchResponse result = searcher.searchIteratorPaged(
+                new IteratorSearchRequest( query ), contexts ) )
         {
-            final ArrayList<ArtifactInfo> ais = new ArrayList<ArtifactInfo>( result.getTotalHitsCount() );
+            final List<ArtifactInfo> ais = new ArrayList<>( result.getTotalHitsCount() );
             for ( ArtifactInfo ai : result )
             {
                 ais.add( ai );
             }
             return ais;
         }
-        finally
-        {
-            result.close();
-        }
     }
 
     // ----------------------------------------------------------------------------
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
index 64faa77..87b7c2d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
@@ -135,7 +135,7 @@ public class DefaultIndexerEngine
 
     private Map<String, String> toMap( Document d )
     {
-        final HashMap<String, String> result = new HashMap<String, String>();
+        final HashMap<String, String> result = new HashMap<>();
 
         for ( Object o : d.getFields() )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
index cb30ef3..2a70159 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
@@ -411,11 +411,11 @@ public class DefaultIteratorResultSet
         {
             frag = highlighter.getBestTextFragments( tokenStream, text, false, maxNumFragments );
 
-            for ( int i = 0; i < frag.length; i++ )
+            for ( TextFragment textFragment : frag )
             {
-                if ( ( frag[i] != null ) && ( frag[i].getScore() > 0 ) )
+                if ( ( textFragment != null ) && ( textFragment.getScore() > 0 ) )
                 {
-                    fragTexts.add( frag[i].toString() );
+                    fragTexts.add( textFragment.toString() );
                 }
             }
         }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
index 3530edd..73a35dc 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
@@ -71,7 +71,7 @@ public class DefaultNexusIndexer
 
     private final QueryCreator queryCreator;
 
-    private final Map<String, IndexingContext> indexingContexts = new ConcurrentHashMap<String, IndexingContext>();
+    private final Map<String, IndexingContext> indexingContexts = new ConcurrentHashMap<>();
 
 
     @Inject
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
index 58f0973..442f77d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
@@ -75,7 +75,7 @@ public class DefaultScanner
 
         if ( fileArray != null )
         {
-            Set<File> files = new TreeSet<File>( new ScannerFileComparator() );
+            Set<File> files = new TreeSet<>( new ScannerFileComparator() );
 
             files.addAll( Arrays.asList( fileArray ) );
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
index a9ca2c7..01f6f4c 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
@@ -52,13 +52,13 @@ public class DefaultScannerListener
 
     private final ArtifactScanningListener listener;
 
-    private final Set<String> uinfos = new HashSet<String>();
+    private final Set<String> uinfos = new HashSet<>();
 
-    private final Set<String> processedUinfos = new HashSet<String>();
+    private final Set<String> processedUinfos = new HashSet<>();
 
-    private final Set<String> allGroups = new HashSet<String>();
+    private final Set<String> allGroups = new HashSet<>();
 
-    private final Set<String> groups = new HashSet<String>();
+    private final Set<String> groups = new HashSet<>();
 
     private final List<Exception> exceptions = new ArrayList<>();
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
index b74302f..3155e6f 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
@@ -99,7 +99,7 @@ public class DefaultSearchEngine
     {
         List<IndexingContext> contexts = getParticipatingContexts( indexingContexts, ignoreContext );
 
-        final TreeSet<ArtifactInfo> result = new TreeSet<ArtifactInfo>( request.getArtifactInfoComparator() );
+        final TreeSet<ArtifactInfo> result = new TreeSet<>( request.getArtifactInfoComparator() );
         return new FlatSearchResponse( request.getQuery(), searchFlat( request, result, contexts, request.getQuery() ),
             result );
     }
@@ -126,8 +126,7 @@ public class DefaultSearchEngine
     {
         List<IndexingContext> contexts = getParticipatingContexts( indexingContexts, ignoreContext );
 
-        final TreeMap<String, ArtifactInfoGroup> result =
-            new TreeMap<String, ArtifactInfoGroup>( request.getGroupKeyComparator() );
+        final TreeMap<String, ArtifactInfoGroup> result = new TreeMap<>( request.getGroupKeyComparator() );
 
         return new GroupedSearchResponse( request.getQuery(), searchGrouped( request, result, request.getGrouping(),
             contexts, request.getQuery() ), result );
@@ -217,9 +216,9 @@ public class DefaultSearchEngine
 
                     hitCount += collector.getTotalHits();
 
-                    for ( int i = 0; i < scoreDocs.length; i++ )
+                    for ( ScoreDoc scoreDoc : scoreDocs )
                     {
-                        Document doc = indexSearcher.doc( scoreDocs[i].doc );
+                        Document doc = indexSearcher.doc( scoreDoc.doc );
 
                         ArtifactInfo artifactInfo = IndexUtils.constructArtifactInfo( doc, context );
 
@@ -293,19 +292,7 @@ public class DefaultSearchEngine
                                                new DefaultIteratorResultSet( request, indexSearcher, contexts,
                                                                              hits.topDocs() ) );
         }
-        catch ( IOException e )
-        {
-            try
-            {
-                indexSearcher.release();
-            }
-            catch ( Exception secondary )
-            {
-                // do not mask original exception
-            }
-            throw e;
-        }
-        catch ( RuntimeException e )
+        catch ( IOException | RuntimeException e )
         {
             try
             {
@@ -377,7 +364,7 @@ public class DefaultSearchEngine
     {
         // to not change the API all away, but we need stable ordering here
         // filter for those 1st, that take part in here
-        final ArrayList<IndexingContext> contexts = new ArrayList<IndexingContext>( indexingContexts.size() );
+        final ArrayList<IndexingContext> contexts = new ArrayList<>( indexingContexts.size() );
 
         for ( IndexingContext ctx : indexingContexts )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/UniqueArtifactFilterPostprocessor.java b/indexer-core/src/main/java/org/apache/maven/index/UniqueArtifactFilterPostprocessor.java
index e3a9b32..4a40676 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/UniqueArtifactFilterPostprocessor.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/UniqueArtifactFilterPostprocessor.java
@@ -35,9 +35,9 @@ public class UniqueArtifactFilterPostprocessor
 {
     public static final String COLLAPSED = "COLLAPSED";
 
-    private final Set<Field> uniqueFields = new HashSet<Field>();
+    private final Set<Field> uniqueFields = new HashSet<>();
 
-    private final Set<String> gas = new HashSet<String>();
+    private final Set<String> gas = new HashSet<>();
 
     public UniqueArtifactFilterPostprocessor()
     {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/UniqueGAArtifactFilterPostprocessor.java b/indexer-core/src/main/java/org/apache/maven/index/UniqueGAArtifactFilterPostprocessor.java
index cbdfa8e..d61cdc5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/UniqueGAArtifactFilterPostprocessor.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/UniqueGAArtifactFilterPostprocessor.java
@@ -38,7 +38,7 @@ public class UniqueGAArtifactFilterPostprocessor
 
     private final boolean repositoriesIgnored;
 
-    private final Set<String> gas = new HashSet<String>();
+    private final Set<String> gas = new HashSet<>();
 
     public UniqueGAArtifactFilterPostprocessor( boolean repositoriesIgnored )
     {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java b/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
index 3ecb0c9..92a0014 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
@@ -95,7 +95,7 @@ public abstract class AbstractArchetypeDataSource
     private Map<String, String> getRepositoryMap()
     {
         // can't cache this because indexes can be changed
-        Map<String, String> repositories = new HashMap<String, String>();
+        Map<String, String> repositories = new HashMap<>();
 
         for ( IndexingContext context : getIndexingContexts() )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
index 79201d3..5c1097a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/DefaultArtifactPackagingMapper.java
@@ -61,7 +61,7 @@ public class DefaultArtifactPackagingMapper
 
     static
     {
-        DEFAULTS = new HashMap<String, String>();
+        DEFAULTS = new HashMap<>();
         DEFAULTS.put( "ejb-client", "jar" );
         DEFAULTS.put( "ejb", "jar" );
         DEFAULTS.put( "rar", "jar" );
@@ -92,7 +92,7 @@ public class DefaultArtifactPackagingMapper
             {
                 if ( packaging2extensionMapping == null )
                 {
-                    packaging2extensionMapping = new HashMap<String, String>();
+                    packaging2extensionMapping = new HashMap<>();
 
                     // merge defaults
                     packaging2extensionMapping.putAll( DEFAULTS );
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
index d7c2d59..dd70ab7 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
@@ -19,6 +19,8 @@ package org.apache.maven.index.artifact;
  * under the License.
  */
 
+import java.util.Objects;
+
 /**
  * An immutable value class representing unique artifact coordinates.
  * 
@@ -233,191 +235,30 @@ public class Gav
     }
 
     @Override
-    public int hashCode()
-    {
-        int result = 1;
-        result = 31 * result + ( groupId == null ? 0 : groupId.hashCode() );
-        result = 31 * result + ( artifactId == null ? 0 : artifactId.hashCode() );
-        result = 31 * result + ( version == null ? 0 : version.hashCode() );
-        result = 31 * result + ( baseVersion == null ? 0 : baseVersion.hashCode() );
-        result = 31 * result + ( classifier == null ? 0 : classifier.hashCode() );
-        result = 31 * result + ( extension == null ? 0 : extension.hashCode() );
-        result = 31 * result + ( name == null ? 0 : name.hashCode() );
-        result = 31 * result + ( snapshot ? 1231 : 1237 );
-        result = 31 * result + ( snapshotBuildNumber == null ? 0 : snapshotBuildNumber.hashCode() );
-        result = 31 * result + ( snapshotTimeStamp == null ? 0 : snapshotTimeStamp.hashCode() );
-        result = 31 * result + ( hash ? 1231 : 1237 );
-        result = 31 * result + ( hashType == null ? 0 : hashType.hashCode() );
-        result = 31 * result + ( signature ? 1231 : 1237 );
-        result = 31 * result + ( signatureType == null ? 0 : signatureType.hashCode() );
-        return result;
-    }
-
-    @Override
-    public boolean equals( Object obj )
+    public boolean equals( Object o )
     {
-        if ( this == obj )
+        if ( this == o )
         {
             return true;
         }
-        if ( obj == null )
-        {
-            return false;
-        }
-        if ( getClass() != obj.getClass() )
-        {
-            return false;
-        }
-
-        Gav other = (Gav) obj;
-
-        if ( groupId == null )
-        {
-            if ( other.groupId != null )
-            {
-                return false;
-            }
-        }
-        else if ( !groupId.equals( other.groupId ) )
-        {
-            return false;
-        }
-
-        if ( artifactId == null )
-        {
-            if ( other.artifactId != null )
-            {
-                return false;
-            }
-        }
-        else if ( !artifactId.equals( other.artifactId ) )
-        {
-            return false;
-        }
-
-        if ( version == null )
-        {
-            if ( other.version != null )
-            {
-                return false;
-            }
-        }
-        else if ( !version.equals( other.version ) )
-        {
-            return false;
-        }
-
-        if ( baseVersion == null )
-        {
-            if ( other.baseVersion != null )
-            {
-                return false;
-            }
-        }
-        else if ( !baseVersion.equals( other.baseVersion ) )
-        {
-            return false;
-        }
-
-        if ( classifier == null )
-        {
-            if ( other.classifier != null )
-            {
-                return false;
-            }
-        }
-        else if ( !classifier.equals( other.classifier ) )
-        {
-            return false;
-        }
-
-        if ( extension == null )
-        {
-            if ( other.extension != null )
-            {
-                return false;
-            }
-        }
-        else if ( !extension.equals( other.extension ) )
-        {
-            return false;
-        }
-
-        if ( name == null )
-        {
-            if ( other.name != null )
-            {
-                return false;
-            }
-        }
-        else if ( !name.equals( other.name ) )
-        {
-            return false;
-        }
-
-        if ( snapshot != other.snapshot )
-        {
-            return false;
-        }
-
-        if ( snapshotBuildNumber == null )
-        {
-            if ( other.snapshotBuildNumber != null )
-            {
-                return false;
-            }
-        }
-        else if ( !snapshotBuildNumber.equals( other.snapshotBuildNumber ) )
-        {
-            return false;
-        }
-
-        if ( snapshotTimeStamp == null )
-        {
-            if ( other.snapshotTimeStamp != null )
-            {
-                return false;
-            }
-        }
-        else if ( !snapshotTimeStamp.equals( other.snapshotTimeStamp ) )
-        {
-            return false;
-        }
-
-        if ( hash != other.hash )
-        {
-            return false;
-        }
-
-        if ( hashType == null )
-        {
-            if ( other.hashType != null )
-            {
-                return false;
-            }
-        }
-        else if ( !hashType.equals( other.hashType ) )
-        {
-            return false;
-        }
-
-        if ( signature != other.signature )
-        {
-            return false;
-        }
-
-        if ( signatureType == null )
-        {
-            if ( other.signatureType != null )
-            {
-                return false;
-            }
-        }
-        else if ( !signatureType.equals( other.signatureType ) )
+        if ( o == null || getClass() != o.getClass() )
         {
             return false;
         }
+        Gav gav = (Gav) o;
+        return snapshot == gav.snapshot && hash == gav.hash && signature == gav.signature && Objects.equals( groupId,
+                gav.groupId ) && Objects.equals( artifactId, gav.artifactId ) && Objects.equals( version,
+                gav.version ) && Objects.equals( baseVersion, gav.baseVersion ) && Objects.equals( classifier,
+                gav.classifier ) && Objects.equals( extension, gav.extension ) && Objects.equals( snapshotBuildNumber,
+                gav.snapshotBuildNumber ) && Objects.equals( snapshotTimeStamp,
+                gav.snapshotTimeStamp ) && Objects.equals( name,
+                gav.name ) && hashType == gav.hashType && signatureType == gav.signatureType;
+    }
 
-        return true;
+    @Override
+    public int hashCode()
+    {
+        return Objects.hash( groupId, artifactId, version, baseVersion, classifier, extension, snapshotBuildNumber,
+                snapshotTimeStamp, name, snapshot, hash, hashType, signature, signatureType );
     }
 }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1ArtifactRecognizer.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1ArtifactRecognizer.java
index 30f463b..a1dcde0 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1ArtifactRecognizer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1ArtifactRecognizer.java
@@ -45,7 +45,7 @@ public class M1ArtifactRecognizer
      */
     public static boolean isSnapshot( String path )
     {
-        return path.indexOf( "SNAPSHOT" ) != -1;
+        return path.contains( "SNAPSHOT" );
     }
 
     /**
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
index faf564a..d922bd2 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M1GavCalculator.java
@@ -136,10 +136,6 @@ public class M1GavCalculator
                 }
             }
         }
-        catch ( StringIndexOutOfBoundsException e )
-        {
-            return null;
-        }
         catch ( IndexOutOfBoundsException e )
         {
             return null;
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2ArtifactRecognizer.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2ArtifactRecognizer.java
index 6dd9f1a..04d5603 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2ArtifactRecognizer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2ArtifactRecognizer.java
@@ -48,7 +48,7 @@ public class M2ArtifactRecognizer
      */
     public static boolean isSnapshot( String path )
     {
-        return path.indexOf( "SNAPSHOT" ) != -1;
+        return path.contains( "SNAPSHOT" );
     }
 
     /**
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
index 7356d19..5405a0a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
@@ -109,11 +109,7 @@ public class M2GavCalculator
                     checksumType, signatureType );
             }
         }
-        catch ( NumberFormatException e )
-        {
-            return null;
-        }
-        catch ( StringIndexOutOfBoundsException e )
+        catch ( NumberFormatException | StringIndexOutOfBoundsException e )
         {
             return null;
         }
@@ -193,7 +189,7 @@ public class M2GavCalculator
             try
             {
                 SimpleDateFormat df = new SimpleDateFormat( "yyyyMMdd.HHmmss" );
-                snapshotTimestamp = Long.valueOf( df.parse( sb.toString() ).getTime() );
+                snapshotTimestamp = df.parse( sb.toString() ).getTime();
             }
             catch ( ParseException e )
             {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
index 8a64a4d..d557805 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
@@ -669,12 +669,11 @@ public class DefaultIndexingContext
         try
         {
             final IndexWriter w = getIndexWriter();
-            final IndexReader directoryReader = DirectoryReader.open( directory );
-            TopScoreDocCollector collector = null;
-            try
+            try ( IndexReader directoryReader = DirectoryReader.open( directory ) )
             {
+                TopScoreDocCollector collector = null;
                 int numDocs = directoryReader.maxDoc();
-                
+
                 Bits liveDocs = MultiFields.getLiveDocs( directoryReader );
                 for ( int i = 0; i < numDocs; i++ )
                 {
@@ -717,7 +716,6 @@ public class DefaultIndexingContext
             }
             finally
             {
-                directoryReader.close();
                 commit();
             }
 
@@ -776,8 +774,8 @@ public class DefaultIndexingContext
         {
             final IndexReader r = is.getIndexReader();
 
-            Set<String> rootGroups = new LinkedHashSet<String>();
-            Set<String> allGroups = new LinkedHashSet<String>();
+            Set<String> rootGroups = new LinkedHashSet<>();
+            Set<String> allGroups = new LinkedHashSet<>();
 
             int numDocs = r.maxDoc();
             Bits liveDocs = MultiFields.getLiveDocs( r );
@@ -847,7 +845,7 @@ public class DefaultIndexingContext
         {
             indexSearcher.search( new TermQuery( new Term( field, filedValue ) ), collector );
             TopDocs topDocs = collector.topDocs();
-            Set<String> groups = new LinkedHashSet<String>( Math.max( 10, topDocs.totalHits ) );
+            Set<String> groups = new LinkedHashSet<>( Math.max( 10, topDocs.totalHits ) );
             if ( topDocs.totalHits > 0 )
             {
                 Document doc = indexSearcher.doc( topDocs.scoreDocs[0].doc );
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
index f842959..0048e89 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
@@ -220,14 +220,14 @@ public class MergedIndexingContext
 
     public List<IndexCreator> getIndexCreators()
     {
-        HashSet<IndexCreator> creators = new HashSet<IndexCreator>();
+        HashSet<IndexCreator> creators = new HashSet<>();
 
         for ( IndexingContext ctx : getMembers() )
         {
             creators.addAll( ctx.getIndexCreators() );
         }
 
-        return new ArrayList<IndexCreator>( creators );
+        return new ArrayList<>( creators );
     }
 
     public Analyzer getAnalyzer()
@@ -335,7 +335,7 @@ public class MergedIndexingContext
     public Set<String> getAllGroups()
         throws IOException
     {
-        HashSet<String> result = new HashSet<String>();
+        HashSet<String> result = new HashSet<>();
 
         for ( IndexingContext ctx : getMembers() )
         {
@@ -354,7 +354,7 @@ public class MergedIndexingContext
     public Set<String> getRootGroups()
         throws IOException
     {
-        HashSet<String> result = new HashSet<String>();
+        HashSet<String> result = new HashSet<>();
 
         for ( IndexingContext ctx : getMembers() )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexMultiReader.java b/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexMultiReader.java
index 44bc696..9fa5cc5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexMultiReader.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexMultiReader.java
@@ -38,7 +38,7 @@ public class NexusIndexMultiReader
 
     public NexusIndexMultiReader( final Collection<IndexingContext> contexts )
     {
-        this.contexts = Collections.unmodifiableList( new ArrayList<IndexingContext>( contexts ) );
+        this.contexts = Collections.unmodifiableList( new ArrayList<>( contexts ) );
     }
 
     public synchronized IndexReader acquire()
@@ -49,8 +49,8 @@ public class NexusIndexMultiReader
             release();
             throw new IllegalStateException( "acquire() called 2nd time without release() in between!" );
         }
-        this.searchers = new ArrayList<IndexSearcher>();
-        final ArrayList<IndexReader> contextReaders = new ArrayList<IndexReader>( contexts.size() );
+        this.searchers = new ArrayList<>();
+        final ArrayList<IndexReader> contextReaders = new ArrayList<>( contexts.size() );
         for ( IndexingContext ctx : contexts )
         {
             final IndexSearcher indexSearcher = ctx.acquireIndexSearcher();
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/StaticContextMemberProvider.java b/indexer-core/src/main/java/org/apache/maven/index/context/StaticContextMemberProvider.java
index a088fea..d087131 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/StaticContextMemberProvider.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/StaticContextMemberProvider.java
@@ -36,7 +36,7 @@ public class StaticContextMemberProvider
 
     public StaticContextMemberProvider( Collection<IndexingContext> members )
     {
-        ArrayList<IndexingContext> m = new ArrayList<IndexingContext>();
+        ArrayList<IndexingContext> m = new ArrayList<>();
 
         if ( members != null )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java b/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java
index 9bc6a02..3a55eee 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java
@@ -44,7 +44,7 @@ final class TrackingLockFactory
     TrackingLockFactory( final LockFactory delegate )
     {
         this.delegate = checkNotNull( delegate );
-        this.emittedLocks = Collections.newSetFromMap( new ConcurrentHashMap<TrackingLock, Boolean>() );
+        this.emittedLocks = Collections.newSetFromMap( new ConcurrentHashMap<>() );
     }
 
     Set<? extends Lock> getEmittedLocks( String name )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/AbstractIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/AbstractIndexCreator.java
index 7252fff..fda8ad0 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/AbstractIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/AbstractIndexCreator.java
@@ -56,7 +56,7 @@ public abstract class AbstractIndexCreator
     {
         this.id = id;
 
-        final ArrayList<String> deps = new ArrayList<String>();
+        final ArrayList<String> deps = new ArrayList<>();
 
         if ( creatorDependencies != null && !creatorDependencies.isEmpty() )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
index dad2b32..c90e25f 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
@@ -101,7 +101,7 @@ public class MavenPluginArtifactInfoIndexCreator
 
                     ai.setPrefix( plexusConfig.getChild( "goalPrefix" ).getValue() );
 
-                    ai.setGoals( new ArrayList<String>() );
+                    ai.setGoals( new ArrayList<>() );
 
                     PlexusConfiguration[] mojoConfigs = plexusConfig.getChild( "mojos" ).getChildren( "mojo" );
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
index 7394e9e..6baf299 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
@@ -620,9 +620,8 @@ public class OsgiArtifactIndexCreator
         try
         {
             MessageDigest digest = MessageDigest.getInstance( "SHA-256" );
-            DigestInputStream in = new DigestInputStream( new FileInputStream( f ), digest );
 
-            try
+            try ( DigestInputStream in = new DigestInputStream( new FileInputStream( f ), digest ) )
             {
                 byte buf[] = new byte[8192];
                 while ( in.read( buf ) >= 0 )
@@ -638,10 +637,6 @@ public class OsgiArtifactIndexCreator
                     sha256 = builder.toString();
                 }
             }
-            finally
-            {
-                in.close();
-            }
 
         }
         catch ( NoSuchAlgorithmException e )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java b/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
index bef2f2c..c729caa 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/incremental/DefaultIncrementalHandler.java
@@ -247,15 +247,15 @@ public class DefaultIncrementalHandler
             }
         } );
 
-        for ( int i = 0; i < files.length; i++ )
+        for ( File file : files )
         {
-            String[] parts = files[i].getName().split( "\\." );
+            String[] parts = file.getName().split( "\\." );
 
             boolean found = false;
             for ( Entry<Object, Object> entry : properties.entrySet() )
             {
-                if ( entry.getKey().toString().startsWith( IndexingContext.INDEX_CHUNK_PREFIX )
-                    && entry.getValue().equals( parts[1] ) )
+                if ( entry.getKey().toString().startsWith(
+                        IndexingContext.INDEX_CHUNK_PREFIX ) && entry.getValue().equals( parts[1] ) )
                 {
                     found = true;
                     break;
@@ -264,7 +264,7 @@ public class DefaultIncrementalHandler
 
             if ( !found )
             {
-                files[i].delete();
+                file.delete();
             }
         }
     }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java b/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
index 48233dc..9821d5c 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
@@ -194,20 +194,10 @@ public class DefaultIndexPacker
 
         Properties properties = new Properties();
 
-        FileInputStream fos = null;
-
-        try
+        try ( FileInputStream fos = new FileInputStream( file ) )
         {
-            fos = new FileInputStream( file );
             properties.load( fos );
         }
-        finally
-        {
-            if ( fos != null )
-            {
-                fos.close();
-            }
-        }
 
         return properties;
     }
diff --git a/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java b/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
index 5adffad..27f8397 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/packer/DigesterUtils.java
@@ -102,12 +102,7 @@ public class DigesterUtils
 
             return getDigest( "SHA1", fis );
         }
-        catch ( NoSuchAlgorithmException e )
-        {
-            // will not happen
-            return null;
-        }
-        catch ( UnsupportedEncodingException e )
+        catch ( NoSuchAlgorithmException | UnsupportedEncodingException e )
         {
             // will not happen
             return null;
@@ -146,12 +141,7 @@ public class DigesterUtils
         {
             return getDigest( "SHA1", fis );
         }
-        catch ( NoSuchAlgorithmException e )
-        {
-            // will not happen
-            return null;
-        }
-        catch ( FileNotFoundException e )
+        catch ( NoSuchAlgorithmException | FileNotFoundException e )
         {
             // will not happen
             return null;
@@ -174,12 +164,7 @@ public class DigesterUtils
 
             return getDigest( "MD5", fis );
         }
-        catch ( NoSuchAlgorithmException e )
-        {
-            // will not happen
-            return null;
-        }
-        catch ( UnsupportedEncodingException e )
+        catch ( NoSuchAlgorithmException | UnsupportedEncodingException e )
         {
             // will not happen
             return null;
@@ -219,12 +204,7 @@ public class DigesterUtils
         {
             return getDigest( "MD5", fis );
         }
-        catch ( NoSuchAlgorithmException e )
-        {
-            // will not happen
-            return null;
-        }
-        catch ( FileNotFoundException e )
+        catch ( NoSuchAlgorithmException | FileNotFoundException e )
         {
             // will not happen
             return null;
diff --git a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
index d1a4490..f80b7b4 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
@@ -139,15 +139,13 @@ public class DefaultIndexTreeView
     {
         String path = root.getPath();
 
-        Map<String, TreeNode> folders = new HashMap<String, TreeNode>();
+        Map<String, TreeNode> folders = new HashMap<>();
 
         String rootPartialGroupId = StringUtils.strip( root.getPath().replaceAll( "/", "." ), "." );
 
         folders.put( Type.G + ":" + rootPartialGroupId, root );
 
-        IteratorSearchResponse artifacts = getArtifacts( root, request );
-
-        try
+        try ( IteratorSearchResponse artifacts = getArtifacts( root, request ) )
         {
             for ( ArtifactInfo ai : artifacts )
             {
@@ -188,17 +186,14 @@ public class DefaultIndexTreeView
                             groupResource = folders.get( groupKey );
 
                             // it needs to be created only if not found (is null) and is _below_ groupParentResource
-                            if ( groupResource == null
-                                && groupParentResource.getPath().length() < getPathForAi( ai,
-                                                                                          MAVEN.GROUP_ID ).length() )
+                            if ( groupResource == null && groupParentResource.getPath().length() < getPathForAi( ai,
+                                    MAVEN.GROUP_ID ).length() )
                             {
-                                String gNodeName =
-                                    partialGroupId.lastIndexOf( '.' ) > -1 ? partialGroupId.substring(
-                                        partialGroupId.lastIndexOf( '.' ) + 1, partialGroupId.length() )
-                                        : partialGroupId;
+                                String gNodeName = partialGroupId.lastIndexOf( '.' ) > -1 ? partialGroupId.substring(
+                                        partialGroupId.lastIndexOf( '.' ) + 1,
+                                        partialGroupId.length() ) : partialGroupId;
 
-                                groupResource =
-                                    request.getFactory().createGNode( this, request,
+                                groupResource = request.getFactory().createGNode( this, request,
                                         "/" + partialGroupId.replaceAll( "\\.", "/" ) + "/", gNodeName );
 
                                 groupParentResource.getChildren().add( groupResource );
@@ -220,15 +215,15 @@ public class DefaultIndexTreeView
                         }
 
                         artifactResource = request.getFactory().createANode( this, request, ai,
-                                                                             getPathForAi( ai, MAVEN.ARTIFACT_ID ) );
+                                getPathForAi( ai, MAVEN.ARTIFACT_ID ) );
 
                         groupParentResource.getChildren().add( artifactResource );
 
                         folders.put( artifactKey, artifactResource );
                     }
 
-                    versionResource =
-                        request.getFactory().createVNode( this, request, ai, getPathForAi( ai, MAVEN.VERSION ) );
+                    versionResource = request.getFactory().createVNode( this, request, ai,
+                            getPathForAi( ai, MAVEN.VERSION ) );
 
                     artifactResource.getChildren().add( versionResource );
 
@@ -238,13 +233,9 @@ public class DefaultIndexTreeView
                 String nodePath = getPathForAi( ai, null );
 
                 versionResource.getChildren().add(
-                    request.getFactory().createArtifactNode( this, request, ai, nodePath ) );
+                        request.getFactory().createArtifactNode( this, request, ai, nodePath ) );
             }
         }
-        finally
-        {
-            artifacts.close();
-        }
 
         if ( !request.hasFieldHints() )
         {
@@ -325,7 +316,7 @@ public class DefaultIndexTreeView
 
         int n = path.length();
 
-        Set<String> result = new HashSet<String>();
+        Set<String> result = new HashSet<>();
 
         for ( String group : allGroups )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeViewRequest.java b/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeViewRequest.java
index c46be1d..a14c89e 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeViewRequest.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/treeview/TreeViewRequest.java
@@ -51,7 +51,7 @@ public class TreeViewRequest
 
         this.path = path;
 
-        this.fieldHints = new HashMap<Field, String>();
+        this.fieldHints = new HashMap<>();
 
         if ( hints != null && hints.size() != 0 )
         {
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
index bcab914..0768918 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
@@ -541,7 +541,7 @@ public class DefaultIndexUpdater
 
         private final IndexUpdateResult result;
 
-        private final ArrayList<String> newChunks = new ArrayList<String>();
+        private final ArrayList<String> newChunks = new ArrayList<>();
 
         LocalCacheIndexAdaptor( File dir, IndexUpdateResult result )
         {
@@ -623,7 +623,7 @@ public class DefaultIndexUpdater
         public List<String> getChunks()
             throws IOException
         {
-            ArrayList<String> chunks = new ArrayList<String>();
+            ArrayList<String> chunks = new ArrayList<>();
 
             File chunksFile = new File( dir, CHUNKS_FILENAME );
             try ( BufferedReader r =
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
index 11550bd..f470dd1 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
@@ -78,8 +78,8 @@ public class IndexDataWriter
         gos = new GZIPOutputStream( bos, 1024 * 2 );
         dos = new DataOutputStream( gos );
 
-        this.allGroups = new HashSet<String>();
-        this.rootGroups = new HashSet<String>();
+        this.allGroups = new HashSet<>();
+        this.rootGroups = new HashSet<>();
         this.descriptorWritten = false;
     }
 
diff --git a/indexer-core/src/main/java/org/apache/maven/index/util/IndexCreatorSorter.java b/indexer-core/src/main/java/org/apache/maven/index/util/IndexCreatorSorter.java
index 4c48116..8dbf4e5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/util/IndexCreatorSorter.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/util/IndexCreatorSorter.java
@@ -35,7 +35,7 @@ public class IndexCreatorSorter
     {
         try
         {
-            final HashMap<String, IndexCreator> creatorsById = new HashMap<String, IndexCreator>( creators.size() );
+            final HashMap<String, IndexCreator> creatorsById = new HashMap<>( creators.size() );
 
             DAG dag = new DAG();
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java b/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
index 6de6441..11f661b 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
@@ -49,9 +49,9 @@ public class AbstractIndexCreatorHelper
     {
         super.setUp();
 
-        DEFAULT_CREATORS = new ArrayList<IndexCreator>();
-        FULL_CREATORS = new ArrayList<IndexCreator>();
-        MIN_CREATORS = new ArrayList<IndexCreator>();
+        DEFAULT_CREATORS = new ArrayList<>();
+        FULL_CREATORS = new ArrayList<>();
+        MIN_CREATORS = new ArrayList<>();
 
         IndexCreator min = lookup( IndexCreator.class, MinimalArtifactInfoIndexCreator.ID );
         IndexCreator mavenPlugin = lookup( IndexCreator.class, MavenPluginArtifactInfoIndexCreator.ID );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/AbstractRepoNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/AbstractRepoNexusIndexerTest.java
index 5b34d49..554ff7a 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/AbstractRepoNexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/AbstractRepoNexusIndexerTest.java
@@ -567,9 +567,7 @@ public abstract class AbstractRepoNexusIndexerTest
         // org.terracotta.forge:forge-parent:1.0.5
         // org.terracotta.forge:archetype-parent:1.0.1
 
-        IteratorSearchResponse response = nexusIndexer.searchIterator( request );
-
-        try
+        try ( IteratorSearchResponse response = nexusIndexer.searchIterator( request ) )
         {
             assertEquals( response.getResults().toString(), 2, response.getTotalHitsCount() );
 
@@ -578,10 +576,6 @@ public abstract class AbstractRepoNexusIndexerTest
                 assertEquals( ai.getGroupId(), "org.terracotta.forge" );
             }
         }
-        finally
-        {
-            response.close();
-        }
     }
 
 }
diff --git a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
index 35836af..3348752 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
@@ -191,7 +191,7 @@ public class DefaultIndexNexusIndexerTest
 
         assertEquals( 2, r.size() );
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( r );
+        List<ArtifactInfo> list = new ArrayList<>( r );
 
         assertEquals( 2, list.size() );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/DuplicateSearchTest.java b/indexer-core/src/test/java/org/apache/maven/index/DuplicateSearchTest.java
index 8189754..a97764e 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/DuplicateSearchTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/DuplicateSearchTest.java
@@ -180,8 +180,8 @@ public class DuplicateSearchTest
         IteratorSearchRequest isReq = new IteratorSearchRequest( query );
 
         // so, how many different GA combinations exists, this is almost equal to SQLs group by "groupId, artifactId"
-        isReq.setArtifactInfoFilter( new UniqueArtifactFilterPostprocessor( new HashSet<Field>( Arrays.asList(
-            MAVEN.GROUP_ID, MAVEN.ARTIFACT_ID ) ) ) );
+        isReq.setArtifactInfoFilter( new UniqueArtifactFilterPostprocessor(
+                new HashSet<>( Arrays.asList( MAVEN.GROUP_ID, MAVEN.ARTIFACT_ID ) ) ) );
         isReq.getContexts().add( context );
         isReq.getContexts().add( context1 );
         isReq.getContexts().add( context2 );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
index a5b5fad..3b696c6 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Mindexer35NexusIndexerTest.java
@@ -53,7 +53,7 @@ public class Mindexer35NexusIndexerTest
 
         assertThat(r.size(), is(1));
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( r );
+        List<ArtifactInfo> list = new ArrayList<>( r );
 
         ArtifactInfo ai = null;
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
index e848270..042843a 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
@@ -146,7 +146,7 @@ public class Nexus13NexusIndexerTest
 
         assertEquals( 10, r.size() );
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( r );
+        List<ArtifactInfo> list = new ArrayList<>( r );
 
         assertEquals( 10, list.size() );
 
@@ -181,7 +181,7 @@ public class Nexus13NexusIndexerTest
         Collection<ArtifactInfo> r = response.getResults();
         assertEquals( r.toString(), 10, r.size() );
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( r );
+        List<ArtifactInfo> list = new ArrayList<>( r );
 
         assertEquals( 10, list.size() );
 
@@ -214,7 +214,7 @@ public class Nexus13NexusIndexerTest
 
         assertEquals( 1, ig.getArtifactInfos().size() );
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( ig.getArtifactInfos() );
+        List<ArtifactInfo> list = new ArrayList<>( ig.getArtifactInfos() );
 
         assertEquals( 1, list.size() );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus1911IncrementalTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus1911IncrementalTest.java
index 95300bd..9d19d42 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus1911IncrementalTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus1911IncrementalTest.java
@@ -314,11 +314,11 @@ public class Nexus1911IncrementalTest
 
     private Set<String> getFilenamesFromFiles( File[] files )
     {
-        Set<String> filenames = new HashSet<String>();
+        Set<String> filenames = new HashSet<>();
 
-        for ( int i = 0; i < files.length; i++ )
+        for ( File file : files )
         {
-            filenames.add( files[i].getName() );
+            filenames.add( file.getName() );
         }
 
         return filenames;
@@ -330,26 +330,19 @@ public class Nexus1911IncrementalTest
         Properties props = new Properties();
         File propertyFile = null;
 
-        for ( int i = 0; i < files.length; i++ )
+        for ( File file : files )
         {
-            if ( ( IndexingContext.INDEX_REMOTE_PROPERTIES_FILE ).equalsIgnoreCase( files[i].getName() ) )
+            if ( ( IndexingContext.INDEX_REMOTE_PROPERTIES_FILE ).equalsIgnoreCase( file.getName() ) )
             {
-                propertyFile = files[i];
+                propertyFile = file;
                 break;
             }
         }
 
-        FileInputStream fis = null;
-
-        try
+        try ( FileInputStream fis = new FileInputStream( propertyFile ) )
         {
-            fis = new FileInputStream( propertyFile );
             props.load( fis );
         }
-        finally
-        {
-            fis.close();
-        }
 
         return props;
     }
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
index 99e00d1..6b309c9 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
@@ -71,6 +71,6 @@ public class Nexus3881NexusIndexerTest
 
         Assert.assertTrue(
             String.format( "The relevance span should be small! (%s)",
-                new Object[] { Float.valueOf( firstRel - lastRel ) } ), firstRel - lastRel < 0.35 );
+                new Object[] {firstRel - lastRel} ), firstRel - lastRel < 0.35 );
     }
 }
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus687NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus687NexusIndexerTest.java
index f1f0d91..51e5949 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus687NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus687NexusIndexerTest.java
@@ -54,7 +54,7 @@ public class Nexus687NexusIndexerTest
 
         assertEquals( 1, r.size() );
 
-        List<ArtifactInfo> list = new ArrayList<ArtifactInfo>( r );
+        List<ArtifactInfo> list = new ArrayList<>( r );
 
         assertEquals( 1, list.size() );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
index 7d86320..4874c28 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
@@ -108,7 +108,7 @@ public class SearchWithAnEmptyIndexTest
                 .build();
 
             request = new FlatSearchRequest( q );
-            request.setContexts( new ArrayList( nexusIndexer.getIndexingContexts().values() ) );
+            request.setContexts( new ArrayList<>( nexusIndexer.getIndexingContexts().values() ) );
 
             response = nexusIndexer.searchFlat( request );
 
@@ -125,7 +125,7 @@ public class SearchWithAnEmptyIndexTest
                 .build();
 
             request = new FlatSearchRequest( q );
-            request.setContexts( new ArrayList( nexusIndexer.getIndexingContexts().values() ) );
+            request.setContexts( new ArrayList<>( nexusIndexer.getIndexingContexts().values() ) );
 
             response = nexusIndexer.searchFlat( request );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/artifact/M1GavCalculatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/artifact/M1GavCalculatorTest.java
index 458281d..0f334d8 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/artifact/M1GavCalculatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/artifact/M1GavCalculatorTest.java
@@ -52,7 +52,7 @@ public class M1GavCalculatorTest
         }
         else
         {
-            return Long.valueOf( formatter.parse( timeStamp ).getTime() );
+            return formatter.parse( timeStamp ).getTime();
         }
     }
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
index 0881010..315b462 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
@@ -52,7 +52,7 @@ public class M2GavCalculatorTest
         }
         else
         {
-            return Long.valueOf( formatter.parse( timeStamp ).getTime() );
+            return formatter.parse( timeStamp ).getTime();
         }
     }
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java b/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
index a7c71b0..2793b64 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
@@ -58,7 +58,7 @@ public class NexusAnalyzerTest
         Tokenizer ts = (Tokenizer) nexusAnalyzer.tokenStream(indexerField.getKey(), new StringReader( text ) );
         ts.reset();
 
-        ArrayList<String> tokenList = new ArrayList<String>();
+        ArrayList<String> tokenList = new ArrayList<>();
 
         if ( !indexerField.isKeyword() )
         {
diff --git a/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
index f8062bb..34959bb 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
@@ -68,7 +68,7 @@ public class MavenPluginArtifactInfoIndexCreatorTest
 
         assertEquals( "dependency", artifactContext.getArtifactInfo().getPrefix() );
 
-        List<String> goals = new ArrayList<String>( 16 );
+        List<String> goals = new ArrayList<>( 16 );
         goals.add( "analyze-dep-mgt" );
         goals.add( "analyze" );
         goals.add( "analyze-only" );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
index b1161b4..527176f 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
@@ -479,7 +479,7 @@ public class DefaultIndexUpdaterEmbeddingIT
         IndexCreator min = container.lookup( IndexCreator.class, "min" );
         IndexCreator jar = container.lookup( IndexCreator.class, "jarContent" );
 
-        List<IndexCreator> creators = new ArrayList<IndexCreator>();
+        List<IndexCreator> creators = new ArrayList<>();
         creators.add( min );
         creators.add( jar );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/FullBootProofOfConcept.java b/indexer-core/src/test/java/org/apache/maven/index/updater/FullBootProofOfConcept.java
index 8b55b24..8c18a0b 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/FullBootProofOfConcept.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/FullBootProofOfConcept.java
@@ -55,23 +55,7 @@ public class FullBootProofOfConcept
             {
                 run( basedir );
             }
-            catch ( UnsupportedExistingLuceneIndexException e )
-            {
-                e.printStackTrace();
-            }
-            catch ( IOException e )
-            {
-                e.printStackTrace();
-            }
-            catch ( ComponentLookupException e )
-            {
-                e.printStackTrace();
-            }
-            catch ( PlexusContainerException e )
-            {
-                e.printStackTrace();
-            }
-            catch ( ParseException e )
+            catch ( UnsupportedExistingLuceneIndexException | ParseException | PlexusContainerException | ComponentLookupException | IOException e )
             {
                 e.printStackTrace();
             }
@@ -108,7 +92,7 @@ public class FullBootProofOfConcept
         IndexCreator min = container.lookup( IndexCreator.class, "min" );
         IndexCreator jar = container.lookup( IndexCreator.class, "jarContent" );
 
-        List<IndexCreator> creators = new ArrayList<IndexCreator>();
+        List<IndexCreator> creators = new ArrayList<>();
         creators.add( min );
         creators.add( jar );
 
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
index 65b6b8c..03500ea 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
@@ -151,7 +151,7 @@ public class IndexDataTest
     private Map<String, ArtifactInfo> readIndex( IndexReader r1 )
         throws CorruptIndexException, IOException
     {
-        Map<String, ArtifactInfo> map = new HashMap<String, ArtifactInfo>();
+        Map<String, ArtifactInfo> map = new HashMap<>();
 
         for ( int i = 0; i < r1.maxDoc(); i++ )
         {
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/TrackingFetcher.java b/indexer-core/src/test/java/org/apache/maven/index/updater/TrackingFetcher.java
index a2543bf..42a8d42 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/TrackingFetcher.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/TrackingFetcher.java
@@ -37,7 +37,7 @@ public class TrackingFetcher
     extends DefaultIndexUpdater.FileFetcher
 {
 
-    private final ArrayList<String> resources = new ArrayList<String>();
+    private final ArrayList<String> resources = new ArrayList<>();
 
     public TrackingFetcher( File basedir )
     {
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java b/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
index b86ab57..25bcf7f 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/fixtures/ServerTestFixture.java
@@ -152,10 +152,8 @@ public class ServerTestFixture
             }
 
             File f = new File( base, "slow" + subPath );
-            InputStream in = null;
-            try
+            try ( InputStream in = new FileInputStream( f ) )
             {
-                in = new FileInputStream( f );
                 OutputStream out = resp.getOutputStream();
 
                 int read = -1;
@@ -176,19 +174,6 @@ public class ServerTestFixture
 
                 out.flush();
             }
-            finally
-            {
-                if ( in != null )
-                {
-                    try
-                    {
-                        in.close();
-                    }
-                    catch ( IOException e )
-                    {
-                    }
-                }
-            }
         }
     }
 
diff --git a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/IndexerConfiguration.java b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/IndexerConfiguration.java
index 40717a3..53c2e1b 100644
--- a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/IndexerConfiguration.java
+++ b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/IndexerConfiguration.java
@@ -59,7 +59,7 @@ public class IndexerConfiguration
     public List<IndexCreator> getIndexersAsList()
     {
         return indexers == null ? //
-            new ArrayList<IndexCreator>( 0 ) //
+                new ArrayList<>( 0 ) //
             : new ArrayList<>( indexers.values() );
     }
 
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
index 159f440..0354676 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/ChunkReader.java
@@ -173,7 +173,7 @@ public class ChunkReader
             return null; // no more documents
         }
 
-        Map<String, String> recordMap = new HashMap<String, String>();
+        Map<String, String> recordMap = new HashMap<>();
         for ( int i = 0; i < fieldCount; i++ )
         {
             readField( recordMap, dataInput );
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexWriter.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexWriter.java
index 6dbae48..c470411 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexWriter.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/IndexWriter.java
@@ -155,16 +155,11 @@ public class IndexWriter
 
         try ( WritableResource writableResource = local.locate( nextChunkName ) )
         {
-            final ChunkWriter chunkWriter =
-                new ChunkWriter( nextChunkName, writableResource.write(), INDEX_V1, new Date() );
-            try
+            try ( ChunkWriter chunkWriter = new ChunkWriter( nextChunkName, writableResource.write(), INDEX_V1,
+                    new Date() ) )
             {
                 written = chunkWriter.writeChunk( iterator );
             }
-            finally
-            {
-                chunkWriter.close();
-            }
             if ( incremental )
             {
                 // TODO: update main gz file
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
index 046ff9b..0205e6e 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/Record.java
@@ -59,24 +59,24 @@ public final class Record
         }
 
         @Override
-        public boolean equals( final Object o )
+        public boolean equals( Object o )
         {
             if ( this == o )
             {
                 return true;
             }
-            if ( !( o instanceof EntryKey ) )
+            if ( o == null || getClass() != o.getClass() )
             {
                 return false;
             }
-            EntryKey entryKey = (EntryKey) o;
-            return name.equals( entryKey.name );
+            EntryKey<?> entryKey = (EntryKey<?>) o;
+            return Objects.equals( name, entryKey.name );
         }
 
         @Override
         public int hashCode()
         {
-            return name.hashCode();
+            return Objects.hash( name );
         }
 
         @Override
@@ -89,206 +89,201 @@ public final class Record
     /**
      * Key of repository ID entry, that contains {@link String}.
      */
-    public static final EntryKey<String> REPOSITORY_ID = new EntryKey<String>( "repositoryId", String.class );
+    public static final EntryKey<String> REPOSITORY_ID = new EntryKey<>( "repositoryId", String.class );
 
     /**
      * Key of all groups list entry, that contains {@link java.util.List<String>}.
      */
-    public static final EntryKey<String[]> ALL_GROUPS = new EntryKey<String[]>( "allGroups", String[].class );
+    public static final EntryKey<String[]> ALL_GROUPS = new EntryKey<>( "allGroups", String[].class );
 
     /**
      * Key of root groups list entry, that contains {@link java.util.List<String>}.
      */
-    public static final EntryKey<String[]> ROOT_GROUPS = new EntryKey<String[]>( "rootGroups", String[].class );
+    public static final EntryKey<String[]> ROOT_GROUPS = new EntryKey<>( "rootGroups", String[].class );
 
     /**
      * Key of index record modification (added to index or removed from index) timestamp entry, that contains {@link
      * Long}.
      */
-    public static final EntryKey<Long> REC_MODIFIED = new EntryKey<Long>( "recordModified", Long.class );
+    public static final EntryKey<Long> REC_MODIFIED = new EntryKey<>( "recordModified", Long.class );
 
     /**
      * Key of artifact groupId entry, that contains {@link String}.
      */
-    public static final EntryKey<String> GROUP_ID = new EntryKey<String>( "groupId", String.class );
+    public static final EntryKey<String> GROUP_ID = new EntryKey<>( "groupId", String.class );
 
     /**
      * Key of artifact artifactId entry, that contains {@link String}.
      */
-    public static final EntryKey<String> ARTIFACT_ID = new EntryKey<String>( "artifactId", String.class );
+    public static final EntryKey<String> ARTIFACT_ID = new EntryKey<>( "artifactId", String.class );
 
     /**
      * Key of artifact version entry, that contains {@link String}.
      */
-    public static final EntryKey<String> VERSION = new EntryKey<String>( "version", String.class );
+    public static final EntryKey<String> VERSION = new EntryKey<>( "version", String.class );
 
     /**
      * Key of artifact classifier entry, that contains {@link String}.
      */
-    public static final EntryKey<String> CLASSIFIER = new EntryKey<String>( "classifier", String.class );
+    public static final EntryKey<String> CLASSIFIER = new EntryKey<>( "classifier", String.class );
 
     /**
      * Key of artifact packaging entry, that contains {@link String}.
      */
-    public static final EntryKey<String> PACKAGING = new EntryKey<String>( "packaging", String.class );
+    public static final EntryKey<String> PACKAGING = new EntryKey<>( "packaging", String.class );
 
     /**
      * Key of artifact file extension, that contains {@link String}.
      */
-    public static final EntryKey<String> FILE_EXTENSION = new EntryKey<String>( "fileExtension", String.class );
+    public static final EntryKey<String> FILE_EXTENSION = new EntryKey<>( "fileExtension", String.class );
 
     /**
      * Key of artifact file last modified timestamp, that contains {@link Long}.
      */
-    public static final EntryKey<Long> FILE_MODIFIED = new EntryKey<Long>( "fileModified", Long.class );
+    public static final EntryKey<Long> FILE_MODIFIED = new EntryKey<>( "fileModified", Long.class );
 
     /**
      * Key of artifact file size in bytes, that contains {@link Long}.
      */
-    public static final EntryKey<Long> FILE_SIZE = new EntryKey<Long>( "fileSize", Long.class );
+    public static final EntryKey<Long> FILE_SIZE = new EntryKey<>( "fileSize", Long.class );
 
     /**
      * Key of artifact Sources presence flag, that contains {@link Boolean}.
      */
-    public static final EntryKey<Boolean> HAS_SOURCES = new EntryKey<Boolean>( "hasSources", Boolean.class );
+    public static final EntryKey<Boolean> HAS_SOURCES = new EntryKey<>( "hasSources", Boolean.class );
 
     /**
      * Key of artifact Javadoc presence flag, that contains {@link Boolean}.
      */
-    public static final EntryKey<Boolean> HAS_JAVADOC = new EntryKey<Boolean>( "hasJavadoc", Boolean.class );
+    public static final EntryKey<Boolean> HAS_JAVADOC = new EntryKey<>( "hasJavadoc", Boolean.class );
 
     /**
      * Key of artifact signature presence flag, that contains {@link Boolean}.
      */
-    public static final EntryKey<Boolean> HAS_SIGNATURE = new EntryKey<Boolean>( "hasSignature", Boolean.class );
+    public static final EntryKey<Boolean> HAS_SIGNATURE = new EntryKey<>( "hasSignature", Boolean.class );
 
     /**
      * Key of artifact name (as set in POM), that contains {@link String}.
      */
-    public static final EntryKey<String> NAME = new EntryKey<String>( "name", String.class );
+    public static final EntryKey<String> NAME = new EntryKey<>( "name", String.class );
 
     /**
      * Key of artifact description (as set in POM), that contains {@link String}.
      */
-    public static final EntryKey<String> DESCRIPTION = new EntryKey<String>( "description", String.class );
+    public static final EntryKey<String> DESCRIPTION = new EntryKey<>( "description", String.class );
 
     /**
      * Key of artifact SHA1 digest, that contains {@link String}.
      */
-    public static final EntryKey<String> SHA1 = new EntryKey<String>( "sha1", String.class );
+    public static final EntryKey<String> SHA1 = new EntryKey<>( "sha1", String.class );
 
     /**
      * Key of artifact contained class names, that contains {@link java.util.List<String>}. Extracted by {@code
      * JarFileContentsIndexCreator}.
      */
-    public static final EntryKey<String[]> CLASSNAMES = new EntryKey<String[]>( "classNames", String[].class );
+    public static final EntryKey<String[]> CLASSNAMES = new EntryKey<>( "classNames", String[].class );
 
     /**
      * Key of plugin artifact prefix, that contains {@link String}. Extracted by {@code
      * MavenPluginArtifactInfoIndexCreator}.
      */
-    public static final EntryKey<String> PLUGIN_PREFIX = new EntryKey<String>( "pluginPrefix", String.class );
+    public static final EntryKey<String> PLUGIN_PREFIX = new EntryKey<>( "pluginPrefix", String.class );
 
     /**
      * Key of plugin artifact goals, that contains {@link java.util.List<String>}. Extracted by {@code
      * MavenPluginArtifactInfoIndexCreator}.
      */
-    public static final EntryKey<String[]> PLUGIN_GOALS = new EntryKey<String[]>( "pluginGoals", String[].class );
+    public static final EntryKey<String[]> PLUGIN_GOALS = new EntryKey<>( "pluginGoals", String[].class );
 
     /**
      * Key of OSGi "Bundle-SymbolicName" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BUNDLE_SYMBOLIC_NAME =
-        new EntryKey<String>( "Bundle-SymbolicName", String.class );
+    public static final EntryKey<String> OSGI_BUNDLE_SYMBOLIC_NAME = new EntryKey<>( "Bundle-SymbolicName", String.class );
 
     /**
      * Key of OSGi "Bundle-Version" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BUNDLE_VERSION = new EntryKey<String>( "Bundle-Version", String.class );
+    public static final EntryKey<String> OSGI_BUNDLE_VERSION = new EntryKey<>( "Bundle-Version", String.class );
 
     /**
      * Key of OSGi "Export-Package" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_EXPORT_PACKAGE = new EntryKey<String>( "Export-Package", String.class );
+    public static final EntryKey<String> OSGI_EXPORT_PACKAGE = new EntryKey<>( "Export-Package", String.class );
 
     /**
      * Key of OSGi "Export-Service" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_EXPORT_SERVICE = new EntryKey<String>( "Export-Service", String.class );
+    public static final EntryKey<String> OSGI_EXPORT_SERVICE = new EntryKey<>( "Export-Service", String.class );
 
     /**
      * Key of OSGi "Bundle-Description" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BUNDLE_DESCRIPTION =
-        new EntryKey<String>( "Bundle-Description", String.class );
+    public static final EntryKey<String> OSGI_BUNDLE_DESCRIPTION = new EntryKey<>( "Bundle-Description", String.class );
 
     /**
      * Key of OSGi "Bundle-Name" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BUNDLE_NAME = new EntryKey<String>( "Bundle-Name", String.class );
+    public static final EntryKey<String> OSGI_BUNDLE_NAME = new EntryKey<>( "Bundle-Name", String.class );
 
     /**
      * Key of OSGi "Bundle-License" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BUNDLE_LICENSE = new EntryKey<String>( "Bundle-License", String.class );
+    public static final EntryKey<String> OSGI_BUNDLE_LICENSE = new EntryKey<>( "Bundle-License", String.class );
 
     /**
      * Key of OSGi "Bundle-DocURL" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_EXPORT_DOCURL = new EntryKey<String>( "Bundle-DocURL", String.class );
+    public static final EntryKey<String> OSGI_EXPORT_DOCURL = new EntryKey<>( "Bundle-DocURL", String.class );
 
     /**
      * Key of OSGi "Import-Package" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_IMPORT_PACKAGE = new EntryKey<String>( "Import-Package", String.class );
+    public static final EntryKey<String> OSGI_IMPORT_PACKAGE = new EntryKey<>( "Import-Package", String.class );
 
     /**
      * Key of OSGi "Require-Bundle" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_REQUIRE_BUNDLE = new EntryKey<String>( "Require-Bundle", String.class );
+    public static final EntryKey<String> OSGI_REQUIRE_BUNDLE = new EntryKey<>( "Require-Bundle", String.class );
 
     /**
      * Key of OSGi "Provide-Capability" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_PROVIDE_CAPABILITY =
-        new EntryKey<String>( "Provide-Capability", String.class );
+    public static final EntryKey<String> OSGI_PROVIDE_CAPABILITY = new EntryKey<>( "Provide-Capability", String.class );
 
     /**
      * Key of OSGi "Require-Capability" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_REQUIRE_CAPABILITY =
-        new EntryKey<String>( "Require-Capability", String.class );
+    public static final EntryKey<String> OSGI_REQUIRE_CAPABILITY = new EntryKey<>( "Require-Capability", String.class );
 
     /**
      * Key of OSGi "Fragment-Host" manifest entry, that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_FRAGMENT_HOST = new EntryKey<String>( "Fragment-Host", String.class );
+    public static final EntryKey<String> OSGI_FRAGMENT_HOST = new EntryKey<>( "Fragment-Host", String.class );
 
     /**
      * Key of deprecated OSGi "Bundle-RequiredExecutionEnvironment" manifest entry, that contains {@link String}.
      * Extracted by {@code OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> OSGI_BREE =
-        new EntryKey<String>( "Bundle-RequiredExecutionEnvironment", String.class );
+    public static final EntryKey<String> OSGI_BREE = new EntryKey<>( "Bundle-RequiredExecutionEnvironment", String.class );
 
     /**
      * Key for SHA-256 checksum  needed for OSGI content capability that contains {@link String}. Extracted by {@code
      * OsgiArtifactIndexCreator}.
      */
-    public static final EntryKey<String> SHA_256 = new EntryKey<String>( "sha256", String.class );
+    public static final EntryKey<String> SHA_256 = new EntryKey<>( "sha256", String.class );
 
 
     /**
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
index 17765ef..fd29dc8 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordCompactor.java
@@ -70,7 +70,7 @@ public class RecordCompactor
 
     private static Map<String, String> compactDescriptor( final Record record )
     {
-        final Map<String, String> result = new HashMap<String, String>();
+        final Map<String, String> result = new HashMap<>();
         result.put( "DESCRIPTOR", "NexusIndex" );
         result.put( "IDXINFO", "1.0|" + record.get( Record.REPOSITORY_ID ) );
         return result;
@@ -78,7 +78,7 @@ public class RecordCompactor
 
     private static Map<String, String> compactAllGroups( final Record record )
     {
-        final Map<String, String> result = new HashMap<String, String>();
+        final Map<String, String> result = new HashMap<>();
         result.put( "allGroups", "allGroups" );
         putIfNotNullAsStringArray( record.get( Record.ALL_GROUPS ), result, "allGroupsList" );
         return result;
@@ -86,7 +86,7 @@ public class RecordCompactor
 
     private static Map<String, String> compactRootGroups( final Record record )
     {
-        final Map<String, String> result = new HashMap<String, String>();
+        final Map<String, String> result = new HashMap<>();
         result.put( "rootGroups", "allGroups" );
         putIfNotNullAsStringArray( record.get( Record.ROOT_GROUPS ), result, "rootGroupsList" );
         return result;
@@ -94,7 +94,7 @@ public class RecordCompactor
 
     private static Map<String, String> compactDeletedArtifact( final Record record )
     {
-        final Map<String, String> result = new HashMap<String, String>();
+        final Map<String, String> result = new HashMap<>();
         putIfNotNullTS( record.get( Record.REC_MODIFIED ), result, "m" );
         result.put( "del", compactUinfo( record ) );
         return result;
@@ -105,7 +105,7 @@ public class RecordCompactor
      */
     private static Map<String, String> compactAddedArtifact( final Record record )
     {
-        final Map<String, String> result = new HashMap<String, String>();
+        final Map<String, String> result = new HashMap<>();
 
         // Minimal
         result.put( UINFO, compactUinfo( record ) );
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordExpander.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordExpander.java
index 3d57525..a9d3c96 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordExpander.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/RecordExpander.java
@@ -84,7 +84,7 @@ public class RecordExpander
 
     private static Record expandDescriptor( final Map<String, String> raw )
     {
-        final Record result = new Record( Type.DESCRIPTOR, new HashMap<EntryKey, Object>() );
+        final Record result = new Record( Type.DESCRIPTOR, new HashMap<>() );
         String[] r = FS_PATTERN.split( raw.get( "IDXINFO" ) );
         result.put( Record.REPOSITORY_ID, r[1] );
         return result;
@@ -92,21 +92,21 @@ public class RecordExpander
 
     private static Record expandAllGroups( final Map<String, String> raw )
     {
-        final Record result = new Record( Type.ALL_GROUPS, new HashMap<EntryKey, Object>() );
+        final Record result = new Record( Type.ALL_GROUPS, new HashMap<>() );
         putIfNotNullAsStringArray( raw, "allGroupsList", result, Record.ALL_GROUPS );
         return result;
     }
 
     private static Record expandRootGroups( final Map<String, String> raw )
     {
-        final Record result = new Record( Type.ROOT_GROUPS, new HashMap<EntryKey, Object>() );
+        final Record result = new Record( Type.ROOT_GROUPS, new HashMap<>() );
         putIfNotNullAsStringArray( raw, "rootGroupsList", result, Record.ROOT_GROUPS );
         return result;
     }
 
     private static Record expandDeletedArtifact( final Map<String, String> raw )
     {
-        final Record result = new Record( Type.ARTIFACT_REMOVE, new HashMap<EntryKey, Object>() );
+        final Record result = new Record( Type.ARTIFACT_REMOVE, new HashMap<>() );
         putIfNotNullTS( raw, "m", result, Record.REC_MODIFIED );
         if ( raw.containsKey( "del" ) )
         {
@@ -120,7 +120,7 @@ public class RecordExpander
      */
     private static Record expandAddedArtifact( final Map<String, String> raw )
     {
-        final Record result = new Record( Type.ARTIFACT_ADD, new HashMap<EntryKey, Object>() );
+        final Record result = new Record( Type.ARTIFACT_ADD, new HashMap<>() );
 
         // Minimal
         expandUinfo( raw.get( UINFO ), result );
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/Utils.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/Utils.java
index 855104f..e6a9afc 100644
--- a/indexer-reader/src/main/java/org/apache/maven/index/reader/Utils.java
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/Utils.java
@@ -138,7 +138,7 @@ public final class Utils
      */
     public static Record descriptor( final String repoId )
     {
-        HashMap<EntryKey, Object> entries = new HashMap<EntryKey, Object>();
+        HashMap<EntryKey, Object> entries = new HashMap<>();
         entries.put( Record.REPOSITORY_ID, repoId );
         return new Record( Type.DESCRIPTOR, entries );
     }
@@ -148,7 +148,7 @@ public final class Utils
      */
     public static Record allGroups( final Collection<String> allGroups )
     {
-        HashMap<EntryKey, Object> entries = new HashMap<EntryKey, Object>();
+        HashMap<EntryKey, Object> entries = new HashMap<>();
         entries.put( Record.ALL_GROUPS, allGroups.toArray( new String[allGroups.size()] ) );
         return new Record( Type.ALL_GROUPS, entries );
     }
@@ -158,7 +158,7 @@ public final class Utils
      */
     public static Record rootGroups( final Collection<String> rootGroups )
     {
-        HashMap<EntryKey, Object> entries = new HashMap<EntryKey, Object>();
+        HashMap<EntryKey, Object> entries = new HashMap<>();
         entries.put( Record.ROOT_GROUPS, rootGroups.toArray( new String[rootGroups.size()] ) );
         return new Record( Type.ROOT_GROUPS, entries );
     }
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
index d12f96d..6961d9b 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/CachingResourceHandler.java
@@ -102,9 +102,9 @@ public class CachingResourceHandler
             throws IOException
         {
             final Resource remoteResource = remote.locate( name );
-            final WritableResource localResource = local.locate( name );
-            try (final InputStream inputStream = remoteResource.read(); //
-                 final OutputStream outputStream = localResource.write())
+            try ( WritableResource localResource = local.locate( name );
+                  final InputStream inputStream = remoteResource.read();
+                  final OutputStream outputStream = localResource.write() )
             {
                 if ( inputStream != null )
                 {
@@ -119,10 +119,6 @@ public class CachingResourceHandler
                 }
                 return false;
             }
-            finally
-            {
-                localResource.close();
-            }
         }
     }
 
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
index 8fc4c34..39c695c 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/IndexReaderTest.java
@@ -46,64 +46,56 @@ public class IndexReaderTest
 {
   @Test
   public void simple() throws IOException {
-    final IndexReader indexReader = new IndexReader(
-        null,
-        testResourceHandler("simple")
-    );
-    try {
-      assertThat(indexReader.getIndexId(), equalTo("apache-snapshots-local"));
-      assertThat(indexReader.getPublishedTimestamp().getTime(), equalTo(1243533418015L));
-      assertThat(indexReader.isIncremental(), equalTo(false));
-      assertThat(indexReader.getChunkNames(), equalTo(Arrays.asList("nexus-maven-repository-index.gz")));
+    try ( IndexReader indexReader = new IndexReader( null, testResourceHandler( "simple" ) ) )
+    {
+      assertThat( indexReader.getIndexId(), equalTo( "apache-snapshots-local" ) );
+      assertThat( indexReader.getPublishedTimestamp().getTime(), equalTo( 1243533418015L ) );
+      assertThat( indexReader.isIncremental(), equalTo( false ) );
+      assertThat( indexReader.getChunkNames(), equalTo( Arrays.asList( "nexus-maven-repository-index.gz" ) ) );
       int chunks = 0;
       int records = 0;
-      for (ChunkReader chunkReader : indexReader) {
+      for ( ChunkReader chunkReader : indexReader )
+      {
         chunks++;
-        assertThat(chunkReader.getName(), equalTo("nexus-maven-repository-index.gz"));
-        assertThat(chunkReader.getVersion(), equalTo(1));
-        assertThat(chunkReader.getTimestamp().getTime(), equalTo(1243533418015L));
-        for (Record record : transform(chunkReader, expandFunction)) {
+        assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
+        assertThat( chunkReader.getVersion(), equalTo( 1 ) );
+        assertThat( chunkReader.getTimestamp().getTime(), equalTo( 1243533418015L ) );
+        for ( Record record : transform( chunkReader, expandFunction ) )
+        {
           records++;
         }
       }
 
-      assertThat(chunks, equalTo(1));
-      assertThat(records, equalTo(5));
-    }
-    finally {
-      indexReader.close();
+      assertThat( chunks, equalTo( 1 ) );
+      assertThat( records, equalTo( 5 ) );
     }
   }
 
   @Test
   public void simpleWithLocal() throws IOException {
     WritableResourceHandler writableResourceHandler = createWritableResourceHandler();
-    final IndexReader indexReader = new IndexReader(
-        writableResourceHandler,
-        testResourceHandler("simple")
-    );
-    try {
-      assertThat(indexReader.getIndexId(), equalTo("apache-snapshots-local"));
-      assertThat(indexReader.getPublishedTimestamp().getTime(), equalTo(1243533418015L));
-      assertThat(indexReader.isIncremental(), equalTo(false));
-      assertThat(indexReader.getChunkNames(), equalTo(Arrays.asList("nexus-maven-repository-index.gz")));
+    try ( IndexReader indexReader = new IndexReader( writableResourceHandler, testResourceHandler( "simple" ) ) )
+    {
+      assertThat( indexReader.getIndexId(), equalTo( "apache-snapshots-local" ) );
+      assertThat( indexReader.getPublishedTimestamp().getTime(), equalTo( 1243533418015L ) );
+      assertThat( indexReader.isIncremental(), equalTo( false ) );
+      assertThat( indexReader.getChunkNames(), equalTo( Arrays.asList( "nexus-maven-repository-index.gz" ) ) );
       int chunks = 0;
       int records = 0;
-      for (ChunkReader chunkReader : indexReader) {
+      for ( ChunkReader chunkReader : indexReader )
+      {
         chunks++;
-        assertThat(chunkReader.getName(), equalTo("nexus-maven-repository-index.gz"));
-        assertThat(chunkReader.getVersion(), equalTo(1));
-        assertThat(chunkReader.getTimestamp().getTime(), equalTo(1243533418015L));
-        for (Record record : transform(chunkReader, expandFunction)) {
+        assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
+        assertThat( chunkReader.getVersion(), equalTo( 1 ) );
+        assertThat( chunkReader.getTimestamp().getTime(), equalTo( 1243533418015L ) );
+        for ( Record record : transform( chunkReader, expandFunction ) )
+        {
           records++;
         }
       }
 
-      assertThat(chunks, equalTo(1));
-      assertThat(records, equalTo(5));
-    }
-    finally {
-      indexReader.close();
+      assertThat( chunks, equalTo( 1 ) );
+      assertThat( records, equalTo( 5 ) );
     }
 
     assertThat(writableResourceHandler.locate("nexus-maven-repository-index.properties").read(), not(nullValue()));
@@ -135,32 +127,28 @@ public class IndexReaderTest
       }
     }
 
-    final IndexReader indexReader = new IndexReader(
-        null,
-        writableResourceHandler
-    );
-    try {
-      assertThat(indexReader.getIndexId(), equalTo("apache-snapshots-local"));
-      assertThat(indexReader.getPublishedTimestamp().getTime(), equalTo(published.getTime()));
-      assertThat(indexReader.isIncremental(), equalTo(false));
-      assertThat(indexReader.getChunkNames(), equalTo(Arrays.asList("nexus-maven-repository-index.gz")));
+    try ( IndexReader indexReader = new IndexReader( null, writableResourceHandler ) )
+    {
+      assertThat( indexReader.getIndexId(), equalTo( "apache-snapshots-local" ) );
+      assertThat( indexReader.getPublishedTimestamp().getTime(), equalTo( published.getTime() ) );
+      assertThat( indexReader.isIncremental(), equalTo( false ) );
+      assertThat( indexReader.getChunkNames(), equalTo( Arrays.asList( "nexus-maven-repository-index.gz" ) ) );
       int chunks = 0;
       int records = 0;
-      for (ChunkReader chunkReader : indexReader) {
+      for ( ChunkReader chunkReader : indexReader )
+      {
         chunks++;
-        assertThat(chunkReader.getName(), equalTo("nexus-maven-repository-index.gz"));
-        assertThat(chunkReader.getVersion(), equalTo(1));
+        assertThat( chunkReader.getName(), equalTo( "nexus-maven-repository-index.gz" ) );
+        assertThat( chunkReader.getVersion(), equalTo( 1 ) );
         // assertThat(chunkReader.getTimestamp().getTime(), equalTo(1243533418015L));
-        for (Record record : transform(chunkReader, expandFunction)) {
+        for ( Record record : transform( chunkReader, expandFunction ) )
+        {
           records++;
         }
       }
 
-      assertThat(chunks, equalTo(1));
-      assertThat(records, equalTo(5));
-    }
-    finally {
-      indexReader.close();
+      assertThat( chunks, equalTo( 1 ) );
+      assertThat( records, equalTo( 5 ) );
     }
   }
 
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestSupport.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestSupport.java
index 957bf58..f71bb7d 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestSupport.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestSupport.java
@@ -126,7 +126,7 @@ public class TestSupport
     protected Map<Type, List<Record>> loadRecordsByType( final ChunkReader chunkReader )
         throws IOException
     {
-        HashMap<Type, List<Record>> stat = new HashMap<Type, List<Record>>();
+        HashMap<Type, List<Record>> stat = new HashMap<>();
         try
         {
             assertThat( chunkReader.getVersion(), equalTo( 1 ) );
@@ -136,7 +136,7 @@ public class TestSupport
                 final Record record = recordExpander.apply( rec );
                 if ( !stat.containsKey( record.getType() ) )
                 {
-                    stat.put( record.getType(), new ArrayList<Record>() );
+                    stat.put( record.getType(), new ArrayList<>() );
                 }
                 stat.get( record.getType() ).add( record );
             }
@@ -155,7 +155,7 @@ public class TestSupport
     protected Map<Type, Integer> countRecordsByType( final ChunkReader chunkReader )
         throws IOException
     {
-        HashMap<Type, Integer> stat = new HashMap<Type, Integer>();
+        HashMap<Type, Integer> stat = new HashMap<>();
         try
         {
             assertThat( chunkReader.getVersion(), equalTo( 1 ) );
@@ -195,9 +195,9 @@ public class TestSupport
             String[] list = file.list();
             if ( list != null )
             {
-                for ( int i = 0; i < list.length; i++ )
+                for ( String s : list )
                 {
-                    File entry = new File( file, list[i] );
+                    File entry = new File( file, s );
                     if ( !delete( entry ) )
                     {
                         return false;
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
index 348d199..0e68cac 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/TestUtils.java
@@ -72,8 +72,8 @@ public final class TestUtils
   public static Iterable<Record> decorate(final Iterable<Record> iterable,
                                           final String repoId)
   {
-    final TreeSet<String> allGroupsSet = new TreeSet<String>();
-    final TreeSet<String> rootGroupsSet = new TreeSet<String>();
+    final TreeSet<String> allGroupsSet = new TreeSet<>();
+    final TreeSet<String> rootGroupsSet = new TreeSet<>();
     return transform(
         concat(
             singletonList(descriptor(repoId)),
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
index 7d48154..a099a84 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/TransformTest.java
@@ -82,7 +82,7 @@ public class TransformTest
   }
 
   private Map<EntryKey, Object> artifactMap(final String groupId) {
-    final HashMap<EntryKey, Object> result = new HashMap<EntryKey, Object>();
+    final HashMap<EntryKey, Object> result = new HashMap<>();
     result.put(Record.GROUP_ID, groupId);
     result.put(Record.ARTIFACT_ID, "artifact");
     result.put(Record.VERSION, "1.0");