diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 53999e476..494925fb6 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -1,91 +1,111 @@
+ 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
- 2.0.0.BUILD-SNAPSHOT
- ../pom.xml
-
+
+ org.springframework.data
+ spring-data-mongodb-parent
+ 2.0.0.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
+
-
-
- ${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 0c5785da7..b51c8ccfc 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
@@ -126,7 +126,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 06584c7c5..8c9504102 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,7 +15,10 @@
*/
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.StandardCharsets;
@@ -23,6 +26,7 @@ import java.time.Duration;
import java.util.Collection;
import org.openjdk.jmh.results.RunResult;
+import org.springframework.core.env.StandardEnvironment;
import org.springframework.util.CollectionUtils;
/**
@@ -39,24 +43,39 @@ class HttpResultsWriter implements ResultsWriter {
}
@Override
+ @SneakyThrows
public void write(Collection results) {
if (CollectionUtils.isEmpty(results)) {
return;
}
- try {
+ 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((int) Duration.ofSeconds(1).toMillis());
+ connection.setReadTimeout((int) Duration.ofSeconds(1).toMillis());
+ connection.setDoOutput(true);
+ connection.setRequestMethod("POST");
- URLConnection connection = new URL(url).openConnection();
- connection.setConnectTimeout((int) Duration.ofSeconds(1).toMillis());
- connection.setDoOutput(true);
- connection.setRequestProperty("Content-Type", "application/json");
+ 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);
+
+ try (OutputStream output = connection.getOutputStream()) {
+ output.write(ResultsWriter.jsonifyResults(results).getBytes(StandardCharsets.UTF_8));
+ }
- try (OutputStream output = connection.getOutputStream()) {
- output.write(ResultsWriter.jsonifyResults(results).getBytes(StandardCharsets.UTF_8));
- }
- } 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 3a3ab4388..4c069a7c6 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 = new MongoClient(uri);
@@ -65,6 +68,9 @@ class MongoResultsWriter implements ResultsWriter {
Document sink = new Document();
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"));
@@ -75,7 +81,6 @@ class MongoResultsWriter implements ResultsWriter {
}
client.close();
-
}
/**
@@ -113,13 +118,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 e06896318..3aaaee665 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.StandardCharsets;
@@ -54,10 +56,12 @@ 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(), StandardCharsets.UTF_8);
}
}