I have the following in config.jelly:
<f:block>
<table style="width:100%" id="rpmParameters-generic">
<j:set var="rpmParameters" value="${instance.rpmParameters}" />
<f:optionalBlock name="rpmParameters" checked="${rpmParameters != null}"
title="Mandatory parameter for rpm/msi/zip artifacts only" help="/plugin/artifactory/help/common/help-rpmParameters.html">
<input type="hidden" name="stapler-class" value="org.jfrog.hudson.util.RpmParameters" />
<f:entry title="Operating System">
<select class="setting-input" name="operatingSystem"
value="${rpmParameters.operatingSystem}">
<option value="rhel5">rhel5</option>
<option value="linux">linux</option>
<option value="solaris">solaris</option>
<option value="windows">windows</option>
</select>
</f:entry>
<f:entry title="Architecture">
<select class="setting-input" name="architecture"
value="${rpmParameters.architecture}">
<option value="i386">i386</option>
<option value="x86_64">x86_64</option>
<option value="no arch">no arch</option>
</select>
</f:entry>
</f:optionalBlock>
</table>
</f:block>
The problem is that the checkbox for optional block persist when I hit save but for some reason the dropdown values of operating system and architecture don't persist in the UI after I save and reopen configuration.
Any idea why ?
Well turns out I was doing most things right. The issue was having a
<f:options
for every option in dropdown. Something like this worked.
<select class="setting-input" name="artifactKey" id="genericArtifactKeys-${s.url}">
<f:option value="nuget" selected="${instance.artifactoryKey =='nuget'}">nuget</f:option>
<f:option value="zip" selected="${instance.artifactoryKey =='zip'}">zip</f:option>
<f:option value="msi" selected="${instance.artifactoryKey =='msi'}">msi</f:option>
<f:option value="rpm" selected="${instance.artifactoryKey =='rpm'}">rpm</f:option>
</select>