diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt index 56e88b17..3f99ca4f 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt @@ -78,7 +78,12 @@ class PluginInfo(val xml: KobaltPluginXml, val classLoader: ClassLoader?) { val mavenIdInterceptors = arrayListOf() companion object { - val PLUGIN_XML = "META-INF/kobalt-plugin.xml" // Plugins.PLUGIN_XML) + /** + * The name needs to be different from kobalt-plugin.xml because classloaders + * can put a plug-in's jar file in front of Kobalt's, which means we'll read + * that one instead of the core one. + */ + val PLUGIN_XML = "META-INF/kobalt-core-plugin.xml" // Plugins.PLUGIN_XML) /** * Read Kobalt's own kobalt-plugin.xml. @@ -86,6 +91,7 @@ class PluginInfo(val xml: KobaltPluginXml, val classLoader: ClassLoader?) { fun readKobaltPluginXml(): PluginInfo { // Note: use forward slash here since we're looking up this file in a .jar file val url = Kobalt::class.java.classLoader.getResource(PLUGIN_XML) + log(2, "URL for core kobalt-plugin.xml: $url") if (url != null) { return readPluginXml(url.openConnection().inputStream) } else { @@ -100,6 +106,7 @@ class PluginInfo(val xml: KobaltPluginXml, val classLoader: ClassLoader?) { val jaxbContext = JAXBContext.newInstance(KobaltPluginXml::class.java) val kotlinPlugin: KobaltPluginXml = jaxbContext.createUnmarshaller().unmarshal(ins) as KobaltPluginXml + log(2, "Parsed plugin-info.xml, found: " + kotlinPlugin.name) return PluginInfo(kotlinPlugin, classLoader) } diff --git a/src/main/resources/META-INF/kobalt-plugin.xml b/src/main/resources/META-INF/kobalt-core-plugin.xml similarity index 100% rename from src/main/resources/META-INF/kobalt-plugin.xml rename to src/main/resources/META-INF/kobalt-core-plugin.xml