Merge pull request #22681 from biergit

* gh-22681:
  Polish "Look in correct context when finding Liquibase beans"
  Look in correct context when finding Liquibase beans

Closes gh-22681
This commit is contained in:
Andy Wilkinson 2020-07-31 12:24:26 +01:00
commit df198a0cd8
2 changed files with 13 additions and 2 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -62,7 +62,7 @@ public class LiquibaseEndpoint {
while (target != null) {
Map<String, LiquibaseBean> liquibaseBeans = new HashMap<>();
DatabaseFactory factory = DatabaseFactory.getInstance();
this.context.getBeansOfType(SpringLiquibase.class)
target.getBeansOfType(SpringLiquibase.class)
.forEach((name, liquibase) -> liquibaseBeans.put(name, createReport(liquibase, factory)));
ApplicationContext parent = target.getParent();
contextBeans.put(target.getId(),

View File

@ -62,6 +62,17 @@ class LiquibaseEndpointTests {
});
}
@Test
void liquibaseReportIsReturnedForContextHierarchy() {
this.contextRunner.withUserConfiguration().run((parent) -> {
this.contextRunner.withUserConfiguration(Config.class).withParent(parent).run((context) -> {
Map<String, LiquibaseBean> liquibaseBeans = context.getBean(LiquibaseEndpoint.class).liquibaseBeans()
.getContexts().get(parent.getId()).getLiquibaseBeans();
assertThat(liquibaseBeans.get("liquibase").getChangeSets()).hasSize(1);
});
});
}
@Test
void invokeWithCustomSchema() {
this.contextRunner.withUserConfiguration(Config.class)