/** * using this method one creates an ArtifactRepository instance with injected mirrors and proxies * @param embedder * @param url * @param id * @return * @deprecated use MavenEmbedder.createRemoteRepository */ @Deprecated public static ArtifactRepository createRemoteRepository(MavenEmbedder embedder, String url, String id) { return embedder.createRemoteRepository(url, id); }
protected @Override URLConnection openConnection(URL u) throws IOException { String path = u.getPath(); if (!path.startsWith("/")) { throw new IOException(path); } String stuff = path.substring(1); MavenEmbedder online = EmbedderFactory.getOnlineEmbedder(); Artifact a; String[] pieces = stuff.split(":"); if (pieces.length == 4) { a = online.createArtifact(pieces[0], pieces[1], pieces[2], pieces[3]); } else if (pieces.length == 5) { a = online.createArtifactWithClassifier(pieces[0], pieces[1], pieces[2], pieces[3], pieces[4]); } else { throw new IOException(stuff); } try { online.resolve(a, Collections.<ArtifactRepository>singletonList(online.createRemoteRepository(RepositorySystem.DEFAULT_REMOTE_REPO_URL, RepositorySystem.DEFAULT_REMOTE_REPO_ID)), online.getLocalRepository()); } catch (Exception x) { throw new IOException(stuff + ": " + x, x); } File f = a.getFile(); if (!f.isFile()) { throw new IOException("failed to download " + stuff); } Logger.getLogger(MavenProtocolHandler.class.getName()).log(Level.FINE, "resolved {0} -> {1}", new Object[] {stuff, f}); return Utilities.toURI(f).toURL().openConnection(); }
/** * Produces a list of remote repositories. * @see MavenEmbedder#resolve * @see ProjectBuildingRequest#setRemoteRepositories * @since 2.12 */ public List<ArtifactRepository> remoteRepositories(MavenEmbedder embedder) { List<ArtifactRepository> remotes = new ArrayList<ArtifactRepository>(); for (RepositoryInfo info : getRepositoryInfos()) { // XXX should there be a String preferredId parameter to limit the remote repositories used in case we have a "reference" ID somehow? if (!info.isLocal()) { remotes.add(embedder.createRemoteRepository(info.getRepositoryUrl(), info.getId())); } // XXX do we care to handle mirrors specially? } return remotes; }
/** * Tries to download an artifact. * @param info a version of an artifact * @return the file in the local repository (might not exist if download failed) * @throws AbstractArtifactResolutionException currently never? * @since 1.17 */ public static File downloadArtifact(NBVersionInfo info) throws Exception { Artifact a = createArtifact(info); MavenEmbedder online = EmbedderFactory.getOnlineEmbedder(); List<ArtifactRepository> remotes; RepositoryInfo repo = RepositoryPreferences.getInstance().getRepositoryInfoById(info.getRepoId()); if (repo != null && repo.isRemoteDownloadable()) { remotes = Collections.singletonList(online.createRemoteRepository(repo.getRepositoryUrl(), repo.getId())); } else { remotes = Collections.singletonList(online.createRemoteRepository(RepositorySystem.DEFAULT_REMOTE_REPO_URL, RepositorySystem.DEFAULT_REMOTE_REPO_ID)); } online.resolve(a, remotes, online.getLocalRepository()); return a.getFile(); }
repos.add(embedder.createRemoteRepository(RepositorySystem.DEFAULT_REMOTE_REPO_URL, RepositorySystem.DEFAULT_REMOTE_REPO_ID)); String url = rinfo.getRepositoryUrl(); if (url != null) { repos.add(embedder.createRemoteRepository(url, rinfo.getId()));
online.resolve(art, Collections.<ArtifactRepository>singletonList(online.createRemoteRepository(info.getRepositoryUrl(), info.getId())), online.getLocalRepository()); } catch (ThreadDeath d) { return;