Can you just write out the component descriptor to a file and pass that to
the factory? I think you need a path since
the underlying code needs uima-style include which supports import by name
or location. Perhaps CPE can do this for you
with a new API you are suggesting but I the quickest path for you is to
create a file from string.
public static CpeComponentDescriptor produceComponentDescriptor(String
aPath) {
CpeComponentDescriptor componentDescriptor = new
CpeComponentDescriptorImpl();
CpeInclude include = new CpeIncludeImpl();
include.set(aPath);
componentDescriptor.setInclude(include);
return componentDescriptor;
}
-jerry
On Fri, Sep 9, 2016 at 11:15 AM, Chen Xiaobin <[email protected]> wrote:
> Hi,
> I am wondering if there is a way to initiate a CpeComponentDescriptor from
> an InputStream or a String, instead of from a physical descriptor file.
> I am using the following code originally:
>
> CpeCasProcessor casProcessor = CpeDescriptorFactory.
> produceCasProcessor(ae.getName());
> CpeComponentDescriptor componentDescriptor = CpeDescriptorFactory.
> produceComponentDescriptor("path/to/aeDescriptor.xml");
> casProcessor.setCpeComponentDescriptor(componentDescriptor);
> cpeDescription.addCasProcessor(casProcessor);
>
> But now in my application, all AE descriptors are stored in a database as
> Strings. I need to construct a CPE and add some AEs to the CPE.
>
> Is there a way to substitute the second line of the above code to something
> like:
> CpeComponentDescriptor componentDescriptor =
> CpeDescriptorFactory.produceComponentDescriptor(**
> descriptorFromAnInputStream
> or String**);
> The UIMA API does not provide such a method in the CpeDescriptorFactor.
>
> Thank you!
>
> Xiaobin
> --
> --
> Eberhard Karls Universität Tübingen
> LEAD Graduate School
> Doctoral Candidate
> Gartenstraße 29A · 72074 Tübingen · Germany
> Phone +49 1765 7634 683
>