Exilis and Lucene versions

Exilis is currently based on Lucene 3.0 ; that could sound strange since Lucene is actually publishing version more than 9. This is a choice which will be explained here.

Lucene is a great tool and its license is very permissive. But it does not ensure compatibility between successive versions, which can be problematic as the idea of Exilis is to become a portable format for translation memories. This is also true for its API: it changes sometimes radically from one version to the next one.

The .NET version

The goal of Exilis is to be a portable translation memory format to be shared between CAT tools. As lot of CAT tools are written in C#, compatibility with .NET is mandatory.

The version for .NET is considerably less advanced than Java version. The only really stable versions are 2.9 and 3.0.3. There is a new version which is based on Java Lucene 4.8 which claims to be stable but our tests shows the contrary: neither in C# (for the Trados plugin) nor with Ruby we succeeded to have it working.

There is an alternative for .NET named FlexLucene which seems more stable: we already could have it working in C# for the plugin. Adaptation for Ruby will be considered when we could do the same for the Java version.

The Java versions

The Source code actually published is written for Lucene 3.0 but works correctly up to Lucene 3.6. However, you must be careful: if you change the jar files for those of Lucene 3.6, it will immediately convert all your memories to Lucene 3.6 and make them incompatible with the .NET version!

In the Git depot we begin to port to Lucene 4 without breaking compatibility with older releases. But we cannot recommend this usage due to the previously mentioned conversion.

Next step would be to migrate to Lucene 5.2 (the version actually used by standard OmegaT) if we can also do the same for the .NET version using FlexLucene. To be continued...