I've made some good progress on a utility that can be used to help users migrate their code from IBM UIMA to Apache UIMA.
The class is org.apache.uima.tools.migration.IbmUimaToApacheUima in uimaj-tools, and there are corresponding .bat/.sh scripts in uimaj-distr. It's basically just a glorified search-and-replace utility, but has some special treatments of package names to make sure that it only updates actual UIMA package names, not just everything with a com.ibm.uima prefix (which several of our users within IBM do). Anyway I've tried it on some pretty big UIMA projects and it seems to do very well. Here are some things it won't handle: * User code that's in a package with the same exact name as one of the UIMA packages. Hopefully this occurs rarely, but unfortunately there's one common case - DocumentAnnotation - which I mentioned in a previous email. In such a case the package statement would get replaced, but the .java file will then be in the wrong place in the source tree. * Package names that are prefixed by org.apache.uima AND start with a capital letter. I hope no one has a package named com.ibm.uima.MyPackage. This would be treated as a class name and replaced with org.apache.uima.MyPackage wherever it occurs. * Use of _undocumented_ classes in the com.ibm.uima.util package, because these moved to a different package than the documented classes. Can be fixed in Eclipse by a simple Organize Imports operation. * xi:include in descriptors. There's no easy way to automatically replace this, unfortunately. Users will have to manually replace them with the appropriate use of <import>. More work on this will probably be needed as we make more decisions to change things, for example if we entirely remove TCAS. -Adam