packageCoverageMap = new HashMap();
+
+ /**
+ * @param packageName
+ * @return
+ */
+ private PackageCoverage getPackageCoverage(String packageName) {
+ PackageCoverage packageCoverage = packageCoverageMap.get(packageName);
+ if (packageCoverage == null) {
+ packageCoverage = new PackageCoverage();
+ packageCoverageMap.put(packageName, packageCoverage);
+ }
+ return packageCoverage;
+ }
+
+ /**
+ * @param coverateRate
+ * @return
+ */
+ private String percentage(double coverateRate) {
+ BigDecimal decimal = new BigDecimal(coverateRate * 100);
+ return decimal.setScale(1, BigDecimal.ROUND_DOWN).toString();
+ }
+
+}
diff --git a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/FailTestsMetric.java b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/FailTestsMetric.java
index 469cab8..8dd3768 100644
--- a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/FailTestsMetric.java
+++ b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/FailTestsMetric.java
@@ -1,44 +1,51 @@
-/*
- * To change this template, choose Tools | Templates and open the template in the editor.
- */
-package org.jenkinsci.plugins.graphiteIntegrator.metrics;
-
-import hudson.model.AbstractBuild;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.UnknownHostException;
-import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
-import org.jenkinsci.plugins.graphiteIntegrator.Metric;
-import org.jenkinsci.plugins.graphiteIntegrator.Server;
-
-/**
- *
- * @author joachimrodrigues
- */
-public class FailTestsMetric extends AbstractMetric {
-
- /**
- *
- * @param build
- * @param logger
- * @param graphiteLogger
- */
- public FailTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger) {
- super(build, logger, graphiteLogger);
- }
-
- /**
- *
- * @param server
- * @param metric
- * @throws UnknownHostException
- * @throws IOException
- */
- @Override
- public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
-
- String metricToSend = Integer.toString(build.getTestResultAction().getFailCount());
-
- sendMetric(server, metric[0], metricToSend);
- }
-}
+/*
+ * To change this template, choose Tools | Templates and open the template in the editor.
+ */
+package org.jenkinsci.plugins.graphiteIntegrator.metrics;
+
+import hudson.model.AbstractBuild;
+import hudson.tasks.test.AbstractTestResultAction;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.UnknownHostException;
+
+import org.jenkinsci.plugins.graphiteIntegrator.Metric;
+import org.jenkinsci.plugins.graphiteIntegrator.Server;
+import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
+
+/**
+ *
+ * @author joachimrodrigues
+ */
+public class FailTestsMetric extends AbstractMetric {
+
+ /**
+ *
+ * @param build
+ * @param logger
+ * @param graphiteLogger
+ */
+ public FailTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger, String baseQueueName) {
+ super(build, logger, graphiteLogger, baseQueueName);
+ }
+
+ /**
+ *
+ * @param server
+ * @param metric
+ * @throws UnknownHostException
+ * @throws IOException
+ */
+ @Override
+ public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
+ final AbstractTestResultAction> testResult = build.getAction(AbstractTestResultAction.class);
+
+ if (testResult != null) {
+ final String metricToSend = Integer.toString(testResult.getFailCount());
+
+ sendMetric(server, metric[0], metricToSend);
+ }
+ }
+
+}
diff --git a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/SkipTestsMetric.java b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/SkipTestsMetric.java
index 18c50aa..9bb6618 100644
--- a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/SkipTestsMetric.java
+++ b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/SkipTestsMetric.java
@@ -1,44 +1,50 @@
-/*
- * To change this template, choose Tools | Templates and open the template in the editor.
- */
-package org.jenkinsci.plugins.graphiteIntegrator.metrics;
-
-import hudson.model.AbstractBuild;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.UnknownHostException;
-import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
-import org.jenkinsci.plugins.graphiteIntegrator.Metric;
-import org.jenkinsci.plugins.graphiteIntegrator.Server;
-
-/**
- *
- * @author joachimrodrigues
- */
-public class SkipTestsMetric extends AbstractMetric {
-
- /**
- *
- * @param build
- * @param logger
- * @param graphiteLogger
- */
- public SkipTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger) {
- super(build, logger, graphiteLogger);
- }
-
- /**
- *
- * @param server
- * @param metric
- * @throws UnknownHostException
- * @throws IOException
- */
- @Override
- public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
-
- String metricToSend = Integer.toString(build.getTestResultAction().getSkipCount());
-
- sendMetric(server, metric[0], metricToSend);
- }
-}
+/*
+ * To change this template, choose Tools | Templates and open the template in the editor.
+ */
+package org.jenkinsci.plugins.graphiteIntegrator.metrics;
+
+import hudson.model.AbstractBuild;
+import hudson.tasks.test.AbstractTestResultAction;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.UnknownHostException;
+
+import org.jenkinsci.plugins.graphiteIntegrator.Metric;
+import org.jenkinsci.plugins.graphiteIntegrator.Server;
+import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
+
+/**
+ *
+ * @author joachimrodrigues
+ */
+public class SkipTestsMetric extends AbstractMetric {
+
+ /**
+ *
+ * @param build
+ * @param logger
+ * @param graphiteLogger
+ */
+ public SkipTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger, String baseQueueName) {
+ super(build, logger, graphiteLogger, baseQueueName);
+ }
+
+ /**
+ *
+ * @param server
+ * @param metric
+ * @throws UnknownHostException
+ * @throws IOException
+ */
+ @Override
+ public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
+ final AbstractTestResultAction> testResult = build.getAction(AbstractTestResultAction.class);
+
+ if (testResult != null) {
+ final String metricToSend = Integer.toString(testResult.getSkipCount());
+
+ sendMetric(server, metric[0], metricToSend);
+ }
+ }
+}
diff --git a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/TotalTestsMetric.java b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/TotalTestsMetric.java
index e547f46..c307e70 100644
--- a/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/TotalTestsMetric.java
+++ b/src/main/java/org/jenkinsci/plugins/graphiteIntegrator/metrics/TotalTestsMetric.java
@@ -1,44 +1,50 @@
-/*
- * To change this template, choose Tools | Templates and open the template in the editor.
- */
-package org.jenkinsci.plugins.graphiteIntegrator.metrics;
-
-import hudson.model.AbstractBuild;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.UnknownHostException;
-import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
-import org.jenkinsci.plugins.graphiteIntegrator.Metric;
-import org.jenkinsci.plugins.graphiteIntegrator.Server;
-
-/**
- *
- * @author joachimrodrigues
- */
-public class TotalTestsMetric extends AbstractMetric {
-
- /**
- *
- * @param build
- * @param logger
- * @param graphiteLogger
- */
- public TotalTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger) {
- super(build, logger, graphiteLogger);
- }
-
- /**
- *
- * @param server
- * @param metric
- * @throws UnknownHostException
- * @throws IOException
- */
- @Override
- public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
-
- String metricToSend = Integer.toString(build.getTestResultAction().getTotalCount());
-
- sendMetric(server, metric[0], metricToSend);
- }
-}
+/*
+ * To change this template, choose Tools | Templates and open the template in the editor.
+ */
+package org.jenkinsci.plugins.graphiteIntegrator.metrics;
+
+import hudson.model.AbstractBuild;
+import hudson.tasks.test.AbstractTestResultAction;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.UnknownHostException;
+
+import org.jenkinsci.plugins.graphiteIntegrator.Metric;
+import org.jenkinsci.plugins.graphiteIntegrator.Server;
+import org.jenkinsci.plugins.graphiteIntegrator.loggers.GraphiteLogger;
+
+/**
+ *
+ * @author joachimrodrigues
+ */
+public class TotalTestsMetric extends AbstractMetric {
+
+ /**
+ *
+ * @param build
+ * @param logger
+ * @param graphiteLogger
+ */
+ public TotalTestsMetric(AbstractBuild, ?> build, PrintStream logger, GraphiteLogger graphiteLogger, String baseQueueName) {
+ super(build, logger, graphiteLogger, baseQueueName);
+ }
+
+ /**
+ *
+ * @param server
+ * @param metric
+ * @throws UnknownHostException
+ * @throws IOException
+ */
+ @Override
+ public void sendMetric(Server server, Metric... metric) throws UnknownHostException, IOException {
+ final AbstractTestResultAction> testResult = build.getAction(AbstractTestResultAction.class);
+
+ if (testResult != null) {
+ final String metricToSend = Integer.toString(testResult.getTotalCount());
+
+ sendMetric(server, metric[0], metricToSend);
+ }
+ }
+}
diff --git a/src/main/java/utils/GraphiteValidator.java b/src/main/java/utils/GraphiteValidator.java
index 8addbcf..573d505 100644
--- a/src/main/java/utils/GraphiteValidator.java
+++ b/src/main/java/utils/GraphiteValidator.java
@@ -6,6 +6,8 @@
import java.net.Socket;
import java.util.regex.Pattern;
+import org.apache.commons.lang.StringUtils;
+
/**
*
* @author joachimrodrigues
@@ -91,5 +93,21 @@ public boolean isDescriptionTooLong(String description) {
}
return false;
}
+
+ /**
+ *
+ * @param baseQueueName
+ * @return
+ */
+ public boolean isBaseQueueNamePresent(String baseQueueName) {
+ return StringUtils.isNotBlank(baseQueueName);
+ }
+
+ public boolean validateBaseQueueName(String value) {
+ if(value.endsWith(".")){
+ return false;
+ }
+ return true;
+ }
}
diff --git a/src/main/resources/index.jelly b/src/main/resources/index.jelly
index 6323c59..c19f9a5 100644
--- a/src/main/resources/index.jelly
+++ b/src/main/resources/index.jelly
@@ -1,3 +1,4 @@
+
This plugin allows you to send these metrics : number of tests, tests skipped, tests failed, build duration, cobertura total line coverage
and cobertura total branch coverage to one or more graphite servers.
diff --git a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/config.jelly b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/config.jelly
index fa660c0..c2534b3 100644
--- a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/config.jelly
+++ b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/config.jelly
@@ -1,3 +1,4 @@
+
diff --git a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.jelly b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.jelly
index 51f8871..4537f25 100644
--- a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.jelly
+++ b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.jelly
@@ -1,3 +1,4 @@
+
@@ -30,9 +31,9 @@
- UDP
- TCP
-
+ UDP
+ TCP
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.properties b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.properties
index 287cfb8..148de88 100644
--- a/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.properties
+++ b/src/main/resources/org/jenkinsci/plugins/graphiteIntegrator/GraphitePublisher/global.properties
@@ -8,4 +8,5 @@ test_graphite_server_connection=Test connection
testing_graphite_server_connection=Testing connection...
delete_current_server=delete this server -->
delete_current_graphite_server_button=delete me
-graphite_servers_adding_protocol=Network protocol
\ No newline at end of file
+graphite_servers_adding_protocol=Network protocol
+base_graphite_queue_name=Base Graphite Queue Name :
diff --git a/src/main/webapp/help/global/graphite_base_queue_name.html b/src/main/webapp/help/global/graphite_base_queue_name.html
new file mode 100644
index 0000000..2543990
--- /dev/null
+++ b/src/main/webapp/help/global/graphite_base_queue_name.html
@@ -0,0 +1,5 @@
+Set the base queue name. This will appear at the beginning of every job's queue.
+It's a convenient way to set a default base section of the queue without repeating it in every job.
+
+i.e.:
+jenkins.team4.server1.builds