2015-09-30 3 views
1

Я создаю плагин для Дженкинса, и я пытаюсь проверить мою форму (метод тестирования соединения). Это отлично работало, когда все @QueryParameter были Strings.Jenkins формы проверки с объектами как параметры

Теперь я пытаюсь отправить мой метод проверки образуют объект, как это:

 public FormValidation doTestConnection(
       @QueryParameter("url") final String url, 
       @QueryParameter("timeout") final String timeout, 
       @QueryParameter("bypassProxy") final boolean bypassProxy, 
       @QueryParameter("deployerCredentialsConfig") final CredentialsConfig deployerCredentialsConfig, 
       @QueryParameter("resolverCredentialsConfig") final CredentialsConfig resolverCredentialsConfig 
     ) throws ServletException { 

В моем файле global.jelly я это:

<f:validateButton 
     title="${%Test Connection}" progress="${%Testing...}" 
         method="testConnection" 
         with="url,timeout,bypassProxy,deployerCredentialsConfig,resolverCredentialsConfig"/> 

Мой CredentialConfig класс реализует Serializable но Я думаю, этого недостаточно, потому что я получаю это при нажатии кнопки «Проверить соединение»:

org.jfrog.hudson.MyBuilder $ DescriptorImpl.doTestConnection (java.lang.String, java.lang.String, boolean, org.jfrog.hudson.CredentialsConfig, org.jfrog.hudson.CredentialsConfig) бросает javax.servlet. ServletException

У Jenkins нет хорошей документации для использования объектов внутри вызовов FormValidation.

ответ

0

Глядя на документацию Дженкинс и код за < F: validateButton/>, Я считаю, что это невозможно есть объекты связываются в логике проверки.

документы говорят (https://wiki.jenkins-ci.org/display/JENKINS/Jelly+form+controls):

«с» атрибут определяет поля ввода, отправляемые на сервер для проверки. Они сопоставляются с атрибутом поля или атрибутом имени других элементов управления вводом. Значения ближайших полей ввода над ними отправляются на сервер, поэтому означает, что кнопка должна появиться после полей ввода. Несколько полей можно указать, используя ','.

Код просто получает поля по именам - нет сборки объекта (я считаю, что это сделано только во время фактического представления конфигурации).

https://github.com/jenkinsci/jenkins/blob/96ec7a267e0efba2ec99590c871db0940e35920f/war/src/main/webapp/scripts/hudson-behavior.js#L2856

Смежные вопросы