Hi all, the UIMA Addons 2.3.1 release happened on August 29th [1], this release didn't include the OSGi packaging for the annotators since the UIMA community wants to provide full support to OSGi in the future while the addons OSGi packaging allowed only some basic use cases to be executed.
So far the bad news, the good news is that we can now include UIMA Addons artifacts in our modules and that there is already a solution to face the possible issues with class loading within a framework which is not fully OSGi compliant. The UIMAFramework class creates an AnalysisEngines given its (XML) descriptor that contains the FQN of the annotator class which is then instantiated via Class.forName(). As far as I've experienced this is not good when working within OSGi containers as each bundle uses a separate ClassLoader so, for example, the ClassLoader of the uima.utils bundle cannot see the ClerezzaCASConsumer class in uima.casconsumer module by default. Luckily UIMA provides the possibility of defining an extension ClassLoader when instantiating the framework. So the idea is to define an ExtensionClassLoader which registers the ClassLoaders of UIMA classes implementing AnalysisComponent interface (that is the interface for Annotators and CAS Consumers) and use it within the creation of each AnalysisEngine. Each bundle which has annotator classes can automatically register its classes (in the ExtensionClassLoader) using an OSGi Activator (a UIMABundleActivator in the maven-bundle-plugin configuration) which is responsible for this task. Obviously in the future releases of UIMA with full OSGi support the above constraints could be safely removed. So my idea is to apply the above changes in order to allow easy deploy of custom UIMA pipelines within Clerezza. After that I think a brief 'Getting started with Clerezza and UIMA' page would be useful. Looking forward to your feedback. Cheers, Tommaso [1] : http://uima.apache.org/downloads.cgi
