This is an automated email from the ASF dual-hosted git repository.
bbende pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-registry.git
The following commit(s) were added to refs/heads/master by this push:
new 4ba4724 NIFIREG-329 Add build profile that tests all DBs
4ba4724 is described below
commit 4ba47243202641ad8274c7b1e1bc630448f92613
Author: Kevin Doran <[email protected]>
AuthorDate: Wed Oct 16 13:01:22 2019 -0400
NIFIREG-329 Add build profile that tests all DBs
This closes #240.
Signed-off-by: Bryan Bende <[email protected]>
---
README.md | 34 +++++++++--------------
nifi-registry-core/pom.xml | 68 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+), 21 deletions(-)
diff --git a/README.md b/README.md
index 98868bf..4999a69 100644
--- a/README.md
+++ b/README.md
@@ -64,31 +64,23 @@ Registry—a subproject of Apache NiFi—is a complementary
application that pro
## Database Testing
-In order to ensure that NiFi Registry works correctly against different
relational databases, the existing integration tests can be run against
different databases by leveraging the [Testcontainers
framework](https://www.testcontainers.org/).
+In order to ensure that NiFi Registry works correctly against different
relational databases,
+the existing integration tests can be run against different databases by
leveraging the [Testcontainers framework](https://www.testcontainers.org/).
-Spring profiles are used to control the DataSource factory that will be made
available to the Spring application context. DataSource factories are provided
that use the Testcontainers framework to start a Docker container for a given
database and create a corresponding DataSource. If no profile is specified then
an H2 DataSource will be used by default and no Docker containers are required.
+Spring profiles are used to control the DataSource factory that will be made
available to the Spring application context.
+DataSource factories are provided that use the Testcontainers framework to
start a Docker container for a given database and create a corresponding
DataSource.
+If no profile is specified then an H2 DataSource will be used by default and
no Docker containers are required.
Assuming Docker is running on the system where the build is running, then the
following commands can be run:
-* H2 (default)
-
- mvn clean install -Pcontrib-check,integration-tests
-
-* Postgres
-
- mvn clean install -Pcontrib-check,integration-tests
-Dspring.profiles.active=postgres
-
-* MySQL 5.6
-
- mvn clean install -Pcontrib-check,integration-tests
-Dspring.profiles.active=mysql-56
-
-* MySQL 5.7
-
- mvn clean install -Pcontrib-check,integration-tests
-Dspring.profiles.active=mysql-57
-
-* MySQL 8.0
-
- mvn clean install -Pcontrib-check,integration-tests
-Dspring.profiles.active=mysql-8
+| Target Database | Build Command |
+| --------------- | ------------- |
+| All supported | `mvn verify -Ptest-all-dbs` |
+| H2 (default) | `mvn verify` |
+| PostgreSQL | `mvn verify -Dspring.profiles.active=postgres` |
+| MySQL 5.6 | `mvn verify -Pcontrib-check
-Dspring.profiles.active=mysql-56` |
+| MySQL 5.7 | `mvn verify -Pcontrib-check
-Dspring.profiles.active=mysql-57` |
+| MySQL 8 | `mvn verify -Pcontrib-check
-Dspring.profiles.active=mysql-8` |
When one of the Testcontainer profiles is activated, the test output should
show logs that indicate a container has been started, such as the following:
diff --git a/nifi-registry-core/pom.xml b/nifi-registry-core/pom.xml
index bf5c090..b85abef 100644
--- a/nifi-registry-core/pom.xml
+++ b/nifi-registry-core/pom.xml
@@ -146,4 +146,72 @@
</dependencies>
</dependencyManagement>
+ <profiles>
+ <profile>
+ <id>test-all-dbs</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>mysql5.6-test</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <systemPropertyVariables>
+
<spring.profiles.active>mysql-56</spring.profiles.active>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ <execution>
+ <id>mysql5.7-test</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <systemPropertyVariables>
+
<spring.profiles.active>mysql-57</spring.profiles.active>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ <execution>
+ <id>mysql58-test</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <systemPropertyVariables>
+
<spring.profiles.active>mysql-8</spring.profiles.active>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ <execution>
+ <id>postgres-test</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <systemPropertyVariables>
+
<spring.profiles.active>postgres</spring.profiles.active>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>