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>