bugfix for liquibase
This commit is contained in:
parent
95feb3bc20
commit
691dc813ef
@ -5,6 +5,8 @@ import java.util.List;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
|
||||
import org.springframework.context.ResourceLoaderAware;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
|
||||
import com.knecon.fforesight.mongo.database.commons.utils.MongoUtils;
|
||||
import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService;
|
||||
@ -18,21 +20,26 @@ import liquibase.Liquibase;
|
||||
import liquibase.changelog.ChangeSet;
|
||||
import liquibase.database.DatabaseFactory;
|
||||
import liquibase.ext.mongodb.database.MongoLiquibaseDatabase;
|
||||
import liquibase.resource.ClassLoaderResourceAccessor;
|
||||
import liquibase.integration.spring.SpringResourceAccessor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class TenantMongoLiquibaseExecutor implements InitializingBean {
|
||||
public class TenantMongoLiquibaseExecutor implements InitializingBean, ResourceLoaderAware {
|
||||
|
||||
private final EncryptionDecryptionService encryptionService;
|
||||
|
||||
private final TenantProvider tenantProvider;
|
||||
|
||||
@Qualifier("tenantLiquibaseProperties")
|
||||
private final LiquibaseProperties tenantLiquibaseProperties;
|
||||
|
||||
@Setter
|
||||
private ResourceLoader resourceLoader;
|
||||
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
@ -62,11 +69,13 @@ public class TenantMongoLiquibaseExecutor implements InitializingBean {
|
||||
try (MongoLiquibaseDatabase database = (MongoLiquibaseDatabase) DatabaseFactory.getInstance()
|
||||
.openDatabase(mongoUrl, mongoDBConnection.getUsername(), encryptionService.decrypt(mongoDBConnection.getPassword()), null, null)) {
|
||||
|
||||
try (Liquibase liquibase = new Liquibase(tenantLiquibaseProperties.getChangeLog(), new ClassLoaderResourceAccessor(), database)) {
|
||||
Contexts contexts = new Contexts(tenantLiquibaseProperties.getContexts());
|
||||
List<ChangeSet> changeSetsList = liquibase.listUnrunChangeSets(contexts, null);
|
||||
if (!changeSetsList.isEmpty()) {
|
||||
liquibase.update(contexts);
|
||||
try (SpringResourceAccessor resourceAccessor = new SpringResourceAccessor(resourceLoader)) {
|
||||
try (Liquibase liquibase = new Liquibase(tenantLiquibaseProperties.getChangeLog(), resourceAccessor, database)) {
|
||||
Contexts contexts = new Contexts(tenantLiquibaseProperties.getContexts());
|
||||
List<ChangeSet> changeSetsList = liquibase.listUnrunChangeSets(contexts, null);
|
||||
if (!changeSetsList.isEmpty()) {
|
||||
liquibase.update(contexts);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package com.knecon.fforesight.mongo.database.commons.service;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.knecon.fforesight.mongo.database.commons.exception.MongoDBTenantException;
|
||||
@ -20,6 +22,7 @@ public class MongoDataSources {
|
||||
|
||||
|
||||
@Bean
|
||||
@Lazy
|
||||
public String databaseName() {
|
||||
|
||||
return "dummy";
|
||||
@ -27,12 +30,21 @@ public class MongoDataSources {
|
||||
|
||||
|
||||
@Bean
|
||||
@Lazy
|
||||
public MongoClient getMongoClient() {
|
||||
|
||||
return MongoClients.create();
|
||||
}
|
||||
|
||||
|
||||
@Bean
|
||||
@Lazy
|
||||
public MongoTemplate mongoTemplate(@Qualifier("getMongoClient") MongoClient mongoClient, String databaseName) {
|
||||
|
||||
return new MongoTemplate(mongoClient, databaseName);
|
||||
}
|
||||
|
||||
|
||||
public MongoDatabase mongoDatabaseCurrentTenantResolver() {
|
||||
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user