private MavenResolver createMavenResolver() { Dictionary<String, String> props = new Hashtable<>(); if (offline) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + "offline", "true"); } if (localRepository != null) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + ".localRepository", localRepository); } if (mavenRepositories != null) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + ".repositories", mavenRepositories); } MavenResolver resolver = MavenResolvers.createMavenResolver(props, ORG_OPS4J_PAX_URL_MVN_PID); return resolverWrapper.apply(resolver); }
private MavenResolver createMavenResolver() { Dictionary<String, String> props = new Hashtable<>(); if (offline) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + "offline", "true"); } if (localRepository != null) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + ".localRepository", localRepository); } if (mavenRepositories != null) { props.put(ORG_OPS4J_PAX_URL_MVN_PID + ".repositories", mavenRepositories); } MavenResolver resolver = MavenResolvers.createMavenResolver(props, ORG_OPS4J_PAX_URL_MVN_PID); return resolverWrapper.apply(resolver); }
private void unzipMvnArtifact(String aConfigtMvnUrlStr, String aConfigFolderPath) throws IOException { RuntimeUtil.registerMavenUrlHandler(); MavenResolver mavenResolver = MavenResolvers.createMavenResolver(null, ServiceConstants.PID); File artifactToUnzip = mavenResolver.resolve(aConfigtMvnUrlStr); try (ZipFile zipFile = new ZipFile(artifactToUnzip)) { try { Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); File entryDestination = new File(aConfigFolderPath, entry.getName()); if (entry.isDirectory()) { entryDestination.mkdirs(); } else { entryDestination.getParentFile().mkdirs(); InputStream in = zipFile.getInputStream(entry); OutputStream out = new FileOutputStream(entryDestination); IOUtils.copy(in, out); IOUtils.closeQuietly(in); out.close(); } } } finally { zipFile.close(); } } }
@Override public URLConnection openConnection(URL url) throws IOException { MavenResolver resolver = MavenResolvers.createMavenResolver(null, ServiceConstants.PID); Connection conn = new Connection(url, resolver); conn.setUseCaches(false);// to avoid concurent thread to have an IllegalStateException. return conn; }
protected DownloadManager createDownloadManager() throws IOException { Dictionary<String, String> props = getMavenConfig(); MavenResolver resolver = MavenResolvers.createMavenResolver(props, "org.ops4j.pax.url.mvn"); ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(cfg.downloadThreads, ThreadUtils.namedThreadFactory("downloader")); executor.setMaximumPoolSize(cfg.downloadThreads); return DownloadManagers.createDownloadManager(resolver, executor, cfg.scheduleDelay, cfg.scheduleMaxRun); }
@Override public void execute() throws MojoExecutionException { if (skip) { return; } if (karafVersion == null) { karafVersion = org.apache.karaf.util.Version.karafVersion(); } Hashtable<String, String> config = new Hashtable<>(); String remoteRepositories = MavenUtil.remoteRepositoryList(project.getRemoteProjectRepositories()); getLog().info("Using repositories: " + remoteRepositories); config.put("maven.repositories", remoteRepositories); config.put("maven.localRepository", localRepo.getBasedir()); if (mavenSession.getRequest().getUserSettingsFile().exists()) { config.put("maven.settings", mavenSession.getRequest().getUserSettingsFile().toString()); } // TODO: add more configuration bits ? resolver = new ReactorMavenResolver(reactor, MavenResolvers.createMavenResolver(config, "maven")); doExecute(); }
@Override public void execute() throws MojoExecutionException { if (skip) { return; } if (karafVersion == null) { karafVersion = org.apache.karaf.util.Version.karafVersion(); } Hashtable<String, String> config = new Hashtable<>(); String remoteRepositories = MavenUtil.remoteRepositoryList(project.getRemoteProjectRepositories()); getLog().info("Using repositories: " + remoteRepositories); config.put("maven.repositories", remoteRepositories); config.put("maven.localRepository", localRepo.getBasedir()); if (mavenSession.getRequest().getUserSettingsFile().exists()) { config.put("maven.settings", mavenSession.getRequest().getUserSettingsFile().toString()); } // TODO: add more configuration bits ? resolver = new ReactorMavenResolver(reactor, MavenResolvers.createMavenResolver(config, "maven")); doExecute(); }
private static void createAndDeployArtifact() throws IOException { // create jar file File tempFile = File.createTempFile("comps-api-tests", ".jar"); try { // adds a dep.txt entry LOG.debug("created temp artifact jar" + tempFile.getAbsolutePath()); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(tempFile)); String depsEntryPath = "META-INF/maven/" + TEST_GROUPID + "/" + TEST_ARTEFACTID + "/dependencies.txt"; ZipEntry e = new ZipEntry(depsEntryPath); out.putNextEntry(e); InputStream depTxtStream = DependenciesReaderTest.class.getResourceAsStream("/" + depsEntryPath); byte[] data = IOUtils.toByteArray(depTxtStream); out.write(data, 0, data.length); out.closeEntry(); out.close(); // deploy it MavenResolver mavenResolver = MavenResolvers.createMavenResolver(null, "foo"); mavenResolver.upload(TEST_GROUPID, TEST_ARTEFACTID, "jar", "jar", TEST_VERSION, tempFile); tempMavenFilePath = mavenResolver.resolve(TEST_GROUPID, TEST_ARTEFACTID, "jar", "jar", TEST_VERSION) .getAbsolutePath(); LOG.debug("artifact deployed:" + tempMavenFilePath); } finally { // remove it tempFile.delete(); } }
/** * Test method for * {@link org.talend.components.api.component.runtime.DependenciesReader#extractDependenciesFromStream(org.talend.components.api.component.runtime.DependenciesReader, java.lang.String, java.util.jar.JarInputStream)} * . * * @throws IOException * @throws MalformedURLException */ @Ignore("we can't use components-api-full-example here because it brings cyclic dependency. Should be fixed by using another test module") @Test public void testExtracDependencyFromStream() throws MalformedURLException, IOException { MavenResolver mavenResolver = MavenResolvers.createMavenResolver(null, "foo"); File jarWithDeps = mavenResolver.resolve("mvn:org.talend.components/components-api-full-example/0.1.0"); try (JarInputStream jis = new JarInputStream(new FileInputStream(jarWithDeps))) { List<URL> dependencyFromStream = DependenciesReader.extractDependencies(new DependenciesReader(null), DependenciesReader.computeDependenciesFilePath("org.talend.components", "components-full-example"), jis); checkFullExampleDependencies(dependencyFromStream); } }
/** * Test method for {@link org.talend.components.api.component.runtime.JarRuntimeInfo#getMavenUrlDependencies()}. * * @throws IOException */ @Ignore("we can't use components-api-full-example here because it brings cyclic dependency. Should be fixed by using another test module") @Test public void testGetMavenUrlDependencies() throws IOException { MavenResolver mavenResolver = MavenResolvers.createMavenResolver(null, "foo"); File jarWithDeps = mavenResolver.resolve("mvn:org.talend.components/components-api-full-example/0.1.0"); // the artifact id used to compute the file path is different from the actual artifact ID. // I don't know why but this does not matter. JarRuntimeInfo jarRuntimeInfo = new JarRuntimeInfo(jarWithDeps.toURI().toURL(), DependenciesReader.computeDependenciesFilePath("org.talend.components", "components-full-example"), null); List<URL> mavenUrlDependencies = jarRuntimeInfo.getMavenUrlDependencies(); checkFullExampleDependencies(mavenUrlDependencies); }