From ec888b93fb62185a8da9641582472029dbfe03a8 Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Sun, 7 Jul 2024 12:32:55 +0530 Subject: [PATCH 1/6] Added global configuration page with one text box & textarea each i.e. https://engineering.beescloud.com/docs/engineering-cbci/latest/onboarding/practical-work-plugin#_level_1 --- .../OnboardingPluginGlobalConfiguration.java | 11 +++++++++++ .../OnboardingPluginGlobalConfiguration/config.jelly | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java create mode 100644 src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java new file mode 100644 index 0000000..9b0e849 --- /dev/null +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -0,0 +1,11 @@ +package io.jenkins.plugins.sample.global_configuration; + +import hudson.Extension; +import jenkins.model.GlobalConfiguration; +import org.jenkinsci.Symbol; + +@Extension +@Symbol("OnboardingPlugin") +public class OnboardingPluginGlobalConfiguration extends GlobalConfiguration { + +} \ No newline at end of file diff --git a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly new file mode 100644 index 0000000..9b64c87 --- /dev/null +++ b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file From c45d2f9481a808cb97a96f7e984066a958654ee0 Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Fri, 12 Jul 2024 08:56:46 +0530 Subject: [PATCH 2/6] Added form validation i.e. level2 --- .../OnboardingPluginGlobalConfiguration.java | 12 ++++++++++++ .../OnboardingPluginGlobalConfiguration/config.jelly | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java index 9b0e849..52d701c 100644 --- a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -1,11 +1,23 @@ package io.jenkins.plugins.sample.global_configuration; import hudson.Extension; +import hudson.Util; +import hudson.util.FormValidation; +import hudson.util.QueryParameterMap; import jenkins.model.GlobalConfiguration; import org.jenkinsci.Symbol; +import org.kohsuke.stapler.QueryParameter; + @Extension @Symbol("OnboardingPlugin") public class OnboardingPluginGlobalConfiguration extends GlobalConfiguration { + public FormValidation doCheckName(@QueryParameter String name) { + String regex = "^[a-zA-Z ]+$"; + if (!name.matches(regex)) { + return FormValidation.warning("Name must contains characters & spaces"); + } + return FormValidation.ok(); + } } \ No newline at end of file diff --git a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly index 9b64c87..ae8d68e 100644 --- a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly +++ b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly @@ -4,7 +4,7 @@ - + From 4d7b5408215476aa17ea0e774b1b96662df4bbba Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Fri, 12 Jul 2024 22:17:03 +0530 Subject: [PATCH 3/6] Added getter/setter for the form fields. --- .../OnboardingPluginGlobalConfiguration.java | 17 +++++++++++++++++ .../config.jelly | 6 +++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java index 9b0e849..d602db8 100644 --- a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -7,5 +7,22 @@ @Extension @Symbol("OnboardingPlugin") public class OnboardingPluginGlobalConfiguration extends GlobalConfiguration { + private String name; + private String description; + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } } \ No newline at end of file diff --git a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly index 9b64c87..a5634a0 100644 --- a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly +++ b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly @@ -2,10 +2,10 @@ - + - - + + \ No newline at end of file From 1dcf441d0047b1060200e0537b79810fd8375797 Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Fri, 12 Jul 2024 08:56:46 +0530 Subject: [PATCH 4/6] Added form validation i.e. level2 --- .../OnboardingPluginGlobalConfiguration.java | 13 +++++++++++++ .../config.jelly | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java index d602db8..f5d3f7e 100644 --- a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -1,8 +1,13 @@ package io.jenkins.plugins.sample.global_configuration; import hudson.Extension; +import hudson.Util; +import hudson.util.FormValidation; +import hudson.util.QueryParameterMap; import jenkins.model.GlobalConfiguration; import org.jenkinsci.Symbol; +import org.kohsuke.stapler.QueryParameter; + @Extension @Symbol("OnboardingPlugin") @@ -25,4 +30,12 @@ public String getDescription() { public void setDescription(String description) { this.description = description; } + + public FormValidation doCheckName(@QueryParameter String name) { + String regex = "^[a-zA-Z ]+$"; + if (!name.matches(regex)) { + return FormValidation.warning("Name must contains characters & spaces"); + } + return FormValidation.ok(); + } } \ No newline at end of file diff --git a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly index a5634a0..ae8d68e 100644 --- a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly +++ b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly @@ -2,10 +2,10 @@ - + - + \ No newline at end of file From ac3cf80b7d0287dcc59299425cb9e60ed1fadbb6 Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Fri, 12 Jul 2024 22:25:45 +0530 Subject: [PATCH 5/6] Rebase with #level1 --- .../OnboardingPluginGlobalConfiguration.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java index f5d3f7e..071b9e1 100644 --- a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -1,9 +1,7 @@ package io.jenkins.plugins.sample.global_configuration; import hudson.Extension; -import hudson.Util; import hudson.util.FormValidation; -import hudson.util.QueryParameterMap; import jenkins.model.GlobalConfiguration; import org.jenkinsci.Symbol; import org.kohsuke.stapler.QueryParameter; From 18e4552f68b7a1ed177d3582da1ef7af5674c8ec Mon Sep 17 00:00:00 2001 From: Vishal Wagh Date: Mon, 15 Jul 2024 15:19:46 +0530 Subject: [PATCH 6/6] Plugin Development L3: Adding the configuration section with credentials plus url --- .../OnboardingPluginGlobalConfiguration.java | 42 +++++++++++++++++++ .../config.jelly | 15 +++++++ 2 files changed, 57 insertions(+) diff --git a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java index 071b9e1..e37a61e 100644 --- a/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java +++ b/src/main/java/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration.java @@ -2,6 +2,7 @@ import hudson.Extension; import hudson.util.FormValidation; +import hudson.util.Secret; import jenkins.model.GlobalConfiguration; import org.jenkinsci.Symbol; import org.kohsuke.stapler.QueryParameter; @@ -12,6 +13,9 @@ public class OnboardingPluginGlobalConfiguration extends GlobalConfiguration { private String name; private String description; + private String url; + private String username; + private Secret password; public String getName() { return name; @@ -29,6 +33,31 @@ public void setDescription(String description) { this.description = description; } + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public Secret getPassword() { + return password; + } + + public void setPassword(Secret password) { + this.password = password; + System.out.println("Password: " + password); + } + public FormValidation doCheckName(@QueryParameter String name) { String regex = "^[a-zA-Z ]+$"; if (!name.matches(regex)) { @@ -36,4 +65,17 @@ public FormValidation doCheckName(@QueryParameter String name) { } return FormValidation.ok(); } + + public FormValidation doCheckUsername(@QueryParameter String username) { + String regex = "^[a-zA-Z]+$"; + if (!username.matches(regex)) { + return FormValidation.warning("Username must contains letters only"); + } + return FormValidation.ok(); + } + + public FormValidation doCheckPwd(@QueryParameter String pwd) { + System.out.println("Check file system pwd:::::::: " + pwd); + return FormValidation.ok(); + } } \ No newline at end of file diff --git a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly index ae8d68e..0dc9666 100644 --- a/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly +++ b/src/main/resources/io/jenkins/plugins/sample/global_configuration/OnboardingPluginGlobalConfiguration/config.jelly @@ -8,4 +8,19 @@ + + + + + + + + + + + + + +
+
\ No newline at end of file