package org.overlord.dtgov.services;
import static org.kie.scanner.MavenRepository.getMavenRepository;
import java.io.InputStream;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.RepositoryPolicy;
import org.apache.maven.project.MavenProject;
import org.kie.scanner.MavenRepository;
import org.kie.scanner.embedder.MavenProjectLoader;
public class MavenRepoUtil {
public MavenRepository getMavenReleaseRepo(
String repoUrl, boolean isReleaseEnabled, boolean isSnapshotEnabled,
InputStream pomStream
) throws Exception {
//PlexusContainer container = new DefaultPlexusContainer();
//ArtifactRepositoryFactory artifactRepoFactory = container.lookup(ArtifactRepositoryFactory.class);
DeploymentRepository releaseToRepo = new DeploymentRepository();
releaseToRepo.setId("central"); //$NON-NLS-1$
releaseToRepo.setLayout("default"); //$NON-NLS-1$
releaseToRepo.setUrl(repoUrl);
RepositoryPolicy pol = new RepositoryPolicy();
pol.setEnabled(isReleaseEnabled);
pol.setUpdatePolicy(ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS);
pol.setChecksumPolicy(ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE);
releaseToRepo.setReleases(pol);
RepositoryPolicy pol2 = new RepositoryPolicy();
pol2.setEnabled(isSnapshotEnabled);
pol2.setUpdatePolicy(ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS);
pol2.setChecksumPolicy(ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE);
releaseToRepo.setSnapshots(pol2);
MavenProject mavenProject = MavenProjectLoader.parseMavenPom(pomStream);
DistributionManagement dm = new DistributionManagement();
dm.setSnapshotRepository(releaseToRepo);
mavenProject.setDistributionManagement(dm);
//List<ArtifactRepository> remoteArtifactRepositories = new ArrayList<ArtifactRepository>();
//remoteArtifactRepositories.add(releaseToRepo);
//mavenProject.setRemoteArtifactRepositories(remoteArtifactRepositories);
//org.apache.maven.artifact.repository.Authentication authentication
// = new org.apache.maven.artifact.repository.Authentication("user","pw");
//mavenRepo.setAuthentication(authentication);
MavenRepository repo = getMavenRepository(mavenProject);
return repo;
}
}