You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2017/11/21 19:53:46 UTC

archiva git commit: Updating indexmanager interface and completing test case

Repository: archiva
Updated Branches:
  refs/heads/master 21f31d04c -> 7543d8149


Updating indexmanager interface and completing test case


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/7543d814
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/7543d814
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/7543d814

Branch: refs/heads/master
Commit: 7543d8149c50c00f7a5f8c849dbe23d40435905e
Parents: 21f31d0
Author: Martin Stockhammer <ma...@ars.de>
Authored: Tue Nov 21 20:52:43 2017 +0100
Committer: Martin Stockhammer <ma...@ars.de>
Committed: Tue Nov 21 20:52:43 2017 +0100

----------------------------------------------------------------------
 .../archiva-base/archiva-maven2-indexer/pom.xml |  6 ++++
 .../indexer/maven/MavenIndexContext.java        |  5 +++
 .../indexer/maven/MavenIndexManager.java        | 11 +++---
 .../indexer/maven/MavenIndexManagerTest.java    | 35 ++++++++++++++++++++
 .../src/test/resources/spring-context.xml       |  3 ++
 .../archiva/indexer/ArchivaIndexManager.java    |  3 +-
 .../archiva/indexer/ArchivaIndexingContext.java |  7 ++++
 .../archiva/indexer/GenericIndexManager.java    |  2 +-
 8 files changed, 65 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml b/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
index 2712e3a..e51f824 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/pom.xml
@@ -175,6 +175,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-file</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-http-lightweight</artifactId>
       <scope>provided</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
index 30cc727..4ee8079 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexContext.java
@@ -85,6 +85,11 @@ public class MavenIndexContext implements ArchivaIndexingContext {
     }
 
     @Override
+    public void close() throws IOException {
+        delegate.close(false);
+    }
+
+    @Override
     public void purge() throws IOException {
         delegate.purge();
     }

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java
index d54f868..00e67e4 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/main/java/org/apache/archiva/indexer/maven/MavenIndexManager.java
@@ -242,13 +242,16 @@ public class MavenIndexManager implements ArchivaIndexManager
     }
 
     @Override
-    public void update( final ArchivaIndexingContext context, final URI remoteUpdateUri, final boolean fullUpdate ) throws IndexUpdateFailedException
+    public void update(final ArchivaIndexingContext context, final boolean fullUpdate) throws IndexUpdateFailedException
     {
         log.info( "start download remote index for remote repository {}", context.getRepository( ).getId( ) );
-
-        if ( !( context.getRepository( ) instanceof RemoteRepository ) )
+        URI remoteUpdateUri;
+        if ( !( context.getRepository( ) instanceof RemoteRepository ) || !(context.getRepository().supportsFeature(RemoteIndexFeature.class)) )
         {
-            throw new IndexUpdateFailedException( "The context is not associated to a remote repository " + context.getId( ) );
+            throw new IndexUpdateFailedException( "The context is not associated to a remote repository with remote index " + context.getId( ) );
+        } else {
+            RemoteIndexFeature rif = context.getRepository().getFeature(RemoteIndexFeature.class).get();
+            remoteUpdateUri = context.getRepository().getLocation().resolve(rif.getIndexUri());
         }
         final RemoteRepository remoteRepository = (RemoteRepository) context.getRepository( );
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java
index 96876ad..53cdaad 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java
@@ -24,7 +24,9 @@ import org.apache.archiva.indexer.ArchivaIndexingContext;
 import org.apache.archiva.indexer.IndexCreationFailedException;
 import org.apache.archiva.repository.RepositoryType;
 import org.apache.archiva.repository.features.IndexCreationFeature;
+import org.apache.archiva.repository.features.RemoteIndexFeature;
 import org.apache.archiva.repository.maven2.MavenManagedRepository;
+import org.apache.archiva.repository.maven2.MavenRemoteRepository;
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.apache.maven.index.MAVEN;
 import org.apache.maven.index.QueryCreator;
@@ -59,6 +61,7 @@ public class MavenIndexManagerTest {
     private Path indexPath;
     private MavenManagedRepository repository;
     private ArchivaIndexingContext ctx;
+    private MavenRemoteRepository repositoryRemote;
 
     @Inject
     MavenIndexManager mavenIndexManager;
@@ -84,6 +87,19 @@ public class MavenIndexManagerTest {
 
     @Test
     public void pack() throws Exception {
+        createTestContext();
+        Path destDir = repository.getLocalPath().resolve("org/apache/archiva/archiva-webapp/1.0");
+        Path srcDir = Paths.get("src/test/maven-search-test-repo/org/apache/archiva/archiva-webapp/1.0");
+        org.apache.commons.io.FileUtils.copyDirectory(srcDir.toFile(),destDir.toFile());
+        mavenIndexManager.scan(ctx);
+        mavenIndexManager.pack(ctx);
+        assertTrue(Files.list(indexPath).filter(path -> {
+            try {
+                return path.getFileName().toString().endsWith(".gz") && Files.size(path) > 0;
+            } catch (IOException e) {
+                return false;
+            }
+        }).findAny().isPresent());
     }
 
     @Test
@@ -101,8 +117,16 @@ public class MavenIndexManagerTest {
         assertEquals(4, mvnCtx.acquireIndexSearcher().count(q));
     }
 
+    /*
+     * Does only a index update via file uri, no HTTP uri
+     */
     @Test
     public void update() throws Exception {
+        createTestContext();
+        mavenIndexManager.pack(ctx);
+        ctx.close(false);
+        createTestContextForRemote();
+        mavenIndexManager.update(ctx, true);
     }
 
     @Test
@@ -162,6 +186,17 @@ public class MavenIndexManagerTest {
         return ctx;
     }
 
+    private ArchivaIndexingContext createTestContextForRemote() throws URISyntaxException, IndexCreationFailedException, IOException {
+        indexPath = Paths.get("target/repositories/test-repo/.index-test");
+        Path repoPath = Paths.get("target/repositories").toAbsolutePath();
+        repositoryRemote = new MavenRemoteRepository("test-repo", "Test Repo", repoPath);
+        repositoryRemote.setLocation(repoPath.resolve("test-repo").toUri());
+        RemoteIndexFeature icf = repositoryRemote.getFeature(RemoteIndexFeature.class).get();
+        icf.setIndexUri(new URI(".index-test"));
+        ctx = mavenIndexManager.createContext(repositoryRemote);
+        return ctx;
+    }
+
     @Test
     public void createContext() throws Exception {
         ArchivaIndexingContext ctx = createTestContext();

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
index 13ef95f..fbf53be 100644
--- a/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
+++ b/archiva-modules/archiva-base/archiva-maven2-indexer/src/test/resources/spring-context.xml
@@ -30,6 +30,9 @@
   <context:annotation-config/>
   <context:component-scan base-package="org.apache.archiva.indexer.maven" />
 
+
+  <bean name="wagon#file" scope="prototype" class="org.apache.maven.wagon.providers.file.FileWagon"/>
+
   <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
     <property name="properties">
       <props>

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexManager.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexManager.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexManager.java
index 5e870d0..fb34eb2 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexManager.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexManager.java
@@ -43,10 +43,9 @@ public interface ArchivaIndexManager {
     /**
      * Updates the index from the remote url.
      * @param context
-     * @param remoteUpdateUri
      * @param fullUpdate
      */
-    void update(ArchivaIndexingContext context, URI remoteUpdateUri, boolean fullUpdate) throws IndexUpdateFailedException;
+    void update(ArchivaIndexingContext context, boolean fullUpdate) throws IndexUpdateFailedException;
 
     /**
      * Adds a list of artifacts to the index.

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexingContext.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexingContext.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexingContext.java
index 7f31b04..95555a3 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexingContext.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/ArchivaIndexingContext.java
@@ -84,6 +84,13 @@ public interface ArchivaIndexingContext {
     void close(boolean deleteFiles) throws IOException;
 
     /**
+     * Closes the context without deleting the files.
+     * Is identical to <code>close(false)</code>
+     * @throws IOException
+     */
+    void close() throws IOException;
+
+    /**
      * Removes all entries from the index. After this method finished,
      * isEmpty() should return true.
      * @throws IOException

http://git-wip-us.apache.org/repos/asf/archiva/blob/7543d814/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/GenericIndexManager.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/GenericIndexManager.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/GenericIndexManager.java
index 0206977..d0f8034 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/GenericIndexManager.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/indexer/GenericIndexManager.java
@@ -40,7 +40,7 @@ public class GenericIndexManager implements ArchivaIndexManager {
     }
 
     @Override
-    public void update(ArchivaIndexingContext context, URI remoteUpdateUri, boolean fullUpdate) {
+    public void update(ArchivaIndexingContext context, boolean fullUpdate) {
 
     }