Re: uimaFIT / Ruta compiled against v2 being binary compatible with v3: Yes this works!
I wasn't thinking clearly... I've already done experiments where I ran the migration tool to get new JCas class definitions, and then ran with previously compiled (against v2) versions of user code. I know java 7 compiled classes can be run with Java 8. I recently ran a Ruta (v2 + Java 7 compiled version) test where all I changed was the Java runtime to 8, and it ran fine. Given this, the only change needed for taking a running Ruta + uimaFIT + v2 UIMA and switching to v3 UIMA is swapping out/in the JCas generated classes. I'll try this to confirm. If it works (and I think it will), then we just need to figure out a nice managed way to support the v3 version of JCas classes. -Marshall On 1/13/2017 2:51 PM, Richard Eckart de Castilho wrote: > Hi Marshall, > >> On 13.01.2017, at 04:50, Marshall Schor <m...@schor.com> wrote: >> >> 1) I made a version of uimaFIT and Ruta for v3, and called them by some >> different version number. >> >> Having a separate version allows the builds to create separate sets of Maven >> objects, which don't "overlay" the others. >> >> The POM changes are: >> >> a) switching the Java version to 8 >> b) depending on uima v3 (3.0.0-SNAPSHOT) >> c) Ruta has a property for the uima version, the uimaFIT version, both >> updated >> to the appropriate versions. > If we do not want to release two versions of uimaFIT/Ruta but only be able to > build the same source against uimaV2 and uimaV3, then we could use a profile > in the POM to control the dependencies and set up build jobs on Jenkins to > activate either uimaV2-mode or V3-mode. > > But I guess a uimaFIT/Ruta compiled against V2 is not binary-compatible with > one > compiled against V3, is it? > >> ------------------ >> >> 2) uimaFIT has some JCas cover classes that are not generated by the build, >> but are >> in source code. > I don't think they are customized. Should be possible to use the JCasGen > plugin everywhere. > >> ------------------ >> >> 3) Some test cases that depend on the internals of V2 needed updating in >> uimaFIT. > Did you commit these changes anywhere? Are they backwards-compatible with V2? > > Cheers, > > -- Richard