summaryrefslogtreecommitdiff
path: root/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java')
-rw-r--r--src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java82
1 files changed, 48 insertions, 34 deletions
diff --git a/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java b/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java
index 4bc8066..008613b 100644
--- a/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java
+++ b/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqGlobalConfig.java
@@ -5,24 +5,27 @@ import hudson.util.FormValidation;
import jenkins.model.GlobalConfiguration;
import jenkins.model.Jenkins;
import net.sf.json.JSONObject;
-import org.apache.activemq.ActiveMQConnectionFactory;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerRequest;
import org.slf4j.Logger;
-import javax.jms.Connection;
import javax.jms.JMSException;
-import java.net.URI;
import java.net.URISyntaxException;
+import static org.apache.commons.lang.StringUtils.trimToNull;
+import static org.apache.commons.lang.builder.ToStringBuilder.reflectionToString;
import static org.slf4j.LoggerFactory.getLogger;
+@SuppressWarnings("UnusedDeclaration")
@Extension
public class ActiveMqGlobalConfig extends GlobalConfiguration {
+ public static final String DEFAULT_TOPIC_NAME = "jenkins";
+
private static final Logger log = getLogger(ActiveMqPlugin.class);
private String brokerUrl;
private boolean enable;
+ private String topicName;
public ActiveMqGlobalConfig() {
log.info("ActiveMqGlobalConfig.ActiveMqGlobalConfig");
@@ -30,21 +33,9 @@ public class ActiveMqGlobalConfig extends GlobalConfiguration {
log.info("this = " + this);
}
- public String getUrl() {
- log.info("ActiveMqGlobalConfig.getUrl");
- return brokerUrl;
- }
-
- public void setUrl(String url) {
- log.info("ActiveMqGlobalConfig.setUrl");
- log.info("url = " + url);
- this.brokerUrl = url;
- }
-
- public FormValidation doCheckUrl(@QueryParameter String value) {
- log.info("ActiveMqGlobalConfig.doCheckUrl");
- return doCheckBrokerUrl(value);
- }
+ // -----------------------------------------------------------------------
+ // Broker url
+ // -----------------------------------------------------------------------
public String getBrokerUrl() {
log.info("ActiveMqGlobalConfig.getBrokerUrl");
@@ -67,30 +58,25 @@ public class ActiveMqGlobalConfig extends GlobalConfiguration {
return FormValidation.ok();
}
- ActiveMQConnectionFactory connectionFactory;
+ ActiveMqClient client;
try {
- URI uri = new URI(value);
- connectionFactory = new ActiveMQConnectionFactory(uri);
+ client = new ActiveMqClient(brokerUrl, DEFAULT_TOPIC_NAME, null);
} catch (URISyntaxException e) {
return FormValidation.error("Invalid URI: " + e.getMessage());
- }
-
- Connection connection;
- try {
- connection = connectionFactory.createConnection();
} catch (JMSException e) {
return FormValidation.warning("Unable to connect to broker");
}
- try {
- connection.close();
- } catch (JMSException ignore) {
- }
+ client.close();
return FormValidation.ok("Successfully connected to broker");
}
+ // -----------------------------------------------------------------------
+ // Enable
+ // -----------------------------------------------------------------------
+
public boolean isEnable() {
log.info("ActiveMqGlobalConfig.isEnable");
return enable;
@@ -102,6 +88,37 @@ public class ActiveMqGlobalConfig extends GlobalConfiguration {
save();
}
+ // -----------------------------------------------------------------------
+ // Topic Name
+ // -----------------------------------------------------------------------
+
+ public String getTopicName() {
+ if (topicName == null || doCheckBrokerUrl(topicName).kind != FormValidation.Kind.OK) {
+ topicName = DEFAULT_TOPIC_NAME;
+ }
+
+ return topicName;
+ }
+
+ public void setTopicName(String topicName) {
+ this.topicName = topicName;
+ save();
+ }
+
+ public FormValidation doCheckTopicName(@QueryParameter String value) {
+ value = trimToNull(value);
+
+ if (value == null) {
+ return FormValidation.ok();
+ }
+
+ if (value.matches("^[a-zA-Z]+")) {
+ return FormValidation.ok();
+ }
+
+ return FormValidation.error("Invalid topic name.");
+ }
+
@Override
public boolean configure(StaplerRequest req, JSONObject json) throws FormException {
log.info("ActiveMqGlobalConfig.configure");
@@ -116,9 +133,6 @@ public class ActiveMqGlobalConfig extends GlobalConfiguration {
@Override
public String toString() {
- return "ActiveMqGlobalConfig{" +
- ", brokerUrl='" + brokerUrl + '\'' +
- ", enable=" + enable +
- "} " + super.toString();
+ return reflectionToString(this);
}
}