Skip to content

Commit 1938f2a

Browse files
committed
Throw error if a module is not known
1 parent 8326f5b commit 1938f2a

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

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

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public JavaModuleDependenciesExtension(VersionCatalogsExtension versionCatalogs)
113113
* @return Dependency notation
114114
*/
115115
public Provider<String> ga(String moduleName) {
116-
return getModuleNameToGA().getting(moduleName).orElse(mapByPrefix(getProviders().provider(() -> moduleName)));
116+
return getModuleNameToGA().getting(moduleName).orElse(mapByPrefix(getProviders().provider(() -> moduleName))).orElse(errorIfNotFound(moduleName));
117117
}
118118

119119
/**
@@ -124,7 +124,7 @@ public Provider<String> ga(String moduleName) {
124124
* @return Dependency notation
125125
*/
126126
public Provider<String> ga(Provider<String> moduleName) {
127-
return moduleName.flatMap(n -> getModuleNameToGA().getting(n)).orElse(mapByPrefix(moduleName));
127+
return moduleName.flatMap(n -> getModuleNameToGA().getting(n)).orElse(mapByPrefix(moduleName)).orElse(errorIfNotFound(moduleName));
128128
}
129129

130130
private Provider<String> mapByPrefix(Provider<String> moduleName) {
@@ -179,6 +179,10 @@ public Provider<Map<String, Object>> gav(String moduleName) {
179179
return ga(moduleName).map(ga -> findGav(ga, moduleName));
180180
}
181181

182+
Provider<Map<String, Object>> gavNoError(String moduleName) {
183+
return getModuleNameToGA().getting(moduleName).orElse(mapByPrefix(getProviders().provider(() -> moduleName))).map(ga -> findGav(ga, moduleName));
184+
}
185+
182186
/**
183187
* If a Version Catalog is used:
184188
* Converts 'Module Name' and the matching 'Version' from the Version Catalog to
@@ -292,6 +296,18 @@ FileCollection doAddRequiresRuntimeSupport(Task task, SourceSet sourceSet) {
292296
return syntheticModuleInfoFolders;
293297
}
294298

299+
private <T> Provider<T> errorIfNotFound(String moduleName) {
300+
return getProviders().provider(() -> {
301+
throw new RuntimeException("Unknown Module: " + moduleName);
302+
});
303+
}
304+
305+
private <T> Provider<T> errorIfNotFound(Provider<String> moduleName) {
306+
return getProviders().provider(() -> {
307+
throw new RuntimeException("Unknown Module: " + moduleName.get());
308+
});
309+
}
310+
295311
@Inject
296312
protected abstract ObjectFactory getObjects();
297313

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ private void declareDependency(String moduleName, @Nullable String ownModuleName
250250
Map<String, String> allProjectNamesAndGroups = project.getRootProject().getSubprojects().stream().collect(
251251
Collectors.toMap(Project::getName, p -> (String) p.getGroup()));
252252

253-
Provider<Map<String, Object>> gav = javaModuleDependencies.gav(moduleName);
253+
Provider<Map<String, Object>> gav = javaModuleDependencies.gavNoError(moduleName);
254254
String moduleNameSuffix = ownModuleNamesPrefix == null ? null :
255255
moduleName.startsWith(ownModuleNamesPrefix + ".") ? moduleName.substring(ownModuleNamesPrefix.length() + 1) :
256256
ownModuleNamesPrefix.isEmpty() ? moduleName : null;

0 commit comments

Comments
 (0)