These are the minor changes I made to ruta-core to accomodate UIMA v3; I believe they are compatible with V2.
- the 2nd "inject" method, change the 2nd arg from Annotation ... to FeatureStructureImpl ...
- remove the 3rd "inject" method - now covered by 2nd.
- change getAddresses arg list to have type FeatureStructureImpl
- remove the 2nd getAddresses method (now covered by previous one).
These (above) changes accomodate the fact that there's just one impl of Annotation in v3, and AnnotationImpl is now an interface.
In RutaEngine, the process method sets a variable:
boolean typeSystemChanged = lastTypeSystem != cas.getTypeSystem();
In UIMA V3, loading a new type system which is identical to a previously committed type system, results in the cas.getTypeSystem being == to the "lastTypeSystem". So as a result, you can't use this to determine if a new type system was loaded. The line 484 fails for one test because of this. The workaround is to set "typeSystemChanged" to true, always. But you might have a better solution.