
com.github.htfv.maven.plugins.testing.internal.ProjectWorkspaceReader Maven / Gradle / Ivy
package com.github.htfv.maven.plugins.testing.internal;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.repository.WorkspaceReader;
import org.sonatype.aether.repository.WorkspaceRepository;
/**
* {@link WorkspaceReader} implementation with works over a list of workspace
* {@link Artifact}s.
*
* @author htfv (Aliaksei Lahachou)
*/
public class ProjectWorkspaceReader implements WorkspaceReader
{
/**
* The list of workspace {@link Artifact}s.
*/
private List workspaceArtifacts;
/**
* The default {@link WorkspaceRepository}.
*/
private WorkspaceRepository workspaceRepository = new WorkspaceRepository();
/**
* Constructs a new instance of {@link ProjectWorkspaceReader}.
*
* @param workspaceArtifacts
* the list of workspace {@link Artifact}s.
*/
public ProjectWorkspaceReader(final List workspaceArtifacts)
{
this.workspaceArtifacts = workspaceArtifacts;
}
@Override
public File findArtifact(final Artifact artifact)
{
String groupId = artifact.getGroupId();
String artifactId = artifact.getArtifactId();
String extension = artifact.getExtension();
//
// We cannot reliably determine extension of a workspace artifact, so we
// always assume that everything that is not a pom is a jar.
//
if (!"pom".equals(extension))
{
extension = "jar";
}
for (Artifact workspaceArtifact : workspaceArtifacts)
{
if (ObjectUtils.equals(groupId, workspaceArtifact.getGroupId())
&& ObjectUtils.equals(artifactId, workspaceArtifact.getArtifactId())
&& ObjectUtils.equals(extension, workspaceArtifact.getExtension()))
{
return workspaceArtifact.getFile();
}
}
return null;
}
@Override
public List findVersions(final Artifact artifact)
{
String groupId = artifact.getGroupId();
String artifactId = artifact.getArtifactId();
String extension = artifact.getExtension();
//
// We cannot reliably determine extension of a workspace artifact, so we
// always assume that everything that is not a pom is a jar.
//
if (!"pom".equals(extension))
{
extension = "jar";
}
List versions = new ArrayList();
for (Artifact workspaceArtifact : workspaceArtifacts)
{
if (ObjectUtils.equals(groupId, workspaceArtifact.getGroupId())
&& ObjectUtils.equals(artifactId, workspaceArtifact.getArtifactId())
&& ObjectUtils.equals(extension, workspaceArtifact.getExtension()))
{
versions.add(workspaceArtifact.getVersion());
}
}
return versions;
}
@Override
public WorkspaceRepository getRepository()
{
return workspaceRepository;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy