diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index 021b108284740..4494d9119170a 100644
--- a/bom/application/pom.xml
+++ b/bom/application/pom.xml
@@ -168,7 +168,9 @@
3.0.2.Final
9.21.2
3.0.3
- 4.20.0
+
+ 4.23.1
+ 4.23.0
2.1
6.0.0
4.10.2
@@ -5893,6 +5895,10 @@
javax.xml.bind
jaxb-api
+
+ javax.activation
+ *
+
@@ -5904,7 +5910,7 @@
org.liquibase.ext
liquibase-mongodb
- ${liquibase.version}
+ ${liquibase-mongodb.version}
org.codehaus.groovy
diff --git a/extensions/liquibase-mongodb/deployment/src/main/java/io/quarkus/liquibase/mongodb/deployment/LiquibaseMongodbProcessor.java b/extensions/liquibase-mongodb/deployment/src/main/java/io/quarkus/liquibase/mongodb/deployment/LiquibaseMongodbProcessor.java
index 64eb0713a8faf..f043f34fb046f 100644
--- a/extensions/liquibase-mongodb/deployment/src/main/java/io/quarkus/liquibase/mongodb/deployment/LiquibaseMongodbProcessor.java
+++ b/extensions/liquibase-mongodb/deployment/src/main/java/io/quarkus/liquibase/mongodb/deployment/LiquibaseMongodbProcessor.java
@@ -33,10 +33,10 @@
import io.quarkus.deployment.builditem.ApplicationInfoBuildItem;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.InitTaskBuildItem;
import io.quarkus.deployment.builditem.InitTaskCompletedBuildItem;
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
-import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
@@ -61,6 +61,7 @@
import liquibase.exception.LiquibaseException;
import liquibase.parser.ChangeLogParser;
import liquibase.parser.ChangeLogParserFactory;
+import liquibase.plugin.AbstractPluginFactory;
import liquibase.resource.ClassLoaderResourceAccessor;
class LiquibaseMongodbProcessor {
@@ -74,12 +75,11 @@ FeatureBuildItem feature() {
return new FeatureBuildItem(Feature.LIQUIBASE_MONGODB);
}
- @BuildStep
- public SystemPropertyBuildItem disableHub() {
- // Don't block app startup with prompt:
- // Do you want to see this operation's report in Liquibase Hub, which improves team collaboration?
- // If so, enter your email. If not, enter [N] to no longer be prompted, or [S] to skip for now, but ask again next time (default "S"):
- return new SystemPropertyBuildItem("liquibase.hub.mode", "off");
+ @BuildStep(onlyIf = NativeOrNativeSourcesBuild.class)
+ List indexLiquibase() {
+ return List.of(
+ new IndexDependencyBuildItem("org.liquibase", "liquibase-core"),
+ new IndexDependencyBuildItem("org.liquibase.ext", "liquibase-mongodb"));
}
@BuildStep(onlyIf = NativeOrNativeSourcesBuild.class)
@@ -103,18 +103,23 @@ void nativeImageConfiguration(
liquibase.database.jvm.JdbcConnection.class.getName())
.methods().build());
+ reflective.produce(ReflectiveClassBuildItem
+ .builder(combinedIndex.getIndex().getAllKnownSubclasses(AbstractPluginFactory.class).stream()
+ .map(classInfo -> classInfo.name().toString())
+ .toArray(String[]::new))
+ .constructors().build());
+
+ reflective.produce(ReflectiveClassBuildItem
+ .builder(liquibase.command.CommandFactory.class.getName(),
+ // deprecated, but still used by liquibase.nosql.lockservice.AbstractNoSqlLockService
+ liquibase.configuration.GlobalConfiguration.class.getName())
+ .constructors().build());
+
reflective.produce(ReflectiveClassBuildItem.builder(
liquibase.parser.ChangeLogParserConfiguration.class.getName(),
- liquibase.hub.HubServiceFactory.class.getName(),
- liquibase.logging.core.DefaultLoggerConfiguration.class.getName(),
- // deprecated, but still used by liquibase.nosql.lockservice.AbstractNoSqlLockService
- liquibase.configuration.GlobalConfiguration.class.getName(),
liquibase.GlobalConfiguration.class.getName(),
- liquibase.license.LicenseServiceFactory.class.getName(),
liquibase.executor.ExecutorService.class.getName(),
liquibase.change.ChangeFactory.class.getName(),
- liquibase.logging.core.LogServiceFactory.class.getName(),
- liquibase.logging.LogFactory.class.getName(),
liquibase.change.ColumnConfig.class.getName(),
liquibase.change.AddColumnConfig.class.getName(),
liquibase.change.core.LoadDataColumnConfig.class.getName(),
@@ -122,9 +127,7 @@ void nativeImageConfiguration(
liquibase.sql.visitor.ReplaceSqlVisitor.class.getName(),
liquibase.sql.visitor.AppendSqlVisitor.class.getName(),
liquibase.sql.visitor.RegExpReplaceSqlVisitor.class.getName(),
- liquibase.ext.mongodb.database.MongoClientDriver.class.getName(),
- liquibase.resource.PathHandlerFactory.class.getName(),
- liquibase.logging.mdc.MdcManagerFactory.class.getName())
+ liquibase.ext.mongodb.database.MongoClientDriver.class.getName())
.constructors().methods().fields().build());
reflective.produce(ReflectiveClassBuildItem.builder(
@@ -170,7 +173,6 @@ void nativeImageConfiguration(
liquibase.snapshot.SnapshotGenerator.class,
liquibase.sqlgenerator.SqlGenerator.class,
liquibase.structure.DatabaseObject.class,
- liquibase.hub.HubService.class,
liquibase.logging.mdc.MdcManager.class)
.forEach(t -> addService(services, reflective, t, false));
@@ -196,6 +198,10 @@ void nativeImageConfiguration(
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.17.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.18.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.19.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.21.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.22.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.23.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd",
"liquibase.build.properties"));
diff --git a/extensions/liquibase-mongodb/runtime/src/main/java/io/quarkus/liquibase/mongodb/LiquibaseMongodbFactory.java b/extensions/liquibase-mongodb/runtime/src/main/java/io/quarkus/liquibase/mongodb/LiquibaseMongodbFactory.java
index e8744a52b193a..e98532a448bae 100644
--- a/extensions/liquibase-mongodb/runtime/src/main/java/io/quarkus/liquibase/mongodb/LiquibaseMongodbFactory.java
+++ b/extensions/liquibase-mongodb/runtime/src/main/java/io/quarkus/liquibase/mongodb/LiquibaseMongodbFactory.java
@@ -3,6 +3,7 @@
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import io.quarkus.liquibase.mongodb.runtime.LiquibaseMongodbBuildTimeConfig;
import io.quarkus.liquibase.mongodb.runtime.LiquibaseMongodbConfig;
@@ -91,7 +92,9 @@ public LiquibaseMongodbConfig getConfiguration() {
* @return the label expression
*/
public LabelExpression createLabels() {
- return new LabelExpression(liquibaseMongodbConfig.labels.orElse(null));
+ // need to join because of https://github.com/liquibase/liquibase/issues/4763
+ return new LabelExpression(
+ liquibaseMongodbConfig.labels.map(labels -> labels.stream().collect(Collectors.joining(","))).orElse(null));
}
/**
diff --git a/extensions/liquibase/deployment/src/main/java/io/quarkus/liquibase/deployment/LiquibaseProcessor.java b/extensions/liquibase/deployment/src/main/java/io/quarkus/liquibase/deployment/LiquibaseProcessor.java
index 4d6c65e2b30f5..52b2e76afd401 100644
--- a/extensions/liquibase/deployment/src/main/java/io/quarkus/liquibase/deployment/LiquibaseProcessor.java
+++ b/extensions/liquibase/deployment/src/main/java/io/quarkus/liquibase/deployment/LiquibaseProcessor.java
@@ -49,7 +49,6 @@
import io.quarkus.deployment.builditem.InitTaskBuildItem;
import io.quarkus.deployment.builditem.InitTaskCompletedBuildItem;
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
-import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
@@ -75,6 +74,7 @@
import liquibase.exception.LiquibaseException;
import liquibase.parser.ChangeLogParser;
import liquibase.parser.ChangeLogParserFactory;
+import liquibase.plugin.AbstractPluginFactory;
import liquibase.resource.ClassLoaderResourceAccessor;
class LiquibaseProcessor {
@@ -90,14 +90,6 @@ FeatureBuildItem feature() {
return new FeatureBuildItem(Feature.LIQUIBASE);
}
- @BuildStep
- public SystemPropertyBuildItem disableHub() {
- // Don't block app startup with prompt:
- // Do you want to see this operation's report in Liquibase Hub, which improves team collaboration?
- // If so, enter your email. If not, enter [N] to no longer be prompted, or [S] to skip for now, but ask again next time (default "S"):
- return new SystemPropertyBuildItem("liquibase.hub.mode", "off");
- }
-
@BuildStep(onlyIf = NativeOrNativeSourcesBuild.class)
IndexDependencyBuildItem indexLiquibase() {
return new IndexDependencyBuildItem("org.liquibase", "liquibase-core");
@@ -126,29 +118,26 @@ void nativeImageConfiguration(
.build());
reflective.produce(ReflectiveClassBuildItem
- .builder("liquibase.command.LiquibaseCommandFactory",
- liquibase.command.CommandFactory.class.getName())
+ .builder(combinedIndex.getIndex().getAllKnownSubclasses(AbstractPluginFactory.class).stream()
+ .map(classInfo -> classInfo.name().toString())
+ .toArray(String[]::new))
+ .constructors().build());
+
+ reflective.produce(ReflectiveClassBuildItem
+ .builder(liquibase.command.CommandFactory.class.getName())
.constructors().build());
reflective.produce(ReflectiveClassBuildItem.builder(
liquibase.parser.ChangeLogParserConfiguration.class.getName(),
- liquibase.hub.HubServiceFactory.class.getName(),
- liquibase.logging.core.DefaultLoggerConfiguration.class.getName(),
liquibase.GlobalConfiguration.class.getName(),
- liquibase.license.LicenseServiceFactory.class.getName(),
liquibase.executor.ExecutorService.class.getName(),
- liquibase.change.ChangeFactory.class.getName(),
- liquibase.logging.core.LogServiceFactory.class.getName(),
- liquibase.logging.LogFactory.class.getName(),
liquibase.change.ColumnConfig.class.getName(),
liquibase.change.AddColumnConfig.class.getName(),
liquibase.change.core.LoadDataColumnConfig.class.getName(),
liquibase.sql.visitor.PrependSqlVisitor.class.getName(),
liquibase.sql.visitor.ReplaceSqlVisitor.class.getName(),
liquibase.sql.visitor.AppendSqlVisitor.class.getName(),
- liquibase.sql.visitor.RegExpReplaceSqlVisitor.class.getName(),
- liquibase.resource.PathHandlerFactory.class.getName(),
- liquibase.logging.mdc.MdcManagerFactory.class.getName())
+ liquibase.sql.visitor.RegExpReplaceSqlVisitor.class.getName())
.constructors().methods().fields().build());
reflective.produce(ReflectiveClassBuildItem.builder(
@@ -201,7 +190,6 @@ void nativeImageConfiguration(
liquibase.snapshot.SnapshotGenerator.class,
liquibase.sqlgenerator.SqlGenerator.class,
liquibase.structure.DatabaseObject.class,
- liquibase.hub.HubService.class,
liquibase.logging.mdc.MdcManager.class)
.forEach(t -> consumeService(t, (serviceClass, implementations) -> {
services.produce(
@@ -244,6 +232,10 @@ void nativeImageConfiguration(
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.17.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.18.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.19.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.21.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.22.xsd",
+ "www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.23.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd",
"www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd",
"liquibase.build.properties"));
diff --git a/extensions/liquibase/runtime/src/main/java/io/quarkus/liquibase/LiquibaseFactory.java b/extensions/liquibase/runtime/src/main/java/io/quarkus/liquibase/LiquibaseFactory.java
index 00b34a5af882c..dd66fe3cb15ac 100644
--- a/extensions/liquibase/runtime/src/main/java/io/quarkus/liquibase/LiquibaseFactory.java
+++ b/extensions/liquibase/runtime/src/main/java/io/quarkus/liquibase/LiquibaseFactory.java
@@ -1,6 +1,7 @@
package io.quarkus.liquibase;
import java.util.Map;
+import java.util.stream.Collectors;
import javax.sql.DataSource;
@@ -71,7 +72,10 @@ public LiquibaseConfig getConfiguration() {
* @return the label expression
*/
public LabelExpression createLabels() {
- return new LabelExpression(config.labels);
+ // need to join because of https://github.com/liquibase/liquibase/issues/4763
+ return new LabelExpression(config.labels != null
+ ? config.labels.stream().collect(Collectors.joining(","))
+ : null);
}
/**