tree e5f45ec86b5256708a3ce459cf93856a3e246a22
parent bf1b35aac29b6c0d5e918f00d99a0632e4925b51
author Florian Zschocke <florian.zschocke@devolo.de> 1488728744 +0100
committer Florian Zschocke <florian.zschocke@devolo.de> 1488742051 +0100

Introduce an index version for the ticket index

In order to be able to update the index definition, the ticket index
is assigned a version number, 2. This way the definiton can be updated
and compatability with existing index files can be checked.
The actual index is stored in a directory of name `indexVersion_codecVersion`.
This wayit is veriy easy to check if an index of a certain version exists on the
filesystem. It allows to have multiple indexes of different versions present,
so that a downgrade of the software is possible without having to reindex
again. Of coure, this is only possible if no new tickets were created since these
would be missing in the old index.

A new class `LuceneIndexStore` is introduced, which abstracts away the versioned
index directory. The idea is, that this provides one place to keep the Lucene
codec version and to allow to code compatibility rules into this class, so that
older indices can still be used if they are compatible.
