I am creating a pipeline as follows:
a. CollectionReader
b. AnnotatorA
c. AnnotatorB

All the above (including the CollectionReader and the 2 annotators) have a 
dependency on an ExternalResource.

Here's a shortened code that I used:
// create the external resource desc 
ExternalResourceDescription myExternalResourceDesc = 
createExternalResourceDescription();

// create the CollectionReaderDescription, with the external resource desc
CollectionReaderDescription myCollectionReaderDesc = 
createDescription(myExternalResourceDesc);

// create the MyAnnotatorA desc, with the external resource desc 
AnalysisEngineDescription myAnnotatorADesc = 
createPrimitiveDescription(myExternalResourceDesc);


// create the MyAnnotatorB desc, with the external resource desc 
AnalysisEngineDescription myAnnotatorBDesc = 
createPrimitiveDescription(myExternalResourceDesc);

// run 
SimplePipeline.runPipeline(myCollectionReaderDesc, myAnnotatorADesc,            
                
myAnnotatorBDesc);


In the initialize(UimaContext context) method of collection reader and 
annotator, I print out the instance of the ExternalResource:
MyCollectionReader:com.example.MyExternalResource@26a7dd39
MyAnnotatorA:com.example.MyExternalResource@6ee1dac2
MyAnnotatorB:com.example.MyExternalResource@6ee1dac2


As you can see, MyAnnotatorA and MyAnnotatorB got the same instance of the 
ExternalResource, but MyCollectionReader got a different instance.

How can I ensure that the CollectionReader and the annotators got hold of 
the same instance of the ExternalResource?

Thanks.

Reply via email to