You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2014/07/08 10:56:18 UTC

[3/6] git commit: - Replaced all the @Requirements with finals and constructors. - Optimized the dependencies.

- Replaced all the @Requirements with finals and constructors.
- Optimized the dependencies.


Project: http://git-wip-us.apache.org/repos/asf/maven-indexer/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-indexer/commit/22c618d7
Tree: http://git-wip-us.apache.org/repos/asf/maven-indexer/tree/22c618d7
Diff: http://git-wip-us.apache.org/repos/asf/maven-indexer/diff/22c618d7

Branch: refs/heads/master
Commit: 22c618d7574ee6acec7fc042f386dab6ec2d1c86
Parents: 4620267
Author: Martin Todorov <ca...@gmail.com>
Authored: Tue Jul 1 19:20:44 2014 +0100
Committer: Martin Todorov <ca...@gmail.com>
Committed: Tue Jul 1 19:20:44 2014 +0100

----------------------------------------------------------------------
 .../apache/maven/index/cli/NexusIndexerCli.java | 11 ++++
 .../index/cli/AbstractNexusIndexerCliTest.java  |  9 +++
 .../index/DefaultArtifactContextProducer.java   | 13 +++-
 .../org/apache/maven/index/DefaultIndexer.java  | 23 ++++---
 .../apache/maven/index/DefaultNexusIndexer.java | 27 +++++---
 .../org/apache/maven/index/DefaultScanner.java  | 13 +++-
 .../archetype/AbstractArchetypeDataSource.java  | 12 +++-
 .../archetype/NexusArchetypeDataSource.java     | 16 ++++-
 .../maven/index/packer/DefaultIndexPacker.java  | 12 +++-
 .../index/treeview/DefaultIndexTreeView.java    | 13 +++-
 .../index/updater/DefaultIndexUpdater.java      | 19 +++---
 .../maven/index/AbstractIndexCreatorHelper.java |  4 +-
 .../apache/maven/index/AbstractTestSupport.java | 38 ++++++++++++
 .../maven/index/SearchWithAnEmptyIndexTest.java |  3 +-
 .../JarFileContentsIndexCreatorTest.java        |  4 +-
 ...MavenPluginArtifactInfoIndexCreatorTest.java |  5 +-
 .../creator/OsgiArtifactIndexCreatorTest.java   |  4 +-
 .../updater/DefaultIndexUpdaterEmbeddingIT.java | 65 ++++++++++++--------
 .../index/util/IndexCreatorSorterTest.java      |  4 +-
 19 files changed, 211 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
----------------------------------------------------------------------
diff --git a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
index 1f5e061..2dbbdc9 100644
--- a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
+++ b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
@@ -46,6 +46,9 @@ import org.apache.maven.index.packer.IndexPacker;
 import org.apache.maven.index.packer.IndexPackingRequest;
 import org.apache.maven.index.packer.IndexPackingRequest.IndexFormat;
 import org.apache.maven.index.updater.DefaultIndexUpdater;
+import org.codehaus.plexus.DefaultContainerConfiguration;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.ClassWorld;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -240,6 +243,14 @@ public class NexusIndexerCli
     public void invokePlexusComponent( final CommandLine cli, PlexusContainer plexus )
         throws Exception
     {
+        final DefaultContainerConfiguration configuration = new DefaultContainerConfiguration();
+        configuration.setClassWorld( ( (DefaultPlexusContainer) plexus ).getClassWorld() );
+        configuration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
+
+        // replace plexus, as PlexusCli is blunt, does not allow to modify configuration
+        // TODO: get rid of PlexusCli use!
+        plexus = new DefaultPlexusContainer( configuration );
+
         if ( cli.hasOption( QUIET ) )
         {
             setLogLevel( plexus, Logger.LEVEL_DISABLED );

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-cli/src/test/java/org/apache/maven/index/cli/AbstractNexusIndexerCliTest.java
----------------------------------------------------------------------
diff --git a/indexer-cli/src/test/java/org/apache/maven/index/cli/AbstractNexusIndexerCliTest.java b/indexer-cli/src/test/java/org/apache/maven/index/cli/AbstractNexusIndexerCliTest.java
index 112318e..63b0e26 100644
--- a/indexer-cli/src/test/java/org/apache/maven/index/cli/AbstractNexusIndexerCliTest.java
+++ b/indexer-cli/src/test/java/org/apache/maven/index/cli/AbstractNexusIndexerCliTest.java
@@ -32,6 +32,8 @@ import org.apache.maven.index.NexusIndexer;
 import org.apache.maven.index.SearchType;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexingContext;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 import org.junit.Ignore;
@@ -63,6 +65,13 @@ public abstract class AbstractNexusIndexerCliTest
     protected OutputStream out;
 
     @Override
+    protected void customizeContainerConfiguration( final ContainerConfiguration containerConfiguration )
+    {
+        super.customizeContainerConfiguration( containerConfiguration );
+        containerConfiguration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
+    }
+
+    @Override
     protected void setUp()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
----------------------------------------------------------------------
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 2806b60..35886cb 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
@@ -19,6 +19,7 @@ package org.apache.maven.index;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.File;
@@ -31,7 +32,6 @@ import org.apache.maven.index.locator.GavHelpedLocator;
 import org.apache.maven.index.locator.Locator;
 import org.apache.maven.index.locator.MetadataLocator;
 import org.apache.maven.index.locator.PomLocator;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -45,13 +45,20 @@ import org.codehaus.plexus.util.StringUtils;
 public class DefaultArtifactContextProducer
     implements ArtifactContextProducer
 {
-    @Requirement
-    private ArtifactPackagingMapper mapper;
+
+    private final ArtifactPackagingMapper mapper;
 
     private GavHelpedLocator pl = new PomLocator();
 
     private Locator ml = new MetadataLocator();
 
+
+    @Inject
+    public DefaultArtifactContextProducer( ArtifactPackagingMapper mapper )
+    {
+        this.mapper = mapper;
+    }
+
     /**
      * Get ArtifactContext for given pom or artifact (jar, war, etc). A file can be
      */

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
----------------------------------------------------------------------
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 46a3c9d..03999bc 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
@@ -19,6 +19,7 @@ package org.apache.maven.index;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.File;
@@ -41,7 +42,6 @@ import org.apache.maven.index.context.MergedIndexingContext;
 import org.apache.maven.index.expr.SearchExpression;
 import org.apache.maven.index.expr.SourcedSearchExpression;
 import org.apache.maven.index.util.IndexCreatorSorter;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.IOUtil;
 
 /**
@@ -54,14 +54,23 @@ import org.codehaus.plexus.util.IOUtil;
 public class DefaultIndexer
     implements Indexer
 {
-    @Requirement
-    private SearchEngine searcher;
 
-    @Requirement
-    private IndexerEngine indexerEngine;
+    private final SearchEngine searcher;
 
-    @Requirement
-    private QueryCreator queryCreator;
+    private final IndexerEngine indexerEngine;
+
+    private final QueryCreator queryCreator;
+
+
+    @Inject
+    public DefaultIndexer( SearchEngine searcher,
+                           IndexerEngine indexerEngine,
+                           QueryCreator queryCreator )
+    {
+        this.searcher = searcher;
+        this.indexerEngine = indexerEngine;
+        this.queryCreator = queryCreator;
+    }
 
     // ----------------------------------------------------------------------------
     // Contexts

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
----------------------------------------------------------------------
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 88f9362..0d976a1 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
@@ -19,6 +19,7 @@ package org.apache.maven.index;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.File;
@@ -43,7 +44,6 @@ import org.apache.maven.index.context.StaticContextMemberProvider;
 import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
 import org.apache.maven.index.expr.SearchExpression;
 import org.apache.maven.index.util.IndexCreatorSorter;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 
 /**
@@ -63,20 +63,29 @@ public class DefaultNexusIndexer
     implements NexusIndexer
 {
 
-    @Requirement
-    private Indexer indexer;
+    private final Indexer indexer;
 
-    @Requirement
-    private Scanner scanner;
+    private final Scanner scanner;
 
-    @Requirement
-    private IndexerEngine indexerEngine;
+    private final IndexerEngine indexerEngine;
 
-    @Requirement
-    private QueryCreator queryCreator;
+    private final QueryCreator queryCreator;
 
     private final Map<String, IndexingContext> indexingContexts = new ConcurrentHashMap<String, IndexingContext>();
 
+
+    @Inject
+    public DefaultNexusIndexer( Indexer indexer,
+                                Scanner scanner,
+                                IndexerEngine indexerEngine,
+                                QueryCreator queryCreator )
+    {
+        this.indexer = indexer;
+        this.scanner = scanner;
+        this.indexerEngine = indexerEngine;
+        this.queryCreator = queryCreator;
+    }
+
     // ----------------------------------------------------------------------------
     // Contexts
     // ----------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
index 345f312..58f0973 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultScanner.java
@@ -19,6 +19,7 @@ package org.apache.maven.index;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.File;
@@ -28,7 +29,6 @@ import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.maven.index.context.IndexingContext;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * A default repository scanner for Maven 2 repository.
@@ -41,8 +41,15 @@ import org.codehaus.plexus.component.annotations.Requirement;
 public class DefaultScanner
     implements Scanner
 {
-    @Requirement
-    private ArtifactContextProducer artifactContextProducer;
+
+    private final ArtifactContextProducer artifactContextProducer;
+
+
+    @Inject
+    public DefaultScanner( ArtifactContextProducer artifactContextProducer )
+    {
+        this.artifactContextProducer = artifactContextProducer;
+    }
 
     public ScanningResult scan( ScanningRequest request )
     {

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java b/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
index 8450bc1..f3f7bd5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/archetype/AbstractArchetypeDataSource.java
@@ -19,6 +19,7 @@ package org.apache.maven.index.archetype;
  * under the License.
  */
 
+import javax.inject.Inject;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -36,7 +37,6 @@ import org.apache.maven.index.Indexer;
 import org.apache.maven.index.MAVEN;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.expr.SourcedSearchExpression;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,8 +51,14 @@ public abstract class AbstractArchetypeDataSource
         return logger;
     }
 
-    @Requirement
-    private Indexer indexer;
+    private final Indexer indexer;
+
+
+    @Inject
+    protected AbstractArchetypeDataSource( Indexer indexer )
+    {
+        this.indexer = indexer;
+    }
 
     public ArchetypeCatalog getArchetypeCatalog( final Properties properties )
         throws ArchetypeDataSourceException

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/archetype/NexusArchetypeDataSource.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/main/java/org/apache/maven/index/archetype/NexusArchetypeDataSource.java b/indexer-core/src/main/java/org/apache/maven/index/archetype/NexusArchetypeDataSource.java
index ebdc85d..60e605a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/archetype/NexusArchetypeDataSource.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/archetype/NexusArchetypeDataSource.java
@@ -19,14 +19,15 @@ package org.apache.maven.index.archetype;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.maven.index.Indexer;
 import org.apache.maven.index.NexusIndexer;
 import org.apache.maven.index.context.IndexingContext;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * Nexus Archetype Data Source.
@@ -40,8 +41,17 @@ import org.codehaus.plexus.component.annotations.Requirement;
 public class NexusArchetypeDataSource
     extends AbstractArchetypeDataSource
 {
-    @Requirement
-    private NexusIndexer nexusIndexer;
+
+    private final NexusIndexer nexusIndexer;
+
+
+    @Inject
+    public NexusArchetypeDataSource( Indexer indexer,
+                                     NexusIndexer nexusIndexer )
+    {
+        super( indexer );
+        this.nexusIndexer = nexusIndexer;
+    }
 
     @Override
     protected List<IndexingContext> getIndexingContexts()

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
----------------------------------------------------------------------
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 0b70324..5d30b7e 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
@@ -19,6 +19,7 @@ package org.apache.maven.index.packer;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.BufferedOutputStream;
@@ -59,7 +60,6 @@ import org.apache.maven.index.context.NexusLegacyAnalyzer;
 import org.apache.maven.index.creator.LegacyDocumentUpdater;
 import org.apache.maven.index.incremental.IncrementalHandler;
 import org.apache.maven.index.updater.IndexDataWriter;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.slf4j.Logger;
@@ -84,8 +84,14 @@ public class DefaultIndexPacker
         return logger;
     }
 
-    @Requirement( role = IncrementalHandler.class )
-    IncrementalHandler incrementalHandler;
+    private final IncrementalHandler incrementalHandler;
+
+
+    @Inject
+    public DefaultIndexPacker( IncrementalHandler incrementalHandler )
+    {
+        this.incrementalHandler = incrementalHandler;
+    }
 
     public void packIndex( IndexPackingRequest request )
         throws IOException, IllegalArgumentException

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
----------------------------------------------------------------------
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 649c161..ee1fc77 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
@@ -19,6 +19,7 @@ package org.apache.maven.index.treeview;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.IOException;
@@ -38,7 +39,6 @@ import org.apache.maven.index.IteratorSearchResponse;
 import org.apache.maven.index.MAVEN;
 import org.apache.maven.index.expr.SourcedSearchExpression;
 import org.apache.maven.index.treeview.TreeNode.Type;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.StringUtils;
 
 @Singleton
@@ -46,8 +46,15 @@ import org.codehaus.plexus.util.StringUtils;
 public class DefaultIndexTreeView
     implements IndexTreeView
 {
-    @Requirement
-    private Indexer indexer;
+
+    private final Indexer indexer;
+
+
+    @Inject
+    public DefaultIndexTreeView( Indexer indexer )
+    {
+        this.indexer = indexer;
+    }
 
     protected Indexer getIndexer()
     {

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
----------------------------------------------------------------------
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 6488847..e659e99 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
@@ -19,6 +19,7 @@ package org.apache.maven.index.updater;
  * under the License.
  */
 
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 import java.io.BufferedInputStream;
@@ -69,7 +70,6 @@ import org.apache.maven.index.fs.Lock;
 import org.apache.maven.index.fs.Locker;
 import org.apache.maven.index.incremental.IncrementalHandler;
 import org.apache.maven.index.updater.IndexDataReader.IndexDataReadResult;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.io.RawInputStreamFacade;
@@ -95,21 +95,16 @@ public class DefaultIndexUpdater
         return logger;
     }
 
-    @Requirement( role = IncrementalHandler.class )
-    IncrementalHandler incrementalHandler;
+    private final IncrementalHandler incrementalHandler;
 
-    @Requirement( role = IndexUpdateSideEffect.class )
-    private List<IndexUpdateSideEffect> sideEffects;
+    private final List<IndexUpdateSideEffect> sideEffects;
 
-    public DefaultIndexUpdater( final IncrementalHandler handler, final List<IndexUpdateSideEffect> mySideeffects )
-    {
-        incrementalHandler = handler;
-        sideEffects = mySideeffects;
-    }
 
-    public DefaultIndexUpdater()
+    @Inject
+    public DefaultIndexUpdater( final IncrementalHandler incrementalHandler, final List<IndexUpdateSideEffect> sideEffects )
     {
-
+        this.incrementalHandler = incrementalHandler;
+        this.sideEffects = sideEffects;
     }
 
     public IndexUpdateResult fetchAndUpdateIndex( final IndexUpdateRequest updateRequest )

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java b/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
index 6d55134..6de6441 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/AbstractIndexCreatorHelper.java
@@ -25,17 +25,15 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-import org.apache.maven.index.context.DefaultIndexingContext;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.creator.JarFileContentsIndexCreator;
 import org.apache.maven.index.creator.MavenArchetypeArtifactInfoIndexCreator;
 import org.apache.maven.index.creator.MavenPluginArtifactInfoIndexCreator;
 import org.apache.maven.index.creator.MinimalArtifactInfoIndexCreator;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
 public class AbstractIndexCreatorHelper
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     public List<IndexCreator> DEFAULT_CREATORS;
 

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/AbstractTestSupport.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/AbstractTestSupport.java b/indexer-core/src/test/java/org/apache/maven/index/AbstractTestSupport.java
new file mode 100644
index 0000000..8ea204d
--- /dev/null
+++ b/indexer-core/src/test/java/org/apache/maven/index/AbstractTestSupport.java
@@ -0,0 +1,38 @@
+package org.apache.maven.index;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0    
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusTestCase;
+
+/**
+ * @author cstamas
+ */
+public class AbstractTestSupport
+    extends PlexusTestCase
+{
+    @Override
+    protected void customizeContainerConfiguration( final ContainerConfiguration containerConfiguration )
+    {
+        super.customizeContainerConfiguration( containerConfiguration );
+        containerConfiguration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
index 12642eb..55c3ad2 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
@@ -26,7 +26,6 @@ import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.expr.StringSearchExpression;
 import org.apache.maven.index.packer.IndexPacker;
 import org.apache.maven.index.packer.IndexPackingRequest;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -38,7 +37,7 @@ import java.util.List;
  * @author Olivier Lamy
  */
 public class SearchWithAnEmptyIndexTest
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     protected List<IndexCreator> indexCreators;
 

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/creator/JarFileContentsIndexCreatorTest.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/creator/JarFileContentsIndexCreatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/creator/JarFileContentsIndexCreatorTest.java
index 304b21f..a0ef5b8 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/creator/JarFileContentsIndexCreatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/creator/JarFileContentsIndexCreatorTest.java
@@ -24,13 +24,13 @@ import java.io.File;
 import org.apache.maven.index.ArtifactContext;
 import org.apache.maven.index.ArtifactInfo;
 import org.apache.maven.index.context.IndexCreator;
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.index.AbstractTestSupport;
 
 /**
  * @author Alin Dreghiciu
  */
 public class JarFileContentsIndexCreatorTest
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     protected IndexCreator indexCreator;
 

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
index 49656c2..a149d45 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreatorTest.java
@@ -26,14 +26,13 @@ import java.util.List;
 import org.apache.maven.index.ArtifactContext;
 import org.apache.maven.index.ArtifactInfo;
 import org.apache.maven.index.context.IndexCreator;
-import org.apache.maven.index.creator.MavenPluginArtifactInfoIndexCreator;
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.index.AbstractTestSupport;
 
 /**
  * @author juven
  */
 public class MavenPluginArtifactInfoIndexCreatorTest
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     protected IndexCreator indexCreator;
 

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
----------------------------------------------------------------------
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 d5bec36..6965cd3 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
@@ -33,7 +33,7 @@ import org.apache.maven.index.OSGI;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.expr.StringSearchExpression;
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.index.AbstractTestSupport;
 import org.codehaus.plexus.util.FileUtils;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
@@ -42,7 +42,7 @@ import static org.junit.Assert.assertThat;
  * @author Olivier Lamy
  */
 public class OsgiArtifactIndexCreatorTest
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     protected IndexCreator indexCreator;
 

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
index bac31d3..602758c 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterEmbeddingIT.java
@@ -34,7 +34,9 @@ import org.apache.maven.index.updater.fixtures.ServerTestFixture;
 import org.apache.maven.index.updater.fixtures.TransferListenerFixture;
 import org.apache.maven.wagon.authentication.AuthenticationInfo;
 import org.apache.maven.wagon.events.TransferEvent;
+import org.codehaus.plexus.DefaultContainerConfiguration;
 import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.util.FileUtils;
@@ -52,6 +54,45 @@ public class DefaultIndexUpdaterEmbeddingIT
 
     private WagonHelper wagonHelper;
 
+    @Override
+    public void setUp()
+        throws Exception
+    {
+        // FIXME: Try to detect the port from the system environment.
+        int port = -1;
+        String portStr = System.getProperty( "index-server" );
+        if ( portStr != null )
+        {
+            port = Integer.parseInt( portStr );
+        }
+
+        if ( port < 1024 )
+        {
+            System.out.println( "Using default port: 8080" );
+            port = 8080;
+        }
+
+        baseUrl = "http://127.0.0.1:" + port + "/";
+
+        server = new ServerTestFixture( port );
+        final DefaultContainerConfiguration configuration = new DefaultContainerConfiguration();
+        configuration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
+        container = new DefaultPlexusContainer(configuration);
+
+        updater = container.lookup( IndexUpdater.class, "default" );
+
+        wagonHelper = new WagonHelper( container );
+    }
+
+    @Override
+    public void tearDown()
+        throws Exception
+    {
+        container.release( updater );
+        container.dispose();
+        server.stop();
+    }
+
     public void testBasicIndexRetrieval()
         throws IOException, UnsupportedExistingLuceneIndexException, ComponentLookupException
     {
@@ -425,28 +466,4 @@ public class DefaultIndexUpdaterEmbeddingIT
         return new DefaultIndexingContext( repositoryId, repositoryId, basedir, basedir, baseUrl, baseUrl, creators,
             true );
     }
-
-    @Override
-    public void setUp()
-        throws Exception
-    {
-
-        server = new ServerTestFixture( 0 );
-        container = new DefaultPlexusContainer();
-
-        baseUrl = "http://127.0.0.1:" + server.getPort() + "/";
-
-        updater = container.lookup( IndexUpdater.class, "default" );
-
-        wagonHelper = new WagonHelper( container );
-    }
-
-    @Override
-    public void tearDown()
-        throws Exception
-    {
-        container.release( updater );
-        container.dispose();
-        server.stop();
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-indexer/blob/22c618d7/indexer-core/src/test/java/org/apache/maven/index/util/IndexCreatorSorterTest.java
----------------------------------------------------------------------
diff --git a/indexer-core/src/test/java/org/apache/maven/index/util/IndexCreatorSorterTest.java b/indexer-core/src/test/java/org/apache/maven/index/util/IndexCreatorSorterTest.java
index 8dd1e9a..4ac1eeb 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/util/IndexCreatorSorterTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/util/IndexCreatorSorterTest.java
@@ -24,11 +24,11 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.maven.index.context.IndexCreator;
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.index.AbstractTestSupport;
 import org.junit.Assert;
 
 public class IndexCreatorSorterTest
-    extends PlexusTestCase
+    extends AbstractTestSupport
 {
     public void testLookupList()
         throws Exception