use of org.commonjava.maven.atlas.ident.util.JoinString in project galley by Commonjava.
the class MavenModelProcessorTest method resolvePluginVersionFromManagementExpression.
@Test
public void resolvePluginVersionFromManagementExpression() throws Exception {
final URI src = new URI("http://nowhere.com/path/to/repo");
final ProjectVersionRef childRef = new SimpleProjectVersionRef("org.test", "test-child", "1.0");
final LinkedHashMap<ProjectVersionRef, String> lineage = new LinkedHashMap<ProjectVersionRef, String>();
lineage.put(childRef, "child.pom.xml");
lineage.put(new SimpleProjectVersionRef("org.test", "test-parent", "1.0"), "parent.pom.xml");
final Location location = new SimpleLocation("test", src.toString(), false, true, true, false, true, false);
final String base = PROJ_BASE + "version-expression-managed-parent-plugin/";
for (final Entry<ProjectVersionRef, String> entry : lineage.entrySet()) {
final ProjectVersionRef ref = entry.getKey();
final String filename = entry.getValue();
final String path = ArtifactPathUtils.formatArtifactPath(ref.asPomArtifact(), fixture.getTypeMapper());
fixture.getTransport().registerDownload(new ConcreteResource(location, path), new TestDownload(base + filename));
}
final Transfer transfer = fixture.getArtifactManager().retrieve(location, childRef.asPomArtifact());
final MavenPomView pomView = fixture.getPomReader().read(childRef, transfer, Collections.singletonList(location));
final List<PluginView> buildPlugins = pomView.getAllBuildPlugins();
assertThat(buildPlugins, notNullValue());
assertThat(buildPlugins.size(), equalTo(1));
final PluginView pv = buildPlugins.get(0);
assertThat(pv, notNullValue());
assertThat(pv.getVersion(), equalTo("1.0"));
final ModelProcessorConfig discoveryConfig = new ModelProcessorConfig();
discoveryConfig.setIncludeManagedDependencies(true);
discoveryConfig.setIncludeBuildSection(true);
discoveryConfig.setIncludeManagedPlugins(false);
EProjectDirectRelationships result = fixture.getModelProcessor().readRelationships(pomView, src, discoveryConfig);
final Set<ProjectRelationship<?, ?>> rels = result.getExactAllRelationships();
logger.info("Found {} relationships:\n\n {}", rels.size(), new JoinString("\n ", rels));
boolean seen = false;
for (final ProjectRelationship<?, ?> rel : rels) {
if (rel.getType() == RelationshipType.PLUGIN && !rel.isManaged()) {
if (seen) {
fail("Multiple plugins found!");
}
seen = true;
assertThat(rel.getTarget().getVersionString(), equalTo("1.0"));
}
}
if (!seen) {
fail("Plugin relationship not found!");
}
}
use of org.commonjava.maven.atlas.ident.util.JoinString in project galley by Commonjava.
the class MavenModelProcessorTest method resolvePluginVersionFromPropertyInProfile.
@Test
public void resolvePluginVersionFromPropertyInProfile() throws Exception {
final URI src = new URI("http://nowhere.com/path/to/repo");
final ProjectVersionRef childRef = new SimpleProjectVersionRef("org.test", "test-pom", "1.0");
final LinkedHashMap<ProjectVersionRef, String> lineage = new LinkedHashMap<ProjectVersionRef, String>();
lineage.put(childRef, "test-pom-1.0.pom.xml");
final Location location = new SimpleLocation("test", src.toString(), false, true, true, false, true, false);
final String base = PROJ_BASE + "version-expression-in-a-profile/";
for (final Entry<ProjectVersionRef, String> entry : lineage.entrySet()) {
final ProjectVersionRef ref = entry.getKey();
final String filename = entry.getValue();
final String path = ArtifactPathUtils.formatArtifactPath(ref.asPomArtifact(), fixture.getTypeMapper());
fixture.getTransport().registerDownload(new ConcreteResource(location, path), new TestDownload(base + filename));
}
final Transfer transfer = fixture.getArtifactManager().retrieve(location, childRef.asPomArtifact());
final MavenPomView pomView = fixture.getPomReader().read(childRef, transfer, Collections.singletonList(location));
final List<PluginView> buildPlugins = pomView.getAllBuildPlugins();
assertThat(buildPlugins, notNullValue());
assertThat(buildPlugins.size(), equalTo(1));
final PluginView pv = buildPlugins.get(0);
assertThat(pv, notNullValue());
assertThat(pv.getVersion(), equalTo("2.0"));
final ModelProcessorConfig discoveryConfig = new ModelProcessorConfig();
discoveryConfig.setIncludeManagedDependencies(true);
discoveryConfig.setIncludeBuildSection(true);
discoveryConfig.setIncludeManagedPlugins(false);
EProjectDirectRelationships result = fixture.getModelProcessor().readRelationships(pomView, src, discoveryConfig);
final Set<ProjectRelationship<?, ?>> rels = result.getExactAllRelationships();
logger.info("Found {} relationships:\n\n {}", rels.size(), new JoinString("\n ", rels));
boolean seen = false;
for (final ProjectRelationship<?, ?> rel : rels) {
if (rel.getType() == RelationshipType.PLUGIN && !rel.isManaged()) {
if (seen) {
fail("Multiple plugins found!");
}
seen = true;
assertThat(rel.getTarget().getVersionString(), equalTo("2.0"));
}
}
if (!seen) {
fail("Plugin relationship not found!");
}
}
use of org.commonjava.maven.atlas.ident.util.JoinString in project galley by Commonjava.
the class VersionResolverImpl method debug.
@SuppressWarnings("RegExpRedundantEscape")
private void debug(final String message, final Throwable e, final Object... params) {
final String format = message.replaceAll("\\{\\}", "%s") + "\n%s\n %s";
final Object[] p = new Object[params.length + 2];
System.arraycopy(params, 0, p, 0, params.length);
p[p.length - 2] = e.getMessage();
p[p.length - 1] = new JoinString("\n ", e.getStackTrace());
logger.debug("{}", new Object() {
@Override
public String toString() {
return String.format(format, p);
}
});
}
use of org.commonjava.maven.atlas.ident.util.JoinString in project galley by Commonjava.
the class TransferManagerImpl method doBatch.
@SuppressWarnings("RedundantThrows")
private <T extends TransferBatch> T doBatch(final Set<Resource> resources, final T batch, final boolean suppressFailures, final EventMetadata eventMetadata) throws TransferException {
logger.info("Attempting to batch-retrieve {} resources:\n {}", resources.size(), new JoinString("\n ", resources));
final Set<BatchRetriever> retrievers = new HashSet<>(resources.size());
for (final Resource resource : resources) {
retrievers.add(new BatchRetriever(this, resource, suppressFailures, eventMetadata));
}
final Map<ConcreteResource, TransferException> errors = new HashMap<>();
final Map<ConcreteResource, Transfer> transfers = new HashMap<>();
do {
for (final BatchRetriever retriever : retrievers) {
batchExecutor.submit(retriever);
}
int count = retrievers.size();
for (int i = 0; i < count; i++) {
try {
Future<BatchRetriever> pending = batchExecutor.take();
BatchRetriever retriever = pending.get();
final ConcreteResource resource = retriever.getLastTry();
final TransferException error = retriever.getError();
if (error != null) {
logger.warn("ERROR: {}...{}", error, resource, error.getMessage());
retrievers.remove(retriever);
if (!(error instanceof TransferLocationException)) {
errors.put(resource, error);
}
continue;
}
final Transfer transfer = retriever.getTransfer();
if (transfer != null && transfer.exists()) {
transfers.put(resource, transfer);
retrievers.remove(retriever);
logger.debug("Completed: {}", resource);
continue;
}
if (!retriever.hasMoreTries()) {
logger.debug("Not completed, but out of tries: {}", resource);
retrievers.remove(retriever);
}
} catch (final InterruptedException e) {
logger.error(String.format("Failed to wait for batch retrieval attempts to complete: %s", e.getMessage()), e);
break;
} catch (ExecutionException e) {
logger.error(String.format("Failed to retrieve next completed retrieval: %s", e.getMessage()), e);
}
}
} while (!retrievers.isEmpty());
batch.setErrors(errors);
batch.setTransfers(transfers);
return batch;
}
use of org.commonjava.maven.atlas.ident.util.JoinString in project pom-manipulation-ext by release-engineering.
the class MavenLocationExpander method expand.
@Override
public VirtualResource expand(final Resource resource) throws TransferException {
final List<ConcreteResource> result = new ArrayList<>();
if (resource instanceof ConcreteResource) {
expandSingle((ConcreteResource) resource, result);
} else {
for (final ConcreteResource cr : ((VirtualResource) resource).toConcreteResources()) {
expandSingle(cr, result);
}
}
logger.debug("Expanded to:\n {}", new JoinString("\n ", result));
return new VirtualResource(result);
}
Aggregations