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
{