Browse Source

Remove superflous enforce deprecation failure plugin (#59770)

- With enforcing the build to fail on all gradle deprecated api usage we do not need
this tailored plugin anymore
Rene Groeschke 5 years ago
parent
commit
f29fe0643d

+ 0 - 2
build.gradle

@@ -427,8 +427,6 @@ gradle.projectsEvaluated {
 }
 
 allprojects {
-  apply plugin: 'elasticsearch.enforce-deprecation-use-failures'
-
   tasks.register('resolveAllDependencies') {
     if (project.path.contains("fixture")) {
       dependsOn tasks.withType(ComposePull)

+ 0 - 120
buildSrc/src/integTest/groovy/org/elasticsearch/gradle/EnforceDeprecationFailuresPluginFuncTest.groovy

@@ -1,120 +0,0 @@
-/*
- * Licensed to Elasticsearch under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.elasticsearch.gradle
-
-import org.gradle.testkit.runner.GradleRunner
-import org.junit.Rule
-import org.junit.rules.TemporaryFolder
-import spock.lang.Specification
-import spock.lang.Unroll
-
-import java.lang.management.ManagementFactory
-
-class EnforceDeprecationFailuresPluginFuncTest extends Specification {
-
-    @Rule
-    TemporaryFolder testProjectDir = new TemporaryFolder()
-
-    File settingsFile
-    File buildFile
-
-    def setup() {
-        settingsFile = testProjectDir.newFile('settings.gradle')
-        settingsFile << "rootProject.name = 'hello-world'"
-        buildFile = testProjectDir.newFile('build.gradle')
-        buildFile << """plugins {
-            id 'elasticsearch.enforce-deprecation-use-failures'
-        }
-        """
-    }
-
-    @Unroll
-    def "fails on #compileConfigName resolution"() {
-        given:
-        buildFile << """
-            apply plugin:'java'
-            task resolve {
-                doLast {
-                    configurations.${compileConfigName}.resolve()
-                }
-            }
-            """
-        when:
-        def result = gradleRunner("resolve").buildAndFail()
-        then:
-        assertOutputContains(result.output, """
-* What went wrong:
-Execution failed for task ':resolve'.
-> Resolving configuration $compileConfigName is no longer supported. Use $implementationConfigName instead.
-""")
-        where:
-        compileConfigName | implementationConfigName
-        "compile"         | "implementation"
-        "testCompile"     | "testImplementation"
-    }
-
-    @Unroll
-    def "fails on #compileConfigName dependency declaration"() {
-        given:
-        buildFile << """
-            apply plugin:'java'
-
-            dependencies {
-                $compileConfigName "org.acme:some-lib:1.0"
-            }
-
-            tasks.register("resolve") {
-                doLast {
-                    configurations.${compileConfigName}.resolve()
-                }
-            }
-            """
-        when:
-        def result = gradleRunner("resolve").buildAndFail()
-        then:
-        assertOutputContains(result.output, """
-* What went wrong:
-Execution failed for task ':resolve'.
-> Declaring dependencies for configuration ${compileConfigName} is no longer supported. Use ${implementationConfigName} instead.
-""")
-        where:
-        compileConfigName | implementationConfigName
-        "compile"         | "implementation"
-        "testCompile"     | "testImplementation"
-    }
-
-    private GradleRunner gradleRunner(String... arguments) {
-        GradleRunner.create()
-            .withDebug(ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0)
-            .withProjectDir(testProjectDir.root)
-            .withArguments(arguments)
-            .withPluginClasspath()
-            .forwardOutput()
-    }
-
-    def assertOutputContains(String givenOutput, String expected) {
-        assert normalizedString(givenOutput).contains(normalizedString(expected))
-        true
-    }
-
-    String normalizedString(String input) {
-        return input.readLines().join("\n")
-    }
-}

+ 0 - 91
buildSrc/src/main/java/org/elasticsearch/gradle/EnforceDeprecationFailuresPlugin.java

@@ -1,91 +0,0 @@
-/*
- * Licensed to Elasticsearch under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.elasticsearch.gradle;
-
-import org.gradle.api.GradleException;
-import org.gradle.api.Plugin;
-import org.gradle.api.Project;
-import org.gradle.api.plugins.JavaBasePlugin;
-import org.gradle.api.tasks.SourceSet;
-import org.gradle.api.tasks.SourceSetContainer;
-
-/**
- * This plugin enforces build failure if certain deprecated apis are used.
- * <p>
- * For now we support build failure on:
- * - declaring dependencies for testCompile
- * - resolving testCompile configuration
- */
-public class EnforceDeprecationFailuresPlugin implements Plugin<Project> {
-
-    private Project project;
-
-    @Override
-    public void apply(Project project) {
-        this.project = project;
-        handleDeprecatedConfigurations();
-    }
-
-    private void handleDeprecatedConfigurations() {
-        project.getPlugins().withType(JavaBasePlugin.class, javaBasePlugin -> {
-            SourceSetContainer sourceSetContainer = project.getExtensions().getByType(SourceSetContainer.class);
-            sourceSetContainer.all(
-                sourceSet -> {
-                    // TODO: remove that guard once we removed general compile usage from es build
-                    if (sourceSet.getName().equals("test") || sourceSet.getName().equals("main")) {
-                        failOnCompileConfigurationResolution(sourceSet);
-                        failOnCompileConfigurationDependencyDeclaration(sourceSet);
-                    }
-                }
-            );
-        });
-    }
-
-    private void failOnCompileConfigurationDependencyDeclaration(SourceSet sourceSet) {
-        // fail on using deprecated testCompile
-        project.getConfigurations().getByName(sourceSet.getCompileConfigurationName()).withDependencies(dependencies -> {
-            if (dependencies.size() > 0) {
-                throw new GradleException(
-                    "Declaring dependencies for configuration "
-                        + sourceSet.getCompileConfigurationName()
-                        + " is no longer supported. Use "
-                        + sourceSet.getImplementationConfigurationName()
-                        + " instead."
-                );
-            }
-        });
-    }
-
-    private void failOnCompileConfigurationResolution(SourceSet sourceSet) {
-        project.getConfigurations()
-            .getByName(sourceSet.getCompileConfigurationName())
-            .getIncoming()
-            .beforeResolve(resolvableDependencies -> {
-                throw new GradleException(
-                    "Resolving configuration "
-                        + sourceSet.getCompileConfigurationName()
-                        + " is no longer supported. Use "
-                        + sourceSet.getImplementationConfigurationName()
-                        + " instead."
-                );
-            });
-    }
-
-}