24
24
import org .gradle .api .model .ObjectFactory ;
25
25
import org .gradle .api .plugins .JavaPlatformPlugin ;
26
26
import org .gradle .api .plugins .JavaPlugin ;
27
+ import org .gradle .api .provider .Provider ;
27
28
import org .gradle .api .tasks .SourceSetContainer ;
28
29
import org .gradle .util .GradleVersion ;
29
30
import org .gradlex .javamodule .dependencies .dsl .ModuleVersions ;
30
31
import org .gradlex .javamodule .dependencies .internal .utils .ModuleInfo ;
31
32
import org .gradlex .javamodule .dependencies .tasks .CatalogGenerate ;
32
33
34
+ import javax .annotation .Nullable ;
33
35
import java .io .File ;
34
36
import java .util .Arrays ;
35
37
import java .util .List ;
@@ -55,7 +57,9 @@ public void apply(Project project) {
55
57
}
56
58
57
59
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 );
59
63
registerCatalogTask (project );
60
64
}
61
65
@@ -84,6 +88,7 @@ private void setupForJavaProject(Project project) {
84
88
}
85
89
86
90
setupVersionsDSL (project , versions );
91
+ setupConstraintsValidation (project , versions );
87
92
registerCatalogTask (project );
88
93
}
89
94
@@ -93,6 +98,22 @@ private void setupVersionsDSL(Project project, Configuration configuration) {
93
98
project .getExtensions ().create ("moduleInfo" , ModuleVersions .class , configuration , javaModuleDependencies );
94
99
}
95
100
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
+
96
117
private void registerCatalogTask (Project project ) {
97
118
JavaModuleDependenciesExtension javaModuleDependencies = project .getExtensions ().getByType (JavaModuleDependenciesExtension .class );
98
119
ModuleVersions moduleVersions = project .getExtensions ().getByType (ModuleVersions .class );
0 commit comments