24
24
import javax .inject .Inject ;
25
25
26
26
import org .gradle .api .DefaultTask ;
27
- import org .gradle .api .provider .Property ;
27
+ import org .gradle .api .provider .Provider ;
28
28
import org .gradle .api .services .BuildServiceRegistry ;
29
29
import org .gradle .api .tasks .Input ;
30
30
import org .gradle .api .tasks .Internal ;
@@ -63,9 +63,9 @@ void setup() {
63
63
Preconditions .checkArgument (getProject ().getRootProject () == getProject (), "Can only be used on the root project" );
64
64
String compositeBuildSuffix = getName ().substring (TASK_NAME .length ()); // see https://github.com/diffplug/spotless/pull/1001
65
65
BuildServiceRegistry buildServices = getProject ().getGradle ().getSharedServices ();
66
- getTaskService (). set ( buildServices .registerIfAbsent ("SpotlessTaskService" + compositeBuildSuffix , SpotlessTaskService .class , spec -> {}) );
67
- usesService (getTaskService () );
68
- getBuildEventsListenerRegistry ().onTaskCompletion (getTaskService () );
66
+ taskService = buildServices .registerIfAbsent ("SpotlessTaskService" + compositeBuildSuffix , SpotlessTaskService .class , spec -> {});
67
+ usesService (taskService );
68
+ getBuildEventsListenerRegistry ().onTaskCompletion (taskService );
69
69
unitOutput = new File (getProject ().getBuildDir (), "tmp/spotless-register-dependencies" );
70
70
}
71
71
@@ -89,8 +89,13 @@ public void trivialFunction() throws IOException {
89
89
Files .write (Integer .toString (1 ), unitOutput , StandardCharsets .UTF_8 );
90
90
}
91
91
92
+ // this field is stupid, but we need it, see https://github.com/diffplug/spotless/issues/1260
93
+ private Provider <SpotlessTaskService > taskService ;
94
+
92
95
@ Internal
93
- abstract Property <SpotlessTaskService > getTaskService ();
96
+ public Provider <SpotlessTaskService > getTaskService () {
97
+ return taskService ;
98
+ }
94
99
95
100
@ Inject
96
101
protected abstract BuildEventsListenerRegistry getBuildEventsListenerRegistry ();
0 commit comments