You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/03/07 11:25:38 UTC

[james-project] 01/11: JAMES-3104 Eventually publish blob store metrics

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit aa978061feea5c777d96b2293bc2e5b54399ef10
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sat Mar 7 04:45:15 2020 +0100

    JAMES-3104 Eventually publish blob store metrics
    
    This enhancement improve build stability
---
 server/blob/blob-api/pom.xml                       |  5 +++
 .../blob/api/MetricableBlobStoreContract.java      | 38 ++++++++++++++--------
 server/blob/blob-cassandra/pom.xml                 |  5 +++
 server/blob/blob-memory/pom.xml                    |  5 +++
 server/blob/blob-objectstorage/pom.xml             |  5 +++
 5 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/server/blob/blob-api/pom.xml b/server/blob/blob-api/pom.xml
index cbe5c0e..8c9182b 100644
--- a/server/blob/blob-api/pom.xml
+++ b/server/blob/blob-api/pom.xml
@@ -70,6 +70,11 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java
index c11b117..ca346db 100644
--- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java
+++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java
@@ -27,11 +27,14 @@ import static org.apache.james.blob.api.MetricableBlobStore.READ_TIMER_NAME;
 import static org.apache.james.blob.api.MetricableBlobStore.SAVE_BYTES_TIMER_NAME;
 import static org.apache.james.blob.api.MetricableBlobStore.SAVE_INPUT_STREAM_TIMER_NAME;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.awaitility.Awaitility.await;
 
 import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.james.metrics.tests.RecordingMetricFactory;
+import org.awaitility.Duration;
+import org.junit.jupiter.api.RepeatedTest;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -67,8 +70,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         Mono.from(store.save(store.getDefaultBucketName(), BYTES_CONTENT, LOW_COST)).block();
         Mono.from(store.save(store.getDefaultBucketName(), BYTES_CONTENT, LOW_COST)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME))
+                .hasSize(2));
     }
 
     @Test
@@ -78,8 +82,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         Mono.from(store.save(store.getDefaultBucketName(), STRING_CONTENT, LOW_COST)).block();
         Mono.from(store.save(store.getDefaultBucketName(), STRING_CONTENT, LOW_COST)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_BYTES_TIMER_NAME))
+                .hasSize(2));
     }
 
     @Test
@@ -89,8 +94,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         Mono.from(store.save(store.getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT), LOW_COST)).block();
         Mono.from(store.save(store.getDefaultBucketName(), new ByteArrayInputStream(BYTES_CONTENT), LOW_COST)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_INPUT_STREAM_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(SAVE_INPUT_STREAM_TIMER_NAME))
+                .hasSize(2));
     }
 
     @Test
@@ -101,8 +107,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         Mono.from(store.readBytes(store.getDefaultBucketName(), blobId)).block();
         Mono.from(store.readBytes(store.getDefaultBucketName(), blobId)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_BYTES_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_BYTES_TIMER_NAME))
+                .hasSize(2));
     }
 
     @Test
@@ -113,8 +120,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         store.read(store.getDefaultBucketName(), blobId);
         store.read(store.getDefaultBucketName(), blobId);
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(READ_TIMER_NAME))
+                .hasSize(2));
     }
 
     @Test
@@ -127,8 +135,9 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
 
         Mono.from(store.deleteBucket(bucketName)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_BUCKET_TIMER_NAME))
-            .hasSize(1);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_BUCKET_TIMER_NAME))
+                .hasSize(1));
     }
 
     @Test
@@ -141,7 +150,8 @@ public interface MetricableBlobStoreContract extends BlobStoreContract {
         Mono.from(store.delete(BucketName.DEFAULT, blobId1)).block();
         Mono.from(store.delete(BucketName.DEFAULT, blobId2)).block();
 
-        assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_TIMER_NAME))
-            .hasSize(2);
+        await().atMost(Duration.FIVE_SECONDS)
+            .untilAsserted(() ->  assertThat(metricsTestExtension.getMetricFactory().executionTimesFor(DELETE_TIMER_NAME))
+                .hasSize(2));
     }
 }
\ No newline at end of file
diff --git a/server/blob/blob-cassandra/pom.xml b/server/blob/blob-cassandra/pom.xml
index dcaf57c..8894ca6 100644
--- a/server/blob/blob-cassandra/pom.xml
+++ b/server/blob/blob-cassandra/pom.xml
@@ -72,6 +72,11 @@
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
diff --git a/server/blob/blob-memory/pom.xml b/server/blob/blob-memory/pom.xml
index 6a6888c..76f67e3 100644
--- a/server/blob/blob-memory/pom.xml
+++ b/server/blob/blob-memory/pom.xml
@@ -66,6 +66,11 @@
             <artifactId>reactor-core</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/blob/blob-objectstorage/pom.xml b/server/blob/blob-objectstorage/pom.xml
index 9f66fae..287b193 100644
--- a/server/blob/blob-objectstorage/pom.xml
+++ b/server/blob/blob-objectstorage/pom.xml
@@ -112,6 +112,11 @@
             <version>${jclouds.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org