diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 21d537eda..bb4389ae9 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -1,91 +1,112 @@
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- 4.0.0
+ 4.0.0
-
- org.springframework.data
- spring-data-mongodb-parent
- 1.10.5.BUILD-SNAPSHOT
- ../pom.xml
-
+
+ org.springframework.data
+ spring-data-mongodb-parent
+ 1.10.5.BUILD-SNAPSHOT
+ ../pom.xml
+
- spring-data-mongodb-benchmarks
- jar
+ spring-data-mongodb-benchmarks
+ jar
- Spring Data MongoDB - Microbenchmarks
+ Spring Data MongoDB - Microbenchmarks
-
- true
- false
-
+
+
+ true
+ false
+
-
-
- ${project.groupId}
- spring-data-mongodb
- ${project.version}
-
-
- junit
- junit
- ${junit}
- compile
-
-
- org.openjdk.jmh
- jmh-core
- ${jmh.version}
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
- provided
-
-
+
-
+
+ ${project.groupId}
+ spring-data-mongodb
+ ${project.version}
+
-
- benchmarks
-
- false
-
-
-
+
+ junit
+ junit
+ ${junit}
+ compile
+
-
-
-
- maven-jar-plugin
-
-
- default-jar
- never
-
-
-
-
- maven-surefire-plugin
-
- ${project.build.sourceDirectory}
- ${project.build.outputDirectory}
-
- **/AbstractMicrobenchmark.java
- **/*$*.class
- **/generated/*.class
-
-
- **/*Benchmark*
-
-
- ${project.build.directory}/reports/performance
- ${project.version}
-
-
-
-
-
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh.version}
+
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh.version}
+ provided
+
+
+
+
+
+
+
+ benchmarks
+
+ false
+
+
+
+
+
+
+
+ pl.project13.maven
+ git-commit-id-plugin
+ 2.2.2
+
+
+
+ revision
+
+
+
+
+
+ maven-jar-plugin
+
+
+ default-jar
+ never
+
+
+
+
+ maven-surefire-plugin
+
+ ${project.build.sourceDirectory}
+ ${project.build.outputDirectory}
+
+ **/AbstractMicrobenchmark.java
+ **/*$*.class
+ **/generated/*.class
+
+
+ **/*Benchmark*
+
+
+ ${project.build.directory}/reports/performance
+ ${project.version}
+ ${git.dirty}
+ ${git.commit.id}
+ ${git.branch}
+
+
+
+
+
diff --git a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterBenchmark.java b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterBenchmark.java
index 64f9e1bd5..54875e677 100644
--- a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterBenchmark.java
+++ b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterBenchmark.java
@@ -127,7 +127,7 @@ public class MappingMongoConverterBenchmark extends AbstractMicrobenchmark {
}
@Benchmark // DATAMONGO-1720
- public Customer readObjectWith2tPropertiesAnd1NestedObject() {
+ public Customer readObjectWith2PropertiesAnd1NestedObject() {
return converter.read(Customer.class, documentWith2PropertiesAnd1Nested);
}
diff --git a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/HttpResultsWriter.java b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/HttpResultsWriter.java
index 9df33ba77..0b892bfce 100644
--- a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/HttpResultsWriter.java
+++ b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/HttpResultsWriter.java
@@ -15,13 +15,17 @@
*/
package org.springframework.data.mongodb.microbenchmark;
+import lombok.SneakyThrows;
+
import java.io.OutputStream;
+import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.Collection;
import org.openjdk.jmh.results.RunResult;
+import org.springframework.core.env.StandardEnvironment;
import org.springframework.util.CollectionUtils;
/**
@@ -38,30 +42,45 @@ class HttpResultsWriter implements ResultsWriter {
}
@Override
+ @SneakyThrows
public void write(Collection results) {
if (CollectionUtils.isEmpty(results)) {
return;
}
+ StandardEnvironment env = new StandardEnvironment();
+
+ String projectVersion = env.getProperty("project.version", "unknown");
+ String gitBranch = env.getProperty("git.branch", "unknown");
+ String gitDirty = env.getProperty("git.dirty", "no");
+ String gitCommitId = env.getProperty("git.commit.id", "unknown");
+
+ HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
+ connection.setConnectTimeout(1000);
+ connection.setReadTimeout(1000);
+ connection.setDoOutput(true);
+ connection.setRequestMethod("POST");
+
+ connection.setRequestProperty("Content-Type", "application/json");
+ connection.addRequestProperty("X-Project-Version", projectVersion);
+ connection.addRequestProperty("X-Git-Branch", gitBranch);
+ connection.addRequestProperty("X-Git-Dirty", gitDirty);
+ connection.addRequestProperty("X-Git-Commit-Id", gitCommitId);
+
+ OutputStream output = null;
try {
-
- URLConnection connection = new URL(url).openConnection();
- connection.setConnectTimeout(1000);
- connection.setDoOutput(true);
- connection.setRequestProperty("Content-Type", "application/json");
-
- OutputStream output = null;
- try {
- output = connection.getOutputStream();
- output.write(ResultsWriter.Utils.jsonifyResults(results).getBytes(Charset.forName("UTF-8")));
- } finally {
- if (output != null) {
- output.close();
- }
+ output = connection.getOutputStream();
+ output.write(ResultsWriter.Utils.jsonifyResults(results).getBytes(Charset.forName("UTF-8")));
+ } finally {
+ if (output != null) {
+ output.close();
}
- } catch (Exception e) {
- throw new RuntimeException(e);
+ }
+
+ if (connection.getResponseCode() >= 400) {
+ throw new IllegalStateException(
+ String.format("Status %d %s", connection.getResponseCode(), connection.getResponseMessage()));
}
}
}
diff --git a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/MongoResultsWriter.java b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/MongoResultsWriter.java
index 3f56c5f19..6f702dcd5 100644
--- a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/MongoResultsWriter.java
+++ b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/MongoResultsWriter.java
@@ -52,6 +52,9 @@ class MongoResultsWriter implements ResultsWriter {
StandardEnvironment env = new StandardEnvironment();
String projectVersion = env.getProperty("project.version", "unknown");
+ String gitBranch = env.getProperty("git.branch", "unknown");
+ String gitDirty = env.getProperty("git.dirty", "no");
+ String gitCommitId = env.getProperty("git.commit.id", "unknown");
MongoClientURI uri = new MongoClientURI(this.uri);
MongoClient client = null;
@@ -71,6 +74,9 @@ class MongoResultsWriter implements ResultsWriter {
BasicDBObject sink = new BasicDBObject();
sink.append("_version", projectVersion);
+ sink.append("_branch", gitBranch);
+ sink.append("_commit", gitCommitId);
+ sink.append("_dirty", gitDirty);
sink.append("_method", extractBenchmarkName(dbo.get("benchmark").toString()));
sink.append("_date", now);
sink.append("_snapshot", projectVersion.toLowerCase().contains("snapshot"));
@@ -81,7 +87,6 @@ class MongoResultsWriter implements ResultsWriter {
}
client.close();
-
}
/**
@@ -117,13 +122,13 @@ class MongoResultsWriter implements ResultsWriter {
return sanitized;
}
- private String extractClass(String source) {
+ private static String extractClass(String source) {
String tmp = source.substring(0, source.lastIndexOf('.'));
return tmp.substring(tmp.lastIndexOf(".") + 1);
}
- private String extractBenchmarkName(String source) {
+ private static String extractBenchmarkName(String source) {
return source.substring(source.lastIndexOf(".") + 1);
}
diff --git a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/ResultsWriter.java b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/ResultsWriter.java
index 10c2326a4..53f15fc5a 100644
--- a/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/ResultsWriter.java
+++ b/spring-data-mongodb-benchmarks/src/main/java/org/springframework/data/mongodb/microbenchmark/ResultsWriter.java
@@ -15,6 +15,8 @@
*/
package org.springframework.data.mongodb.microbenchmark;
+import lombok.SneakyThrows;
+
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.nio.charset.Charset;
@@ -57,10 +59,11 @@ interface ResultsWriter {
* @return json string representation of results.
* @see org.openjdk.jmh.results.format.JSONResultFormat
*/
+ @SneakyThrows
static String jsonifyResults(Collection results) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ResultFormatFactory.getInstance(ResultFormatType.JSON, new PrintStream(baos)).writeOut(results);
+ ResultFormatFactory.getInstance(ResultFormatType.JSON, new PrintStream(baos, true, "UTF-8")).writeOut(results);
return new String(baos.toByteArray(), Charset.forName("UTF-8"));
}
}