Browse Source

Fixing path matching for repository content

pull/60/head
Martin Stockhammer 4 years ago
parent
commit
c7a924305a

+ 12
- 0
archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java View File

@@ -58,6 +58,18 @@ public interface ManagedRepositoryContent extends RepositoryContent
*/
void deleteItem( ContentItem item) throws ItemNotFoundException, ContentAccessException;


/**
* Returns a item for the given selector. The type of the returned item depends on the
* selector.
*
* @param selector the item selector
* @return the content item that matches the given selector
* @throws ContentAccessException if an error occured while accessing the backend
* @throws IllegalArgumentException if the selector does not select a valid content item
*/
ContentItem getItem(ItemSelector selector) throws ContentAccessException, IllegalArgumentException;

/**
* Returns the namespace for the given selected coordinates. The selector must specify a namespace. All other
* coordinates are ignored.

+ 6
- 0
archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java View File

@@ -81,6 +81,12 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent

}

@Override
public ContentItem getItem( ItemSelector selector ) throws ContentAccessException, IllegalArgumentException
{
return null;
}

@Override
public Namespace getNamespace( ItemSelector namespaceSelector ) throws ContentAccessException, IllegalArgumentException
{

+ 18
- 0
archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java View File

@@ -97,6 +97,12 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent

}

@Override
public ContentItem getItem( ItemSelector selector ) throws ContentAccessException, IllegalArgumentException
{
return null;
}

@Override
public Namespace getNamespace( ItemSelector namespaceSelector ) throws ContentAccessException, IllegalArgumentException
{
@@ -181,6 +187,18 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent

}

@Override
public ContentItem toItem( String path ) throws LayoutException
{
return null;
}

@Override
public ContentItem toItem( StorageAsset assetPath ) throws LayoutException
{
return null;
}

@Override
public void deleteVersion( VersionedReference reference ) throws ContentNotFoundException, ContentAccessException
{

+ 6
- 0
archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java View File

@@ -101,6 +101,12 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent

}

@Override
public ContentItem getItem( ItemSelector selector ) throws ContentAccessException, IllegalArgumentException
{
return null;
}

@Override
public Namespace getNamespace( ItemSelector namespaceSelector ) throws ContentAccessException, IllegalArgumentException
{

+ 5
- 0
archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/AbstractDefaultRepositoryContent.java View File

@@ -58,6 +58,11 @@ public abstract class AbstractDefaultRepositoryContent implements RepositoryCont
private PathParser defaultPathParser = new DefaultPathParser();


PathParser getPathParser() {
return defaultPathParser;
}



/**
*

+ 17
- 2
archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java View File

@@ -199,6 +199,20 @@ public class ManagedDefaultRepositoryContent
}
}

@Override
public ContentItem getItem( ItemSelector selector ) throws ContentAccessException, IllegalArgumentException
{
if (selector.hasVersion() && selector.hasArtifactId()) {
return getArtifact( selector );
} else if (selector.hasProjectId() && selector.hasVersion()) {
return getVersion( selector );
} else if (selector.hasProjectId()) {
return getProject( selector );
} else {
return getNamespace( selector );
}
}

@Override
public Namespace getNamespace( final ItemSelector namespaceSelector ) throws ContentAccessException, IllegalArgumentException
{
@@ -620,13 +634,14 @@ public class ManagedDefaultRepositoryContent
@Override
public ContentItem toItem( String path ) throws LayoutException
{
return getItemFromPath( getAssetByPath( path ) );
ItemSelector selector = getPathParser( ).toItemSelector( path );
return getItem( selector );
}

@Override
public ContentItem toItem( StorageAsset assetPath ) throws LayoutException
{
return getItemFromPath( assetPath );
return toItem( assetPath.getPath( ) );
}

/// ************* End of new generation interface ******************

Loading…
Cancel
Save