SLING-8247 Add timestamp a scan was started to ScanResult
diff --git a/pom.xml b/pom.xml
index 76e9e07..a529440 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   </parent>
 
   <artifactId>org.apache.sling.commons.clam</artifactId>
-  <version>1.0.3-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
 
   <name>Apache Sling Commons Clam</name>
   <description>Service to scan data for malware with ClamAV</description>
diff --git a/src/main/java/org/apache/sling/commons/clam/ScanResult.java b/src/main/java/org/apache/sling/commons/clam/ScanResult.java
index 4ba0d7b..b2dbe58 100644
--- a/src/main/java/org/apache/sling/commons/clam/ScanResult.java
+++ b/src/main/java/org/apache/sling/commons/clam/ScanResult.java
@@ -30,9 +30,12 @@
 
     private final String message;
 
-    public ScanResult(@NotNull final Status status, @NotNull final String message) {
+    private final long started;
+
+    public ScanResult(@NotNull final Status status, @NotNull final String message, long started) {
         this.status = status;
         this.message = message;
+        this.started = started;
     }
 
     public long getTimestamp() {
@@ -49,6 +52,10 @@
         return message;
     }
 
+    public long getStarted() {
+        return started;
+    }
+
     public boolean isOk() {
         return Status.OK.equals(status);
     }
diff --git a/src/main/java/org/apache/sling/commons/clam/internal/ClamdService.java b/src/main/java/org/apache/sling/commons/clam/internal/ClamdService.java
index 581dc0d..f17f385 100644
--- a/src/main/java/org/apache/sling/commons/clam/internal/ClamdService.java
+++ b/src/main/java/org/apache/sling/commons/clam/internal/ClamdService.java
@@ -96,12 +96,13 @@
     @Override
     @NotNull
     public ScanResult scan(@NotNull final InputStream inputStream) throws IOException {
+        final long started = System.currentTimeMillis();
         try {
             final byte[] reply = doInstream(inputStream);
-            return parseClamdReply(reply);
+            return parseClamdReply(reply, started);
         } catch (InstreamSizeLimitExceededException e) {
             logger.error("doing INSTREAM failed", e);
-            return new ScanResult(ScanResult.Status.ERROR, e.getMessage());
+            return new ScanResult(ScanResult.Status.ERROR, e.getMessage(), started);
         }
     }
 
@@ -195,17 +196,17 @@
         }
     }
 
-    private ScanResult parseClamdReply(final byte[] reply) {
+    private ScanResult parseClamdReply(final byte[] reply, final long started) {
         final String message = new String(reply, StandardCharsets.US_ASCII).trim();
         logger.info("reply message from clam daemon: '{}'", message);
         if (message.matches(OK_REPLY_PATTERN)) {
-            return new ScanResult(Status.OK, message);
+            return new ScanResult(Status.OK, message, started);
         } else if (message.matches(FOUND_REPLY_PATTERN)) {
-            return new ScanResult(Status.FOUND, message);
+            return new ScanResult(Status.FOUND, message, started);
         } else if (message.matches(INSTREAM_SIZE_LIMIT_EXCEEDED_PATTERN)) {
-            return new ScanResult(Status.ERROR, message);
+            return new ScanResult(Status.ERROR, message, started);
         } else {
-            return new ScanResult(Status.UNKNOWN, message);
+            return new ScanResult(Status.UNKNOWN, message, started);
         }
     }
 
diff --git a/src/main/java/org/apache/sling/commons/clam/package-info.java b/src/main/java/org/apache/sling/commons/clam/package-info.java
index 4417140..848b02a 100644
--- a/src/main/java/org/apache/sling/commons/clam/package-info.java
+++ b/src/main/java/org/apache/sling/commons/clam/package-info.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@Version("1.0.0")
+@Version("2.0.0")
 package org.apache.sling.commons.clam;
 
 import org.osgi.annotation.versioning.Version;