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

olamy pushed a commit to branch master-cassandra-testcontainers
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit 73208e933e56543ddbc46e7b058cc6209496f92b
Author: Olivier Lamy <ol...@apache.org>
AuthorDate: Sat Apr 16 19:57:26 2022 +1000

    use testcontainers for cassandra testing
    
    Signed-off-by: Olivier Lamy <ol...@apache.org>
---
 .../src/test/test-settings.xml                     | 22 +++++++++++-
 .../repository/AbstractMetadataRepositoryTest.java | 14 +++-----
 .../metadata-store-cassandra/pom.xml               | 20 +++--------
 .../cassandra/CassandraMetadataRepositoryTest.java | 40 +++++++++++-----------
 .../cassandra/RepositoriesNamespaceTest.java       |  7 +++-
 .../src/test/resources/log4j2-test.xml             | 12 +++----
 .../src/test/resources/log4j2-test.xml             |  2 +-
 pom.xml                                            | 36 +++++++++++--------
 8 files changed, 82 insertions(+), 71 deletions(-)

diff --git 
a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/test/test-settings.xml
 
b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/test/test-settings.xml
index ed41e84d5..fcbb3649e 100644
--- 
a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/test/test-settings.xml
+++ 
b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/test/test-settings.xml
@@ -24,7 +24,7 @@ under the License.
   xmlns="http://maven.apache.org/SETTINGS/1.0.0";>
   <mirrors>
     <mirror>
-      <mirrorOf>external:*</mirrorOf>
+      <mirrorOf>external:*,!central</mirrorOf>
       <id>local-mirror</id>
       <name>local-mirror</name>
       <url>@localRepositoryUrl@</url>
@@ -60,6 +60,16 @@ under the License.
             <enabled>true</enabled>
           </snapshots>
         </repository>
+        <repository>
+          <id>central</id>
+          <url>https://repo.maven.apache.org/maven2</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
       </repositories>
       <pluginRepositories>
         <pluginRepository>
@@ -72,6 +82,16 @@ under the License.
             <enabled>true</enabled>
           </snapshots>
         </pluginRepository>
+        <pluginRepository>
+          <id>central</id>
+          <url>https://repo.maven.apache.org/maven2</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </pluginRepository>
       </pluginRepositories>
     </profile>
   </profiles>
diff --git 
a/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
 
b/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
index 52eb42195..4c351447b 100644
--- 
a/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
+++ 
b/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
@@ -234,20 +234,14 @@ public abstract class AbstractMetadataRepositoryTest
     {
         try ( RepositorySession session = getSessionFactory( ).createSession( 
) )
         {
-            tryAssert( ( ) -> {
-                assertThat( getRepository( ).getRootNamespaces( session, 
TEST_REPO_ID ) ).isNotNull( ).isEmpty( );
-            } );
+            tryAssert( ( ) -> assertThat( getRepository( ).getRootNamespaces( 
session, TEST_REPO_ID ) ).isNotNull( ).isEmpty( ));
             getRepository( ).updateNamespace( session, TEST_REPO_ID, 
TEST_NAMESPACE );
 
-            tryAssert( ( ) -> {
-                assertThat( getRepository( ).getRootNamespaces( session, 
TEST_REPO_ID ) ).isNotNull( ).isNotEmpty( ).contains(
-                    TEST_NAMESPACE ).hasSize( 1 );
-            } );
+            tryAssert( ( ) -> assertThat( getRepository( ).getRootNamespaces( 
session, TEST_REPO_ID ) ).isNotNull( ).isNotEmpty( )
+                                .contains( TEST_NAMESPACE ).hasSize( 1 ));
             getRepository( ).removeNamespace( session, TEST_REPO_ID, 
TEST_NAMESPACE );
 
-            tryAssert( ( ) -> {
-                assertThat( getRepository( ).getRootNamespaces( session, 
TEST_REPO_ID ) ).isNotNull( ).isEmpty( );
-            } );
+            tryAssert( ( ) -> assertThat( getRepository( ).getRootNamespaces( 
session, TEST_REPO_ID ) ).isNotNull( ).isEmpty( ));
         }
     }
 
diff --git 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
index af801d727..fcdce8a99 100644
--- 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
+++ 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
@@ -44,12 +44,6 @@
       <groupId>org.apache.archiva</groupId>
       <artifactId>metadata-repository-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.archiva</groupId>
-      <artifactId>metadata-repository-api</artifactId>
-      <classifier>tests</classifier>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
       <artifactId>archiva-common</artifactId>
@@ -79,7 +73,6 @@
       <artifactId>metadata-model</artifactId>
     </dependency>
 
-
     <dependency>
       <groupId>jakarta.annotation</groupId>
       <artifactId>jakarta.annotation-api</artifactId>
@@ -119,11 +112,11 @@
       <version>${datastax.driver.version}</version>
     </dependency>
 
-
     <!-- TEST Scope -->
     <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-api</artifactId>
+      <groupId>org.apache.archiva</groupId>
+      <artifactId>metadata-repository-api</artifactId>
+      <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -170,12 +163,6 @@
       <scope>test</scope>
     </dependency>
 
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
-
     <dependency>
       <groupId>org.testcontainers</groupId>
       <artifactId>cassandra</artifactId>
@@ -195,6 +182,7 @@
             <systemPropertyVariables>
               
<archiva.repositorySessionFactory.id>cassandra</archiva.repositorySessionFactory.id>
               
<appserver.base>${project.build.directory}/appserver-base</appserver.base>
+              <cassandraVersion>${cassandraVersion}</cassandraVersion>
             </systemPropertyVariables>
           </configuration>
         </plugin>
diff --git 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
index 64abf10a1..9b9bcc2e6 100644
--- 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
+++ 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
@@ -29,14 +29,10 @@ import 
org.apache.archiva.metadata.repository.RepositorySessionFactory;
 import 
org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInfo;
-import org.junit.jupiter.api.TestInstance;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.testcontainers.containers.CassandraContainer;
 import org.testcontainers.containers.output.Slf4jLogConsumer;
 import org.testcontainers.utility.DockerImageName;
@@ -61,11 +57,12 @@ import static org.mockito.Mockito.when;
 /**
  * @author Olivier Lamy
  */
-@ExtendWith( SpringExtension.class )
-@TestInstance( TestInstance.Lifecycle.PER_CLASS )
 public class CassandraMetadataRepositoryTest
     extends AbstractMetadataRepositoryTest
 {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger( 
CassandraMetadataRepositoryTest.class );
+
     @Inject
     @Named(value = "archivaEntityManagerFactory#cassandra")
     CassandraArchivaManager cassandraArchivaManager;
@@ -77,7 +74,17 @@ public class CassandraMetadataRepositoryTest
     RepositorySession session;
 
     private static final CassandraContainer CASSANDRA =
-            new 
CassandraContainer(DockerImageName.parse("cassandra").withTag("3.11.2"));
+            new CassandraContainer(DockerImageName.parse("cassandra")
+                    .withTag(System.getProperty("cassandraVersion","3.11.2")));
+
+    // because of @ExtendWith( SpringExtension.class ) @BeforeAll will not be 
executed before spring resolution so need to use this...
+    static {
+        LOGGER.info("initCassandra");
+        CASSANDRA.withLogConsumer(new 
Slf4jLogConsumer(LoggerFactory.getLogger("org.apache.archiva.metadata.repository.cassandra.logs")));
+        CASSANDRA.start();
+        System.setProperty("cassandra.host", CASSANDRA.getHost());
+        System.setProperty("cassandra.port", 
CASSANDRA.getMappedPort(9042).toString());
+    }
 
     long cTime;
     int testNum = 0;
@@ -96,15 +103,6 @@ public class CassandraMetadataRepositoryTest
         return cmr;
     }
 
-    @BeforeAll
-    public static void initCassandra()
-            throws Exception {
-        CASSANDRA.withLogConsumer(new 
Slf4jLogConsumer(LoggerFactory.getLogger("org.apache.archiva.metadata.repository.cassandra.logs")));
-        CASSANDRA.start();
-        System.setProperty("cassandra.host", CASSANDRA.getHost());
-        System.setProperty("cassandra.port", 
CASSANDRA.getMappedPort(9042).toString());
-    }
-
     @AfterAll
     public static void stopCassandra()
             throws Exception {
@@ -112,7 +110,8 @@ public class CassandraMetadataRepositoryTest
     }
 
     @BeforeEach
-    public void setUp( TestInfo testInfo )
+    @Override
+    public void setUp()
         throws Exception
     {
         cTime = System.currentTimeMillis( );
@@ -176,7 +175,7 @@ public class CassandraMetadataRepositoryTest
 
 
     @AfterEach
-    public void shutdown(TestInfo testInfo)
+    public void shutdown()
         throws Exception
     {
         clearReposAndNamespace( cassandraArchivaManager, clearedTables );
@@ -201,7 +200,8 @@ public class CassandraMetadataRepositoryTest
                     cassandraArchivaManager.getLicenseFamilyName( ),
                     cassandraArchivaManager.getDependencyFamilyName( )
                 );
-                CompletableFuture.allOf( tables.stream( ).map( table -> 
session.executeAsync( truncate( table ).build( ) ) )
+                CompletableFuture.allOf(tables.stream()
+                                .map(table -> 
session.executeAsync(truncate(table).build()))
                         .map( CompletionStage::toCompletableFuture ).collect( 
Collectors.toList( ) ).toArray( new CompletableFuture[0] ) )
                     .whenComplete( ( c, e ) -> {
                         if ( clearedFlag != null ) clearedFlag.set( true );
diff --git 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
index a5931e8cd..635985539 100644
--- 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
+++ 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/RepositoriesNamespaceTest.java
@@ -39,6 +39,9 @@ import org.testcontainers.utility.DockerImageName;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import java.net.URL;
+import java.util.Enumeration;
+
 import static org.assertj.core.api.Assertions.assertThat;
 
 /**
@@ -52,7 +55,8 @@ public class RepositoriesNamespaceTest
     private static final Logger LOGGER = LoggerFactory.getLogger( 
RepositoriesNamespaceTest.class );
 
     private static final CassandraContainer CASSANDRA =
-            new 
CassandraContainer(DockerImageName.parse("cassandra").withTag("3.11.2"));
+            new CassandraContainer(DockerImageName.parse("cassandra")
+                    .withTag(System.getProperty("cassandraVersion","3.11.2")));
 
     @Inject
     @Named( value = "archivaEntityManagerFactory#cassandra" )
@@ -63,6 +67,7 @@ public class RepositoriesNamespaceTest
     @BeforeAll
     public static void initCassandra()
             throws Exception {
+        Enumeration<URL> urls = 
CassandraMetadataRepositoryTest.class.getClassLoader().getResources("log4j2.xml");
         CASSANDRA.withLogConsumer(new 
Slf4jLogConsumer(LoggerFactory.getLogger("org.apache.archiva.metadata.repository.cassandra.logs")));
         CASSANDRA.start();
         System.setProperty("cassandra.host", CASSANDRA.getHost());
diff --git 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/resources/log4j2-test.xml
 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/resources/log4j2-test.xml
index de342df96..6a8992150 100644
--- 
a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/resources/log4j2-test.xml
+++ 
b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/resources/log4j2-test.xml
@@ -19,20 +19,16 @@
   -->
 
 
-<configuration status="debug">
-
+<configuration>
   <appenders>
     <Console name="console" target="SYSTEM_OUT">
       <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%t] %-5level 
%logger{36} - %msg%n}" />
     </Console>
-
   </appenders>
   <loggers>
-
-
-    <logger name="org.apache.archiva.metadata.repository.cassandra" 
level="debug"/>
-    <logger name="org.apache.archiva.metadata.repository.cassandra.logs" 
level="debug"/>
-    <root level="debug" includeLocation="true">
+    <logger name="org.apache.archiva.metadata.repository.cassandra" 
level="info"/>
+    <logger name="org.apache.archiva.metadata.repository.cassandra.logs" 
level="error"/>
+    <root level="info" includeLocation="true">
       <appender-ref ref="console"/>
     </root>
   </loggers>
diff --git 
a/archiva-modules/metadata/metadata-store-provider/oak-jcr/metadata-store-jcr/src/test/resources/log4j2-test.xml
 
b/archiva-modules/metadata/metadata-store-provider/oak-jcr/metadata-store-jcr/src/test/resources/log4j2-test.xml
index b9911476e..7d0a7bfdb 100644
--- 
a/archiva-modules/metadata/metadata-store-provider/oak-jcr/metadata-store-jcr/src/test/resources/log4j2-test.xml
+++ 
b/archiva-modules/metadata/metadata-store-provider/oak-jcr/metadata-store-jcr/src/test/resources/log4j2-test.xml
@@ -19,7 +19,7 @@
   -->
 
 
-<configuration status="debug">
+<configuration>
 
   <appenders>
     <Console name="console" target="SYSTEM_OUT">
diff --git a/pom.xml b/pom.xml
index e3cbef7b4..50ff533ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1824,28 +1824,36 @@
     </dependency>
 
     <!-- JUNIT 5 -->
-    <dependency>
-      <groupId>org.junit.platform</groupId>
-      <artifactId>junit-platform-launcher</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.junit.platform</groupId>
-      <artifactId>junit-platform-console-standalone</artifactId>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-engine</artifactId>
+      <artifactId>junit-jupiter-api</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
+      <dependency>
       <groupId>org.junit.vintage</groupId>
       <artifactId>junit-vintage-engine</artifactId>
       <scope>test</scope>
     </dependency>
-    
-
+<!--    <dependency>-->
+<!--      <groupId>org.junit.platform</groupId>-->
+<!--      <artifactId>junit-platform-launcher</artifactId>-->
+<!--      <scope>test</scope>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.junit.platform</groupId>-->
+<!--      <artifactId>junit-platform-console-standalone</artifactId>-->
+<!--      <scope>test</scope>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.junit.jupiter</groupId>-->
+<!--      <artifactId>junit-jupiter-engine</artifactId>-->
+<!--      <scope>test</scope>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.junit.vintage</groupId>-->
+<!--      <artifactId>junit-vintage-engine</artifactId>-->
+<!--      <scope>test</scope>-->
+<!--    </dependency>-->
   </dependencies>
 
 

Reply via email to