Как сделать форму Jelly для `key, value` paris - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь немного изменить плагины Jenkins, чтобы получить пары key, value для чтения глобальной среды.Я хочу сделать что-то вроде этого рисунка:

example form

Я не совсем знаком с Jelly, и в коде это в основном определяетсяconfig.jelly.На данный момент я добавил дополнительное текстовое поле, как показано ниже:

 <f:section title="Container Overrides">
        <f:entry title="Command" field="command">
            <f:textbox />
        </f:entry>
        <f:entry title="vCPU" field="vcpu">
            <f:textbox />
        </f:entry>
        <f:entry title="Memory (Mb)" field="memory">
            <f:textbox />
        </f:entry>
        <f:entry title="Environment Variables" field="environment">
            <f:textbox />
        </f:entry>
    </f:section>

Rendered Jelly UI, а внутри кода бэкэнда оно было определено (предыдущим сопровождающим) следующим образом:

private ContainerOverrides getContainerOverrides() {
        ContainerOverrides containerOverrides = new ContainerOverrides();
        if(!command.get(0).contentEquals("")) containerOverrides.setCommand(command);
        if(memory != null)  containerOverrides.setMemory(memory);
        if(vcpu != null)    containerOverrides.setVcpus(vcpu);
        if(environment != null) containerOverrides.setEnvironment(mapToColl(environment));

        return containerOverrides;
    }

    private static Collection<KeyValuePair> mapToColl(Map<String, String> map) {
        List<KeyValuePair> ret = new ArrayList<>();
        for(Map.Entry<String, String> e : map.entrySet())
            ret.add(new KeyValuePair().withName(e.getKey()).withValue(e.getValue()));

        return ret;

    }

Таким образом, мой вопрос: возможно ли переконфигурировать конфигурацию желе, чтобы она могла предоставить достаточно пары ключ-значение для внутреннего кода выше?Если да, то что мне нужно сделать, чтобы сделать это?Большое спасибо.

...