itsallcode / openfasttrace-gradle

Gradle plugin for OpenFastTrace (https://github.com/itsallcode/openfasttrace)
GNU General Public License v3.0
5 stars 2 forks source link

OFT plugin causes deprecation warning in Gradle 5.x #13

Closed avonengel closed 3 years ago

avonengel commented 5 years ago

Description

Gradle issues a deprecation warning when using the OFT plugin on Gradle 5.

Steps to Reproduce

  1. build.gradle:
    plugins {
    id "org.itsallcode.openfasttrace" version "0.6.0"
    }
  2. gradle projects --warning-mode all -is:
    ...
    Initializing OpenFastTrack plugin for project 'root project 'gradle-oft-deprecation''
    Setting up plugin configuration for project 'gradle-oft-deprecation'
    The ProjectLayout.fileProperty() method has been deprecated. This is scheduled to be removed in Gradle 6.0. Please use the ObjectFactory.fileProperty() method instead.
        at org.gradle.api.internal.file.DefaultProjectLayout.fileProperty(DefaultProjectLayout.java:78)
        at org.itsallcode.openfasttrace.gradle.util.DeprecationUtil.createFileProperty(DeprecationUtil.java:35)
        at org.itsallcode.openfasttrace.gradle.config.TracingConfig.<init>(TracingConfig.java:54)
        at org.itsallcode.openfasttrace.gradle.config.TracingConfig_Decorated.<init>(Unknown Source)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.gradle.internal.reflect.DirectInstantiator.newInstance(DirectInstantiator.java:51)
        at org.gradle.api.internal.ClassGeneratorBackedInstantiator.newInstance(ClassGeneratorBackedInstantiator.java:36)
        at org.gradle.api.internal.plugins.DefaultConvention.instantiate(DefaultConvention.java:242)
        at org.gradle.api.internal.plugins.DefaultConvention.create(DefaultConvention.java:142)
        at org.itsallcode.openfasttrace.gradle.OpenFastTracePlugin.createConfigDsl(OpenFastTracePlugin.java:61)
        at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:41)
        at org.gradle.internal.Actions.with(Actions.java:245)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$3.run(BuildOperationCrossProjectConfigurator.java:90)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.runProjectConfigureAction(BuildOperationCrossProjectConfigurator.java:87)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.access$500(BuildOperationCrossProjectConfigurator.java:32)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$2.run(BuildOperationCrossProjectConfigurator.java:81)
        at org.gradle.internal.Factories$1.create(Factories.java:25)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:200)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:186)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.runProjectConfigureActionWithMutationLock(BuildOperationCrossProjectConfigurator.java:78)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.access$400(BuildOperationCrossProjectConfigurator.java:32)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$1.doRunProjectConfigure(BuildOperationCrossProjectConfigurator.java:69)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$BlockConfigureBuildOperation.run(BuildOperationCrossProjectConfigurator.java:130)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.runBlockConfigureAction(BuildOperationCrossProjectConfigurator.java:65)
        at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.allprojects(BuildOperationCrossProjectConfigurator.java:54)
        at org.gradle.api.internal.project.DefaultProject.allprojects(DefaultProject.java:653)
        at org.itsallcode.openfasttrace.gradle.OpenFastTracePlugin.apply(OpenFastTracePlugin.java:53)
        at org.itsallcode.openfasttrace.gradle.OpenFastTracePlugin.apply(OpenFastTracePlugin.java:44)
        at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:42)
    ... lots of stack frames

Expected behavior

Gradle issues no deprecation warnings.

Environment

Additional context

Obviously, this isn't really a bug. You should be aware of this, however. I'm not even sure there is a way to get rid of the deprecation warning, without breaking compatibility with Gradle 4.x. Depends on when ObjectFactory was introduced.

kaklakariada commented 5 years ago

Thank you for reporting this. We are aware of this and tried to fix the warning, but as you said we would lose compatibility with Gradle 4.x. We extracted a method to isolate the necessary change in a single location once everyone has migrated to Gradle 5.x

kaklakariada commented 3 years ago

Fixed with d1fdd470fb786508d1cc3134f3bccc3a57b559bc