Example usage for org.apache.maven.model.resolution UnresolvableModelException UnresolvableModelException

List of usage examples for org.apache.maven.model.resolution UnresolvableModelException UnresolvableModelException

Introduction

In this page you can find the example usage for org.apache.maven.model.resolution UnresolvableModelException UnresolvableModelException.

Prototype

public UnresolvableModelException(Throwable cause, String groupId, String artifactId, String version) 

Source Link

Document

Creates a new exception with specified cause

Usage

From source file:com.google.devtools.build.workspace.maven.DefaultModelResolver.java

License:Open Source License

@Override
public ModelSource resolveModel(String groupId, String artifactId, String version)
        throws UnresolvableModelException {
    String ruleName = Rule.name(groupId, artifactId);
    if (ruleNameToModelSource.containsKey(ruleName)) {
        return ruleNameToModelSource.get(ruleName);
    }/*w ww.  j  a va  2s  .  c  om*/
    for (Repository repository : repositories) {
        UrlModelSource modelSource = getModelSource(repository.getUrl(), groupId, artifactId, version);
        if (modelSource != null) {
            return modelSource;
        }
    }

    // TODO(kchodorow): use Java 8 features to make this a one-liner.
    List<String> attemptedUrls = Lists.newArrayList();
    for (Repository repository : repositories) {
        attemptedUrls.add(repository.getUrl());
    }
    throw new UnresolvableModelException(
            "Could not find any repositories that knew how to " + "resolve " + groupId + ":" + artifactId + ":"
                    + version + " (checked " + Joiner.on(", ").join(attemptedUrls) + ")",
            groupId, artifactId, version);
}

From source file:com.netflix.nebula.lint.rule.dependency.provider.MavenBomRecommendationProvider.java

License:Apache License

private Map<String, String> getMavenRecommendations()
        throws UnresolvableModelException, FileNotFoundException, ModelBuildingException {
    Map<String, String> recommendations = new HashMap<>();

    Set<File> recommendationFiles = getBomsOnConfiguration();
    for (File recommendation : recommendationFiles) {
        if (!recommendation.getName().endsWith("pom")) {
            break;
        }/*  w w  w.ja  v a2  s.c  o  m*/

        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();

        request.setModelResolver(new ModelResolver() {
            @Override
            public ModelSource2 resolveModel(String groupId, String artifactId, String version)
                    throws UnresolvableModelException {
                String notation = groupId + ":" + artifactId + ":" + version + "@pom";
                org.gradle.api.artifacts.Dependency dependency = project.getDependencies().create(notation);
                org.gradle.api.artifacts.Configuration configuration = project.getConfigurations()
                        .detachedConfiguration(dependency);
                try {
                    File file = configuration.getFiles().iterator().next();
                    return new SimpleModelSource(new java.io.FileInputStream(file));
                } catch (Exception e) {
                    throw new UnresolvableModelException(e, groupId, artifactId, version);
                }
            }

            @Override
            public ModelSource2 resolveModel(Dependency dependency) throws UnresolvableModelException {
                return resolveModel(dependency.getGroupId(), dependency.getArtifactId(),
                        dependency.getVersion());
            }

            @Override
            public ModelSource2 resolveModel(Parent parent) throws UnresolvableModelException {
                return resolveModel(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
            }

            @Override
            public void addRepository(Repository repository) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public void addRepository(Repository repository, boolean bool) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public ModelResolver newCopy() {
                return this; // do nothing
            }
        });
        request.setModelSource(new SimpleModelSource(new java.io.FileInputStream(recommendation)));
        request.setSystemProperties(System.getProperties());

        DefaultModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
        modelBuilder.setModelInterpolator(new ProjectPropertiesModelInterpolator(project));

        ModelBuildingResult result = modelBuilder.build(request);
        log.info("using bom: " + result.getEffectiveModel().getId());
        Model model = result.getEffectiveModel();
        if (model == null) {
            break;
        }
        org.apache.maven.model.DependencyManagement dependencyManagement = model.getDependencyManagement();
        if (dependencyManagement == null) {
            break;
        }
        for (Dependency d : dependencyManagement.getDependencies()) {
            recommendations.put(d.getGroupId() + ":" + d.getArtifactId(), d.getVersion()); // overwrites previous values
        }
    }
    return recommendations;
}

From source file:org.dthume.maven.xpom.impl.XPOMModelResolver.java

License:Apache License

private File resolvePOMFile(final String groupId, final String artifactId, final String version)
        throws UnresolvableModelException {
    final Artifact artifact = new DefaultArtifact(groupId, artifactId, "", "pom", version);
    try {/*from   www  .  ja v a  2 s.com*/
        final ArtifactRequest request = new ArtifactRequest(artifact, repositories, "project");
        final Artifact resolved = repoSystem.resolveArtifact(session, request).getArtifact();
        return resolved.getFile();
    } catch (final ArtifactResolutionException e) {
        throw new UnresolvableModelException(e.getMessage(), groupId, artifactId, version);
    }
}

From source file:org.jboss.forge.addon.maven.impl.MavenModelResolver.java

License:Open Source License

@Override
public ModelSource resolveModel(Parent parent) throws UnresolvableModelException {

    Artifact artifact = new DefaultArtifact(parent.getGroupId(), parent.getArtifactId(), "", "pom",
            parent.getVersion());//w w w .  j  av  a2 s . com

    VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, repositories, null);

    try {
        VersionRangeResult versionRangeResult = system.resolveVersionRange(session, versionRangeRequest);

        if (versionRangeResult.getHighestVersion() == null) {
            throw new UnresolvableModelException(
                    "No versions matched the requested range '" + parent.getVersion() + "'",
                    parent.getGroupId(), parent.getArtifactId(), parent.getVersion());

        }

        if (versionRangeResult.getVersionConstraint() != null
                && versionRangeResult.getVersionConstraint().getRange() != null
                && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null) {
            throw new UnresolvableModelException(
                    "The requested version range '" + parent.getVersion() + "' does not specify an upper bound",
                    parent.getGroupId(), parent.getArtifactId(), parent.getVersion());

        }

        parent.setVersion(versionRangeResult.getHighestVersion().toString());
    } catch (VersionRangeResolutionException e) {
        throw new UnresolvableModelException(e.getMessage(), parent.getGroupId(), parent.getArtifactId(),
                parent.getVersion(), e);
    }

    return resolveModel(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
}

From source file:org.SimpleModelResolver.java

License:Open Source License

public ModelSource resolveModel(String groupId, String artifactId, String version)
        throws UnresolvableModelException {
    // do your repo magic here

    String resource = "/repo/" + groupId + '/' + artifactId + '/' + version + "/pom.xml";

    URL url = getClass().getResource(resource);

    if (url == null) {
        throw new UnresolvableModelException("PANIC!", groupId, artifactId, version);
    }// w  w w.j  a  v a2  s  . c  om

    return new UrlModelSource(url);
}

From source file:org.sonatype.sisu.maven.bridge.internal.LocalModelResolverBase.java

License:Open Source License

public ModelSource resolveModel(String groupId, String artifactId, String version)
        throws UnresolvableModelException {
    String path = layout.getPath(new DefaultArtifact(groupId, artifactId, "pom", version)).getPath();

    File pomFile = new File(getBaseDir(), path);

    if (!pomFile.isFile()) {
        throw new UnresolvableModelException("POM does not exist: " + pomFile, groupId, artifactId, version);
    }//from w ww  .  java 2s  . c o  m

    return new FileModelSource(pomFile);
}

From source file:org.vesalainen.test.pom.FileModelResolver.java

@Override
public ModelSource resolveModel(String groupId, String artifactId, String version)
        throws UnresolvableModelException {/*
                                              if (VersionRange.isVersionRange(version))
                                              {
                                           VersionRange range = new VersionRange(version);
                                           String directoryName = getDirectory(groupId, artifactId);
                                           File dir = new File(base, directoryName);
                                           FileFilter filter = new FileFilter() 
                                           {
                                                   
                                               @Override
                                               public boolean accept(File pathname)
                                               {
                                                   if (pathname.isDirectory())
                                                   {
                                                       switch (pathname.getName())
                                                       {
                                                           case ".":
                                                           case "..":
                                                               return false;
                                                           default:
                                                               return true;
                                                       }
                                                   }
                                                   return false;
                                               }
                                           };
                                           List<String> versions = new ArrayList<>();
                                           for (File file : dir.listFiles(filter))
                                           {
                                               versions.add(file.getName());
                                           }
                                           Collections.sort(versions);
                                           // find oldest version that satisfies
                                           for (String v : versions)
                                           {
                                               if (range.in(v))
                                               {
                                                   return resolveModel(groupId, artifactId, v);
                                               }
                                           }
                                           throw new IllegalArgumentException("no suitable version for "+version);
                                              }
                                              else*/
    {//from www.java2s  .com
        String filename = getFilename(groupId, artifactId, version, "pom");
        File file = new File(base, filename);
        if (!file.exists()) {
            throw new UnresolvableModelException("file " + file + " doesn't exist", groupId, artifactId,
                    version);
        }
        if (!file.canRead()) {
            throw new UnresolvableModelException("can't read file " + file, groupId, artifactId, version);
        }
        return new FileModelSource(file);
    }
}