`

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

 

 

0
0
分享到:
评论

相关推荐

    jenkins离线插件安装包大全

    本资料包提供了"jenkins.war"和"jenkins-plugins"等HPI(Jenkins插件包)文件,旨在帮助用户在Linux系统上离线安装Jenkins及其所需插件。 1. Jenkins离线安装: 要在离线环境中安装Jenkins,首先需要下载最新版本...

    jenkins离线插件包.zip

    离线插件包是为了解决在没有网络连接或网络受限的环境中安装和更新Jenkins插件的需求。"jenkins离线插件包.zip"正是这样一种资源,包含了大量Jenkins插件的离线版本,方便用户在本地进行安装。 首先,让我们了解...

    jenkins系列源码.zip

    **Jenkins源码分析与Kubernetes自动化部署** 在IT行业中,持续集成/持续部署(CI/CD)是软件开发过程中的重要环节,Jenkins作为一款流行的开源自动化服务器,被广泛用于构建、测试和部署应用程序。本资料包"jenkins...

    安装jenkins插件的两种方法

    安装 Jenkins 插件的两种方法 Jenkins 插件是 Jenkins 服务器的延伸部分,提供了丰富的功能和特性,能够满足不同的需求和场景。安装 Jenkins 插件可以分为两种方法:在线安装和离线安装。下面将详细介绍这两种方法...

    jenkins插件-合集.zip

    接着,FindBugs 和 Checkstyle 插件对源码进行静态分析,保证代码质量;最后,通过 LDAP 插件进行用户权限管理,确保只有授权用户可以访问和操作 Jenkins。 总结来说,Jenkins 插件合集提供了全面的工具集成,帮助...

    Jenkins插件开发手册

    Jenkins插件开发涉及多个步骤,首先需要搭建一个有效的开发环境。这个环境包括Java Development Kit (JDK)和Maven的安装。JDK是Java编程的基础,它的版本至少需要6.0或更高。你可以通过在命令行输入`java -version`...

    jenkins离线所需插件

    3. **源码软件管理插件**:为了与 Git、SVN、Mercurial 等版本控制系统集成,Jenkins 提供了相应的插件,如 `Git Plugin`、`Subversion Plug-in`。这些插件使得 Jenkins 可以监听源码仓库的变更,触发自动化构建。 ...

    jenkins插件.zip

    本压缩包 "jenkins插件.zip" 提供了一些常用的 Jenkins 插件,用户下载后可直接应用于自己的 Jenkins 环境,无需再进行单独的插件安装。 一、Jenkins 插件的作用 1. 自动化构建:通过插件如 Maven Integration ...

    Jenkins打包插件配置

    **Jenkins打包插件配置详解** 在持续集成和持续部署(CI/CD)的领域中,Jenkins扮演着至关重要的角色。它是一个开源的、高度可扩展的自动化服务器,广泛用于构建、测试和部署软件。其中,Jenkins的插件系统是其强大...

    Jenkins安装包以及常用插件离线

    在没有互联网连接的环境中,离线安装Jenkins及其插件是必要的。以下将详细介绍如何进行Jenkins的离线安装以及如何处理常用的离线插件。 1. **Jenkins WAR包的离线安装** Jenkins的离线安装主要涉及到下载Jenkins的...

    Jenkins常用插件.rar

    3. **git-client.hpi** - Git客户端插件提供了与Git版本控制系统交互的能力,使得Jenkins可以自动从Git仓库获取源码,执行构建、测试等操作,是使用Git作为版本控制的必备插件。 4. **subversion.hpi** - ...

    Jenkins常用插件库

    本插件库不可以单独使用,需要配合的`.jenkins`文件夹(该文件夹为Jenkins启动时自动生成的)使用,具体使用步骤如下: 1,正常通过war包或者其他的方式启动Jenkins; 2,找到Jenkins生成的工作目录`.jenkins`,查看...

    jenkins相关插件包.zip

    Jenkins Maven插件使Jenkins能够与Maven无缝集成,执行Maven构建生命周期中的目标,例如`clean`, `compile`, `test`, `package`, `deploy`等。这样,当代码改变时,Jenkins会自动构建和测试项目,确保代码质量。 3....

    jenkins插件:publish-over-ssh

    "publish-over-ssh" 插件是其中一个重要的插件,它允许Jenkins通过SSH(Secure Shell)协议与远程服务器进行交互,实现文件的发布、执行命令等功能,这对于运维工作尤其有用。 该插件的主要功能包括: 1. **文件...

    jenkins离线插件+插件安装依赖顺序文档

    - **分析依赖**:某些插件依赖于其他插件才能正常工作。在"plugins.bak.tar"文件中可能包含了插件的备份,我们需要确保先安装被依赖的插件。可以通过阅读插件的文档或者查看其元数据来了解依赖关系。 - **确定安装...

    jenkins离线安装svn插件

    8. **测试**:为了确认 SVN 插件功能正常,创建一个 Jenkins 任务,选择 SVN 作为源码管理器,配置正确的 SVN 仓库信息,然后尝试构建项目。如果能正确拉取代码并执行构建,说明 SVN 插件安装无误。 总结,离线安装...

    jenkins插件--synopsys-coverity用作安全扫描自动化

    jenkins插件--synopsys-coverity用作安全扫描自动化

    Jenkins插件:Post-Build Script Plug-in

    **Jenkins插件:Post-Build Script Plug-in详解** Jenkins作为一款强大的持续集成工具,其丰富的插件系统是其核心优势之一。Post-Build Script Plug-in是其中的一个重要插件,它允许用户在构建过程完成后执行自定义...

    jenkins离线安装中文插件包jenkins-zh.zip

    在本场景中,我们关注的是如何在离线环境中安装Jenkins的中文插件包。"jenkins-zh.zip" 文件是专门为解决中文语言支持而设计的插件集合。 首先,了解Jenkins插件系统的重要性。Jenkins的灵活性和可扩展性主要来源于...

    jenkins插件

    6. **锋利的jQuery(第二版)源码.zip** - 这个文件看起来不是一个 Jenkins 插件,而可能是一本书《锋利的jQuery》的第二版源码。这本书可能涵盖了 jQuery 库的高级用法,包括 DOM 操作、事件处理、动画效果、AJAX ...

Global site tag (gtag.js) - Google Analytics