Skip to content

Commit c52de74

Browse files
authored
Fix Gradle task validation errors when running dependencies info task (#84310) (#84322)
1 parent e9c0886 commit c52de74

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/DependenciesInfoTask.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.gradle.api.file.ProjectLayout;
2020
import org.gradle.api.internal.ConventionTask;
2121
import org.gradle.api.model.ObjectFactory;
22+
import org.gradle.api.provider.ProviderFactory;
2223
import org.gradle.api.tasks.Input;
2324
import org.gradle.api.tasks.InputDirectory;
2425
import org.gradle.api.tasks.InputFiles;
@@ -107,9 +108,12 @@ public void setOutputFile(File outputFile) {
107108
private Configuration compileOnlyConfiguration;
108109

109110
@Inject
110-
public DependenciesInfoTask(ProjectLayout projectLayout, ObjectFactory objectFactory) {
111+
public DependenciesInfoTask(ProjectLayout projectLayout, ObjectFactory objectFactory, ProviderFactory providerFactory) {
111112
this.licensesDir = objectFactory.directoryProperty();
112-
this.licensesDir.set(projectLayout.getProjectDirectory().dir("licenses"));
113+
this.licensesDir.convention(
114+
providerFactory.provider(() -> projectLayout.getProjectDirectory().dir("licenses"))
115+
.map(dir -> dir.getAsFile().exists() ? dir : null)
116+
);
113117
this.outputFile = projectLayout.getBuildDirectory().dir("reports/dependencies").get().file("dependencies.csv").getAsFile();
114118
setDescription("Create a CSV file with dependencies information.");
115119
}
@@ -211,15 +215,14 @@ protected String getLicenseType(final String group, final String name) throws IO
211215
}
212216

213217
protected File getDependencyInfoFile(final String group, final String name, final String infoFileSuffix) {
214-
File licenseDirFile = licensesDir.getAsFile().get();
215-
java.util.Optional<File> license = licenseDirFile.exists()
216-
? Arrays.stream(licenseDirFile.listFiles((dir, fileName) -> Pattern.matches(".*-" + infoFileSuffix + ".*", fileName)))
217-
.filter(file -> {
218-
String prefix = file.getName().split("-" + infoFileSuffix + ".*")[0];
219-
return group.contains(prefix) || name.contains(prefix);
220-
})
221-
.findFirst()
222-
: java.util.Optional.empty();
218+
java.util.Optional<File> license = licensesDir.map(
219+
licenseDir -> Arrays.stream(
220+
licenseDir.getAsFile().listFiles((dir, fileName) -> Pattern.matches(".*-" + infoFileSuffix + ".*", fileName))
221+
).filter(file -> {
222+
String prefix = file.getName().split("-" + infoFileSuffix + ".*")[0];
223+
return group.contains(prefix) || name.contains(prefix);
224+
}).findFirst()
225+
).get();
223226

224227
return license.orElseThrow(
225228
() -> new IllegalStateException(
@@ -230,7 +233,7 @@ protected File getDependencyInfoFile(final String group, final String name, fina
230233
+ ":"
231234
+ name
232235
+ " in "
233-
+ licenseDirFile.getAbsolutePath()
236+
+ licensesDir.getAsFile().getOrNull()
234237
)
235238
);
236239
}

0 commit comments

Comments
 (0)