This directory contains a C++ version of one of the Java annotations in the
UIMA tutorial. It can be built from the UIMACPP_HOME/examples/tutorial directory with:

    make -C src -f MeetingAnnotator.mak
or
    devenv src\MeetingAnnotator.vcproj /build release

It can be deployed as a stand-alone C++ service and tested by starting a broker and running the following:

   runRemoteAsyncAE[.sh]  tcp://localhost:61616 MeetingAnnotator -d descriptors/Deploy_MeetingAnnotator.xml

The deployment descriptor adds "src" (the relative location of the annotator) to the library search path.
