Пользовательский интерфейс 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 должны затем иметь возможность последовательно получать результаты.

Вот тот же пример в действии.

Другие вопросы по тегам