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 2020/03/29 18:16:11 UTC

[archiva] branch master updated (f0ce834 -> b55ac5e)

This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git.


    from f0ce834  Renaming method and adding additional test
     new ff7a102  Fixing test name
     new b55ac5e  Moving first client calls to new content repo API

The 2 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:
 .../CleanupReleasedSnapshotsRepositoryPurge.java   | 28 ++++-----
 .../repository/ManagedRepositoryContent.java       | 21 -------
 .../repository/metadata/base/MetadataTools.java    | 15 ++++-
 .../mock/ManagedRepositoryContentMock.java         | 12 ----
 .../scanner/mock/ManagedRepositoryContentMock.java | 12 ----
 .../mock/ManagedRepositoryContentMock.java         | 12 ----
 .../content/ManagedDefaultRepositoryContent.java   | 69 +--------------------
 .../ManagedDefaultRepositoryContentTest.java       | 70 +---------------------
 .../rest/services/DefaultRepositoriesService.java  |  7 ---
 9 files changed, 29 insertions(+), 217 deletions(-)


[archiva] 02/02: Moving first client calls to new content repo API

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit b55ac5e29f81d58971c714e561ed6e4423f829b0
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Sun Mar 29 19:12:30 2020 +0200

    Moving first client calls to new content repo API
---
 .../CleanupReleasedSnapshotsRepositoryPurge.java   | 28 ++++-----
 .../repository/ManagedRepositoryContent.java       | 21 -------
 .../repository/metadata/base/MetadataTools.java    | 15 ++++-
 .../mock/ManagedRepositoryContentMock.java         | 12 ----
 .../scanner/mock/ManagedRepositoryContentMock.java | 12 ----
 .../mock/ManagedRepositoryContentMock.java         | 12 ----
 .../content/ManagedDefaultRepositoryContent.java   | 69 +---------------------
 .../ManagedDefaultRepositoryContentTest.java       | 68 ---------------------
 .../rest/services/DefaultRepositoriesService.java  |  7 ---
 9 files changed, 28 insertions(+), 216 deletions(-)

diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
index 84a1d0f..b7f590e 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
@@ -34,6 +34,10 @@ import org.apache.archiva.repository.ReleaseScheme;
 import org.apache.archiva.repository.RepositoryException;
 import org.apache.archiva.repository.RepositoryRegistry;
 import org.apache.archiva.metadata.audit.RepositoryListener;
+import org.apache.archiva.repository.content.ItemSelector;
+import org.apache.archiva.repository.content.Project;
+import org.apache.archiva.repository.content.Version;
+import org.apache.archiva.repository.content.base.ArchivaItemSelector;
 import org.apache.archiva.repository.metadata.base.MetadataTools;
 import org.apache.archiva.repository.metadata.RepositoryMetadataException;
 
@@ -105,9 +109,11 @@ public class CleanupReleasedSnapshotsRepositoryPurge
                 return;
             }
 
-            ProjectReference reference = new ProjectReference( );
-            reference.setGroupId( artifactRef.getGroupId( ) );
-            reference.setArtifactId( artifactRef.getArtifactId( ) );
+            ItemSelector selector = ArchivaItemSelector.builder( )
+                .withNamespace( artifactRef.getGroupId( ) )
+                .withProjectId( artifactRef.getArtifactId( ) )
+                .build();
+
 
             // Gether the released versions
             List<String> releasedVersions = new ArrayList<>( );
@@ -118,21 +124,15 @@ public class CleanupReleasedSnapshotsRepositoryPurge
 
                 if ( repo.getActiveReleaseSchemes().contains( ReleaseScheme.RELEASE ))
                 {
-                    try
+                    ManagedRepositoryContent repoContent = repo.getContent();
+                    Project proj = repoContent.getProject( selector );
+                    for ( Version version : repoContent.getVersions( proj ) )
                     {
-                        ManagedRepositoryContent repoContent = repo.getContent();
-                        for ( String version : repoContent.getVersions( reference ) )
+                        if ( !VersionUtil.isSnapshot( version.getVersion() ) )
                         {
-                            if ( !VersionUtil.isSnapshot( version ) )
-                            {
-                                releasedVersions.add( version );
-                            }
+                            releasedVersions.add( version.getVersion() );
                         }
                     }
-                    catch ( RepositoryException e )
-                    {
-                        // swallow
-                    }
                 }
             }
 
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
index 20d0a67..ec62e7b 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
@@ -484,19 +484,6 @@ public interface ManagedRepositoryContent extends RepositoryContent
      */
     ManagedRepository getRepository();
 
-    /**
-     * Given a specific {@link ProjectReference}, return the list of available versions for
-     * that project reference.
-     *
-     * @param reference the project reference to work off of.
-     * @return the list of versions found for that project reference.
-     * @throws ContentNotFoundException if the project reference does nto exist within the repository.
-     * @throws LayoutException
-     */
-    Set<String> getVersions( ProjectReference reference )
-        throws ContentNotFoundException, LayoutException, ContentAccessException;
-
-
 
     /**
      * <p>
@@ -523,14 +510,6 @@ public interface ManagedRepositoryContent extends RepositoryContent
     boolean hasContent( ArtifactReference reference ) throws ContentAccessException;
 
     /**
-     * Determines if the project referenced exists in the repository.
-     *
-     * @param reference the project reference to check for.
-     * @return true it the project referenced exists.
-     */
-    boolean hasContent( ProjectReference reference ) throws ContentAccessException;
-
-    /**
      * Determines if the version reference exists in the repository.
      *
      * @param reference the version reference to check for.
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java
index b875be6..a8298e2 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java
@@ -45,6 +45,9 @@ import org.apache.archiva.repository.ManagedRepositoryContent;
 import org.apache.archiva.repository.RemoteRepositoryContent;
 import org.apache.archiva.repository.RepositoryRegistry;
 import org.apache.archiva.repository.RepositoryType;
+import org.apache.archiva.repository.content.ItemSelector;
+import org.apache.archiva.repository.content.Project;
+import org.apache.archiva.repository.content.base.ArchivaItemSelector;
 import org.apache.archiva.repository.metadata.MetadataReader;
 import org.apache.archiva.repository.metadata.RepositoryMetadataException;
 import org.apache.archiva.repository.storage.StorageAsset;
@@ -66,6 +69,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.regex.Matcher;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
@@ -525,14 +529,21 @@ public class MetadataTools
         metadata.setArtifactId( reference.getArtifactId() );
 
         // Gather up all versions found in the managed repository.
+        ItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( reference.getGroupId( ) )
+            .withProjectId( reference.getArtifactId( ) )
+            .build();
         Set<String> allVersions = null;
         try
         {
-            allVersions = managedRepository.getVersions( reference );
+            Project project = managedRepository.getProject( selector );
+            allVersions = managedRepository.getVersions( project ).stream()
+            .map( v -> v.getVersion() ).collect( Collectors.toSet());
         }
         catch ( org.apache.archiva.repository.ContentAccessException e )
         {
-            e.printStackTrace( );
+            log.error( "Error while accessing repository: {}", e.getMessage( ), e );
+            throw new RepositoryMetadataException( "Error while accessing repository " + e.getMessage( ), e );
         }
 
         // Gather up all plugins found in the managed repository.
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
index bcb330f..029fd14 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
@@ -261,12 +261,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public Set<String> getVersions( ProjectReference reference ) throws ContentNotFoundException, LayoutException, ContentAccessException
-    {
-        return null;
-    }
-
-    @Override
     public Set<String> getVersions( VersionedReference reference ) throws ContentNotFoundException, ContentAccessException, LayoutException
     {
         return null;
@@ -279,12 +273,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public boolean hasContent( ProjectReference reference ) throws ContentAccessException
-    {
-        return false;
-    }
-
-    @Override
     public boolean hasContent( VersionedReference reference ) throws ContentAccessException
     {
         return false;
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java
index 34a3e80..6065a94 100644
--- a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java
@@ -283,12 +283,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public Set<String> getVersions( ProjectReference reference ) throws ContentNotFoundException, LayoutException, ContentAccessException
-    {
-        return null;
-    }
-
-    @Override
     public Set<String> getVersions( VersionedReference reference ) throws ContentNotFoundException, ContentAccessException, LayoutException
     {
         return null;
@@ -301,12 +295,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public boolean hasContent( ProjectReference reference ) throws ContentAccessException
-    {
-        return false;
-    }
-
-    @Override
     public boolean hasContent( VersionedReference reference ) throws ContentAccessException
     {
         return false;
diff --git a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
index 81d240e..f503679 100644
--- a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
+++ b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
@@ -287,12 +287,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public Set<String> getVersions( ProjectReference reference ) throws ContentNotFoundException, LayoutException, ContentAccessException
-    {
-        return null;
-    }
-
-    @Override
     public Set<String> getVersions( VersionedReference reference ) throws ContentNotFoundException, ContentAccessException, LayoutException
     {
         return null;
@@ -305,12 +299,6 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
     }
 
     @Override
-    public boolean hasContent( ProjectReference reference ) throws ContentAccessException
-    {
-        return false;
-    }
-
-    @Override
     public boolean hasContent( VersionedReference reference ) throws ContentAccessException
     {
         return false;
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
index b79753c..9a02dce 100644
--- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
@@ -173,7 +173,7 @@ public class ManagedDefaultRepositoryContent
     }
 
 
-    /// ************* End of new generation interface ******************
+    /// ************* Start of new generation interface ******************
 
     /**
      * Removes the item from the filesystem. For namespaces, projects and versions it deletes
@@ -1245,59 +1245,6 @@ public class ManagedDefaultRepositoryContent
         return repository;
     }
 
-    /**
-     * Gather the Available Versions (on disk) for a specific Project Reference, based on filesystem
-     * information.
-     *
-     * @return the Set of available versions, based on the project reference.
-     * @throws LayoutException
-     */
-    @Override
-    public Set<String> getVersions( ProjectReference reference )
-        throws ContentNotFoundException, LayoutException, ContentAccessException
-    {
-        final String path = toPath( reference );
-        final Path projDir = getRepoDir().resolve(toPath(reference));
-        if ( !Files.exists(projDir) )
-        {
-            throw new ContentNotFoundException(
-                "Unable to get Versions on a non-existant directory for repository "+getId()+": " + path );
-        }
-
-        if ( !Files.isDirectory(projDir) )
-        {
-            throw new ContentNotFoundException(
-                "Unable to get Versions on a non-directory for repository "+getId()+": " + path );
-        }
-
-        final String groupId = reference.getGroupId();
-        final String artifactId = reference.getArtifactId();
-        try(Stream<Path> stream = Files.list(projDir)) {
-            return stream.filter(Files::isDirectory).map(
-                    p -> toVersion(groupId, artifactId, p.getFileName().toString())
-            ).filter(this::hasArtifact).map(ref -> ref.getVersion())
-                    .collect(Collectors.toSet());
-        } catch (IOException e) {
-            log.error("Could not read directory {}: {}", projDir, e.getMessage(), e);
-            throw new ContentAccessException( "Could not read path for repository "+getId()+": "+ path, e );
-        } catch (RuntimeException e) {
-            Throwable cause = e.getCause( );
-            if (cause!=null)
-            {
-                if ( cause instanceof LayoutException )
-                {
-                    throw (LayoutException) cause;
-                } else {
-                    log.error("Could not read directory {}: {}", projDir, cause.getMessage(), cause);
-                    throw new ContentAccessException( "Could not read path for repository "+getId()+": "+ path, cause );
-                }
-            } else {
-                log.error("Could not read directory {}: {}", projDir, e.getMessage(), e);
-                throw new ContentAccessException( "Could not read path for repository "+getId()+": "+ path, cause );
-            }
-        }
-    }
-
     @Override
     public Set<String> getVersions( VersionedReference reference )
         throws ContentNotFoundException, ContentAccessException, LayoutException
@@ -1322,20 +1269,6 @@ public class ManagedDefaultRepositoryContent
     }
 
     @Override
-    public boolean hasContent( ProjectReference reference ) throws ContentAccessException
-    {
-        try
-        {
-            Set<String> versions = getVersions( reference );
-            return !versions.isEmpty();
-        }
-        catch ( ContentNotFoundException | LayoutException e )
-        {
-            return false;
-        }
-    }
-
-    @Override
     public boolean hasContent( VersionedReference reference ) throws ContentAccessException
     {
         try
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
index b19d336..7587be3 100644
--- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
@@ -124,41 +124,6 @@ public class ManagedDefaultRepositoryContentTest
     }
 
     @Test
-    public void testGetVersionsBadArtifact()
-        throws Exception
-    {
-        assertGetVersions( "bad_artifact", Collections.emptyList() );
-    }
-
-    @Test
-    public void testGetVersionsMissingMultipleVersions()
-        throws Exception
-    {
-        assertGetVersions( "missing_metadata_b", Arrays.asList( "1.0", "1.0.1", "2.0", "2.0.1", "2.0-20070821-dev" ) );
-    }
-
-    @Test
-    public void testGetVersionsSimple()
-        throws Exception
-    {
-        assertVersions( "proxied_multi", "2.1", new String[]{ "2.1" } );
-    }
-
-    @Test
-    public void testGetVersionsSimpleYetIncomplete()
-        throws Exception
-    {
-        assertGetVersions( "incomplete_metadata_a", Collections.singletonList( "1.0" ) );
-    }
-
-    @Test
-    public void testGetVersionsSimpleYetMissing()
-        throws Exception
-    {
-        assertGetVersions( "missing_metadata_a", Collections.singletonList( "1.0" ) );
-    }
-
-    @Test
     public void testGetVersionsSnapshotA()
         throws Exception
     {
@@ -213,39 +178,6 @@ public class ManagedDefaultRepositoryContentTest
         assertVersions( "include_xml", "1.0", new String[]{ "1.0" } );
     }
 
-    private void assertGetVersions( String artifactId, List<String> expectedVersions )
-        throws Exception
-    {
-        ProjectReference reference = new ProjectReference();
-        reference.setGroupId( "org.apache.archiva.metadata.tests" );
-        reference.setArtifactId( artifactId );
-
-        // Use the test metadata-repository, which is already setup for
-        // These kind of version tests.
-        Path repoDir = getRepositoryPath( "metadata-repository" );
-        (( EditableManagedRepository)repoContent.getRepository()).setLocation( repoDir.toAbsolutePath().toUri() );
-
-        // Request the versions.
-        Set<String> testedVersionSet = repoContent.getVersions( reference );
-
-        // Sort the list (for asserts)
-        VersionComparator comparator = new VersionComparator( );
-        List<String> testedVersions = new ArrayList<>();
-        testedVersions.addAll( testedVersionSet );
-        Collections.sort( testedVersions, comparator );
-
-        // Test the expected array of versions, to the actual tested versions
-        assertEquals( "available versions", expectedVersions, testedVersions );
-
-        ItemSelector selector = ArchivaItemSelector.builder( )
-            .withNamespace( "org.apache.archiva.metadata.tests" )
-            .withProjectId( artifactId )
-            .build( );
-        Project project = repoContent.getProject( selector );
-        assertNotNull( project );
-        List<String> versions = repoContent.getVersions( project ).stream().map(v -> v.getVersion()).sorted( comparator ).collect( Collectors.toList());
-        assertArrayEquals( expectedVersions.toArray(), versions.toArray( ) );
-    }
 
     private void assertVersions( String artifactId, String version, String[] expectedVersions )
         throws Exception
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
index 23b8d6f..1cc78b2 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
@@ -668,13 +668,6 @@ public class DefaultRepositoriesService
 
             repository.deleteVersion( ref );
 
-            /*
-            ProjectReference projectReference = new ProjectReference();
-            projectReference.setGroupId( namespace );
-            projectReference.setArtifactId( projectId );
-
-            repository.getVersions(  )
-            */
 
             ArtifactReference artifactReference = new ArtifactReference();
             artifactReference.setGroupId( namespace );


[archiva] 01/02: Fixing test name

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit ff7a10213879a19956ff036e1dbf7554814c2a89
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Sun Mar 29 16:39:34 2020 +0200

    Fixing test name
---
 .../repository/maven/content/ManagedDefaultRepositoryContentTest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
index e8fab79..b19d336 100644
--- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
@@ -1572,7 +1572,7 @@ public class ManagedDefaultRepositoryContentTest
 
 
     @Test
-    public void testCopyArtifact() throws IOException, URISyntaxException
+    public void testAddArtifact() throws IOException, URISyntaxException
     {
         ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
         ManagedRepositoryContent myRepoContent = repo.getContent( );