Search in sources :

Example 46 with ModuleComponentIdentifier

use of org.gradle.api.artifacts.component.ModuleComponentIdentifier in project SpongeCommon by SpongePowered.

the class OutputDependenciesToJson method generateDependenciesJson.

@TaskAction
public void generateDependenciesJson() {
    final Set<ModuleComponentIdentifier> excludedDeps = new HashSet<>();
    if (this.getExcludedDependencies().isPresent()) {
        for (final ResolvedArtifactResult result : this.getExcludedDependencies().get().getIncoming().getArtifacts()) {
            if (result.getId().getComponentIdentifier() instanceof ModuleComponentIdentifier) {
                excludedDeps.add((ModuleComponentIdentifier) result.getId().getComponentIdentifier());
            }
        }
    }
    final Map<String, ConfigurationHolder> inputConfigs = this.getDependencies().get();
    final Map<String, List<DependencyDescriptor>> dependenciesMap = new TreeMap<>();
    for (final Map.Entry<String, ConfigurationHolder> entry : inputConfigs.entrySet()) {
        dependenciesMap.put(entry.getKey(), this.configToDescriptor(entry.getValue().getConfiguration().getIncoming().getArtifacts(), excludedDeps));
    }
    final DependencyManifest manifest = new DependencyManifest(dependenciesMap);
    this.getLogger().info("Writing to {}", this.getOutputFile().get().getAsFile());
    try (final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.getOutputFile().get().getAsFile()), StandardCharsets.UTF_8))) {
        OutputDependenciesToJson.GSON.toJson(manifest, writer);
    } catch (final IOException ex) {
        throw new GradleException("Failed to write dependencies manifest", ex);
    }
}
Also used : IOException(java.io.IOException) TreeMap(java.util.TreeMap) BufferedWriter(java.io.BufferedWriter) FileOutputStream(java.io.FileOutputStream) GradleException(org.gradle.api.GradleException) ModuleComponentIdentifier(org.gradle.api.artifacts.component.ModuleComponentIdentifier) List(java.util.List) OutputStreamWriter(java.io.OutputStreamWriter) ResolvedArtifactResult(org.gradle.api.artifacts.result.ResolvedArtifactResult) Map(java.util.Map) TreeMap(java.util.TreeMap) HashSet(java.util.HashSet) TaskAction(org.gradle.api.tasks.TaskAction)

Example 47 with ModuleComponentIdentifier

use of org.gradle.api.artifacts.component.ModuleComponentIdentifier in project spring-security by spring-projects.

the class UpdateDependenciesPlugin method apply.

@Override
public void apply(Project project) {
    UpdateDependenciesExtension updateDependenciesSettings = project.getExtensions().create("updateDependenciesSettings", UpdateDependenciesExtension.class, defaultFiles(project));
    if (project.hasProperty("updateMode")) {
        String updateMode = String.valueOf(project.findProperty("updateMode"));
        updateDependenciesSettings.setUpdateMode(UpdateDependenciesExtension.UpdateMode.valueOf(updateMode));
    }
    if (project.hasProperty("nextVersion")) {
        String nextVersion = String.valueOf(project.findProperty("nextVersion"));
        updateDependenciesSettings.getGitHub().setMilestone(nextVersion);
    }
    if (project.hasProperty("gitHubAccessToken")) {
        String gitHubAccessToken = String.valueOf(project.findProperty("gitHubAccessToken"));
        updateDependenciesSettings.getGitHub().setAccessToken(gitHubAccessToken);
    }
    project.getTasks().register("updateDependencies", DependencyUpdatesTask.class, new Action<DependencyUpdatesTask>() {

        @Override
        public void execute(DependencyUpdatesTask updateDependencies) {
            updateDependencies.setDescription("Update the dependencies");
            updateDependencies.setCheckConstraints(true);
            updateDependencies.setOutputFormatter(new Closure<Void>(null) {

                @Override
                public Void call(Object argument) {
                    Result result = (Result) argument;
                    if (gitHubApi == null && updateDependenciesSettings.getUpdateMode() != UpdateDependenciesExtension.UpdateMode.COMMIT) {
                        gitHubApi = new GitHubApi(updateDependenciesSettings.getGitHub().getAccessToken());
                    }
                    updateDependencies(result, project, updateDependenciesSettings);
                    updateGradleVersion(result, project, updateDependenciesSettings);
                    return null;
                }
            });
            updateDependencies.resolutionStrategy(new Action<ResolutionStrategyWithCurrent>() {

                @Override
                public void execute(ResolutionStrategyWithCurrent resolution) {
                    resolution.componentSelection(new Action<ComponentSelectionRulesWithCurrent>() {

                        @Override
                        public void execute(ComponentSelectionRulesWithCurrent components) {
                            updateDependenciesSettings.getExcludes().getActions().forEach((action) -> {
                                components.all(action);
                            });
                            updateDependenciesSettings.getExcludes().getComponents().forEach((action) -> {
                                action.execute(components);
                            });
                            components.all((selection) -> {
                                ModuleComponentIdentifier candidate = selection.getCandidate();
                                if (candidate.getGroup().startsWith("org.apache.directory.") && !candidate.getVersion().equals(selection.getCurrentVersion())) {
                                    selection.reject("org.apache.directory.* has breaking changes in newer versions");
                                }
                            });
                            String jaxbBetaRegex = ".*?b\\d+.*";
                            components.withModule("javax.xml.bind:jaxb-api", excludeWithRegex(jaxbBetaRegex, "Reject jaxb-api beta versions"));
                            components.withModule("com.sun.xml.bind:jaxb-impl", excludeWithRegex(jaxbBetaRegex, "Reject jaxb-api beta versions"));
                            components.withModule("commons-collections:commons-collections", excludeWithRegex("^\\d{3,}.*", "Reject commons-collections date based releases"));
                        }
                    });
                }
            });
        }
    });
}
Also used : java.util(java.util) ComponentSelectionRulesWithCurrent(com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionRulesWithCurrent) GradleUpdateResult(com.github.benmanes.gradle.versions.updates.gradle.GradleUpdateResult) Closure(groovy.lang.Closure) VersionAvailable(com.github.benmanes.gradle.versions.reporter.result.VersionAvailable) Function(java.util.function.Function) Supplier(java.util.function.Supplier) Result(com.github.benmanes.gradle.versions.reporter.result.Result) Matcher(java.util.regex.Matcher) ComponentSelectionWithCurrent(com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionWithCurrent) Duration(java.time.Duration) Dependency(com.github.benmanes.gradle.versions.reporter.result.Dependency) OIDC_SDK_NAME(org.springframework.security.convention.versions.TransitiveDependencyLookupUtils.OIDC_SDK_NAME) PrintStream(java.io.PrintStream) Action(org.gradle.api.Action) Project(org.gradle.api.Project) Files(java.nio.file.Files) DependencyOutdated(com.github.benmanes.gradle.versions.reporter.result.DependencyOutdated) NIMBUS_JOSE_JWT_NAME(org.springframework.security.convention.versions.TransitiveDependencyLookupUtils.NIMBUS_JOSE_JWT_NAME) Mono(reactor.core.publisher.Mono) IOException(java.io.IOException) File(java.io.File) ModuleComponentIdentifier(org.gradle.api.artifacts.component.ModuleComponentIdentifier) ResolutionStrategyWithCurrent(com.github.benmanes.gradle.versions.updates.resolutionstrategy.ResolutionStrategyWithCurrent) DependencyUpdatesTask(com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask) Pattern(java.util.regex.Pattern) Plugin(org.gradle.api.Plugin) InputStream(java.io.InputStream) Action(org.gradle.api.Action) Closure(groovy.lang.Closure) ResolutionStrategyWithCurrent(com.github.benmanes.gradle.versions.updates.resolutionstrategy.ResolutionStrategyWithCurrent) GradleUpdateResult(com.github.benmanes.gradle.versions.updates.gradle.GradleUpdateResult) Result(com.github.benmanes.gradle.versions.reporter.result.Result) DependencyUpdatesTask(com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask) ModuleComponentIdentifier(org.gradle.api.artifacts.component.ModuleComponentIdentifier) ComponentSelectionRulesWithCurrent(com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionRulesWithCurrent)

Aggregations

ModuleComponentIdentifier (org.gradle.api.artifacts.component.ModuleComponentIdentifier)47 DefaultModuleComponentIdentifier (org.gradle.internal.component.external.model.DefaultModuleComponentIdentifier)13 ComponentIdentifier (org.gradle.api.artifacts.component.ComponentIdentifier)4 ModuleComponentSelector (org.gradle.api.artifacts.component.ModuleComponentSelector)4 MavenUniqueSnapshotComponentIdentifier (org.gradle.api.internal.artifacts.repositories.resolver.MavenUniqueSnapshotComponentIdentifier)4 File (java.io.File)3 IOException (java.io.IOException)3 Map (java.util.Map)3 ModuleVersionIdentifier (org.gradle.api.artifacts.ModuleVersionIdentifier)3 ComponentSelectionWithCurrent (com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionWithCurrent)2 InputStream (java.io.InputStream)2 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 ModuleRevisionId (org.apache.ivy.core.module.id.ModuleRevisionId)2 ComponentSelection (org.gradle.api.artifacts.ComponentSelection)2 ComponentSelector (org.gradle.api.artifacts.component.ComponentSelector)2 LibraryBinaryIdentifier (org.gradle.api.artifacts.component.LibraryBinaryIdentifier)2 DefaultComponentSelection (org.gradle.api.internal.artifacts.DefaultComponentSelection)2 DefaultProjectComponentIdentifier (org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier)2 NamespaceId (org.gradle.api.internal.artifacts.ivyservice.NamespaceId)2