public void extractArtifact(Coordinate artifactCoords, File targetDir) throws IOException, DependencyException { final DependencyQueryBuilder query = DependencyQueryBuilder.create(artifactCoords); Dependency dependency = depsResolver.resolveArtifact(query); FileResource<?> artifact = dependency.getArtifact(); ZipUtil.unzipToFolder(new File(artifact.getFullyQualifiedName()), targetDir); }
@Override public List<Coordinate> resolveAvailableVersions(final DependencyQuery query) { List<Coordinate> versions = getResolver().resolveVersions(query); return versions; }
public void extractArtifact(Coordinate artifactCoords, File targetDir) throws IOException, DependencyException { final DependencyQueryBuilder query = DependencyQueryBuilder.create(artifactCoords); Dependency dependency = depsResolver.resolveArtifact(query); FileResource<?> artifact = dependency.getArtifact(); ZipUtil.unzipToFolder(new File(artifact.getFullyQualifiedName()), targetDir); }
private List<String> getVersionsFor(DatabaseType type) { if (type == null) { return Collections.emptyList(); } else { return dependencyResolver .resolveVersions(DependencyQueryBuilder.create(type.getDriverCoordinate())) .stream().map(Coordinate::getVersion).collect(Collectors.toList()); } }
@Override public ArchetypeCatalog getArchetypeCatalog() { if (cachedArchetypes == null) { String version = VersionHelper.fabric8ArchetypesVersion(); Coordinate coordinate = CoordinateBuilder.create() .setGroupId("io.fabric8.archetypes") .setArtifactId("archetypes-catalog") .setVersion(version) .setPackaging("jar"); // load the archetype-catalog.xml from inside the JAR Dependency dependency = resolver.get().resolveArtifact(DependencyQueryBuilder.create(coordinate)); if (dependency != null) { try { String name = dependency.getArtifact().getFullyQualifiedName(); URL url = new URL("file", null, name); URLClassLoader loader = new URLClassLoader(new URL[]{url}); InputStream is = loader.getResourceAsStream("archetype-catalog.xml"); if (is != null) { cachedArchetypes = new ArchetypeCatalogXpp3Reader().read(is); } } catch (Exception e) { LOG.log(Level.WARNING, "Error while retrieving archetypes due " + e.getMessage(), e); } } } return cachedArchetypes; }
@Override public List<String> getAvailableVersions() { final List<Coordinate> availableCoordinates = getDependencyResolver().resolveVersions( DependencyQueryBuilder.create(buildFrameworkDependency().getCoordinate())); return availableCoordinates.stream() .map(Coordinate::getVersion) .collect(Collectors.toList()); }
/** * @param forgeDistribution */ private void updateForge(final DirectoryResource forgeHome, final Coordinate forgeDistribution, UIOutput output) throws IOException { DependencyResolver resolver = SimpleContainer .getServices(getClass().getClassLoader(), DependencyResolver.class).get(); ResourceFactory resourceFactory = SimpleContainer.getServices(getClass().getClassLoader(), ResourceFactory.class) .get(); Dependency dependency = resolver.resolveArtifact(DependencyQueryBuilder.create(forgeDistribution)); Assert.notNull(dependency, "Artifact was not found"); ZipFileResource dependencyZip = resourceFactory.create(ZipFileResource.class, dependency.getArtifact().getUnderlyingResourceObject()); dependencyZip.extractTo(forgeHome); DirectoryResource childDirectory = forgeHome.getChildDirectory(dependency.getCoordinate().getArtifactId() + "-" + dependency.getCoordinate().getVersion()); DirectoryResource updateDirectory = forgeHome.getChildDirectory(".update"); childDirectory.renameTo(updateDirectory); output.success(output.out(), "Forge will now restart to complete the update..."); System.exit(0); }
/** * @return Finds the latest non-SNAPSHOT of given artifact. */ public Coordinate getLatestReleaseOf(final CoordinateBuilder coord) { List<Coordinate> availableVersions = depsResolver.resolveVersions(DependencyQueryBuilder.create(coord)); // Find the latest non-SNAPSHOT and non-CR version. for(int i = availableVersions.size()-1; i >= 0; i--) { Coordinate availableCoord = availableVersions.get(i); String versionStr = availableCoord.getVersion(); if(versionStr != null && !availableCoord.isSnapshot() && !versionStr.matches(".*CR[0-9]$")) return availableCoord; } return null; }
Dependency resolvedArtifact = resolver.resolveArtifact(depQuery); FileResource<?> artifact = resolvedArtifact.getArtifact(); MetadataFacet metadataFacet = project.getFacet(MetadataFacet.class);
/** * @return Finds the latest non-SNAPSHOT of given artifact. */ public Coordinate getLatestReleaseOf(final CoordinateBuilder coord) { List<Coordinate> availableVersions = depsResolver.resolveVersions(DependencyQueryBuilder.create(coord)); // Find the latest non-SNAPSHOT and non-CR version. for(int i = availableVersions.size()-1; i >= 0; i--) { Coordinate availableCoord = availableVersions.get(i); String versionStr = availableCoord.getVersion(); if(versionStr != null && !availableCoord.isSnapshot() && !versionStr.matches(".*CR[0-9]$")) return availableCoord; } return null; }
@Override public Result execute(UIExecutionContext context) throws Exception { UIContext uiContext = context.getUIContext(); Project project = (Project) uiContext.getAttributeMap().get(Project.class); Archetype chosenArchetype = archetype.getValue(); String coordinate = chosenArchetype.getGroupId() + ":" + chosenArchetype.getArtifactId() + ":" + chosenArchetype.getVersion(); DependencyQueryBuilder depQuery = DependencyQueryBuilder.create(coordinate); String repository = chosenArchetype.getRepository(); if (!Strings.isNullOrEmpty(repository)) { if (repository.endsWith(".xml")) { int lastRepositoryPath = repository.lastIndexOf('/'); if (lastRepositoryPath > -1) repository = repository.substring(0, lastRepositoryPath); } if (!repository.isEmpty()) { depQuery.setRepositories(new DependencyRepository("archetype", repository)); } } Dependency resolvedArtifact = dependencyResolver.resolveArtifact(depQuery); FileResource<?> artifact = resolvedArtifact.getArtifact(); MetadataFacet metadataFacet = project.getFacet(MetadataFacet.class); File fileRoot = project.getRoot().reify(DirectoryResource.class).getUnderlyingResourceObject(); ArchetypeHelper archetypeHelper = new ArchetypeHelper(artifact.getResourceInputStream(), fileRoot, metadataFacet.getProjectGroupName(), metadataFacet.getProjectName(), metadataFacet.getProjectVersion()); JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); archetypeHelper.setPackageName(facet.getBasePackage()); archetypeHelper.execute(); return Results.success(); }
/** * Returns the latest available distribution */ private Coordinate getLatestAvailableDistribution(DependencyResolver resolver) { final Version runtimeVersion = Versions.getImplementationVersionFor(getClass()); CoordinateBuilder distCoordinate = CoordinateBuilder.create().setGroupId("org.jboss.forge") .setArtifactId("forge-distribution") .setClassifier("offline").setPackaging("zip"); DependencyQuery query = DependencyQueryBuilder .create(distCoordinate) .setFilter(new CompositeDependencyFilter( new NonSnapshotDependencyFilter(), new Predicate<Dependency>() { @Override public boolean accept(Dependency dependency) { Version version = SingleVersion.valueOf(dependency.getCoordinate().getVersion()); return version.compareTo(runtimeVersion) > 0 && version.getMajorVersion() == runtimeVersion.getMajorVersion() && "Final".equals(version.getQualifier()); } })); List<Coordinate> versions = resolver.resolveVersions(query); return versions.isEmpty() ? null : versions.get(versions.size() - 1); }
@Override public Result execute(UIExecutionContext context) throws Exception { UIContext uiContext = context.getUIContext(); Project project = (Project) uiContext.getAttributeMap().get(Project.class); String coordinate = getArchetypeGroupId() + ":" + getArchetypeArtifactId() + ":" + getArchetypeVersion(); DependencyQueryBuilder depQuery = DependencyQueryBuilder.create(coordinate); String repository = getArchetypeRepository(); if (repository != null) { depQuery.setRepositories(new DependencyRepository("archetype", repository)); } DependencyResolver resolver = SimpleContainer .getServices(AbstractArchetypeSelectionWizardStep.class.getClassLoader(), DependencyResolver.class) .get(); Dependency resolvedArtifact = resolver.resolveArtifact(depQuery); FileResource<?> artifact = resolvedArtifact.getArtifact(); MetadataFacet metadataFacet = project.getFacet(MetadataFacet.class); File fileRoot = project.getRoot().reify(DirectoryResource.class).getUnderlyingResourceObject(); ArchetypeHelper archetypeHelper = new ArchetypeHelper(artifact.getResourceInputStream(), fileRoot, metadataFacet.getProjectGroupName(), metadataFacet.getProjectName(), metadataFacet.getProjectVersion()); JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); archetypeHelper.setPackageName(facet.getBasePackage()); archetypeHelper.execute(); return Results.success(); }
@Override public List<Coordinate> resolveAvailableVersions(final Dependency dep) { DependencyQueryBuilder query = DependencyQueryBuilder.create(dep.getCoordinate()).setRepositories( getRepositories()); if (!Strings.isNullOrEmpty(dep.getCoordinate().getVersion()) && !dep.getCoordinate().getVersion().contains("SNAPSHOT")) { query.setFilter(new NonSnapshotDependencyFilter()); } List<Coordinate> versions = getResolver().resolveVersions(query); return versions; }