This is an automated email from the ASF dual-hosted git repository.
martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git
The following commit(s) were added to refs/heads/master by this push:
new f0ce834 Renaming method and adding additional test
f0ce834 is described below
commit f0ce8343fd4988b7d971c80cd1202cf8711f94f7
Author: Martin Stockhammer <[email protected]>
AuthorDate: Mon Mar 23 19:21:50 2020 +0100
Renaming method and adding additional test
---
.../repository/ManagedRepositoryContent.java | 2 +-
.../mock/ManagedRepositoryContentMock.java | 2 +-
.../scanner/mock/ManagedRepositoryContentMock.java | 2 +-
.../mock/ManagedRepositoryContentMock.java | 2 +-
.../content/ManagedDefaultRepositoryContent.java | 26 ++++----
.../ManagedDefaultRepositoryContentTest.java | 69 +++++++++++++++++++++-
6 files changed, 86 insertions(+), 17 deletions(-)
diff --git
a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
index 318a6a6..20d0a67 100644
---
a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
+++
b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
@@ -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;
/**
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 21230c8..bcb330f 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
@@ -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
{
}
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 b79e47e..34a3e80 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
@@ -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
{
}
diff --git
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
index 17069d5..81d240e 100644
---
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
+++
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/ManagedRepositoryContentMock.java
@@ -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
{
}
diff --git
a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
index 4da98e1..b79753c 100644
---
a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
+++
b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
@@ -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
{
diff --git
a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
index 2d7098d..e8fab79 100644
---
a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
+++
b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
@@ -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" ) );
+ }
+
}