Browse Source

Renaming method and adding additional test

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

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

@@ -267,7 +267,7 @@ public interface ManagedRepositoryContent extends RepositoryContent
* @param destination the coordinates of the destination
* @throws IllegalArgumentException if the destination is not valid
*/
void copyArtifact( Path sourceFile, ContentItem destination ) throws IllegalArgumentException;
void addArtifact( Path sourceFile, Artifact destination ) throws IllegalArgumentException, ContentAccessException;


/**

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

@@ -181,7 +181,7 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
}

@Override
public void copyArtifact( Path sourceFile, ContentItem destination ) throws IllegalArgumentException
public void addArtifact( Path sourceFile, Artifact destination ) throws IllegalArgumentException
{

}

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

@@ -182,7 +182,7 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
}

@Override
public void copyArtifact( Path sourceFile, ContentItem destination ) throws IllegalArgumentException
public void addArtifact( Path sourceFile, Artifact destination ) throws IllegalArgumentException
{

}

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

@@ -186,7 +186,7 @@ public class ManagedRepositoryContentMock implements ManagedRepositoryContent
}

@Override
public void copyArtifact( Path sourceFile, ContentItem destination ) throws IllegalArgumentException
public void addArtifact( Path sourceFile, Artifact destination ) throws IllegalArgumentException
{

}

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

@@ -864,21 +864,27 @@ public class ManagedDefaultRepositoryContent
return getItem( selector ).getAsset( ).exists( );
}

/*
TBD
/**
* Moves the file to the artifact destination
*/
@Override
public void copyArtifact( Path sourceFile, ContentItem destination ) throws IllegalArgumentException
public void addArtifact( Path sourceFile, Artifact destination ) throws IllegalArgumentException, ContentAccessException
{

try
{
StorageAsset asset = destination.getAsset( );
if (!asset.exists()) {
asset.create();
}
asset.replaceDataFromFile( sourceFile );
}
catch ( IOException e )
{
log.error( "Could not push data to asset source={} destination={}. {}", sourceFile, destination.getAsset().getFilePath(), e.getMessage( ) );
throw new ContentAccessException( e.getMessage( ), e );
}
}

/**
* TBD
* @param path the path string that points to the item
* @return
* @throws LayoutException
*/
@Override
public ContentItem toItem( String path ) throws LayoutException
{

+ 66
- 3
archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java View File

@@ -19,7 +19,6 @@ package org.apache.archiva.repository.maven.content;
*/

import org.apache.archiva.common.filelock.FileLockManager;
import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.common.utils.VersionComparator;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.FileType;
@@ -50,16 +49,18 @@ import org.junit.Test;

import javax.inject.Inject;
import javax.inject.Named;
import javax.naming.Name;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Reader;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -1569,4 +1570,66 @@ public class ManagedDefaultRepositoryContentTest

}


@Test
public void testCopyArtifact() throws IOException, URISyntaxException
{
ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
ManagedRepositoryContent myRepoContent = repo.getContent( );
Path repoRoot = repo.getAsset( "" ).getFilePath( );

Path tmpFile = Files.createTempFile( "archiva-mvn-repotest", "jar" );
try( OutputStream outputStream = Files.newOutputStream( tmpFile ))
{
for ( int i = 0; i < 255; i++ )
{
outputStream.write( "test.test.test\n".getBytes( Charset.forName( "UTF-8" ) ) );
}
}

Path file = repoRoot.resolve( "org/apache/maven/samplejar/2.0/samplejar-2.0.jar" );
FileTime lmt = Files.getLastModifiedTime( file );
ArchivaItemSelector selector = ArchivaItemSelector.builder( )
.withNamespace( "org.apache.maven" )
.withProjectId( "samplejar" )
.withVersion( "2.0" )
.withArtifactId( "samplejar" )
.withArtifactVersion( "2.0" )
.withExtension( "jar" )
.build( );
Artifact artifact = myRepoContent.getArtifact( selector );
myRepoContent.addArtifact( tmpFile, artifact );
FileTime lmtAfter = Files.getLastModifiedTime( file );
assertNotEquals( lmtAfter, lmt );
Reader ln = Files.newBufferedReader( file, Charset.forName( "UTF-8" ) );
char[] content = new char[50];
ln.read( content );
assertTrue( new String( content ).startsWith( "test.test.test" ) );

tmpFile = Files.createTempFile( "archiva-mvn-repotest", "jar" );
try( OutputStream outputStream = Files.newOutputStream( tmpFile ))
{
for ( int i = 0; i < 255; i++ )
{
outputStream.write( "test.test.test\n".getBytes( Charset.forName( "UTF-8" ) ) );
}
}
file = repoRoot.resolve( "org/apache/maven/samplejar/2.0/samplejar-2.0.test" );
assertFalse( Files.exists( file ) );
assertTrue( Files.exists( tmpFile ) );
selector = ArchivaItemSelector.builder( )
.withNamespace( "org.apache.maven" )
.withProjectId( "samplejar" )
.withVersion( "2.0" )
.withArtifactId( "samplejar" )
.withArtifactVersion( "2.0" )
.withExtension( "test" )
.build( );
artifact = myRepoContent.getArtifact( selector );
myRepoContent.addArtifact( tmpFile, artifact );
ln = Files.newBufferedReader( file, Charset.forName( "UTF-8" ) );
ln.read( content );
assertTrue( new String( content ).startsWith( "test.test.test" ) );
}

}

Loading…
Cancel
Save