-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Run the MavenDeployer in threads-per-leaf node
This change allows for the configuration of the provisioner/deployer with a thread count. It makes the MavenRepositoryDeployer a singleton and copies the leaf-node deployment code into a Callable class Signed-off-by: Samuel Dacanay <[email protected]>
- Loading branch information
Showing
4 changed files
with
220 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,3 +10,4 @@ release.properties | |
local-cache | ||
maven-repository-provisioner.log | ||
.checkstyle | ||
**/*.iml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
78 changes: 78 additions & 0 deletions
78
...c/test/java/com/simpligility/maven/provisioner/MavenRepositoryDeploymentCallableTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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<File> 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 ) ); | ||
} | ||
} |
140 changes: 140 additions & 0 deletions
140
...sioner/src/test/java/com/simpligility/maven/provisioner/helpers/RepositorySystemImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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<ArtifactResult> resolveArtifacts( RepositorySystemSession repositorySystemSession, | ||
Collection<? extends ArtifactRequest> collection ) | ||
throws ArtifactResolutionException | ||
{ | ||
return List.of(); | ||
} | ||
|
||
@Override | ||
public List<MetadataResult> resolveMetadata( RepositorySystemSession repositorySystemSession, | ||
Collection<? extends MetadataRequest> 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<RemoteRepository> newResolutionRepositories( RepositorySystemSession repositorySystemSession, | ||
List<RemoteRepository> list ) | ||
{ | ||
return List.of(); | ||
} | ||
|
||
@Override | ||
public RemoteRepository newDeploymentRepository( RepositorySystemSession repositorySystemSession, | ||
RemoteRepository remoteRepository ) | ||
{ | ||
return null; | ||
} | ||
} |