Please find attached a patch that affects the Provider Manager implementation. There were several issues with it, the most relevant being that it’s extension mechanism relied in class inheritance while that class is a Singleton and has a private (hence unacessible) constructor. Also, the Provider Manager does not allow for namespace-scoped Providers, which many times make more sense than element-scoped Providers.
The changes to the Provider Manager in the patch are expected to be completely retro-compatible while enhancing it’s functionality and fixing the extension bug. However since there are no pre-existing unit tests for the Provider Manager I cannot guarantee that at this point. I did, however, build Smack, put the resulting jars in the build/lib/dist folder of the Spark source (replacing the existing ones) and built and tested Spark MUC (that uses Provider Manager) successfully. While that is not a guarantee, it is a good sign.
The changes in the patch are somewhat trivial but they enable relevant functionality in Smack Provider-based extension mechanism. Please consider it for inclusion.
patch.patch.zip (6504 Bytes)