You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@clerezza.apache.org by Tommaso Teofili <to...@gmail.com> on 2011/08/31 16:48:27 UTC

UIMA module thoughts (and refactoring)

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

Re: UIMA module thoughts (and refactoring)

Posted by Tommaso Teofili <to...@gmail.com>.
I've been browsing uimaFIT code, particularly the 'factory' package of the
core module, but I do think staying the nearest possible to the UIMA OASIS
standard is better in terms of standardization and adoption by other
potential users.
Nevertheless I'll take a look even if Richard from their team has been
actively discussing within the UIMA community regarding the OSGi support.
Thanks for your suggestion Karin.
All the best,
Tommaso

2011/8/31 Karin Verspoor <Ka...@ucdenver.edu>

> Tommaso, are you familiar with UIMAfit?  http://code.google.com/p/uimafit/
>
> It might help to address some of your problems, though I haven't carefully
> considered all of your points below.  We have been using it successfully to
> support deployment of a UIMA pipeline across multiple machines.
>
> Karin
>
> On Aug 31, 2011, at 8:48 AM, Tommaso Teofili 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
>
> --
> Karin Verspoor, PhD
> Research Assistant Professor
> Computational Bioscience Program, University of Colorado School of Medicine
> 12801 E 17th Ave, MS 8303, Aurora, CO 80045 USA
> karin.verspoor@ucdenver.edu / tel: (720) 279-4875 / campus: 4-3758
> http://compbio.ucdenver.edu/Hunter_lab/Verspoor
>
>
>
>
>
>
>
>
>
>

Re: UIMA module thoughts (and refactoring)

Posted by Karin Verspoor <Ka...@ucdenver.edu>.
Tommaso, are you familiar with UIMAfit?  http://code.google.com/p/uimafit/

It might help to address some of your problems, though I haven't carefully considered all of your points below.  We have been using it successfully to support deployment of a UIMA pipeline across multiple machines.

Karin

On Aug 31, 2011, at 8:48 AM, Tommaso Teofili 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

-- 
Karin Verspoor, PhD
Research Assistant Professor
Computational Bioscience Program, University of Colorado School of Medicine
12801 E 17th Ave, MS 8303, Aurora, CO 80045 USA
karin.verspoor@ucdenver.edu / tel: (720) 279-4875 / campus: 4-3758
http://compbio.ucdenver.edu/Hunter_lab/Verspoor










Re: UIMA module thoughts (and refactoring)

Posted by Reto Bachmann-Gmür <me...@farewellutopia.com>.
On Thu, Sep 8, 2011 at 12:00 PM, Tommaso Teofili
<to...@gmail.com> wrote:
> I've updated the website with some basic documentation about Clerezza-UIMA.
> See http://incubator.apache.org/clerezza/clerezza-uima

nice! thanks.

Two comments:
- It would be handy to have copy-and-pasteable
start("mvn:org.apache....")- commands to have all the neede bundles
installed (as far as they are not part of the launcher)
- maybe the titles of the section could link to the api-doc in the
maven generated site (which reminds me that this is still not
automatically deployed)

Reto


> I'm writing also a small getting-started for devs.
> Cheers,
> Tommaso
>
> 2011/9/2 Reto Bachmann-Gmür <me...@farewellutopia.com>
>
>> I don't mind. It would be great if a mini howto (with a list of bundle-uri
>> for each feature) could be attached.
>>
>> Cheers,
>> Reto
>> On Sep 2, 2011 9:05 AM, "Tommaso Teofili" <to...@gmail.com>
>> wrote:
>> > 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 <to...@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 <me...@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
>> >>> <to...@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
>> >>> >
>> >>>
>> >>
>> >>
>>
>

Re: UIMA module thoughts (and refactoring)

Posted by Tommaso Teofili <to...@gmail.com>.
I've updated the website with some basic documentation about Clerezza-UIMA.
See http://incubator.apache.org/clerezza/clerezza-uima
I'm writing also a small getting-started for devs.
Cheers,
Tommaso

2011/9/2 Reto Bachmann-Gmür <me...@farewellutopia.com>

> I don't mind. It would be great if a mini howto (with a list of bundle-uri
> for each feature) could be attached.
>
> Cheers,
> Reto
> On Sep 2, 2011 9:05 AM, "Tommaso Teofili" <to...@gmail.com>
> wrote:
> > 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 <to...@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 <me...@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
> >>> <to...@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
> >>> >
> >>>
> >>
> >>
>

Re: UIMA module thoughts (and refactoring)

Posted by Reto Bachmann-Gmür <me...@farewellutopia.com>.
I don't mind. It would be great if a mini howto (with a list of bundle-uri
for each feature) could be attached.

Cheers,
Reto
On Sep 2, 2011 9:05 AM, "Tommaso Teofili" <to...@gmail.com> wrote:
> 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 <to...@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 <me...@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
>>> <to...@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
>>> >
>>>
>>
>>

Re: UIMA module thoughts (and refactoring)

Posted by Tommaso Teofili <to...@gmail.com>.
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 <to...@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 <me...@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
>> <to...@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
>> >
>>
>
>

Re: UIMA module thoughts (and refactoring)

Posted by Tommaso Teofili <to...@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 <me...@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
> <to...@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
> >
>

Re: UIMA module thoughts (and refactoring)

Posted by Reto Bachmann-Gmür <me...@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
<to...@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
>