You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2016/09/25 20:47:32 UTC

cayenne git commit: Add new Maven profile postgres-docker

Repository: cayenne
Updated Branches:
  refs/heads/master 42eda59bc -> 23eb17ed5


Add new Maven profile postgres-docker

* Useful to run integration tests without installed Postgres DB
* Activation with `-DcayenneTestConnection=postgres-docker`
* Starts Postgres Docker container before integration test and stops if afterwards
* Sets JDBC connection properties based on dynamic Docker container port allocation


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/23eb17ed
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/23eb17ed
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/23eb17ed

Branch: refs/heads/master
Commit: 23eb17ed5448618fd444625551479c25979f5ccc
Parents: 42eda59
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
Authored: Tue Sep 13 06:50:45 2016 +0200
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Sun Sep 25 23:28:43 2016 +0300

----------------------------------------------------------------------
 cayenne-client/pom.xml | 33 +++++++++++++++++++++++
 cayenne-server/pom.xml | 33 +++++++++++++++++++++++
 pom.xml                | 66 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 132 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/23eb17ed/cayenne-client/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client/pom.xml b/cayenne-client/pom.xml
index 5c9affb..4ecc832 100644
--- a/cayenne-client/pom.xml
+++ b/cayenne-client/pom.xml
@@ -109,6 +109,39 @@
 
     <profiles>
         <profile>
+            <id>postgres-docker</id>
+            <activation>
+                <property>
+                    <name>cayenneTestConnection</name>
+                    <value>postgres-docker</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>start-postgres</id>
+                                <phase>pre-integration-test</phase>
+                                <goals>
+                                    <goal>start</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>stop-postgres</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>stop</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
             <id>code-quality</id>
 
             <activation>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/23eb17ed/cayenne-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
index bf9c8e7..a1b4691 100644
--- a/cayenne-server/pom.xml
+++ b/cayenne-server/pom.xml
@@ -259,6 +259,39 @@
 
     <profiles>
         <profile>
+            <id>postgres-docker</id>
+            <activation>
+                <property>
+                    <name>cayenneTestConnection</name>
+                    <value>postgres-docker</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>start-postgres</id>
+                                <phase>pre-integration-test</phase>
+                                <goals>
+                                    <goal>start</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>stop-postgres</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>stop</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
             <id>code-quality</id>
 
             <activation>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/23eb17ed/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b38d9e2..7390058 100644
--- a/pom.xml
+++ b/pom.xml
@@ -841,6 +841,11 @@
                     <artifactId>maven-jar-plugin</artifactId>
                     <version>2.4</version>
                 </plugin>
+                <plugin>
+                    <groupId>io.fabric8</groupId>
+                    <artifactId>docker-maven-plugin</artifactId>
+                    <version>0.15.6</version>
+                </plugin>
             </plugins>
 		</pluginManagement>
 
@@ -1347,6 +1352,67 @@
 			</dependencies>
 		</profile>
 		<profile>
+			<id>postgres-docker</id>
+			<activation>
+				<property>
+					<name>cayenneTestConnection</name>
+					<value>postgres-docker</value>
+				</property>
+			</activation>
+			<dependencies>
+				<dependency>
+					<groupId>org.postgresql</groupId>
+					<artifactId>postgresql</artifactId>
+					<version>9.4.1209</version>
+					<scope>test</scope>
+				</dependency>
+			</dependencies>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-failsafe-plugin</artifactId>
+						<configuration>
+							<systemPropertyVariables>
+								<!-- Default user, password, and DB name is "postgres", see https://hub.docker.com/_/postgres/ -->
+								<!-- ${db.host} and ${db.port} are dynamically set by docker-maven-plugin below -->
+								<cayenneAdapter>org.apache.cayenne.dba.postgres.PostgresAdapter</cayenneAdapter>
+								<cayenneJdbcUsername>postgres</cayenneJdbcUsername>
+								<cayenneJdbcPassword>postgres</cayenneJdbcPassword>
+								<cayenneJdbcUrl>jdbc:postgresql://${db.host}:${db.port}/postgres</cayenneJdbcUrl>
+								<cayenneJdbcDriver>org.postgresql.Driver</cayenneJdbcDriver>
+							</systemPropertyVariables>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>io.fabric8</groupId>
+						<artifactId>docker-maven-plugin</artifactId>
+						<configuration>
+							<images>
+								<image>
+									<alias>db</alias>
+									<name>postgres:9.5</name>
+									<run>
+										<ports>
+											<port>${db.host}:${db.port}:5432</port>
+										</ports>
+										<wait>
+											<tcp>
+												<ports>
+													<port>5432</port>
+												</ports>
+											</tcp>
+											<time>30000</time>
+										</wait>
+									</run>
+								</image>
+							</images>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
 			<id>derby</id>
 			<activation>
 				<property>