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:57 UTC

[maven-indexer] branch MINDEXER-116 updated (03ba810 -> e6b11f2)

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.


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

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (03ba810)
            \
             N -- N -- N   refs/heads/MINDEXER-116 (e6b11f2)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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


Summary of changes:
 .../apache/maven/index/incremental/DefaultIncrementalHandler.java  | 1 -
 .../src/main/java/org/apache/maven/index/packer/DigesterUtils.java | 7 ++-----
 2 files changed, 2 insertions(+), 6 deletions(-)


[maven-indexer] 01/01: [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 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 {