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 20:02:58 UTC

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

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 e6b11f24afc8d18843c04dff76dbd903ee76b43b
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     | 18 +----
 .../maven/index/packer/DefaultIndexPacker.java     |  4 +-
 .../apache/maven/index/packer/DigesterUtils.java   | 12 +--
 .../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, 228 insertions(+), 365 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..a99d140 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
@@ -20,7 +20,6 @@ package org.apache.maven.index.incremental;
  */
 
 import java.io.File;
-import java.io.FilenameFilter;
 import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -229,22 +228,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..115bdf8 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
@@ -25,7 +25,7 @@ import java.io.FileInputStream;
 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;
 
@@ -47,7 +47,7 @@ public class DigesterUtils
     private static String getDigest( String alg, InputStream is )
         throws NoSuchAlgorithmException
     {
-        String result = null;
+        String result;
 
         try
         {
@@ -98,11 +98,11 @@ public class DigesterUtils
     {
         try
         {
-            InputStream fis = new ByteArrayInputStream( content.getBytes( "UTF-8" ) );
+            InputStream fis = new ByteArrayInputStream( content.getBytes( StandardCharsets.UTF_8 ) );
 
             return getDigest( "SHA1", fis );
         }
-        catch ( NoSuchAlgorithmException | UnsupportedEncodingException e )
+        catch ( NoSuchAlgorithmException e )
         {
             // will not happen
             return null;
@@ -160,11 +160,11 @@ public class DigesterUtils
     {
         try
         {
-            InputStream fis = new ByteArrayInputStream( content.getBytes( "UTF-8" ) );
+            InputStream fis = new ByteArrayInputStream( content.getBytes( StandardCharsets.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 {