Skip to content

Commit 7296ec0

Browse files
committed
feat(analyzer): Log about configured but unavailable package managers
This somewhat restores a feature when package managers were enabled / disabled via dedicated command line options instead of configuration. In case an unavailable package manager is disabled, only warn, as not using the package manager is the desired effect in that case anyway. Signed-off-by: Sebastian Schuberth <[email protected]>
1 parent 32ed408 commit 7296ec0

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

analyzer/src/main/kotlin/Extensions.kt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,33 @@
1919

2020
package org.ossreviewtoolkit.analyzer
2121

22+
import org.apache.logging.log4j.kotlin.logger
23+
2224
import org.ossreviewtoolkit.model.config.AnalyzerConfiguration
25+
import org.ossreviewtoolkit.utils.common.alsoIfNull
2326

2427
/**
2528
* Return the list of enabled [PackageManager]s based on the [AnalyzerConfiguration.enabledPackageManagers] and
2629
* [AnalyzerConfiguration.disabledPackageManagers] configuration properties and the
2730
* [default][PackageManagerFactory.isEnabledByDefault] of the [PackageManager]s.
2831
*/
2932
fun AnalyzerConfiguration.determineEnabledPackageManagers(): Set<PackageManagerFactory> {
30-
val enabled = enabledPackageManagers?.mapNotNull { PackageManager.ALL[it] } ?: PackageManager.ENABLED_BY_DEFAULT
31-
val disabled = disabledPackageManagers?.mapNotNull { PackageManager.ALL[it] }.orEmpty()
33+
val enabled = enabledPackageManagers?.mapNotNull { name ->
34+
PackageManager.ALL[name].alsoIfNull {
35+
logger.error {
36+
"Package manager '$name' is configured to be enabled but is not available in the classpath. It must " +
37+
"be one of: ${PackageManager.ALL.keys.joinToString()}."
38+
}
39+
}
40+
} ?: PackageManager.ENABLED_BY_DEFAULT
41+
42+
val disabled = disabledPackageManagers?.mapNotNull { name ->
43+
PackageManager.ALL[name].alsoIfNull {
44+
logger.warn {
45+
"Package manager '$name' is configured to be disabled but is not available in the classpath."
46+
}
47+
}
48+
}.orEmpty()
3249

3350
return enabled.toSet() - disabled.toSet()
3451
}

0 commit comments

Comments
 (0)