Attempt to run postman tests with Travis CI.
diff --git a/.travis.yml b/.travis.yml
index f78ad69..948b691 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,18 @@
 sudo: false
 language: java
 jdk:
-  - oraclejdk8
+- oraclejdk8
 
-after_success:
-  - mvn test javadoc:javadoc
+services:
+- docker
+
+before_install:
+- sudo apt-get -qq update
+- sudo apt-get install npm
+- sudo npm install newman --global;
+
+script:
+- mvn clean install -Pfull
 
 notifications:
   email: false
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 96d7d21..fc117df 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -24,6 +24,9 @@
     - "8080:8080"
     environment:
     - MEMBRANE_HTTP_PORT=8080
+    depends_on:
+    - example-postgres
+    - example-couchdb
   example-postgres:
     container_name: example-postgres
     image: postgres:9.6
diff --git a/pom.xml b/pom.xml
index 1c1c32c..1bd76c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,7 +45,8 @@
 
 	<profiles>
 		<profile>
-			<id>all</id>
+			<!-- Normal profile for a build on a machine without specific tools like Docker or Newman installed -->
+			<id>normal</id>
 			<activation>
 				<activeByDefault>true</activeByDefault>
 			</activation>
@@ -57,6 +58,7 @@
 			</modules>
 		</profile>
 		<profile>
+			<!-- Minimal profile for running just the docker image build -->
 			<id>dockerbuild</id>
 			<modules>
 				<module>swagger-codegen</module>
@@ -64,6 +66,17 @@
 				<module>undertow</module>
 			</modules>
 		</profile>
+		<profile>
+			<!-- Build profile for running everything - requires docker and newman installed -->
+			<id>full</id>
+			<modules>
+				<module>swagger-codegen</module>
+				<module>core</module>
+				<module>war</module>
+				<module>undertow</module>
+				<module>postman-tests</module>
+			</modules>
+		</profile>
 	</profiles>
 
 	<build>
diff --git a/postman-tests/pom.xml b/postman-tests/pom.xml
new file mode 100644
index 0000000..2d4c04c
--- /dev/null
+++ b/postman-tests/pom.xml
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<parent>
+		<groupId>org.apache.metamodel.membrane</groupId>
+		<artifactId>Membrane-parent</artifactId>
+		<version>0.1-SNAPSHOT</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>Membrane-postman-tests</artifactId>
+	<packaging>pom</packaging>
+	
+	<properties>
+		<compose.args>--build</compose.args>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<!-- Add the docker-maven-plugin to make the "${docker.host.address}" 
+					variable resolveable -->
+				<groupId>io.fabric8</groupId>
+				<artifactId>docker-maven-plugin</artifactId>
+				<version>0.21.0</version>
+				<executions>
+					<execution>
+						<id>start-docker-on-pre-integration-test</id>
+						<goals>
+							<goal>start</goal>
+						</goals>
+						<phase>pre-integration-test</phase>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-antrun-plugin</artifactId>
+				<version>1.8</version>
+				<executions>
+					<execution>
+						<id>determine-postman-env</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>run</goal>
+						</goals>
+						<configuration>
+							<!-- Use ant to determine the right value for 'postman.env' -->
+							<exportAntProperties>true</exportAntProperties>
+							<target>
+								<condition property="postman.env" value="docker-toolbox"
+									else="localhost">
+									<equals arg1="${docker.host.address}" arg2="192.168.99.100" />
+								</condition>
+								<echo message="Using postman environment: ${postman.env}" />
+							</target>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>exec-maven-plugin</artifactId>
+				<version>1.5.0</version>
+				<executions>
+					<execution>
+						<id>docker-compose-up</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<executable>docker-compose</executable>
+							<commandlineArgs>
+							<![CDATA[
+							-f ../docker-compose.yml up -d ${compose.args}
+							]]>
+							</commandlineArgs>
+						</configuration>
+					</execution>
+
+					<execution>
+						<id>newman-test</id>
+						<phase>integration-test</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<skip>${skipTests}</skip>
+							<executable>bash</executable>
+							<commandlineArgs>
+							<![CDATA[
+			                -c "newman run ./Membrane.postman_collection.json \
+			                -e ./environments/${postman.env}.postman_environment.json \
+			                --reporters junit,cli -x \
+			                --reporter-junit-export ./target/NewmanTestResults.xml"
+			                ]]>
+							</commandlineArgs>
+						</configuration>
+					</execution>
+
+					<execution>
+						<id>docker-logs</id>
+						<phase>post-integration-test</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<executable>bash</executable>
+							<commandlineArgs>
+				            <![CDATA[
+				            -c "docker logs metamodel-membrane > target/docker-membrane.log"
+				            ]]>
+							</commandlineArgs>
+						</configuration>
+					</execution>
+					
+					<execution>
+						<id>docker-compose-down</id>
+						<phase>post-integration-test</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<executable>docker-compose</executable>
+							<commandlineArgs>
+				            <![CDATA[
+				            -f ../docker-compose.yml down
+				            ]]>
+							</commandlineArgs>
+						</configuration>
+					</execution>
+
+					<execution>
+						<id>newman-verify</id>
+						<phase>verify</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<skip>${skipTests}</skip>
+							<executable>grep</executable>
+							<commandlineArgs>
+				            <![CDATA[
+				            -q 'error\|failure' ./target/NewmanTestResults.xml
+				            ]]>
+							</commandlineArgs>
+							<successCodes>
+								<successCode>1</successCode>
+							</successCodes>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.kuali.maven.plugins</groupId>
+				<artifactId>maven-http-plugin</artifactId>
+				<version>1.0.5</version>
+
+				<configuration>
+					<httpSuccessCodes>200</httpSuccessCodes>
+					<httpContinueWaitingCodes>500</httpContinueWaitingCodes>
+					<requestTimeout>12000</requestTimeout>
+					<sleepInterval>4000</sleepInterval>
+					<timeout>120000</timeout>
+				</configuration>
+
+				<executions>
+					<execution>
+						<id>membrane-health-check</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wait</goal>
+						</goals>
+						<configuration>
+							<url>http://${docker.host.address}:8080</url>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+		</plugins>
+	</build>
+</project>