
io.quarkus.liquibase.runtime.LiquibaseFactoryUtil Maven / Gradle / Ivy
package io.quarkus.liquibase.runtime;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.List;
import jakarta.enterprise.inject.Default;
import io.quarkus.agroal.runtime.AgroalDataSourceUtil;
import io.quarkus.arc.Arc;
import io.quarkus.arc.InstanceHandle;
import io.quarkus.datasource.common.runtime.DataSourceUtil;
import io.quarkus.liquibase.LiquibaseDataSource;
import io.quarkus.liquibase.LiquibaseFactory;
public final class LiquibaseFactoryUtil {
private LiquibaseFactoryUtil() {
}
public static InstanceHandle getLiquibaseFactory(String dataSourceName) {
return Arc.container().instance(LiquibaseFactory.class,
getLiquibaseFactoryQualifier(dataSourceName));
}
public static List> getActiveLiquibaseFactories() {
List> result = new ArrayList<>();
for (String datasourceName : AgroalDataSourceUtil.activeDataSourceNames()) {
InstanceHandle handle = Arc.container().instance(LiquibaseFactory.class,
getLiquibaseFactoryQualifier(datasourceName));
if (!handle.isAvailable()) {
continue;
}
result.add(handle);
}
return result;
}
public static Annotation getLiquibaseFactoryQualifier(String dataSourceName) {
if (DataSourceUtil.isDefault(dataSourceName)) {
return Default.Literal.INSTANCE;
}
return LiquibaseDataSource.LiquibaseDataSourceLiteral.of(dataSourceName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy