diff --git a/.gitignore b/.gitignore index 123f81b..89b6b1f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ release.properties local-cache maven-repository-provisioner.log .checkstyle +**/*.iml \ No newline at end of file diff --git a/maven-repository-provisioner/src/main/java/com/simpligility/maven/provisioner/Configuration.java b/maven-repository-provisioner/src/main/java/com/simpligility/maven/provisioner/Configuration.java index 262130f..38089de 100644 --- a/maven-repository-provisioner/src/main/java/com/simpligility/maven/provisioner/Configuration.java +++ b/maven-repository-provisioner/src/main/java/com/simpligility/maven/provisioner/Configuration.java @@ -83,7 +83,7 @@ public class Configuration private Boolean verifyOnly = false; @Parameter( names = {"-dt", "-deployThreads"}, - description = "Number of threads to use for deploying artifacts, default is 5." ) + description = "Number of threads to use for deploying artifacts. Defaults to 5." ) private int deployThreads = 5; public void setSourceUrl( String sourceUrl ) diff --git a/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/MavenRepositoryDeploymentCallableTest.java b/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/MavenRepositoryDeploymentCallableTest.java new file mode 100644 index 0000000..0f428ca --- /dev/null +++ b/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/MavenRepositoryDeploymentCallableTest.java @@ -0,0 +1,78 @@ +package com.simpligility.maven.provisioner; + +import com.simpligility.maven.Gav; +import com.simpligility.maven.MavenConstants; +import com.simpligility.maven.provisioner.helpers.RepositorySystemImpl; +import org.eclipse.aether.DefaultRepositorySystemSession; +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.repository.RemoteRepository; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.util.Arrays; +import java.util.Collection; + +import static org.junit.Assert.assertEquals; + +public class MavenRepositoryDeploymentCallableTest +{ + + private Gav gav; + private Collection artifacts; + private RemoteRepository distRepo; + private RepositorySystem system; + private DefaultRepositorySystemSession session; + private MavenRepositoryDeploymentCallable callable; + + @Before + public void setUp( ) + { + gav = new Gav( "groupId", "artifactId", "version", "jar" ); + artifacts = Arrays.asList( new File( "artifact1.jar" ), new File( "artifact2.jar" ) ); + distRepo = new RemoteRepository.Builder( "id", "type", "url" ).build(); + system = new RepositorySystemImpl(); + session = new DefaultRepositorySystemSession(); + callable = new MavenRepositoryDeploymentCallable( gav, artifacts, distRepo, false, system, session ); + } + + @Test + public void testGetExtension( ) + { + File file1 = new File( "artifact1.jar" ); + File file2 = new File( "archive.tar.gz" ); + File file3 = new File( "document.txt" ); + + assertEquals( "jar", callable.getExtension( file1 ) ); + assertEquals( "tar.gz", callable.getExtension( file2 ) ); + assertEquals( "txt", callable.getExtension( file3 ) ); + } + + @Test + public void testGetArtifact( ) + { + File pomFile = new File( "artifactId-version.pom" ); + File jarFile = new File( "artifactId-version.jar" ); + File sourceFile = new File( "artifactId-version-sources.jar" ); + File javadocFile = new File( "artifactId-version-javadoc.jar" ); + File customFile = new File( "artifactId-version-custom.ext" ); + + assertEquals( new DefaultArtifact( "groupId", "artifactId", MavenConstants.POM, "version" ), + callable.getArtifact( gav, pomFile ) ); + assertEquals( new DefaultArtifact( "groupId", "artifactId", MavenConstants.JAR, "version" ), + callable.getArtifact( gav, jarFile ) ); + assertEquals( new DefaultArtifact( "groupId", + "artifactId", + MavenConstants.SOURCES, + MavenConstants.JAR, + "version" ), callable.getArtifact( gav, sourceFile ) ); + assertEquals( new DefaultArtifact( "groupId", + "artifactId", + MavenConstants.JAVADOC, + MavenConstants.JAR, + "version" ), callable.getArtifact( gav, javadocFile ) ); + assertEquals( new DefaultArtifact( "groupId", "artifactId", "custom", "ext", "version" ), + callable.getArtifact( gav, customFile ) ); + } +} diff --git a/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/helpers/RepositorySystemImpl.java b/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/helpers/RepositorySystemImpl.java new file mode 100644 index 0000000..d104571 --- /dev/null +++ b/maven-repository-provisioner/src/test/java/com/simpligility/maven/provisioner/helpers/RepositorySystemImpl.java @@ -0,0 +1,140 @@ +package com.simpligility.maven.provisioner.helpers; + +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.SyncContext; +import org.eclipse.aether.collection.CollectRequest; +import org.eclipse.aether.collection.CollectResult; +import org.eclipse.aether.collection.DependencyCollectionException; +import org.eclipse.aether.deployment.DeployRequest; +import org.eclipse.aether.deployment.DeployResult; +import org.eclipse.aether.deployment.DeploymentException; +import org.eclipse.aether.installation.InstallRequest; +import org.eclipse.aether.installation.InstallResult; +import org.eclipse.aether.installation.InstallationException; +import org.eclipse.aether.repository.LocalRepository; +import org.eclipse.aether.repository.LocalRepositoryManager; +import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.resolution.ArtifactDescriptorException; +import org.eclipse.aether.resolution.ArtifactDescriptorRequest; +import org.eclipse.aether.resolution.ArtifactDescriptorResult; +import org.eclipse.aether.resolution.ArtifactRequest; +import org.eclipse.aether.resolution.ArtifactResolutionException; +import org.eclipse.aether.resolution.ArtifactResult; +import org.eclipse.aether.resolution.DependencyRequest; +import org.eclipse.aether.resolution.DependencyResolutionException; +import org.eclipse.aether.resolution.DependencyResult; +import org.eclipse.aether.resolution.MetadataRequest; +import org.eclipse.aether.resolution.MetadataResult; +import org.eclipse.aether.resolution.VersionRangeRequest; +import org.eclipse.aether.resolution.VersionRangeResolutionException; +import org.eclipse.aether.resolution.VersionRangeResult; +import org.eclipse.aether.resolution.VersionRequest; +import org.eclipse.aether.resolution.VersionResolutionException; +import org.eclipse.aether.resolution.VersionResult; + +import java.util.Collection; +import java.util.List; + +public class RepositorySystemImpl implements RepositorySystem +{ + @Override + public VersionRangeResult resolveVersionRange( RepositorySystemSession repositorySystemSession, + VersionRangeRequest versionRangeRequest ) + throws VersionRangeResolutionException + { + return null; + } + + @Override + public VersionResult resolveVersion( RepositorySystemSession repositorySystemSession, + VersionRequest versionRequest ) throws VersionResolutionException + { + return null; + } + + @Override + public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession repositorySystemSession, + ArtifactDescriptorRequest artifactDescriptorRequest ) + throws ArtifactDescriptorException + { + return null; + } + + @Override + public CollectResult collectDependencies( RepositorySystemSession repositorySystemSession, + CollectRequest collectRequest ) throws DependencyCollectionException + { + return null; + } + + @Override + public DependencyResult resolveDependencies( RepositorySystemSession repositorySystemSession, + DependencyRequest dependencyRequest ) + throws DependencyResolutionException + { + return null; + } + + @Override + public ArtifactResult resolveArtifact( RepositorySystemSession repositorySystemSession, + ArtifactRequest artifactRequest ) throws ArtifactResolutionException + { + return null; + } + + @Override + public List resolveArtifacts( RepositorySystemSession repositorySystemSession, + Collection collection ) + throws ArtifactResolutionException + { + return List.of(); + } + + @Override + public List resolveMetadata( RepositorySystemSession repositorySystemSession, + Collection collection ) + { + return List.of(); + } + + @Override + public InstallResult install( RepositorySystemSession repositorySystemSession, + InstallRequest installRequest ) throws InstallationException + { + return null; + } + + @Override + public DeployResult deploy( RepositorySystemSession repositorySystemSession, + DeployRequest deployRequest ) throws DeploymentException + { + return null; + } + + @Override + public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession repositorySystemSession, + LocalRepository localRepository ) + { + return null; + } + + @Override public SyncContext newSyncContext( RepositorySystemSession repositorySystemSession, boolean b ) + { + return null; + } + + @Override + public List newResolutionRepositories( RepositorySystemSession repositorySystemSession, + List list ) + { + return List.of(); + } + + @Override + public RemoteRepository newDeploymentRepository( RepositorySystemSession repositorySystemSession, + RemoteRepository remoteRepository ) + { + return null; + } +}