Oh Flow... We are in big trouble!
To answer your question first:
No, I don't think this is a blocker. I am not familiar with gradle, but the gradle OSGi plugin uses BND like the OSGi Maven Plugin. During development of my project, I was faced with the same problem. In my case, there was always a problem in the Maven POMs. I think, the problem will be solved in the course of time.
But now I have a blocker:
I thought that you got rid of the implicit dependency between the core and the extension bundle. As far as I understand the code, this is not the case. With your current version I get the following exception:
- java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$UnparsedResultIQ cannot be cast to org.jivesoftware.smackx.disco.packet.DiscoverInfo
From my point of view, the providers from the extension bundle are not loaded. I cannot find a trigger inside the extension bundle. The reason why it worked before was because the extension bundle was a fragment and the providers were loaded by the core looking at "smack-config". Now the core looks at the config file and tries to load the providers. That fails, because the classes are no longer visible to the core. We have four options:
(1) The extension bundle becomes a fragment again.
(2) We can add optional imports of all smackx-packages (very error-prone)
(3) We add "DynamicImport-Package" to the OSGi manifest (http://wiki.osgi.org/wiki/DynamicImport-Package, I do not recommend that, because of performance issues)
(4) We find a way to add the providers from the inside of the extension bundle.
Currently, I have no good idea for proposal (4), because we must find a way to initialize the providers first before any class from the extension bundle gets used... If you implement the interface "Bundle-Activator" and put the class in a specific package which is only accessed from OSGi, we could implement the init code. That's not so nice, because the extension bundle has an explicit OSGi dependency. It still runs standalone, because anybody accesses the corresponding classes. At the moment, I would prefer (1). What is your opinion.