私のプロジェクトでは、Jackrabbit 1.3 を Jackrabbit 2.1.1 に変更する必要があります。私の仕事はクエリを処理することです。インデックス形式とクエリ形式に変更がある場合は、私に提案してください。Jackrabbit 2.1.1 では Lucene 2.4 が使用され、Jackrabbit 1.3 では Lucene 2.2 が使用されます。
2 に答える
アップグレードを次の部分に分けてみましょう。
1.3から1.5にアップグレードします(Class IndexMigrationを参照)。
IndexMigrationは、Jackrabbit1.4.xインデックスをバージョン1.5に移行するユーティリティを実装します。バージョン1.4.xまでは、インデックスは文字''を使用してプロパティの名前を値から分離していました。Lucene 2.3以降、これは機能しなくなりました。LUCENE-1221を参照してください。Jackrabbit> = 1.5は、文字'['を区切り文字として使用します。インデックスがディスクから開かれるたびに、移行が必要かどうかを確認するためのクイックチェックが実行されます。詳細については、JCR-1363も参照してください。
1.5を2.0.0にアップグレードします(RELEASE-NOTES.txtを参照)。
後方互換性
Jackrabbit 2.0は、既存のJackrabbit1.xクライアントおよびリポジトリと互換性があるように設計されています。この目標の主な例外は次のとおりです。
- 非推奨のクラスと機能の削除。Jackrabbit 2.0は、1.xリリースサイクル中に非推奨になったクラスまたは機能を使用したクライアントコードとの下位互換性がありません。特に、一時的なorg.apache.jackrabbit.api.jsr283インターフェースが削除され、javax.jcrの公式JCR2.0APIが採用されました。
- Jackrabbit1.5および1.6の開発プレビューとして含まれている新しいJSR283セキュリティ機能を使用しているリポジトリは、Jackrabbit2.0にアップグレードするときに問題に直面する可能性があります。詳細については、特にJCR-1944およびJCR-2313 を参照してください。
- JCR-RMIレイヤーは、JackrabbitAPI拡張機能を実装しなくなりました。分散トランザクションで、またはワークスペースの作成やノードタイプの登録などの管理操作に、JCR-RMIを使用するコードは、それに応じて更新する必要があります。
- Jackrabbit 2.0のJCR-RMIレイヤーは、JCR2.0リポジトリーのみをサポートします。RMIを介してJackrabbit1.xのようなJCR1.0リポジトリの実装にアクセスするには、JCR-RMIの1.xバージョンを使用する必要があります。
2.0.0から2.1.1にアップグレードします(2.xブランチは安定したAPIを持つように配置されています):
これはApacheJackrabbit2.0.0であり、JavaTechnologyAPIバージョン2.0のコンテンツリポジトリの完全準拠で本番環境に対応した実装です。
JackrabbitおよびLuceneAPIの互換性テーブルも参照してください。
Jackrabbit 1.x から 2.x に移行するには、複数の方法があります。おそらく最良のドキュメントは、バックアップと移行のページの 1 つであるJackrabbit Wikiにあります。