uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Baessler <...@michael-baessler.de>
Subject Re: UIMA 2.2 Class Loader
Date Fri, 31 Aug 2007 07:47:49 GMT
Currently there is no way to specify a classpath for a primitive AE that 
is used in an aggregate without having the PEAR file structure.

I think you are searching for an option like

     <delegateAnalysisEngine key="PearDesc">
         <import location="AnalysisEngine.xml"/>
         <classpath> classpath settings </classpath>
     </delegateAnalysisEngine>

to specify the classpath of a component using a descriptor. Maybe a new 
requirement :-)

-- Michael


Danai Wiriyayanyongsuk wrote:
> Thanks Michael for the detailed information! Actually, I tried the similar
> thing before previous posting but didn't work. It seemed like the whole
> delegateAnalysisEngine tag wasn't there as the annotator class didn't get
> loaded. However, it worked when I switched to the location pointed to the
> primitive AE description instead.
>
> I'll double check and keep you posted. Unfortunately, it might take me
> sometime to get back the result as I just got assigned to a small urgent
> work.
>
> I appreciated the help :)
>
> Anyway, is there a way to dynamically create a PEAR-like, isolated class
> loader environment for a primitive AE where there is no real PEAR file, so
> that the dynamically generated primitve AE description can be directly used
> in an aggregate AE description, assuming that the primitive AE's classpath
> is known?
>
> Thanks,
> Danai Wiriyayanyongsuk
>
>
> On 8/30/07, Michael Baessler <mba@michael-baessler.de> wrote:
>   
>> Adding the PEAR descriptor as delegate to a aggregate AE should work. I
>> have tested this successfully.
>> PEAR descriptors can be used similar to a primitive or aggregate AE
>> descriptor.
>>
>>      <delegateAnalysisEngine key="PearDesc">
>>          <import
>> location="/path/to/the/pear/desc/AnalysisEngine_pear.xml"/>
>>      </delegateAnalysisEngine>
>>
>> If that doesn't work please provide me some detailed information about
>> the error. You can also try for testing to
>> load the PEAR descriptor directly in the CVD or DocumentAnalyzer
>> tooling. That should also work. So you
>> can verify that the PEAR descriptor referring an AE works as expected.
>>
>> Hope that helps.
>>
>> -- Michael
>>
>> Danai Wiriyayanyongsuk wrote:
>>     
>>> Thanks Michael. Yes, I have my primitive engines available as PEAR
>>>       
>> files. I
>>     
>>> also have the auto-generated PEAR descriptors.
>>>
>>> Michael's Quote: "This descriptor have to be used in the aggregate to
>>>       
>> refer
>>     
>>> to the primitive AEs."
>>> Question: How to refer the PEAR descriptors to their primitive AEs in
>>>       
>> the
>>     
>>> aggregate? Is it documented somewhere? In the aggregate AE description,
>>>       
>> I
>>     
>>> tried to specify the location of the PEAR descriptors in
>>> "delegateAnalysisEngine/import" but didn't work.
>>>
>>> Thanks,
>>> Danai Wiriyayanyongsuk
>>>
>>>
>>> On 8/30/07, Michael Baessler <mba@michael-baessler.de> wrote:
>>>
>>>       
>>>> Are your primitive engines available as PEAR files? That is needed
>>>>         
>> since
>>     
>>>> only if you have them as PEAR files
>>>> you can use the PEAR descriptor.
>>>>
>>>> After you have installed the PEAR files a PEAR descriptor is
>>>> automatically generated (located in the install directory). This
>>>> descriptor have to
>>>> be used in the aggregate to refer to the primitive AEs.
>>>>
>>>> -- Michael
>>>>
>>>> Danai Wiriyayanyongsuk wrote:
>>>>
>>>>         
>>>>> Thanks Marshall for the information and for asking :)
>>>>>
>>>>> What I have tried is that I have a description of an aggregate
>>>>>           
>> analysis
>>     
>>>>> engine which has 4 primitive analysis engine defined. Those primitive
>>>>>           
>> AE
>>     
>>>>> descriptions are all fully defined (no imports) under the
>>>>> "delegateAnalysisEngine/analysisEngineDescription" tag. I do this
>>>>>
>>>>>           
>>>> because
>>>>
>>>>         
>>>>> those primitive AE descriptions are generated on the fly. For one
>>>>>           
>> thing,
>>     
>>>>> each primitive AE has its own PEAR-compliant directory. In this case,
>>>>>           
>> I
>>     
>>>>> could not figure out how to tell UIMA the location those directories.
>>>>>
>>>>> Excerpt from section 5.8 in the UIMA References page:
>>>>> "As of version 2.2, the framework supports component descriptors which
>>>>>
>>>>>           
>>>> are
>>>>
>>>>         
>>>>> PEAR descriptors. These descriptors define components plus include
>>>>> information on the class path needed to run them."
>>>>> Question: To get the individual class loader for each primitive AE
>>>>>
>>>>>           
>>>> defined
>>>>
>>>>         
>>>>> in an aggregate AE, do we have to specify/map the PEAR descriptor
>>>>> (<componentID>_pear.xml?) for each of every primitive AE? If so,
where
>>>>>
>>>>>           
>>>> and
>>>>
>>>>         
>>>>> how to do it?
>>>>>
>>>>> Any comments/recommendations would be appreciated.
>>>>>
>>>>> Thanks,
>>>>> Danai Wiriyayanyongsuk
>>>>>
>>>>>
>>>>>
>>>>> On 8/29/07, Marshall Schor < msa@schor.com> wrote:
>>>>>
>>>>>
>>>>>           
>>>>>> Version 2.2 includes support for aggregates composed of PEAR
>>>>>> descriptors, which include the class path information.
>>>>>>
>>>>>> This should allow you to run a pipeline where each annotator could
>>>>>>             
>> have
>>     
>>>>>> different versions of classes.
>>>>>> See
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>> http://incubator.apache.org/uima/downloads/releaseDocs/2.2.0-incubating/docs/html/references/references.html#ugr.ref.jcas.pear_support
>>     
>>>>>> Is that what you're trying to do?
>>>>>>
>>>>>> -Marshall
>>>>>>
>>>>>> Danai Wiriyayanyongsuk wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Hi Guys,
>>>>>>>
>>>>>>> I'd like to ask a couple of questions regarding the classloader
in
>>>>>>>
>>>>>>>               
>>>> UIMA
>>>>
>>>>         
>>>>>> 2.2.
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> For an aggregate analysis engine, is there a way to have/set
>>>>>>>               
>> different
>>     
>>>>>>>               
>>>>>> class
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> loaders for each aggregated primitive analysis engines, so that
the
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> classes
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> won't interfere each others?
>>>>>>>
>>>>>>> If there is so, could you please shed some light how to do it?
I've
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> looked
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> into the source code and documentation but no luck :(
>>>>>>>
>>>>>>> Many Thanks,
>>>>>>> Danai Wiriyayanyongsuk
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>       
>>     
>
>   


Mime
View raw message