瀏覽代碼

Moving to new layout interface

pull/61/head
Martin Stockhammer 4 年之前
父節點
當前提交
ddfcb4adb6

+ 12
- 2
archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyHandler.java 查看文件

@@ -288,8 +288,14 @@ public abstract class DefaultRepositoryProxyHandler implements RepositoryProxyHa
}

@Override
public ProxyFetchResult fetchMetadataFromProxies( ManagedRepository repository, String logicalPath )
public ProxyFetchResult fetchMetadataFromProxies( ManagedRepository repository, String rawLogicalPath )
{
String logicalPath;
if (rawLogicalPath.startsWith( "/" )){
logicalPath = rawLogicalPath.substring( 1 );
} else {
logicalPath = rawLogicalPath;
}
StorageAsset localFile = repository.getAsset( logicalPath );

Properties requestProperties = new Properties();
@@ -470,7 +476,11 @@ public abstract class DefaultRepositoryProxyHandler implements RepositoryProxyHa
{
url = url + "/";
}
url = url + remotePath;
if (remotePath.startsWith( "/" )) {
url = url + remotePath.substring( 1 );
} else {
url = url + remotePath;
}
requestProperties.setProperty( "url", url );

// Is a whitelist defined?

+ 8
- 0
archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/BaseRepositoryContentLayout.java 查看文件

@@ -258,6 +258,14 @@ public interface BaseRepositoryContentLayout extends ManagedRepositoryContentLay
*/
DataItem getMetadataItem( Version version );

/**
* Returns the metadata file for the given project
*
* @param project the project
* @return the metadata file
*/
DataItem getMetadataItem( Project project );


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


+ 8
- 0
archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java 查看文件

@@ -292,6 +292,14 @@ public class ManagedRepositoryContentMock implements BaseRepositoryContentLayout
.withDataType( BaseDataItemTypes.METADATA ).build();
}

@Override
public DataItem getMetadataItem( Project project )
{
return ArchivaDataItem.withAsset( project.getAsset( ).resolve( "maven-metadata.xml" ) ).withId( "maven-metadata.xml" )
.withDataType( BaseDataItemTypes.METADATA ).build( );
}


@Override
public ContentItem toItem( String path ) throws LayoutException
{

+ 10
- 0
archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/mock/ManagedRepositoryContentMock.java 查看文件

@@ -29,6 +29,7 @@ import org.apache.archiva.model.ProjectReference;
import org.apache.archiva.model.VersionedReference;
import org.apache.archiva.repository.*;
import org.apache.archiva.repository.content.Artifact;
import org.apache.archiva.repository.content.BaseDataItemTypes;
import org.apache.archiva.repository.content.ContentItem;
import org.apache.archiva.repository.content.DataItem;
import org.apache.archiva.repository.content.ItemNotFoundException;
@@ -36,6 +37,7 @@ import org.apache.archiva.repository.content.ItemSelector;
import org.apache.archiva.repository.content.Namespace;
import org.apache.archiva.repository.content.Project;
import org.apache.archiva.repository.content.Version;
import org.apache.archiva.repository.content.base.ArchivaDataItem;
import org.apache.archiva.repository.content.base.ArchivaNamespace;
import org.apache.archiva.repository.content.base.ArchivaProject;
import org.apache.archiva.repository.content.base.ArchivaVersion;
@@ -286,6 +288,14 @@ public class ManagedRepositoryContentMock implements BaseRepositoryContentLayout
return null;
}

@Override
public DataItem getMetadataItem( Project project )
{
return ArchivaDataItem.withAsset( project.getAsset( ).resolve( "maven-metadata.xml" ) ).withId( "maven-metadata.xml" )
.withDataType( BaseDataItemTypes.METADATA ).build( );
}


@Override
public ContentItem toItem( String path ) throws LayoutException
{

+ 17
- 12
archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/MetadataTransferTest.java 查看文件

@@ -34,7 +34,9 @@ import org.apache.archiva.policies.SnapshotsPolicy;
import org.apache.archiva.repository.BaseRepositoryContentLayout;
import org.apache.archiva.repository.content.ContentItem;
import org.apache.archiva.repository.content.DataItem;
import org.apache.archiva.repository.content.Project;
import org.apache.archiva.repository.content.Version;
import org.apache.archiva.repository.content.base.ArchivaItemSelector;
import org.apache.archiva.repository.metadata.base.MetadataTools;
import org.apache.archiva.repository.metadata.RepositoryMetadataException;
import org.apache.archiva.repository.metadata.base.RepositoryMetadataWriter;
@@ -129,13 +131,13 @@ public class MetadataTransferTest
assertNoRepoMetadata( ID_PROXIED1, requestedResource );

Path expectedFile = managedDefaultDir.resolve(requestedResource);

ProjectReference metadata = createProjectReference( requestedResource );

BaseRepositoryContentLayout layout = managedDefaultRepository.getLayout( BaseRepositoryContentLayout.class );
ContentItem metaItem = managedDefaultRepository.toItem( requestedResource );
Project project = layout.adaptItem( Project.class, managedDefaultRepository.getParent( metaItem ) );
assertNotNull( project );
String metaPath = managedDefaultRepository.toPath( layout.getMetadataItem( project ) );
StorageAsset downloadedFile = proxyHandler.fetchMetadataFromProxies( managedDefaultRepository.getRepository(),
layout.toMetadataPath(
metadata ) ).getFile();
metaPath ).getFile();

assertNull( "Should not have downloaded a file.", downloadedFile );
assertNoTempFiles( expectedFile );
@@ -994,13 +996,14 @@ public class MetadataTransferTest
{
Path expectedFile = managedDefaultDir.resolve(requestedResource);

ProjectReference metadata = createProjectReference( requestedResource );

BaseRepositoryContentLayout layout = managedDefaultRepository.getLayout( BaseRepositoryContentLayout.class );
ContentItem metaItem = managedDefaultRepository.toItem( requestedResource );
Project project = layout.adaptItem( Project.class, managedDefaultRepository.getParent( metaItem ) );
assertNotNull( project );
String metaPath = managedDefaultRepository.toPath( layout.getMetadataItem( project ) );

StorageAsset downloadedFile = proxyHandler.fetchMetadataFromProxies( managedDefaultRepository.getRepository(),
layout.toMetadataPath(
metadata ) ).getFile();
metaPath ).getFile();

assertNotNull( "Should have downloaded a file.", downloadedFile );
assertNoTempFiles( expectedFile );
@@ -1022,12 +1025,14 @@ public class MetadataTransferTest
throws Exception
{
Path expectedFile = managedDefaultDir.resolve(requestedResource);
ProjectReference metadata = createProjectReference( requestedResource );

BaseRepositoryContentLayout layout = managedDefaultRepository.getLayout( BaseRepositoryContentLayout.class );
ContentItem metaItem = managedDefaultRepository.toItem( requestedResource );
Project project = layout.adaptItem( Project.class, managedDefaultRepository.getParent( metaItem ) );
assertNotNull( project );
String metaPath = managedDefaultRepository.toPath( layout.getMetadataItem( project ) );
StorageAsset downloadedFile = proxyHandler.fetchMetadataFromProxies( managedDefaultRepository.getRepository(),
layout.toMetadataPath(
metadata ) ).getFile();
metaPath ).getFile();

assertNull( downloadedFile );
assertNoTempFiles( expectedFile );

+ 7
- 0
archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java 查看文件

@@ -293,6 +293,13 @@ public class ManagedRepositoryContentMock implements BaseRepositoryContentLayout
.withDataType( BaseDataItemTypes.METADATA ).build();
}

@Override
public DataItem getMetadataItem( Project project )
{
return ArchivaDataItem.withAsset( project.getAsset( ).resolve( "maven-metadata.xml" ) ).withId( "maven-metadata.xml" )
.withDataType( BaseDataItemTypes.METADATA ).build( );
}

@Override
public ContentItem toItem( String path ) throws LayoutException
{

+ 7
- 0
archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java 查看文件

@@ -1336,6 +1336,13 @@ public class ManagedDefaultRepositoryContent
return getDataItemFromPath( metaPath );
}

@Override
public DataItem getMetadataItem( Project project )
{
StorageAsset metaPath = project.getAsset( ).resolve( MAVEN_METADATA );
return getDataItemFromPath( metaPath );
}


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

Loading…
取消
儲存