Пользовательский интерфейс Spring Cloud Dataflow не отображает свойства из белого списка
У меня Spring Cloud DataFlow v1.3.1.RELEASE, работающий локально, и я создал небольшое примерное "процессорное" приложение, чтобы проиллюстрировать происходящее.
Приложение Boot имеет два класса @ConfigurationProperties:
DemoApplicationProperties:
@ConfigurationProperties
@Validated
public class DemoApplicationProperties {
/**
* The first name of the person.
*/
private String firstName;
/**
* The last name of the person.
*/
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
и DemoApplicationPropertiesTwo:
@ConfigurationProperties
@Validated
public class DemoApplicationPropertiesTwo {
/**
* The person's middle name.
*/
private String middleName;
/**
* The date of birth.
*/
private String birthdate;
public String getMiddleName() {
return middleName;
}
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
public String getBirthdate() {
return birthdate;
}
public void setBirthdate(String birthdate) {
this.birthdate = birthdate;
}
}
Я также включил модульный тест, чтобы убедиться, что BootApplicationConfigurationMetadataResolver правильно разрешает все классы из белого списка.
public class WhiteListTests {
private BootApplicationConfigurationMetadataResolver metadataResolver;
@Test
public void testMetadataResolver() {
metadataResolver = new BootApplicationConfigurationMetadataResolver(this.getClass().getClassLoader());
Resource app = new FileSystemResource(".\\target\\classes\\");
List<ConfigurationMetadataProperty> list = metadataResolver.listProperties(app);
for(ConfigurationMetadataProperty listItem : list) {
StringBuilder sb = new StringBuilder();
sb.append(listItem.getId() + ": " + listItem.getName() + " :: " + listItem.getType());
System.out.println(sb.toString());
}
}
}
Результат модульного теста соответствует ожидаемому:
birthdate: birthdate :: java.lang.String
middle-name: middle-name :: java.lang.String
first-name: first-name :: java.lang.String
last-name: last-name :: java.lang.String
Однако, когда я регистрирую загрузочное приложение как "процессор" в Spring Cloud Dataflow и проверяю зарегистрированное приложение, пользовательский интерфейс только частично отображает обнаруженные свойства из белого списка:
У меня есть ZIP-файл исходного кода проекта, но по какой-то причине я не могу понять, как прикрепить его здесь.
2 ответа
Внутри файла spring-configuration-metadata-whitelist.properties
Вы добавили два класса в собственность?
пример
configuration.classes = org.springframework.cloud.stream.app.file.sink.FileSinkProperties
а также
com.anotherpackage.MainConfig.java
Оба свойства класса должны быть объявлены в spring-configuration-metadata-whitelist.properties
файл. Конечные точки Shell, Dashboard и REST должны затем иметь возможность последовательно получать результаты.
Вот тот же пример в действии.