2424import org .gradle .api .model .ObjectFactory ;
2525import org .gradle .api .plugins .JavaPlatformPlugin ;
2626import org .gradle .api .plugins .JavaPlugin ;
27+ import org .gradle .api .provider .Provider ;
2728import org .gradle .api .tasks .SourceSetContainer ;
2829import org .gradle .util .GradleVersion ;
2930import org .gradlex .javamodule .dependencies .dsl .ModuleVersions ;
3031import org .gradlex .javamodule .dependencies .internal .utils .ModuleInfo ;
3132import org .gradlex .javamodule .dependencies .tasks .CatalogGenerate ;
3233
34+ import javax .annotation .Nullable ;
3335import java .io .File ;
3436import java .util .Arrays ;
3537import 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