uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Eckart de Castilho <richard.eck...@gmail.com>
Subject Re: Time to push out next release of 2.4.1SDK ?
Date Thu, 30 May 2013 22:00:23 GMT
Am 30.05.2013 um 23:27 schrieb Jörn Kottmann <kottmann@gmail.com>:

> On 05/30/2013 11:25 PM, Richard Eckart de Castilho wrote:
>> uimaFIT 2.0.0 is backwards compatible with 1.4.0.
> Sorry, wasn't aware of that.

I'll briefly explain, just in case we understand different things
by "backwards compatible".

uimaFIT 2.0.0 behaves differently in some aspects than uimaFIT 1.4.0.
There were several incompatible changes we had on the plate, but which
we were always pushing ahead for the next major release.

In addition, the package names have changed since the move to Apache,
so uimaFIT 2.0.0 could never have served as a drop-in replacement.

In order to smooth the transition for current uimaFIT users, in particular
for those that rely on the old behaviour, uimaFIT 2.0.0 comes with a
legacy support layer. This can be enabled optionally and then requires
uimaFIT 1.4.0 on the classpath as well. 

The legacy module in uimaFIT 2.0.0 contains all the original tests
from 1.4.0 testing for the original behavior with the original
annotations but using the 2.0.0 code base. The test for 2.0.0 do
test for the new behavior.

uimaFIT 1.4.0 is not forward-compatible, meaning that the factory 
methods from uimaFIT 1.4.0 won't work very well with uimaFIT 2.0.0
components. If a descriptor was created with a 2.0.0 factory method,
however, it will also run in 1.4.0.

uimaFIT 2.0.0 is backward-compatible with the legacy layer in that
sense that it understands all the 1.4.0 annotations and interprets
them with the 1.4.0 behavior. Type auto-detection following the
1.4.0 conventions is supported as well. When a descriptor 
for a 1.4.0 component is created with 2.0.0, it will create
the correct descriptor.

Both versions can even be mixed in a project. The 1.4.0 factories
can be used to create 1.4.0 component descriptions, the 2.0.0
factories can be used for 1.4.0 and 2.0.0 components. When 
external resources are used, these should be created with 
the same version as the component to which they are bound to.

I may have missed something, but I'm pretty confident that this
is working very well. Tests with DKPro Core and DKPro Lab have
shown no issues so far. The uimafit-maven-plugin works just nice
with the 1.4.0 version of DKPro Core as well.

I've also started a "migration guide" [1], but I'll have to 
revisit that since some additional things have changed since


-- Richard

[1] https://cwiki.apache.org/UIMA/migration-guide-1x-to-2x.html
View raw message