Skip to content

Commit 867b154

Browse files
committed
Warn if 'because' is not used as expected in a 'module-version' project
#105
1 parent c37c035 commit 867b154

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/main/java/org/gradlex/javamodule/dependencies/JavaModuleVersionsPlugin.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
import org.gradle.api.model.ObjectFactory;
2525
import org.gradle.api.plugins.JavaPlatformPlugin;
2626
import org.gradle.api.plugins.JavaPlugin;
27+
import org.gradle.api.provider.Provider;
2728
import org.gradle.api.tasks.SourceSetContainer;
2829
import org.gradle.util.GradleVersion;
2930
import org.gradlex.javamodule.dependencies.dsl.ModuleVersions;
3031
import org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo;
3132
import org.gradlex.javamodule.dependencies.tasks.CatalogGenerate;
3233

34+
import javax.annotation.Nullable;
3335
import java.io.File;
3436
import java.util.Arrays;
3537
import java.util.List;
@@ -55,7 +57,9 @@ public void apply(Project project) {
5557
}
5658

5759
private void setupForJavaPlatformProject(Project project) {
58-
setupVersionsDSL(project, project.getConfigurations().getByName(API_CONFIGURATION_NAME));
60+
Configuration api = project.getConfigurations().getByName(API_CONFIGURATION_NAME);
61+
setupVersionsDSL(project, api);
62+
setupConstraintsValidation(project, api);
5963
registerCatalogTask(project);
6064
}
6165

@@ -84,6 +88,7 @@ private void setupForJavaProject(Project project) {
8488
}
8589

8690
setupVersionsDSL(project, versions);
91+
setupConstraintsValidation(project, versions);
8792
registerCatalogTask(project);
8893
}
8994

@@ -93,6 +98,22 @@ private void setupVersionsDSL(Project project, Configuration configuration) {
9398
project.getExtensions().create("moduleInfo", ModuleVersions.class, configuration, javaModuleDependencies);
9499
}
95100

101+
private void setupConstraintsValidation(Project project, Configuration configuration) {
102+
configuration.getDependencyConstraints().configureEach(d -> {
103+
JavaModuleDependenciesExtension javaModuleDependencies = project.getExtensions().getByType(JavaModuleDependenciesExtension.class);
104+
String userDefinedReason = d.getReason();
105+
String ga = d.getModule().toString();
106+
Provider<String> moduleName = javaModuleDependencies.moduleName(ga);
107+
if (moduleName.isPresent() && isModuleName(userDefinedReason) && !moduleName.get().equals(userDefinedReason)) {
108+
project.getLogger().lifecycle("WARN: Expected module name for '" + ga + "' is '" + moduleName.get() + "' (not '" + userDefinedReason + "')");
109+
}
110+
});
111+
}
112+
113+
private boolean isModuleName(@Nullable String s) {
114+
return s != null && !s.isEmpty() && !s.contains(" ");
115+
}
116+
96117
private void registerCatalogTask(Project project) {
97118
JavaModuleDependenciesExtension javaModuleDependencies = project.getExtensions().getByType(JavaModuleDependenciesExtension.class);
98119
ModuleVersions moduleVersions = project.getExtensions().getByType(ModuleVersions.class);

0 commit comments

Comments
 (0)