Yes, this topic again...

While working on a utility to migrate code from IBM UIMA to Apache
UIMA, I encountered the case where the user's project has a definition
of com.ibm.uima.jcas.tcas.DocumentAnnotation.  That's because JCasGen
creates this, to account for cases where the user has defined their
own features to add to DocumentAnnotation.

As far as the migration goes, this would need to become
org.apache.uima.jcas.tcas.DocumentAnnotation.  But I can't do that
with search-and-replace, I'd actually have to move the file to a
different directory.  Instead of doing that, this may become a manual
migration step.  (If the user did not add custom code, just deleting
this file and rerunning JCasGen is sufficient.)

It also occurred to me that we lost uima_jcas_builtin_types.jar as
part of our Maven restructuring.  This jar contained the
DocumentAnnotation class, which was not in uima_core.jar.  This was
done so that applications could exclude this jar from their classpath
to allow a user-generated DocumentAnnotation class to be used instead
of the one that ships with UIMA.  But this is pretty ugly.

Questions:
1) Do we continue to support adding features to DocumentAnnotation?
2) If so, should we delete the JCAS DocumentAnnotation class from the
framework code entirely, to avoid the problem that required the
uima_jcas_builtin_types.jar workaround?
3) What should the migration story be for existing user code?

-Adam

Reply via email to