Я хотел бы интегрировать Liquibase в свой проект. Моя первая идея состояла в том, чтобы использовать компонент плана, который запускает обновление Liquibase по методу onInit. Но возникла проблема с спящим режимом, потому что у нас есть «hbm2ddl.auto», установленный для «проверки», и проверка была выполнена до того, как он был включен. (мы используем устойчивое управление контейнером с persistence.xml в META-INF). Итак, мой второй подход - использовать BundleTracker, и когда есть какая-либо запись в манифесте, Liquibase выполняет обновление db. Он работает хорошо, но я хотел бы обеспечить, чтобы этот пакет не запускался, если обновление базы данных не будет успешным. Но я не знаю, как это сделать из метода BundleTracker addBundle. Есть ли способ предотвратить запуск пакета из события BundleTracker?Использование Liquibase с OSGI и Hibernate
У меня есть другая возможная идея сделать это для создания дополнительного пакета, который выполняет обновление, а другой пакет с persistence.xml будет зависеть от этого пакета. Но у нас много пакетов с persistence.xml, поэтому решение с BundleTracker мне кажется лучше.
Im действительно застрял в интеграции с libibase osgi и hibernate. Я вижу, что вы уже нашли способ, можете ли вы помочь мне в этом? потому что я хочу вызывать diff linibase между моей единицей сохранения и моей базой данных в качестве службы в пакете osgi, но я не могу этого сделать – elpazio
Мы делаем diff через плагин maven, но у нас есть пакет osgi, который может обновлять базу данных с использованием жидкой жидкости и чистого источника данных. С hibernate у нас была проблема с проверкой, потому что она была выполнена до нашего обновления Liquibase. Я думаю, что с помощью BundleActivator вы можете выполнить обновление до активации спящего режима, но мы выбрали другое решение. – jherkel