aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base
diff options
context:
space:
mode:
authorMartin Stockhammer <martin_s@apache.org>2020-02-13 22:20:35 +0100
committerMartin Stockhammer <martin_s@apache.org>2020-02-13 22:20:35 +0100
commit6823bb0371a3278cfb7bcb834792c21e623183b6 (patch)
tree98c10add81c294fb42e620da40ab7c5cb15ebbfe /archiva-modules/archiva-base
parent84d9f5723fde9e72ab413d1ef739f1f728b84485 (diff)
downloadarchiva-6823bb0371a3278cfb7bcb834792c21e623183b6.tar.gz
archiva-6823bb0371a3278cfb7bcb834792c21e623183b6.zip
Adding selector interface for repository content
Diffstat (limited to 'archiva-modules/archiva-base')
-rw-r--r--archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryContent.java9
-rw-r--r--archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Artifact.java3
-rw-r--r--archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/ItemSelector.java79
-rw-r--r--archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Project.java4
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaItemSelector.java194
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java13
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java2
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/content/base/ArchivaItemSelectorTest.java145
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java7
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RemoteRepositoryContentMock.java7
-rw-r--r--archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java7
11 files changed, 460 insertions, 10 deletions
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryContent.java
index d959a8629..0afe493e1 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryContent.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryContent.java
@@ -21,6 +21,7 @@ package org.apache.archiva.repository;
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.model.VersionedReference;
+import org.apache.archiva.repository.content.ItemSelector;
/**
@@ -48,4 +49,12 @@ public interface RepositoryContent
* @return the relative path to the artifact.
*/
String toPath( ArtifactReference reference );
+
+
+ /**
+ * Return the path, that represents the item specified by the selector.
+ * @param selector the selector with the artifact coordinates
+ * @return the path to the content item
+ */
+ String toPath( ItemSelector selector );
}
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Artifact.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Artifact.java
index 474f8241b..b4c6d6cdb 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Artifact.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Artifact.java
@@ -19,11 +19,8 @@ package org.apache.archiva.repository.content;
* under the License.
*/
-import org.apache.archiva.repository.UnsupportedRepositoryTypeException;
import org.apache.archiva.repository.storage.StorageAsset;
-import java.util.Map;
-
/**
*
* Represents a artifact of a repository. This object contains unique coordinates of the
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/ItemSelector.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/ItemSelector.java
new file mode 100644
index 000000000..9e50c2488
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/ItemSelector.java
@@ -0,0 +1,79 @@
+package org.apache.archiva.repository.content;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Map;
+
+/**
+ * The item selector is used to specify coordinates for retrieving ContentItem elements.
+ */
+public interface ItemSelector
+{
+
+ String getProjectId();
+
+ String getNamespace();
+
+ String getVersion( );
+
+ String getArtifactVersion();
+
+ String getArtifactId( );
+
+ String getType();
+
+ String getClassifier();
+
+ String getAttribute( String key );
+
+ Map<String, String> getAttributes( );
+
+ default boolean hasNamespace() {
+ return !StringUtils.isEmpty( getNamespace( ) );
+ }
+
+ default boolean hasProjectId() {
+ return !StringUtils.isEmpty( getProjectId( ) );
+ }
+
+ default boolean hasVersion() {
+ return !StringUtils.isEmpty(getVersion());
+ }
+
+ default boolean hasArtifactId() {
+ return !StringUtils.isEmpty( getArtifactId( ) );
+ }
+
+ default boolean hasArtifactVersion() {
+ return !StringUtils.isEmpty( getArtifactVersion( ) );
+ }
+
+ default boolean hasType() {
+ return !StringUtils.isEmpty( getType( ) );
+ }
+
+ default boolean hasClassifier() {
+ return !StringUtils.isEmpty( getClassifier( ) );
+ }
+
+ boolean hasAttributes();
+}
diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Project.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Project.java
index f7a840a7a..ef7249664 100644
--- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Project.java
+++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/content/Project.java
@@ -19,7 +19,7 @@ package org.apache.archiva.repository.content;
* under the License.
*/
-import org.apache.archiva.repository.ManagedRepositoryContent;
+import org.apache.archiva.repository.RepositoryContent;
import org.apache.archiva.repository.storage.StorageAsset;
/**
@@ -57,7 +57,7 @@ public interface Project extends ContentItem
* The repository this project is part of.
* @return the repository content
*/
- ManagedRepositoryContent getRepository();
+ RepositoryContent getRepository();
/**
* Returns the asset that corresponds to this project.
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaItemSelector.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaItemSelector.java
new file mode 100644
index 000000000..34c10ece6
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaItemSelector.java
@@ -0,0 +1,194 @@
+package org.apache.archiva.repository.content.base;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.archiva.repository.content.ItemSelector;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Item selector for querying artifacts and other content items.
+ */
+public class ArchivaItemSelector implements ItemSelector
+{
+
+ private String projectId = null;
+ private String version = null;
+ private String artifactVersion = null;
+ private String artifactId = null;
+ private String namespace = "";
+ private String type = null;
+ private String classifier = null;
+ private Map<String,String> attributes;
+
+
+ private ArchivaItemSelector() {
+
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder
+ {
+ private final ArchivaItemSelector selector = new ArchivaItemSelector( );
+
+ public Builder withNamespace( String namespace )
+ {
+ selector.namespace = namespace;
+ return this;
+ }
+
+
+ public Builder withProjectId( String projectId )
+ {
+ selector.projectId = projectId;
+ return this;
+ }
+
+
+ public Builder withVersion( String version )
+ {
+ selector.version = version;
+ return this;
+ }
+
+
+ public Builder withArtifactVersion( String artifactVersion )
+ {
+ selector.artifactVersion = artifactVersion;
+ return this;
+ }
+
+
+ public Builder withArtifactId( String artifactId )
+ {
+ selector.artifactId = artifactId;
+ return this;
+ }
+
+
+ public Builder withType( String type )
+ {
+ selector.type = type;
+ return this;
+ }
+
+
+ public Builder withClassifier( String classifier )
+ {
+ selector.classifier = classifier;
+ return this;
+ }
+
+
+ public Builder withAttribute( String key, String value )
+ {
+ selector.setAttribute( key, value );
+ return this;
+ }
+
+ public ArchivaItemSelector build() {
+ return selector;
+ }
+ }
+
+ private void setAttribute(String key, String value) {
+ if (this.attributes == null) {
+ this.attributes = new HashMap<>( );
+ }
+ this.attributes.put( key, value );
+ }
+
+ @Override
+ public String getProjectId( )
+ {
+ return projectId;
+ }
+
+ @Override
+ public String getNamespace( )
+ {
+ return namespace;
+ }
+
+ @Override
+ public String getVersion( )
+ {
+ return version;
+ }
+
+ @Override
+ public String getArtifactVersion( )
+ {
+ return artifactVersion;
+ }
+
+ @Override
+ public String getArtifactId( )
+ {
+ return artifactId;
+ }
+
+ @Override
+ public String getType( )
+ {
+ return type;
+ }
+
+ @Override
+ public String getClassifier( )
+ {
+ return classifier;
+ }
+
+ @Override
+ public String getAttribute( String key )
+ {
+ if ( this.attributes == null || !this.attributes.containsKey( key ) )
+ {
+
+ return "";
+ }
+ else
+ {
+ return this.attributes.get( key );
+ }
+ }
+
+ @Override
+ public Map<String, String> getAttributes( )
+ {
+ if (this.attributes==null) {
+ return Collections.emptyMap( );
+ } else {
+ return Collections.unmodifiableMap( this.attributes );
+ }
+ }
+
+ @Override
+ public boolean hasAttributes( )
+ {
+ return attributes!=null && attributes.size()>0;
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
index 37e04748d..e52071970 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
@@ -19,7 +19,9 @@ package org.apache.archiva.repository.content.base;
* under the License.
*/
+import org.apache.archiva.repository.ManagedRepository;
import org.apache.archiva.repository.ManagedRepositoryContent;
+import org.apache.archiva.repository.RepositoryContent;
import org.apache.archiva.repository.content.Project;
import org.apache.archiva.repository.storage.StorageAsset;
import org.apache.commons.lang3.StringUtils;
@@ -31,7 +33,7 @@ public class ArchivaProject extends ArchivaContentItem implements Project
{
private String namespace;
private String id;
- private ManagedRepositoryContent repositoryContent;
+ private RepositoryContent repositoryContent;
private StorageAsset asset;
// Setting all setters to private. Builder is the way to go.
@@ -63,7 +65,7 @@ public class ArchivaProject extends ArchivaContentItem implements Project
}
@Override
- public ManagedRepositoryContent getRepository( )
+ public RepositoryContent getRepository( )
{
return this.repositoryContent;
}
@@ -110,7 +112,7 @@ public class ArchivaProject extends ArchivaContentItem implements Project
}
- public OptBuilder withRepository( ManagedRepositoryContent repository ) {
+ public OptBuilder withRepository( RepositoryContent repository ) {
project.repositoryContent = repository;
return this;
}
@@ -140,7 +142,10 @@ public class ArchivaProject extends ArchivaContentItem implements Project
project.namespace = "";
}
if (project.asset == null) {
- project.asset = project.getRepository( ).getRepository( ).getAsset( "" );
+ if (project.getRepository() instanceof ManagedRepositoryContent) {
+ project.asset = (( ManagedRepositoryContent)project.getRepository( )).getRepository( ).getAsset( "" );
+ }
+
}
return project;
}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
index 66fd52964..b8fd55d1b 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
@@ -95,7 +95,7 @@ public class ArchivaVersion extends ArchivaContentItem implements Version
public ArchivaVersion build() {
if (this.version.asset == null) {
- this.version.project.getRepository( ).getRepository().getAsset( "" );
+ this.version.project.getAsset( );
}
return this.version;
}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/content/base/ArchivaItemSelectorTest.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/content/base/ArchivaItemSelectorTest.java
new file mode 100644
index 000000000..7ab3c412c
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/content/base/ArchivaItemSelectorTest.java
@@ -0,0 +1,145 @@
+package org.apache.archiva.repository.content.base;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ArchivaItemSelectorTest
+{
+
+ @Test
+ void getProjectId( )
+ {
+
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withProjectId( "test-project-123" ).build( );
+ assertEquals( "test-project-123", selector.getProjectId( ) );
+ assertTrue( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getNamespace( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withNamespace( "abc.de.fg" ).build();
+ assertEquals( "abc.de.fg", selector.getNamespace( ) );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getVersion( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withVersion( "1.15.20.3" ).build();
+ assertEquals( "1.15.20.3", selector.getVersion( ) );
+ assertFalse( selector.hasProjectId( ) );
+ assertTrue( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getArtifactVersion( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withArtifactVersion( "5.13.2.4" ).build();
+ assertEquals( "5.13.2.4", selector.getArtifactVersion() );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertTrue( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getArtifactId( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withArtifactId( "xml-tools" ).build();
+ assertEquals( "xml-tools", selector.getArtifactId() );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertTrue( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+
+ }
+
+ @Test
+ void getType( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withType( "javadoc" ).build();
+ assertEquals( "javadoc", selector.getType() );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertTrue( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getClassifier( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withClassifier( "source" ).build();
+ assertEquals( "source", selector.getClassifier() );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertTrue( selector.hasClassifier( ) );
+ assertFalse( selector.hasAttributes( ) );
+ }
+
+ @Test
+ void getAttribute( )
+ {
+ ArchivaItemSelector selector = ArchivaItemSelector.builder( ).withAttribute( "test1","value1" ).
+ withAttribute( "test2", "value2" ).build();
+ assertEquals( "value1", selector.getAttribute("test1") );
+ assertEquals( "value2", selector.getAttribute("test2") );
+ assertFalse( selector.hasProjectId( ) );
+ assertFalse( selector.hasVersion( ) );
+ assertFalse( selector.hasArtifactId( ) );
+ assertFalse( selector.hasArtifactVersion( ) );
+ assertFalse( selector.hasType( ) );
+ assertFalse( selector.hasClassifier( ) );
+ assertTrue( selector.hasAttributes( ) );
+ }
+
+} \ No newline at end of file
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 324843090..0ba3658c2 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
@@ -28,6 +28,7 @@ import org.apache.archiva.repository.ContentNotFoundException;
import org.apache.archiva.repository.LayoutException;
import org.apache.archiva.repository.ManagedRepository;
import org.apache.archiva.repository.ManagedRepositoryContent;
+import org.apache.archiva.repository.content.ItemSelector;
import org.apache.archiva.repository.storage.StorageAsset;
import org.springframework.stereotype.Service;
@@ -217,6 +218,12 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
}
@Override
+ public String toPath( ItemSelector selector )
+ {
+ return null;
+ }
+
+ @Override
public String toPath( ArchivaArtifact reference )
{
return null;
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RemoteRepositoryContentMock.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RemoteRepositoryContentMock.java
index c797b5686..1760012ea 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RemoteRepositoryContentMock.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RemoteRepositoryContentMock.java
@@ -24,6 +24,7 @@ import org.apache.archiva.model.RepositoryURL;
import org.apache.archiva.repository.LayoutException;
import org.apache.archiva.repository.RemoteRepository;
import org.apache.archiva.repository.RemoteRepositoryContent;
+import org.apache.archiva.repository.content.ItemSelector;
import org.springframework.stereotype.Service;
/**
@@ -71,6 +72,12 @@ public class RemoteRepositoryContentMock implements RemoteRepositoryContent
}
@Override
+ public String toPath( ItemSelector selector )
+ {
+ return null;
+ }
+
+ @Override
public RepositoryURL toURL( ArtifactReference reference )
{
return null;
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 86d43d188..7f2dec2fd 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
@@ -28,6 +28,7 @@ import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.model.ProjectReference;
import org.apache.archiva.model.VersionedReference;
import org.apache.archiva.repository.*;
+import org.apache.archiva.repository.content.ItemSelector;
import org.apache.archiva.repository.storage.FilesystemStorage;
import org.apache.archiva.repository.storage.StorageAsset;
import org.apache.commons.lang3.StringUtils;
@@ -447,6 +448,12 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
}
@Override
+ public String toPath( ItemSelector selector )
+ {
+ return null;
+ }
+
+ @Override
public String toPath( ArchivaArtifact reference )
{
return null;