use of org.commonjava.maven.galley.maven.GalleyMavenException in project galley by Commonjava.
the class MavenModelProcessor method addParentRelationship.
protected void addParentRelationship(final URI source, final Builder builder, final MavenPomView pomView, final ProjectVersionRef projectRef) {
try {
final ParentView parent = pomView.getParent();
if (parent != null) {
final ProjectVersionRef ref = parent.asProjectVersionRef();
// force the InvalidVersionSpecificationException.
ref.getVersionSpec();
logger.info("Adding parent relationship for: {} to : {}", builder.getProjectRef(), ref);
builder.withParent(new SimpleParentRelationship(source, builder.getProjectRef(), ref));
} else {
logger.info("Adding self-referential parent relationship for: {} to signify project has no parent, but is parsable.", builder.getProjectRef());
builder.withParent(new SimpleParentRelationship(builder.getProjectRef()));
}
} catch (final GalleyMavenException e) {
logger.error(String.format("%s: Parent reference is invalid! Reason: %s. Skipping.", projectRef, e.getMessage()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s: Parent reference is invalid! Reason: %s. Skipping.", projectRef, e.getMessage()), e);
} catch (final InvalidRefException e) {
logger.error(String.format("%s: Parent reference is invalid! Reason: %s. Skipping.", projectRef, e.getMessage()), e);
}
}
use of org.commonjava.maven.galley.maven.GalleyMavenException in project galley by Commonjava.
the class MavenModelProcessor method addDependencyRelationships.
protected void addDependencyRelationships(final URI source, final Builder builder, final MavenPomView pomView, final ProjectVersionRef projectRef, final boolean includeManagedDependencies) {
// regardless of whether we're processing managed info, this is STRUCTURAL, so always grab it!
List<DependencyView> boms = null;
try {
boms = pomView.getAllBOMs();
} catch (final GalleyMavenException e) {
logger.error(String.format("%s: Failed to retrieve BOM declarations: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s: Failed to retrieve BOM declarations: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidRefException e) {
logger.error(String.format("%s: Failed to retrieve BOM declarations: %s. Skipping", pomView.getRef(), e.getMessage()), e);
}
for (int i = 0; i < boms.size(); i++) {
final DependencyView bomView = boms.get(i);
try {
builder.withBoms(new SimpleBomRelationship(source, projectRef, bomView.asProjectVersionRef(), i, bomView.getOriginInfo().isInherited(), bomView.getOriginInfo().isMixin()));
} catch (final InvalidRefException e) {
logger.error(String.format("%s dependency is invalid! Reason: %s. Skipping:\n\n%s\n\n", pomView.getRef(), e.getMessage(), bomView.toXML()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s dependency is invalid! Reason: %s. Skipping:\n\n%s\n\n", pomView.getRef(), e.getMessage(), bomView.toXML()), e);
} catch (final GalleyMavenException e) {
logger.error(String.format("%s dependency is invalid! Reason: %s. Skipping:\n\n%s\n\n", pomView.getRef(), e.getMessage(), bomView.toXML()), e);
}
}
if (includeManagedDependencies) {
List<DependencyView> deps = null;
try {
deps = pomView.getAllManagedDependencies();
} catch (final GalleyMavenException e) {
logger.error(String.format("%s: Failed to retrieve managed dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s: Failed to retrieve managed dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidRefException e) {
logger.error(String.format("%s: Failed to retrieve managed dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
}
addDependencies(deps, projectRef, builder, source, true);
}
List<DependencyView> deps = null;
try {
deps = pomView.getAllDirectDependencies();
} catch (final GalleyMavenException e) {
logger.error(String.format("%s: Failed to retrieve direct dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s: Failed to retrieve direct dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
} catch (final InvalidRefException e) {
logger.error(String.format("%s: Failed to retrieve direct dependencies: %s. Skipping", pomView.getRef(), e.getMessage()), e);
}
addDependencies(deps, projectRef, builder, source, false);
}
use of org.commonjava.maven.galley.maven.GalleyMavenException in project galley by Commonjava.
the class MavenModelProcessor method addPluginDependencies.
private void addPluginDependencies(final Collection<PluginDependencyView> pluginDependencies, final PluginView plugin, final ProjectVersionRef pluginRef, final ProjectVersionRef projectRef, final Builder builder, final URI source, final boolean managed) {
if (pluginDependencies != null) {
for (final PluginDependencyView dep : pluginDependencies) {
try {
final ProjectVersionRef ref = dep.asProjectVersionRef();
final String profileId = dep.getProfileId();
final URI location = RelationshipUtils.profileLocation(profileId);
final ArtifactRef artifactRef = new SimpleArtifactRef(ref, dep.getType(), dep.getClassifier());
// force the InvalidVersionSpecificationException.
artifactRef.getVersionSpec();
boolean inherited = dep.getOriginInfo().isInherited();
boolean mixin = dep.getOriginInfo().isMixin();
builder.withPluginDependencies(new SimplePluginDependencyRelationship(source, location, projectRef, pluginRef, artifactRef, builder.getNextPluginDependencyIndex(pluginRef, managed, inherited), managed, inherited));
} catch (final InvalidRefException e) {
logger.error(String.format("%s: plugin dependency is invalid in: %s! Reason: %s. Skipping:\n\n%s\n\n", projectRef, pluginRef, e.getMessage(), dep.toXML()), e);
} catch (final InvalidVersionSpecificationException e) {
logger.error(String.format("%s: plugin dependency is invalid in: %s! Reason: %s. Skipping:\n\n%s\n\n", projectRef, pluginRef, e.getMessage(), dep.toXML()), e);
} catch (final GalleyMavenException e) {
logger.error(String.format("%s: plugin dependency is invalid in: %s! Reason: %s. Skipping:\n\n%s\n\n", projectRef, pluginRef, e.getMessage(), dep.toXML()), e);
}
}
}
}
use of org.commonjava.maven.galley.maven.GalleyMavenException in project galley by Commonjava.
the class VersionResolverImpl method resolveLatestMultiRefWithLocation.
private ProjectVersionRefLocation resolveLatestMultiRefWithLocation(final List<? extends Location> locations, final ProjectVersionRef ref, final VersionSelectionStrategy selectionStrategy, final EventMetadata eventMetadata) throws TransferException {
final Map<SingleVersion, Location> available = new TreeMap<SingleVersion, Location>();
for (final Location location : locations) {
try {
final MavenMetadataView metadata = metadataReader.getMetadata(ref.asProjectRef(), Collections.singletonList(location), eventMetadata);
if (metadata != null) {
final List<String> versions = metadata.resolveValues("/metadata/versioning/versions/version");
if (versions != null) {
for (final String version : versions) {
try {
final SingleVersion spec = VersionUtils.createSingleVersion(version);
if (!available.containsKey(spec)) {
available.put(spec, location);
}
} catch (final InvalidVersionSpecificationException e) {
debug("Unparsable version spec found in metadata: '%s' for: %s from: %s.", e, version, ref, location);
}
}
}
}
} catch (final GalleyMavenException e) {
debug("Failed to resolve/parse metadata for variable version of: '%s' from: %s.", e, ref, location);
}
}
if (!available.isEmpty()) {
final VersionSpec spec = ref.getVersionSpec();
final List<SingleVersion> versions = new ArrayList<SingleVersion>(available.keySet());
Collections.sort(versions);
while (!versions.isEmpty()) {
final SingleVersion selected = selectionStrategy.select(versions);
if (selected == null) {
return null;
}
versions.remove(selected);
if (selected.isConcrete() && spec.contains(selected)) {
return new ProjectVersionRefLocation(ref.selectVersion(selected), available.get(selected));
}
}
}
return null;
}
use of org.commonjava.maven.galley.maven.GalleyMavenException in project galley by Commonjava.
the class VersionResolverImpl method resolveAllSnapshotRefsWithLocations.
private List<ProjectVersionRefLocation> resolveAllSnapshotRefsWithLocations(final List<? extends Location> locations, final ProjectVersionRef ref, final VersionSelectionStrategy selectionStrategy, final EventMetadata eventMetadata) throws TransferException {
final Map<SingleVersion, Location> available = new TreeMap<SingleVersion, Location>();
for (final Location location : locations) {
try {
final MavenMetadataView metadata = metadataReader.getMetadata(ref, Collections.singletonList(location), eventMetadata);
if (metadata != null) {
final String latest = metadata.resolveSingleValue("/metadata/versioning/latest");
if (latest != null) {
try {
final SingleVersion ver = VersionUtils.createSingleVersion(latest);
if (ver.isSnapshot()) {
if (!available.containsKey(ver)) {
available.put(ver, location);
}
}
} catch (final InvalidVersionSpecificationException e) {
debug("Unparsable version spec found in metadata: '%s' for: %s from: %s", e, latest, ref, location);
}
}
}
} catch (final GalleyMavenException e) {
debug("Failed to resolve/parse metadata for snapshot version of: %s from: %s.", e, ref, location);
}
}
if (!available.isEmpty()) {
return Collections.emptyList();
}
final List<SingleVersion> versions = new ArrayList<SingleVersion>(available.keySet());
Collections.sort(versions);
final List<ProjectVersionRefLocation> result = new ArrayList<ProjectVersionRefLocation>();
while (!versions.isEmpty()) {
final SingleVersion selected = selectionStrategy.select(versions);
if (selected != null) {
versions.remove(selected);
result.add(new ProjectVersionRefLocation(ref.selectVersion(selected), available.get(selected)));
}
}
return result;
}
Aggregations