You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2019/10/16 09:51:03 UTC
[karaf-decanter] branch master updated: [KARAF-6455] Improve SOAP
collector by adding request response time
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf-decanter.git
The following commit(s) were added to refs/heads/master by this push:
new 5d57761 [KARAF-6455] Improve SOAP collector by adding request response time
new d821fd6 Merge pull request #100 from fpapon/KARAF-6455
5d57761 is described below
commit 5d57761ff08d1e905faf420516a646555b3c8585
Author: Francois Papon <fr...@openobject.fr>
AuthorDate: Wed Oct 16 10:42:31 2019 +0200
[KARAF-6455] Improve SOAP collector by adding request response time
---
.../decanter/collector/soap/SoapCollector.java | 26 +++++++++++-----------
.../decanter/collector/soap/SoapCollectorTest.java | 1 +
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/collector/soap/src/main/java/org/apache/karaf/decanter/collector/soap/SoapCollector.java b/collector/soap/src/main/java/org/apache/karaf/decanter/collector/soap/SoapCollector.java
index 738b978..faefd4d 100644
--- a/collector/soap/src/main/java/org/apache/karaf/decanter/collector/soap/SoapCollector.java
+++ b/collector/soap/src/main/java/org/apache/karaf/decanter/collector/soap/SoapCollector.java
@@ -16,29 +16,26 @@
*/
package org.apache.karaf.decanter.collector.soap;
-import org.apache.karaf.decanter.collector.utils.PropertiesPreparator;
-import org.osgi.service.component.ComponentContext;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventAdmin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.BufferedReader;
import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.io.OutputStreamWriter;
-import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
-import java.net.URLConnection;
+import java.time.Instant;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
+import org.apache.karaf.decanter.collector.utils.PropertiesPreparator;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@Component(
service = Runnable.class,
@@ -112,11 +109,14 @@ public class SoapCollector implements Runnable {
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "text/xml");
connection.setRequestProperty("Accept", "text/xml");
+ Instant startTime = Instant.now();
try (OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream())) {
+ Instant responseTime = Instant.now().minusMillis(startTime.toEpochMilli());
writer.write(soapRequest);
writer.flush();
data.put("http.response.code", connection.getResponseCode());
data.put("http.response.message", connection.getResponseMessage());
+ data.put("http.response.time", responseTime.toEpochMilli());
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
StringBuffer buffer = new StringBuffer();
String line;
diff --git a/collector/soap/src/test/java/org/apache/karaf/decanter/collector/soap/SoapCollectorTest.java b/collector/soap/src/test/java/org/apache/karaf/decanter/collector/soap/SoapCollectorTest.java
index b4267f0..0ddeef1 100644
--- a/collector/soap/src/test/java/org/apache/karaf/decanter/collector/soap/SoapCollectorTest.java
+++ b/collector/soap/src/test/java/org/apache/karaf/decanter/collector/soap/SoapCollectorTest.java
@@ -124,6 +124,7 @@ public class SoapCollectorTest {
Assert.assertNull(event.getProperty("error"));
Assert.assertEquals(200, event.getProperty("http.response.code"));
Assert.assertEquals("OK", event.getProperty("http.response.message"));
+ Assert.assertTrue(Long.class.cast(event.getProperty("http.response.time")) > 0L);
Assert.assertTrue(((String) event.getProperty("soap.response")).contains("hello This is a test"));
}