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 2018/03/29 21:48:21 UTC

[09/10] archiva git commit: Adding packingIndexDir and event

Adding packingIndexDir and event


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

Branch: refs/heads/master
Commit: f18aa86c68f475c5932d818446f6dec644be635b
Parents: 8b79055
Author: Martin Stockhammer <ma...@ars.de>
Authored: Thu Mar 29 23:46:16 2018 +0200
Committer: Martin Stockhammer <ma...@ars.de>
Committed: Thu Mar 29 23:46:51 2018 +0200

----------------------------------------------------------------------
 .../repository/features/IndexCreationEvent.java | 16 +++-
 .../features/IndexCreationFeature.java          | 85 +++++++++++++++++---
 2 files changed, 90 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/f18aa86c/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationEvent.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationEvent.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationEvent.java
index 4c9dc8e..49a3d44 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationEvent.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationEvent.java
@@ -27,10 +27,22 @@ import java.net.URI;
 public class IndexCreationEvent extends RepositoryEvent<URI> {
 
     public enum Index implements EventType {
-        URI_CHANGE
+        INDEX_URI_CHANGE, PACKED_INDEX_URI_CHANGE
     }
 
     IndexCreationEvent(Repository repo, URI oldValue, URI value) {
-        super(Index.URI_CHANGE, repo, oldValue, value);
+        super(Index.INDEX_URI_CHANGE, repo, oldValue, value);
+    }
+
+    IndexCreationEvent(Index type, Repository repo, URI oldValue, URI value) {
+        super(type, repo, oldValue, value);
+    }
+
+    public static final IndexCreationEvent indexUriChange(Repository repo, URI oldValue, URI newValue) {
+        return new IndexCreationEvent(Index.INDEX_URI_CHANGE, repo, oldValue, newValue);
+    }
+
+    public static final IndexCreationEvent packedIndexUriChange(Repository repo, URI oldValue, URI newValue) {
+        return new IndexCreationEvent(Index.PACKED_INDEX_URI_CHANGE, repo, oldValue, newValue);
     }
 }

http://git-wip-us.apache.org/repos/asf/archiva/blob/f18aa86c/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationFeature.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationFeature.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationFeature.java
index 0aa44a2..6289cc6 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationFeature.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/features/IndexCreationFeature.java
@@ -38,31 +38,42 @@ import java.util.List;
  */
 public class IndexCreationFeature extends AbstractFeature implements RepositoryFeature<IndexCreationFeature>{
 
+    public static final String DEFAULT_INDEX_PATH = ".indexer";
+    public static final String DEFAULT_PACKED_INDEX_PATH = ".index";
 
     private boolean skipPackedIndexCreation = false;
 
     private URI indexPath;
 
+    private URI packedIndexPath;
+
     private Path localIndexPath;
 
+    private Path localPackedIndexPath;
+
     private Repository repo;
 
     public IndexCreationFeature(Repository repoId, RepositoryEventListener listener) {
         super(listener);
         this.repo = repoId;
-        try
-        {
-            setIndexPath(new URI(".indexer"));
-        }
-        catch ( URISyntaxException e )
-        {
-            // This may not happen.
-            e.printStackTrace( );
+        try {
+            this.indexPath = new URI(DEFAULT_INDEX_PATH);
+            this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
+        } catch (URISyntaxException e) {
+            // Does not happen
+            e.printStackTrace();
         }
     }
 
     public IndexCreationFeature(boolean skipPackedIndexCreation) {
         this.skipPackedIndexCreation = skipPackedIndexCreation;
+        try {
+            this.indexPath = new URI(DEFAULT_INDEX_PATH);
+            this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
+        } catch (URISyntaxException e) {
+            // Does not happen
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -104,7 +115,7 @@ public class IndexCreationFeature extends AbstractFeature implements RepositoryF
     {
         URI oldVal = this.indexPath;
         this.indexPath = indexPath;
-        raiseEvent(new IndexCreationEvent(repo, oldVal, this.indexPath));
+        raiseEvent(IndexCreationEvent.indexUriChange(repo, oldVal, this.indexPath));
 
     }
 
@@ -113,11 +124,67 @@ public class IndexCreationFeature extends AbstractFeature implements RepositoryF
         return this.indexPath!=null && !StringUtils.isEmpty( this.indexPath.getPath() );
     }
 
+    /**
+     * Returns the path where the index is stored physically.
+     *
+     * @return
+     */
     public Path getLocalIndexPath() {
         return localIndexPath;
     }
 
+    /**
+     * Sets the path where the index is stored physically. This method should only be used by the
+     * MavenIndexProvider implementations.
+     *
+     * @param localIndexPath
+     */
     public void setLocalIndexPath(Path localIndexPath) {
         this.localIndexPath = localIndexPath;
     }
+
+
+    /**
+     * Returns the path of the packed index.
+     * @return
+     */
+    public URI getPackedIndexPath() {
+        return packedIndexPath;
+    }
+
+    /**
+     * Sets the path (relative or absolute) of the packed index.
+     * @param packedIndexPath
+     */
+    public void setPackedIndexPath(URI packedIndexPath) {
+        URI oldVal = this.packedIndexPath;
+        this.packedIndexPath = packedIndexPath;
+        raiseEvent(IndexCreationEvent.packedIndexUriChange(repo, oldVal, this.packedIndexPath));
+    }
+
+    /**
+     * Returns the directory where the packed index is stored.
+     * @return
+     */
+    public Path getLocalPackedIndexPath() {
+        return localPackedIndexPath;
+    }
+
+    /**
+     * Sets the path where the packed index is stored physically. This method should only be used by the
+     * MavenIndexProvider implementations.
+     *
+     * @param localPackedIndexPath
+     */
+    public void setLocalPackedIndexPath(Path localPackedIndexPath) {
+        this.localPackedIndexPath = localPackedIndexPath;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("IndexCreationFeature:{").append("skipPackedIndexCreation=").append(skipPackedIndexCreation)
+                .append(",indexPath=").append(indexPath).append(",packedIndexPath=").append(packedIndexPath).append("}");
+        return sb.toString();
+    }
 }