Minor, template providers: don't create classloader for empty classpath
This commit is contained in:
+8
-3
@@ -70,9 +70,7 @@ fun makeScriptDefsFromTemplatesProviders(providers: Iterable<ScriptTemplatesProv
|
|||||||
errorsHandler: ((ScriptTemplatesProvider, Throwable) -> Unit) = { _, ex -> throw ex }
|
errorsHandler: ((ScriptTemplatesProvider, Throwable) -> Unit) = { _, ex -> throw ex }
|
||||||
): List<KotlinScriptDefinition> = providers.flatMap { provider ->
|
): List<KotlinScriptDefinition> = providers.flatMap { provider ->
|
||||||
try {
|
try {
|
||||||
val classpath = provider.dependenciesClasspath + provider.additionalResolverClasspath
|
val loader = createClassLoader(provider)
|
||||||
LOG.info("[kts] loading script definitions ${provider.templateClassNames} using cp: ${classpath.joinToString(File.pathSeparator)}")
|
|
||||||
val loader = URLClassLoader(classpath.map { it.toURI().toURL() }.toTypedArray(), ScriptTemplatesProvider::class.java.classLoader)
|
|
||||||
provider.templateClassNames.map {
|
provider.templateClassNames.map {
|
||||||
KotlinScriptDefinitionFromAnnotatedTemplate(loader.loadClass(it).kotlin, provider.resolver, provider.filePattern, provider.environment)
|
KotlinScriptDefinitionFromAnnotatedTemplate(loader.loadClass(it).kotlin, provider.resolver, provider.filePattern, provider.environment)
|
||||||
}
|
}
|
||||||
@@ -84,4 +82,11 @@ fun makeScriptDefsFromTemplatesProviders(providers: Iterable<ScriptTemplatesProv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createClassLoader(provider: ScriptTemplatesProvider): ClassLoader {
|
||||||
|
val classpath = provider.dependenciesClasspath + provider.additionalResolverClasspath
|
||||||
|
LOG.info("[kts] loading script definitions ${provider.templateClassNames} using cp: ${classpath.joinToString(File.pathSeparator)}")
|
||||||
|
val baseLoader = ScriptTemplatesProvider::class.java.classLoader
|
||||||
|
return if (classpath.isEmpty()) baseLoader else URLClassLoader(classpath.map { it.toURI().toURL() }.toTypedArray(), baseLoader)
|
||||||
|
}
|
||||||
|
|
||||||
private val LOG = Logger.getInstance("ScriptTemplatesProviders")
|
private val LOG = Logger.getInstance("ScriptTemplatesProviders")
|
||||||
|
|||||||
Reference in New Issue
Block a user