From 2ad62ffbc417e6e7f6f514b3dea5a31b2048051a Mon Sep 17 00:00:00 2001 From: Norman Specht Date: Thu, 24 Apr 2014 10:39:38 +0200 Subject: [PATCH 1/3] add server option formated source code --- .gitignore | 1 + pom.xml | 54 +++++------ .../plugins/hipchat/ActiveNotifier.java | 50 ++++++---- .../plugins/hipchat/DisabledNotifier.java | 4 +- .../plugins/hipchat/FineGrainedNotifier.java | 3 +- .../plugins/hipchat/HipChatListener.java | 11 ++- .../plugins/hipchat/HipChatNotifier.java | 97 +++++++++++++------ .../plugins/hipchat/HipChatService.java | 4 +- .../hipchat/StandardHipChatService.java | 20 ++-- .../hipchat/HipChatNotifier/global.jelly | 3 + 10 files changed, 157 insertions(+), 90 deletions(-) diff --git a/.gitignore b/.gitignore index b616b71..5d1495b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ target .settings bin work +/nbproject/ \ No newline at end of file diff --git a/pom.xml b/pom.xml index 1bf49da..17bb2b2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,13 +3,13 @@ 4.0.0 - + org.jvnet.hudson.plugins + hudson-plugin-parent + 2.0.0 + + --> org.jenkins-ci.plugins @@ -19,11 +19,11 @@ org.jvnet.hudson.plugins - hipchat - hpi - 0.1.5-SNAPSHOT - Jenkins HipChat Plugin - A Build status publisher that notifies channels on a HipChat server + hipchat + hpi + 0.1.5-SNAPSHOT + Jenkins HipChat Plugin + A Build status publisher that notifies channels on a HipChat server http://wiki.jenkins-ci.org/display/JENKINS/HipChat+Plugin @@ -32,11 +32,11 @@ - - MIT license - All source code is under the MIT license. - - + + MIT license + All source code is under the MIT license. + + @@ -51,12 +51,12 @@ https://github.com/jlewallen/jenkins-hipchat-plugin - - - commons-httpclient - commons-httpclient - 3.1 - + + + commons-httpclient + commons-httpclient + 3.1 + junit junit @@ -83,11 +83,11 @@ - org.jenkins-ci.tools - maven-hpi-plugin - - true - + org.jenkins-ci.tools + maven-hpi-plugin + + true + diff --git a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java index 6576ec3..161fe69 100644 --- a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java @@ -1,20 +1,21 @@ package jenkins.plugins.hipchat; -import hudson.Util; -import hudson.model.*; -import hudson.scm.ChangeLogSet; -import hudson.scm.ChangeLogSet.AffectedFile; -import hudson.scm.ChangeLogSet.Entry; -import org.apache.commons.lang.StringUtils; - import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.logging.Logger; +import org.apache.commons.lang.StringUtils; + +import hudson.Util; +import hudson.scm.ChangeLogSet; +import hudson.scm.ChangeLogSet.AffectedFile; +import hudson.scm.ChangeLogSet.Entry; + @SuppressWarnings("rawtypes") -public class ActiveNotifier implements FineGrainedNotifier { +public class ActiveNotifier implements FineGrainedNotifier +{ private static final Logger logger = Logger.getLogger(HipChatListener.class.getName()); @@ -28,7 +29,8 @@ public ActiveNotifier(HipChatNotifier notifier) { private HipChatService getHipChat(AbstractBuild r) { AbstractProject project = r.getProject(); String projectRoom = Util.fixEmpty(project.getProperty(HipChatNotifier.HipChatJobProperty.class).getRoom()); - return notifier.newHipChatService(projectRoom); + String projectServer = Util.fixEmpty(project.getProperty(HipChatNotifier.HipChatJobProperty.class).getServer()); + return notifier.newHipChatService(projectRoom, projectServer); } public void deleted(AbstractBuild r) { @@ -81,7 +83,7 @@ String getChanges(AbstractBuild r) { List entries = new LinkedList(); Set files = new HashSet(); for (Object o : changeSet.getItems()) { - Entry entry = (Entry) o; + Entry entry = (Entry)o; logger.info("Entry " + o); entries.add(entry); files.addAll(entry.getAffectedFiles()); @@ -121,7 +123,9 @@ String getBuildStatusMessage(AbstractBuild r) { return message.appendOpenLink().toString(); } - public static class MessageBuilder { + public static class MessageBuilder + { + private StringBuffer message; private HipChatNotifier notifier; private AbstractBuild build; @@ -145,12 +149,24 @@ static String getStatusMessage(AbstractBuild r) { Result result = r.getResult(); Run previousBuild = r.getProject().getLastBuild().getPreviousBuild(); Result previousResult = (previousBuild != null) ? previousBuild.getResult() : Result.SUCCESS; - if (result == Result.SUCCESS && previousResult == Result.FAILURE) return "Back to normal"; - if (result == Result.SUCCESS) return "Success"; - if (result == Result.FAILURE) return "FAILURE"; - if (result == Result.ABORTED) return "ABORTED"; - if (result == Result.NOT_BUILT) return "Not built"; - if (result == Result.UNSTABLE) return "Unstable"; + if (result == Result.SUCCESS && previousResult == Result.FAILURE) { + return "Back to normal"; + } + if (result == Result.SUCCESS) { + return "Success"; + } + if (result == Result.FAILURE) { + return "FAILURE"; + } + if (result == Result.ABORTED) { + return "ABORTED"; + } + if (result == Result.NOT_BUILT) { + return "Not built"; + } + if (result == Result.UNSTABLE) { + return "Unstable"; + } return "Unknown"; } diff --git a/src/main/java/jenkins/plugins/hipchat/DisabledNotifier.java b/src/main/java/jenkins/plugins/hipchat/DisabledNotifier.java index 46b6096..ce713de 100644 --- a/src/main/java/jenkins/plugins/hipchat/DisabledNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/DisabledNotifier.java @@ -3,7 +3,9 @@ import hudson.model.AbstractBuild; @SuppressWarnings("rawtypes") -public class DisabledNotifier implements FineGrainedNotifier { +public class DisabledNotifier implements FineGrainedNotifier +{ + public void started(AbstractBuild r) { } diff --git a/src/main/java/jenkins/plugins/hipchat/FineGrainedNotifier.java b/src/main/java/jenkins/plugins/hipchat/FineGrainedNotifier.java index 590733a..825da86 100644 --- a/src/main/java/jenkins/plugins/hipchat/FineGrainedNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/FineGrainedNotifier.java @@ -2,7 +2,8 @@ import hudson.model.AbstractBuild; -public interface FineGrainedNotifier { +public interface FineGrainedNotifier +{ @SuppressWarnings("rawtypes") void started(AbstractBuild r); diff --git a/src/main/java/jenkins/plugins/hipchat/HipChatListener.java b/src/main/java/jenkins/plugins/hipchat/HipChatListener.java index 0515a55..02ed886 100644 --- a/src/main/java/jenkins/plugins/hipchat/HipChatListener.java +++ b/src/main/java/jenkins/plugins/hipchat/HipChatListener.java @@ -1,5 +1,8 @@ package jenkins.plugins.hipchat; +import java.util.Map; +import java.util.logging.Logger; + import hudson.Extension; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; @@ -8,12 +11,10 @@ import hudson.model.listeners.RunListener; import hudson.tasks.Publisher; -import java.util.Map; -import java.util.logging.Logger; - @Extension @SuppressWarnings("rawtypes") -public class HipChatListener extends RunListener { +public class HipChatListener extends RunListener +{ private static final Logger logger = Logger.getLogger(HipChatListener.class.getName()); @@ -50,7 +51,7 @@ FineGrainedNotifier getNotifier(AbstractProject project) { Map, Publisher> map = project.getPublishersList().toMap(); for (Publisher publisher : map.values()) { if (publisher instanceof HipChatNotifier) { - return new ActiveNotifier((HipChatNotifier) publisher); + return new ActiveNotifier((HipChatNotifier)publisher); } } return new DisabledNotifier(); diff --git a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java index d0d406d..beae65e 100644 --- a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java @@ -1,27 +1,30 @@ package jenkins.plugins.hipchat; -import hudson.Extension; -import hudson.Launcher; -import hudson.model.*; -import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.BuildStepMonitor; -import hudson.tasks.Notifier; -import hudson.tasks.Publisher; +import java.io.IOException; +import java.util.Map; +import java.util.logging.Logger; + import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; -import java.io.IOException; -import java.util.Map; -import java.util.logging.Logger; +import hudson.Extension; +import hudson.Launcher; +import hudson.tasks.BuildStepDescriptor; +import hudson.tasks.BuildStepMonitor; +import hudson.tasks.Notifier; +import hudson.tasks.Publisher; @SuppressWarnings({"unchecked"}) -public class HipChatNotifier extends Notifier { +public class HipChatNotifier extends Notifier +{ private static final Logger logger = Logger.getLogger(HipChatNotifier.class.getName()); + private String server; private String authToken; private String buildServerUrl; private String room; @@ -29,7 +32,11 @@ public class HipChatNotifier extends Notifier { @Override public DescriptorImpl getDescriptor() { - return (DescriptorImpl) super.getDescriptor(); + return (DescriptorImpl)super.getDescriptor(); + } + + public String getServer() { + return server; } public String getRoom() { @@ -48,10 +55,10 @@ public String getSendAs() { return sendAs; } - @DataBoundConstructor - public HipChatNotifier(final String authToken, final String room, String buildServerUrl, final String sendAs) { + public HipChatNotifier(final String authToken, final String room, String buildServerUrl, final String sendAs, final String server) { super(); + this.server = server; this.authToken = authToken; this.buildServerUrl = buildServerUrl; this.room = room; @@ -66,13 +73,22 @@ public HipChatService newHipChatService(final String room) { return new StandardHipChatService(getAuthToken(), room == null ? getRoom() : room, StringUtils.isBlank(getSendAs()) ? "Build Server" : getSendAs()); } + public HipChatService newHipChatService(final String room, final String server) { + StandardHipChatService retval = (StandardHipChatService)this.newHipChatService(room); + retval.setHost(server); + return retval; + } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { return true; } @Extension - public static class DescriptorImpl extends BuildStepDescriptor { + public static class DescriptorImpl extends BuildStepDescriptor + { + + private String server; private String token; private String room; private String buildServerUrl; @@ -82,6 +98,10 @@ public DescriptorImpl() { load(); } + public String getServer() { + return server; + } + public String getToken() { return token; } @@ -104,15 +124,27 @@ public boolean isApplicable(Class aClass) { @Override public HipChatNotifier newInstance(StaplerRequest sr) { - if (token == null) token = sr.getParameter("hipChatToken"); - if (buildServerUrl == null) buildServerUrl = sr.getParameter("hipChatBuildServerUrl"); - if (room == null) room = sr.getParameter("hipChatRoom"); - if (sendAs == null) sendAs = sr.getParameter("hipChatSendAs"); + if (server == null) { + server = sr.getParameter("hipChatServer"); + } + if (token == null) { + token = sr.getParameter("hipChatToken"); + } + if (buildServerUrl == null) { + buildServerUrl = sr.getParameter("hipChatBuildServerUrl"); + } + if (room == null) { + room = sr.getParameter("hipChatRoom"); + } + if (sendAs == null) { + sendAs = sr.getParameter("hipChatSendAs"); + } return new HipChatNotifier(token, room, buildServerUrl, sendAs); } @Override public boolean configure(StaplerRequest sr, JSONObject formData) throws FormException { + server = sr.getParameter("hipChatServer"); token = sr.getParameter("hipChatToken"); room = sr.getParameter("hipChatRoom"); buildServerUrl = sr.getParameter("hipChatBuildServerUrl"); @@ -121,7 +153,7 @@ public boolean configure(StaplerRequest sr, JSONObject formData) throws FormExce buildServerUrl = buildServerUrl + "/"; } try { - new HipChatNotifier(token, room, buildServerUrl, sendAs); + new HipChatNotifier(token, room, buildServerUrl, sendAs, server); } catch (Exception e) { throw new FormException("Failed to initialize notifier - check your global notifier configuration settings", e, ""); } @@ -135,7 +167,9 @@ public String getDisplayName() { } } - public static class HipChatJobProperty extends hudson.model.JobProperty> { + public static class HipChatJobProperty extends hudson.model.JobProperty> + { + private String room; private boolean startNotification; private boolean notifySuccess; @@ -145,16 +179,15 @@ public static class HipChatJobProperty extends hudson.model.JobProperty build, BuildListener listener) { for (Publisher publisher : map.values()) { if (publisher instanceof HipChatNotifier) { logger.info("Invoking Started..."); - new ActiveNotifier((HipChatNotifier) publisher).started(build); + new ActiveNotifier((HipChatNotifier)publisher).started(build); } } } @@ -220,7 +253,9 @@ public boolean getNotifyBackToNormal() { } @Extension - public static final class DescriptorImpl extends JobPropertyDescriptor { + public static final class DescriptorImpl extends JobPropertyDescriptor + { + public String getDisplayName() { return "HipChat Notifications"; } diff --git a/src/main/java/jenkins/plugins/hipchat/HipChatService.java b/src/main/java/jenkins/plugins/hipchat/HipChatService.java index 320d2b2..d95cd94 100644 --- a/src/main/java/jenkins/plugins/hipchat/HipChatService.java +++ b/src/main/java/jenkins/plugins/hipchat/HipChatService.java @@ -1,6 +1,8 @@ package jenkins.plugins.hipchat; -public interface HipChatService { +public interface HipChatService +{ + void publish(String message); void publish(String message, String color); diff --git a/src/main/java/jenkins/plugins/hipchat/StandardHipChatService.java b/src/main/java/jenkins/plugins/hipchat/StandardHipChatService.java index 0691c9c..623385f 100644 --- a/src/main/java/jenkins/plugins/hipchat/StandardHipChatService.java +++ b/src/main/java/jenkins/plugins/hipchat/StandardHipChatService.java @@ -1,16 +1,17 @@ package jenkins.plugins.hipchat; +import java.util.logging.Level; +import java.util.logging.Logger; + import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; -import java.util.logging.Level; -import java.util.logging.Logger; - -import jenkins.model.Jenkins; import hudson.ProxyConfiguration; +import jenkins.model.Jenkins; -public class StandardHipChatService implements HipChatService { +public class StandardHipChatService implements HipChatService +{ private static final Logger logger = Logger.getLogger(StandardHipChatService.class.getName()); @@ -26,6 +27,11 @@ public StandardHipChatService(String token, String roomId, String from) { this.from = from; } + public StandardHipChatService(String token, String roomId, String from, String host) { + this(token, roomId, from); + this.host = host; + } + public void publish(String message) { publish(message, "yellow"); } @@ -46,7 +52,7 @@ public void publish(String message, String color) { post.getParams().setContentCharset("UTF-8"); int responseCode = client.executeMethod(post); String response = post.getResponseBodyAsString(); - if(responseCode != HttpStatus.SC_OK || ! response.contains("\"sent\"")) { + if (responseCode != HttpStatus.SC_OK || !response.contains("\"sent\"")) { logger.log(Level.WARNING, "HipChat post may have failed. Response: " + response); } } catch (Exception e) { @@ -56,7 +62,7 @@ public void publish(String message, String color) { } } } - + private HttpClient getHttpClient() { HttpClient client = new HttpClient(); if (Jenkins.getInstance() != null) { diff --git a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/global.jelly b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/global.jelly index 9d84395..9104146 100644 --- a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/global.jelly +++ b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/global.jelly @@ -12,6 +12,9 @@ so it should be straightforward to find them. --> + + + From 862c401108a94ec0ee24ea3194e1a29b252f0b5d Mon Sep 17 00:00:00 2001 From: Norman Specht Date: Thu, 24 Apr 2014 11:57:24 +0200 Subject: [PATCH 2/3] fixed includes fixed config --- .../plugins/hipchat/ActiveNotifier.java | 5 +++++ .../plugins/hipchat/HipChatNotifier.java | 22 ++++++++++++++++--- .../HipChatJobProperty/config.jelly | 20 ++++++++++------- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java index 161fe69..462dc40 100644 --- a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java @@ -9,6 +9,11 @@ import org.apache.commons.lang.StringUtils; import hudson.Util; +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.CauseAction; +import hudson.model.Result; +import hudson.model.Run; import hudson.scm.ChangeLogSet; import hudson.scm.ChangeLogSet.AffectedFile; import hudson.scm.ChangeLogSet.Entry; diff --git a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java index beae65e..f34ed2b 100644 --- a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java @@ -13,6 +13,12 @@ import hudson.Extension; import hudson.Launcher; +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.BuildListener; +import hudson.model.Descriptor; +import hudson.model.Job; +import hudson.model.JobPropertyDescriptor; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildStepMonitor; import hudson.tasks.Notifier; @@ -139,7 +145,7 @@ public HipChatNotifier newInstance(StaplerRequest sr) { if (sendAs == null) { sendAs = sr.getParameter("hipChatSendAs"); } - return new HipChatNotifier(token, room, buildServerUrl, sendAs); + return new HipChatNotifier(token, room, buildServerUrl, sendAs, server); } @Override @@ -170,6 +176,7 @@ public String getDisplayName() { public static class HipChatJobProperty extends hudson.model.JobProperty> { + private String server; private String room; private boolean startNotification; private boolean notifySuccess; @@ -180,7 +187,8 @@ public static class HipChatJobProperty extends hudson.model.JobProperty jobType) { @Override public HipChatJobProperty newInstance(StaplerRequest sr, JSONObject formData) throws hudson.model.Descriptor.FormException { - return new HipChatJobProperty(sr.getParameter("hipChatProjectRoom"), + return new HipChatJobProperty( + sr.getParameter("hipChatServer"), + sr.getParameter("hipChatProjectRoom"), sr.getParameter("hipChatStartNotification") != null, sr.getParameter("hipChatNotifyAborted") != null, sr.getParameter("hipChatNotifyFailure") != null, diff --git a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly index 0cc16c1..8ad387e 100644 --- a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly +++ b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly @@ -1,13 +1,17 @@ - - - - - - - - + + + + + + + + + + + + From 54abd8bacd2e197ca18e895f4aa0eb212762d8dc Mon Sep 17 00:00:00 2001 From: Norman Specht Date: Thu, 24 Apr 2014 12:31:41 +0200 Subject: [PATCH 3/3] removed server from job configuration --- .../plugins/hipchat/ActiveNotifier.java | 3 +-- .../plugins/hipchat/HipChatNotifier.java | 19 ++----------------- .../HipChatJobProperty/config.jelly | 4 ---- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java index 462dc40..bed5e01 100644 --- a/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/ActiveNotifier.java @@ -34,8 +34,7 @@ public ActiveNotifier(HipChatNotifier notifier) { private HipChatService getHipChat(AbstractBuild r) { AbstractProject project = r.getProject(); String projectRoom = Util.fixEmpty(project.getProperty(HipChatNotifier.HipChatJobProperty.class).getRoom()); - String projectServer = Util.fixEmpty(project.getProperty(HipChatNotifier.HipChatJobProperty.class).getServer()); - return notifier.newHipChatService(projectRoom, projectServer); + return notifier.newHipChatService(projectRoom); } public void deleted(AbstractBuild r) { diff --git a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java index f34ed2b..0ecc37c 100644 --- a/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java +++ b/src/main/java/jenkins/plugins/hipchat/HipChatNotifier.java @@ -76,13 +76,7 @@ public BuildStepMonitor getRequiredMonitorService() { } public HipChatService newHipChatService(final String room) { - return new StandardHipChatService(getAuthToken(), room == null ? getRoom() : room, StringUtils.isBlank(getSendAs()) ? "Build Server" : getSendAs()); - } - - public HipChatService newHipChatService(final String room, final String server) { - StandardHipChatService retval = (StandardHipChatService)this.newHipChatService(room); - retval.setHost(server); - return retval; + return new StandardHipChatService(getAuthToken(), room == null ? getRoom() : room, StringUtils.isBlank(getSendAs()) ? "Build Server" : getSendAs(), getServer()); } @Override @@ -176,7 +170,6 @@ public String getDisplayName() { public static class HipChatJobProperty extends hudson.model.JobProperty> { - private String server; private String room; private boolean startNotification; private boolean notifySuccess; @@ -187,8 +180,7 @@ public static class HipChatJobProperty extends hudson.model.JobProperty jobType) { @Override public HipChatJobProperty newInstance(StaplerRequest sr, JSONObject formData) throws hudson.model.Descriptor.FormException { return new HipChatJobProperty( - sr.getParameter("hipChatServer"), sr.getParameter("hipChatProjectRoom"), sr.getParameter("hipChatStartNotification") != null, sr.getParameter("hipChatNotifyAborted") != null, diff --git a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly index 8ad387e..57062d4 100644 --- a/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly +++ b/src/main/resources/jenkins/plugins/hipchat/HipChatNotifier/HipChatJobProperty/config.jelly @@ -1,10 +1,6 @@ - - - -