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/04/28 20:43:19 UTC

archiva git commit: Fixing browse service filter handling

Repository: archiva
Updated Branches:
  refs/heads/master 0626aa2bd -> d61f68e68


Fixing browse service filter handling

Improved handling of slashes at the beginning of filters
Added patterns for surefire tests to ensure the test runs


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

Branch: refs/heads/master
Commit: d61f68e6848d0bf5a214e22bf4be4a3ece1b4a74
Parents: 0626aa2
Author: Martin Stockhammer <ma...@apache.org>
Authored: Fri Apr 28 22:41:47 2017 +0200
Committer: Martin Stockhammer <ma...@apache.org>
Committed: Fri Apr 28 22:41:47 2017 +0200

----------------------------------------------------------------------
 .../archiva-rest/archiva-rest-services/pom.xml   |  4 ++++
 .../rest/services/DefaultBrowseService.java      | 19 ++++++++++---------
 .../services/ArtifactContentEntriesTests.java    |  3 ++-
 3 files changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/d61f68e6/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml
index 1617e82..cc44422 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/pom.xml
@@ -455,6 +455,10 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
+          <includes>
+            <include>**/*Tests.java</include>
+            <include>**/*Test.java</include>
+          </includes>
           <argLine>-Xmx512m -Xms512m -server -XX:MaxPermSize=256m ${jacocoagent}</argLine>
           <systemPropertyVariables>
             <appserver.base>${project.build.directory}/appserver-base</appserver.base>

http://git-wip-us.apache.org/repos/asf/archiva/blob/d61f68e6/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
index 682c367..e2efea4 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
@@ -1093,15 +1093,16 @@ public class DefaultBrowseService
         }
     }
 
-    protected List<ArtifactContentEntry> readFileEntries( File file, String filterPath, String repoId )
+    protected List<ArtifactContentEntry> readFileEntries(final File file, final String filterPath, final String repoId )
         throws IOException
     {
+        String cleanedfilterPath = filterPath==null ? "" : (StringUtils.startsWith(filterPath, "/") ?
+                StringUtils.substringAfter(filterPath, "/") : filterPath);
         Map<String, ArtifactContentEntry> artifactContentEntryMap = new HashMap<>();
-        int filterDepth = StringUtils.countMatches( filterPath, "/" );
-        /*if ( filterDepth == 0 )
-        {
-            filterDepth = 1;
-        }*/
+        int filterDepth = StringUtils.countMatches( cleanedfilterPath, "/" );
+        if (!StringUtils.endsWith(cleanedfilterPath,"/") && !StringUtils.isEmpty(cleanedfilterPath)) {
+            filterDepth++;
+        }
         JarFile jarFile = new JarFile( file );
         try
         {
@@ -1113,7 +1114,7 @@ public class DefaultBrowseService
                     StringUtils.substringBeforeLast( currentEntry.getName(), "/" ) : currentEntry.getName();
                 String entryRootPath = getRootPath( cleanedEntryName );
                 int depth = StringUtils.countMatches( cleanedEntryName, "/" );
-                if ( StringUtils.isEmpty( filterPath ) //
+                if ( StringUtils.isEmpty( cleanedfilterPath ) //
                     && !artifactContentEntryMap.containsKey( entryRootPath ) //
                     && depth == filterDepth )
                 {
@@ -1124,7 +1125,7 @@ public class DefaultBrowseService
                 }
                 else
                 {
-                    if ( StringUtils.startsWith( cleanedEntryName, filterPath ) //
+                    if ( StringUtils.startsWith( cleanedEntryName, cleanedfilterPath ) //
                         && ( depth == filterDepth || ( !currentEntry.isDirectory() && depth == filterDepth ) ) )
                     {
                         artifactContentEntryMap.put( cleanedEntryName, new ArtifactContentEntry( cleanedEntryName,
@@ -1134,7 +1135,7 @@ public class DefaultBrowseService
                 }
             }
 
-            if ( StringUtils.isNotEmpty( filterPath ) )
+            if ( StringUtils.isNotEmpty( cleanedfilterPath ) )
             {
                 Map<String, ArtifactContentEntry> filteredArtifactContentEntryMap = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/d61f68e6/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArtifactContentEntriesTests.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArtifactContentEntriesTests.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArtifactContentEntriesTests.java
index 721cfb2..461cb80 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArtifactContentEntriesTests.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/ArtifactContentEntriesTests.java
@@ -20,6 +20,7 @@ package org.apache.archiva.rest.services;
 
 import junit.framework.TestCase;
 import org.apache.archiva.rest.api.model.ArtifactContentEntry;
+import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 /**
  * @author Olivier Lamy
  */
-@RunWith( JUnit4.class )
+@RunWith( ArchivaBlockJUnit4ClassRunner.class )
 public class ArtifactContentEntriesTests
     extends TestCase
 {