Skip to content

Commit 9867a39

Browse files
committed
add module inference when plugin is not modular
1 parent 729559b commit 9867a39

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

build-tools/src/main/java/org/elasticsearch/gradle/plugin/GenerateTestBuildInfoTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.gradle.api.provider.Property;
1616
import org.gradle.api.tasks.Input;
1717
import org.gradle.api.tasks.InputFiles;
18+
import org.gradle.api.tasks.Optional;
1819
import org.gradle.api.tasks.OutputDirectory;
1920
import org.gradle.api.tasks.TaskAction;
2021
import org.objectweb.asm.ClassReader;
@@ -54,6 +55,10 @@ public GenerateTestBuildInfoTask() {
5455
setDescription(DESCRIPTION);
5556
}
5657

58+
@Input
59+
@Optional
60+
public abstract Property<String> getModuleName();
61+
5762
@Input
5863
public abstract Property<String> getComponentName();
5964

@@ -205,7 +210,6 @@ private String extractModuleNameFromJar(File file, JarFile jarFile) throws IOExc
205210
private void extractFromDirectory(File file, Map<String, String> classesToModules) throws IOException {
206211
String className = extractClassNameFromDirectory(file);
207212
String moduleName = extractModuleNameFromDirectory(file);
208-
getLogger().lifecycle("DIRECTORY: " + className + " -> " + moduleName);
209213
if (className != null && moduleName != null) {
210214
classesToModules.put(className, moduleName);
211215
}
@@ -215,7 +219,6 @@ private String extractClassNameFromDirectory(File file) {
215219
List<File> files = new ArrayList<>(List.of(file));
216220
while (files.isEmpty() == false) {
217221
File find = files.removeFirst();
218-
getLogger().lifecycle("FIND: " + find.getAbsolutePath());
219222
if (find.exists()) {
220223
if (find.getName().endsWith(".class")
221224
&& find.getName().equals("module-info.class") == false
@@ -234,7 +237,6 @@ private String extractModuleNameFromDirectory(File file) throws IOException {
234237
List<File> files = new ArrayList<>(List.of(file));
235238
while (files.isEmpty() == false) {
236239
File find = files.removeFirst();
237-
getLogger().lifecycle("FIND: " + find.getAbsolutePath());
238240
if (find.exists()) {
239241
if (find.getName().equals("module-info.class")) {
240242
try (InputStream inputStream = new FileInputStream(find)) {
@@ -245,7 +247,7 @@ private String extractModuleNameFromDirectory(File file) throws IOException {
245247
}
246248
}
247249
}
248-
return null;
250+
return getModuleName().isPresent() ? getModuleName().get() : null;
249251
}
250252

251253
private String extractModuleNameFromModuleInfo(InputStream inputStream) throws IOException {

build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.gradle.api.file.RegularFile;
1717
import org.gradle.api.provider.Provider;
1818
import org.gradle.api.provider.ProviderFactory;
19+
import org.gradle.jvm.tasks.Jar;
1920
import org.gradle.language.jvm.tasks.ProcessResources;
2021

2122
import javax.inject.Inject;
@@ -55,6 +56,14 @@ public void apply(final Project project) {
5556
});
5657

5758
project.getTasks().withType(GenerateTestBuildInfoTask.class).named("generateTestBuildInfo").configure(task -> {
59+
var jarTask = project.getTasks().withType(Jar.class).named("jar").get();
60+
String moduleName = (String)jarTask.getManifest().getAttributes().get("Automatic-Module-Name");
61+
if (moduleName == null) {
62+
moduleName = jarTask.getArchiveBaseName().getOrNull();
63+
}
64+
if (moduleName != null) {
65+
task.getModuleName().set(moduleName);
66+
}
5867
var propertiesExtension = project.getExtensions().getByType(PluginPropertiesExtension.class);
5968
task.getComponentName().set(providerFactory.provider(propertiesExtension::getName));
6069
task.getOutputFileName().set("plugin-test-build-info.json");

0 commit comments

Comments
 (0)