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 {
