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>

Reply via email to