If no one objects, I plan to commit the solution I proposed above by the end of the day so that we can start from there for the first release and eventually change/better things along time. Cheers, Tommaso
2011/8/31 Tommaso Teofili <tommaso.teof...@gmail.com> > the dynamic-imports way was taken in consideration when talking with other > UIMA mates, but I haven't inspected that possibility yet. > Thanks Reto. > Cheers, > Tommaso > > > 2011/8/31 Reto Bachmann-Gmür <m...@farewellutopia.com> > >> Hi Tommaso >> >> Without knowing about the details I'm wondering if this extension >> class loader defined when instantiating the UIMA framework cannot be >> the Bundle-Class-Loader with the Bundle having a dynamic-import >> directive. >> >> I'm very much looking forward to the 'Getting started with Clerezza >> and UIMA' page :) >> >> Cheers, >> Reto >> >> On Wed, Aug 31, 2011 at 4:48 PM, Tommaso Teofili >> <tommaso.teof...@gmail.com> wrote: >> > 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 >> > >> > >