Test Link的Jenkins插件源码分析(参数)

全局参数设置

 

相关代码片段

POJO类TestLinkInstallation 

 

public class TestLinkInstallation 
implements Serializable
{

……
	
	@DataBoundConstructor
	public TestLinkInstallation(
		String name, 
		String url, 
		String devKey, 
		String testLinkJavaAPIProperties
	)

 

Descriptor实现类TestLinkBuilderDescriptor 

 

public class TestLinkBuilderDescriptor extends BuildStepDescriptor<Builder> {

	@CopyOnWrite
	private volatile TestLinkInstallation[] installations = new TestLinkInstallation[0];

	public TestLinkBuilderDescriptor() {
		super(TestLinkBuilder.class);
		load();
	}

	public TestLinkInstallation[] getInstallations() {
		return this.installations;
	}

	@Override
	public boolean configure(StaplerRequest req, JSONObject json)
			throws hudson.model.Descriptor.FormException {
		this.installations = req.bindParametersToList(
				TestLinkInstallation.class, "TestLink.").toArray(
				new TestLinkInstallation[0]);
		save();
		return true;
	}

	public FormValidation doCheckMandatory(@QueryParameter String value) {
		FormValidation returnValue = FormValidation.ok();
		if (StringUtils.isBlank(value)) {
			returnValue = FormValidation.error(Messages
					.TestLinkBuilder_MandatoryProperty());
		}
		return returnValue;
	}
}

 

Builder类TestLinkBuilder

 

public class TestLinkBuilder extends AbstractTestLinkBuilder {

	@Extension
	public static final TestLinkBuilderDescriptor DESCRIPTOR = new TestLinkBuilderDescriptor();

	 
	@Override
	public Descriptor<Builder> getDescriptor() {
	    return (TestLinkBuilderDescriptor) super.getDescriptor();
	}
}

 

/testlink-plugin/src/main/resources/hudson/plugins/testlink/TestLinkBuilder/global.jelly

<j:jelly xmlns:j="jelly:core"
         xmlns:f="/lib/form">

    <f:section title="TestLink">
        <f:entry title="${%TestLink Installation}"
                 description="${%List Of TestLink Installations}">
            <f:repeatable var="inst" items="${descriptor.installations}">
                <table width="100%">

                    <f:entry title="${%Name}">
                        <f:textbox name="TestLink.name" value="${inst.name}"
                                   checkUrl="'${rootURL}/builder/TestLinkBuilder/checkMandatory?value='+escape(this.value)"/>
                    </f:entry>

                    <f:entry title="URL" help="${rootURL}/../plugin/testlink/help-testlinkUrl.html">
                        <f:textbox name="TestLink.url" value="${inst.url}"
                                   default="http://localhost/testlink/lib/api/xmlrpc.php"
                                   checkUrl="'${rootURL}/builder/TestLinkBuilder/checkMandatory?value='+escape(this.value)"/>
                    </f:entry>

                    <f:entry title="${%Developer Key}">
                        <f:textbox name="TestLink.devKey" value="${inst.devKey}"
                                   checkUrl="'${rootURL}/builder/TestLinkBuilder/checkMandatory?value='+escape(this.value)"/>
                    </f:entry>

                    <f:advanced>
                        <f:entry title="${%TestLink Java API Properties}"
                                 help="${rootURL}/../plugin/testlink/help-testlinkJavaAPIProperties.html">
                            <f:textbox name="TestLink.testLinkJavaAPIProperties"
                                       value="${inst.testLinkJavaAPIProperties}"/>
                        </f:entry>
                    </f:advanced>

                    <f:entry title="">
                        <div align="right">
                            <f:repeatableDeleteButton/>
                        </div>
                    </f:entry>

                </table>
            </f:repeatable>
        </f:entry>
    </f:section>

</j:jelly>

 

 

/testlink-plugin/src/main/resources/hudson/plugins/testlink/TestLinkBuilder/config.jelly

    <f:entry title="${%TestLink Version}" help="${rootURL}/../plugin/testlink/help-testlinkVersion.html">
        <select class="setting-input" name="TestLinkBuilder.testLinkName">
            <option>(Default)</option>
            <j:forEach var="inst" items="${descriptor.installations}">
                <f:option selected="${inst.name==instance.testLinkName}">${inst.name}</f:option>
            </j:forEach>
        </select>
    </f:entry>

 

TestLink插件源代码地址:

https://github.com/jenkinsci/testlink-plugin

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值