Необязательный блок в jelly.config, не переводящий в бэкэнд при разработке плагина jenkins.
У меня есть jelly.config со следующим:
<f:block>
<f:optionalBlock inline="true" name="dynamic" title="Mandatory parameter for rpm artifacts only" checked="false"
help="/plugin/artifactory/help/common/help-artifactType.html">
<f:entry title="Operating System">
<select class="setting-input" name="operatingSystem">
<option value="rhel5">rhel5</option>
<option value="linux">linux</option>
</select>
</f:entry>
<f:entry title="Architecture">
<select class="setting-input" name="architecture">
<option value="64">64</option>
<option value="32">32</option>
</select>
</f:entry>
</f:optionalBlock>
</f:block>
В моем serverDetails.js у меня есть:
public class ServerDetails {
public final String operatingSystem;
/**
* This the type of operating system that your rpm builds on. If not specified, this passes null.
*/
public final String architecture;
/**
* This the type of architecture your rpm runs on. If not specified, this passes null.
*/
}
public ServerDetails(String artifactoryName, String artifactoryUrl, String repositoryKey, String snapshotsRepositoryKey,
String downloadReleaseRepositoryKey, String downloadSnapshotRepositoryKey,
String downloadReleaseRepositoryDisplayName, String downloadSnapshotRepositoryDisplayName,
String userPluginKey, String userPluginParams,String artifactKey,String productKey, String operatingSystem, String architecture, String buildType) {
this.operatingSystem = operatingSystem;
this.architecture = architecture;
this.buildType = buildType;
createStagingPlugin();
}
public ServerDetails(String artifactoryName, String artifactoryUrl, String repositoryKey, String snapshotsRepositoryKey,
String downloadReleaseRepositoryKey, String downloadSnapshotRepositoryKey,
String downloadReleaseRepositoryDisplayName, String downloadSnapshotRepositoryDisplayName) {
this(artifactoryName, artifactoryUrl, repositoryKey, snapshotsRepositoryKey, downloadReleaseRepositoryKey,
downloadSnapshotRepositoryKey, downloadReleaseRepositoryDisplayName, downloadSnapshotRepositoryDisplayName, null, null,null,null, null, null, null);
}
В моем бэкэнде Java я использую это как:
public String getOperatingSystem() {
return details != null ? details.operatingSystem : null;
}
public String getArchitecture() {
return details != null ? details.architecture : null;
}
Теперь, когда я получаю доступ к операционной системе и архитектуре после выбора их во фронте, я все равно получаю нулевые значения для них обоих, когда я распечатываю их.
Я что-то здесь упускаю? Почему я не получаю значения.
1 ответ
Решение
В вашей созданной работе, что есть в XML? Вы можете получить это с URL localhost:8080/job//config.xml
Я предполагаю, что вам нужно doFillOperatingSystemItems
звоните как здесь
непроверенной
public ListBoxModel doFillOperatingSystemItems(
@QueryParameter String operatingSystem
) {
return new ListBoxModel(
new Option("rhel", "rhel", operatingSystem.matches("rhel") ),
new Option("linux", "linux", operatingSystem.matches("linux") )
);
}