プロジェクトにLiquibaseを統合したいと思います。私の最初のアイデアは、onInitメソッドからLiquibase更新を開始する青写真のBeanを使用することでした。しかし、 "hbm2ddl.auto"が "validate"に設定され、検証が私のbeanのonInitの前に実行されているため、休止状態に問題がありました。 (META-INFのpersistence.xmlでコンテナ管理の永続性を使用します)。だから私の2番目の試みはBundleTrackerを使うことでした。マニフェストのエントリがあると、liquibaseはdbの更新を行います。うまくいっていますが、データベースの更新がうまくいかないとバンドルが開始されないように強制したいと思います。しかし、私はBundleTrackerのメソッドaddBundleからそれをどうやって行うのか分かりません。 BundleTrackerイベントからバンドルを起動できないようにする方法はありますか?OSGIと休止状態でのLiquibaseの使用
更新を実行するいくつかの追加バンドルを作成し、persistence.xmlで他のバンドルを作成する方法は、このバンドルに依存するという考え方もあります。しかし、BundleTrackerを使った解決策が私にとってより良いように見えるのは、persistence.xmlのバンドルがたくさんあります。
本当に私はliquibase osgiと冬眠の統合に固執しています。私はあなたがすでにその方法を見つけたことを知っています。 osgiバンドルのサービスとして私の永続性ユニットと私のデータベースとの間でliquibase diffを実行したいのですが、私はそれを行うことができません – elpazio
私たちはmavenプラグイン経由でdiffを行っていますが、データベースを更新できるosgiバンドルliquibaseと純粋なデータソースを使用します。 hibernateを使うと、私たちはliquibase更新の前に実行されたので、検証に問題がありました。私は、BundleActivatorを使用して、Hibernateがアクティブになる前にアップデートを実行できると思いますが、私たちは別のソリューションを選択しました。 – jherkel