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 <[email protected]>
Authored: Fri Apr 28 22:41:47 2017 +0200
Committer: Martin Stockhammer <[email protected]>
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
 {

Reply via email to