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 <chxiao...@gmail.com> 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 >