You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/04/01 06:02:34 UTC
git commit: https://issues.apache.org/jira/browse/AIRAVATA-1055
Repository: airavata
Updated Branches:
refs/heads/master c7a9c8e97 -> 74556fe42
https://issues.apache.org/jira/browse/AIRAVATA-1055
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/74556fe4
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/74556fe4
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/74556fe4
Branch: refs/heads/master
Commit: 74556fe42e01b120c6da2b7494cc7ba1da8b5a7d
Parents: c7a9c8e
Author: Saminda Wijeratne <sa...@gmail.com>
Authored: Mon Mar 31 21:02:15 2014 -0700
Committer: Saminda Wijeratne <sa...@gmail.com>
Committed: Mon Mar 31 21:02:15 2014 -0700
----------------------------------------------------------------------
.../api/client/AiravataClientFactory.java | 6 +-
modules/integration-tests/pom.xml | 198 ++++++++++++++-----
.../airavata/integration/SimpleEchoTest.java | 158 ---------------
.../SingleAppIntegrationTestBase.java | 174 ++++++++++++++++
pom.xml | 5 +
5 files changed, 334 insertions(+), 207 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/74556fe4/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
index af9df9f..ec5b45d 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
@@ -27,9 +27,13 @@ import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class AiravataClientFactory {
+ private final static Logger logger = LoggerFactory.getLogger(AiravataClientFactory.class);
+
public static Airavata.Client createAiravataClient(String serverHost, int serverPort){
try {
TTransport transport = new TSocket(serverHost, serverPort);
@@ -37,7 +41,7 @@ public class AiravataClientFactory {
TProtocol protocol = new TBinaryProtocol(transport);
return new Airavata.Client(protocol);
} catch (TTransportException e) {
- e.printStackTrace();
+ logger.error("Unable to connect to the server at "+serverHost+":"+serverPort);
}
return null;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/74556fe4/modules/integration-tests/pom.xml
----------------------------------------------------------------------
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index 3e7e91d..90e64a7 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -24,52 +24,14 @@
<build>
<plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.5</version>
- <configuration>
- <failIfNoTests>false</failIfNoTests>
- <systemPropertyVariables>
- <test.server.port>${test.running.port}</test.server.port>
- <test.server.url>localhost</test.server.url>
- <log4j.configuration>file:${basedir}/src/test/resources/log4j.properties</log4j.configuration>
- <property>
- <name>log4j.configuration</name>
- <value>file:${project.build.directory}/test-classes/log4j.properties</value>
- </property>
- <myproxy.user>${user}</myproxy.user>
- <myproxy.password>${pwd}</myproxy.password>
- <trusted.cert.location>${cert}</trusted.cert.location>
- </systemPropertyVariables>
+ <!-- unpack the server distribution-->
- <includes>
- <include>**/*IT.java</include>
- </includes>
- </configuration>
- <executions>
- <execution>
- <id>integration-test</id>
- <phase>integration-test</phase>
- <goals>
- <goal>integration-test</goal>
- </goals>
- </execution>
- <execution>
- <id>verify</id>
- <phase>verify</phase>
- <goals>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <!--plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
- <execution>
+ <!--execution>
<id>unpack-dependencies</id>
<phase>compile</phase>
<goals>
@@ -85,7 +47,7 @@
</artifactItem>
</artifactItems>
</configuration>
- </execution>
+ </execution -->
<execution>
<id>unpack</id>
<phase>compile</phase>
@@ -99,14 +61,15 @@
<artifactId>apache-airavata-server</artifactId>
<version>${project.version}</version>
<type>zip</type>
- <classifier>war</classifier>
+ <classifier>bin</classifier>
</artifactItem>
</artifactItems>
- <includes>**/*.war</includes>
- <outputDirectory>${tomcat.work.dir}/webapps/</outputDirectory>
+ <!--includes>**/*.war</includes-->
+ <outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
- <execution>
+
+ <!-- execution>
<id>unpack-artifacts</id>
<phase>compile</phase>
<goals>
@@ -123,14 +86,131 @@
</artifactItems>
<outputDirectory>${tomcat.extract.dir}</outputDirectory>
</configuration>
+ </execution -->
+ </executions>
+ </plugin>
+
+ <!-- Start and stop the server before and after the integration tests -->
+ <!--plugin>
+ <artifactId>exec-maven-plugin</artifactId>
+ <groupId>org.codehaus.mojo</groupId>
+ <executions>
+ <execution>
+ <id>start-third-parties</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${project.build.directory}/apache-airavata-server-0.12-SNAPSHOT/bin/airavata-server.sh</executable>
+ </configuration>
+ </execution>
+ <execution>
+ <id>stop-third-parties</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${project.build.directory}/apache-airavata-server-0.12-SNAPSHOT/bin/airavata-server.sh stop</executable>
+ </configuration>
</execution>
</executions>
- </plugin-->
+ </plugin -->
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <executions>
+ <execution>
+ <id>start-airavata-server</id>
+ <phase>pre-integration-test</phase>
+ <configuration>
+ <target>
+ <exec executable="./${airavata.executable}"
+ dir="${airavata.server.extractedLocation}"
+ spawn="${airavata.server.start.spawn}">
+
+ </exec>
+
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-airavata-server</id>
+ <phase>post-integration-test</phase>
+ <configuration>
+ <target>
+ <exec executable="./${airavata.executable}"
+ dir="${airavata.server.extractedLocation}"
+ spawn="${airavata.server.stop.spawn}">
+ <arg value="stop" />
+ <arg value="--force" />
+ </exec>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <failIfNoTests>false</failIfNoTests>
+ <systemPropertyVariables>
+ <test.server.port>${test.running.port}</test.server.port>
+ <test.server.url>localhost</test.server.url>
+ <log4j.configuration>file:${basedir}/src/test/resources/log4j.properties</log4j.configuration>
+ <property>
+ <name>log4j.configuration</name>
+ <value>file:${project.build.directory}/test-classes/log4j.properties</value>
+ </property>
+ <myproxy.user>${user}</myproxy.user>
+ <myproxy.password>${pwd}</myproxy.password>
+ <trusted.cert.location>${cert}</trusted.cert.location>
+ </systemPropertyVariables>
+
+ <!--excludes>
+ <exclude>**/*IT.java</exclude>
+ </excludes -->
+ <includes>
+ <!--include>**/*IT.java</include -->
+ <include>**/SimpleEchoIT.java</include>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>integration-test</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>integration-test</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>verify</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+
+
+ <!--plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
- </plugin>
+ </plugin -->
<!--plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
@@ -218,6 +298,19 @@
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
+ <artifactId>apache-airavata-server</artifactId>
+ <type>pom</type>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.airavata</groupId>
<artifactId>airavata-jpa-registry</artifactId>
<version>${project.version}</version>
<exclusions>
@@ -308,6 +401,7 @@
</dependency>
</dependencies>
+
<properties>
<jersey.version>1.13</jersey.version>
<user></user>
@@ -325,5 +419,13 @@
<local.tomcat.distribution>
${settings.localRepository}/org/apache/airavata/integration/tomcat/apache-tomcat/${tomcat.version}/apache-tomcat-${tomcat.version}.zip
</local.tomcat.distribution>
+
+
+ <airavata.executable>airavata-server.sh</airavata.executable>
+ <airavata.server.name>apache-airavata-server</airavata.server.name>
+ <airavata.server.start.spawn>true</airavata.server.start.spawn>
+ <airavata.server.stop.spawn>false</airavata.server.stop.spawn>
+ <airavata.server.extractedLocation>${project.build.directory}/${airavata.server.name}-${project.version}/bin</airavata.server.extractedLocation>
+
</properties>
</project>
http://git-wip-us.apache.org/repos/asf/airavata/blob/74556fe4/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoTest.java
----------------------------------------------------------------------
diff --git a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoTest.java b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoTest.java
deleted file mode 100644
index 8a46120..0000000
--- a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-package org.apache.airavata.integration;
-
-import org.apache.airavata.api.Airavata;
-import org.apache.airavata.api.client.AiravataClientFactory;
-import org.apache.airavata.api.error.AiravataClientException;
-import org.apache.airavata.api.error.AiravataSystemException;
-import org.apache.airavata.api.error.InvalidRequestException;
-import org.apache.airavata.client.AiravataAPIFactory;
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.client.tools.DocumentCreator;
-import org.apache.airavata.model.util.ExperimentModelUtil;
-import org.apache.airavata.model.workspace.experiment.*;
-import org.apache.airavata.schemas.gfac.DataType;
-import org.apache.airavata.server.ServerMain;
-import org.apache.thrift.TException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-public class SimpleEchoTest extends BaseCaseIT {
- public static final String THRIFT_SERVER_HOST = "localhost";
- public static final int THRIFT_SERVER_PORT = 8930;
- private final static Logger logger = LoggerFactory.getLogger(SimpleEchoTest.class);
- private static final String DEFAULT_USER = "defauly.registry.user";
- private static final String DEFAULT_GATEWAY = "default.registry.gateway";
-
- public SimpleEchoTest() throws Exception {
- //super();
- }
- public AiravataAPI getAiravataAPI() throws AiravataAPIInvocationException {
- if (airavataAPI == null){
- airavataAPI = AiravataAPIFactory.getAPI("default", "admin");
- }
- return airavataAPI;
- }
-
- @BeforeTest
- public void setUp() throws Exception {
- new Thread() {
- public void run() {
- try {
- ServerMain.main(new String[]{});
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }.start();
- Thread.sleep(10000);
- this.airavataAPI = getAiravataAPI();
- this.client = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
-
- }
-
- @Test
- public void testSimpleLocalhostEchoService() throws Exception {
- log.info("Running job in localhost...");
- DocumentCreator documentCreator = new DocumentCreator(airavataAPI);
- documentCreator.createLocalHostDocs();
-
- List<DataObjectType> exInputs = new ArrayList<DataObjectType>();
- DataObjectType input = new DataObjectType();
- input.setKey("echo_input");
- input.setType(DataType.STRING.toString());
- input.setValue("echo_output=Hello World");
- exInputs.add(input);
-
- List<DataObjectType> exOut = new ArrayList<DataObjectType>();
- DataObjectType output = new DataObjectType();
- output.setKey("echo_output");
- output.setType(DataType.STRING.toString());
- output.setValue("");
- exOut.add(output);
-
- Experiment simpleExperiment =
- ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho0", "SimpleEcho0", exInputs);
- simpleExperiment.setExperimentOutputs(exOut);
-
- ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("localhost", 1, 1, 1, "normal", 0, 0, 1, "sds128");
- scheduling.setResourceHostId("localhost");
- UserConfigurationData userConfigurationData = new UserConfigurationData();
- userConfigurationData.setAiravataAutoSchedule(false);
- userConfigurationData.setOverrideManualScheduledParams(false);
- userConfigurationData.setComputationalResourceScheduling(scheduling);
- simpleExperiment.setUserConfigurationData(userConfigurationData);
-
-
- final String expId = createExperiment(simpleExperiment);
- System.out.println("Experiment Id returned : " + expId);
-
- log.info("Experiment Id returned : " + expId);
-
- launchExperiment(expId);
-
- System.out.println("Launched successfully");
-
- Thread monitor = (new Thread() {
- public void run() {
- Map<String, JobStatus> jobStatuses = null;
- while (true) {
- try {
- jobStatuses = client.getJobStatuses(expId);
- Set<String> strings = jobStatuses.keySet();
- for (String key : strings) {
- JobStatus jobStatus = jobStatuses.get(key);
- if (jobStatus == null) {
- return;
- } else {
- if (JobState.COMPLETE.equals(jobStatus.getJobState())) {
- log.info("Job completed Job ID: " + key);
- return;
- } else {
- log.info("Job ID:" + key + " Job Status : " + jobStatuses.get(key).getJobState().toString());
- }
- }
- }
- Thread.sleep(5000);
- } catch (Exception e) {
- log.error("Thread interrupted", e.getMessage());
- }
- }
- }
- });
- monitor.start();
- try {
- monitor.join();
- } catch (InterruptedException e) {
- log.error("Thread interrupted..", e.getMessage());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/74556fe4/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
----------------------------------------------------------------------
diff --git a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
new file mode 100644
index 0000000..64a4c3a
--- /dev/null
+++ b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
@@ -0,0 +1,174 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.airavata.integration;
+
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
+import org.apache.airavata.api.error.AiravataClientException;
+import org.apache.airavata.api.error.AiravataSystemException;
+import org.apache.airavata.api.error.ExperimentNotFoundException;
+import org.apache.airavata.api.error.InvalidRequestException;
+import org.apache.airavata.client.AiravataAPIFactory;
+import org.apache.airavata.client.api.AiravataAPI;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.model.workspace.experiment.Experiment;
+import org.apache.airavata.model.workspace.experiment.JobState;
+import org.apache.airavata.model.workspace.experiment.JobStatus;
+import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * this class contains the common utils across the single application integration tests
+ */
+public class SingleAppIntegrationTestBase {
+
+ private final static Logger log = LoggerFactory.getLogger(SingleAppIntegrationTestBase.class);
+ private static String THRIFT_SERVER_HOST;
+ private static int THRIFT_SERVER_PORT;
+ protected AiravataAPI airavataAPI;
+ protected Airavata.Client client;
+ private final int TRIES = 5;
+ private final int TIME_OUT = 10000;
+
+ //initializes the server
+ protected void init() {
+
+ Properties clientProperties = new Properties();
+ try {
+ clientProperties.load(getClass().getClassLoader().getResourceAsStream("airavata-client.properties"));
+ THRIFT_SERVER_HOST = clientProperties.getProperty("thrift.server.host");
+ THRIFT_SERVER_PORT = Integer.parseInt(clientProperties.getProperty("thrift.server.port"));
+
+ //check the server startup + initialize the thrift client
+ initClient();
+
+ //getting the Airavata API ( to add the descriptors
+ this.airavataAPI = getAiravataAPI();
+ } catch (IOException e) {
+ log.error("Error loading client-properties ..." + e.getMessage());
+ } catch (AiravataAPIInvocationException e) {
+ log.error("Error initializing the Airavata API ... " + e.getMessage());
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ }
+
+ protected AiravataAPI getAiravataAPI() throws AiravataAPIInvocationException {
+ if (airavataAPI == null) {
+ airavataAPI = AiravataAPIFactory.getAPI("default", "admin");
+ }
+ return airavataAPI;
+ }
+
+ /*
+ * Check if the thrift server has started.
+ * If so, initialize the client
+ * */
+ protected void initClient() throws Exception {
+ int tries = 0;
+
+ while (true) {
+
+ if (tries == TRIES) {
+ log("Server not responding. Cannot continue with integration tests ...");
+ throw new Exception("Server not responding !");
+ }
+
+ log("Checking if the server has started, try - " + tries);
+
+ try {
+ this.client = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
+ } catch (Exception e) {
+
+ }
+ if (this.client == null) {
+ log.info("Waiting till server initializes ........");
+ Thread.sleep(TIME_OUT);
+ } else {
+ break;
+ }
+
+ ++tries;
+ }
+
+ }
+
+ protected String createExperiment(Experiment experiment) throws AiravataSystemException, InvalidRequestException, AiravataClientException, TException {
+ return getClient().createExperiment(experiment);
+ }
+
+ protected void launchExperiment(String expId) throws ExperimentNotFoundException, AiravataSystemException, InvalidRequestException, AiravataClientException, TException {
+ getClient().launchExperiment(expId, "testToken");
+ }
+
+ protected Airavata.Client getClient() {
+ return client;
+ }
+
+ //monitoring the job
+ protected void monitorJob(final String expId) {
+ Thread monitor = (new Thread() {
+ public void run() {
+ Map<String, JobStatus> jobStatuses = null;
+ while (true) {
+ try {
+ jobStatuses = client.getJobStatuses(expId);
+ Set<String> strings = jobStatuses.keySet();
+ for (String key : strings) {
+ JobStatus jobStatus = jobStatuses.get(key);
+ if (jobStatus == null) {
+ return;
+ } else {
+ if (JobState.COMPLETE.equals(jobStatus.getJobState())) {
+ log.info("Job completed Job ID: " + key);
+ return;
+ } else {
+ log.info("Job ID:" + key + " Job Status : " + jobStatuses.get(key).getJobState().toString());
+ }
+ }
+ }
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ log.error("Thread interrupted", e.getMessage());
+ }
+ }
+ }
+ });
+ monitor.start();
+ try {
+ monitor.join();
+ } catch (InterruptedException e) {
+ log.error("Thread interrupted..", e.getMessage());
+ }
+ }
+
+ public void log(String message) {
+ log.info(message);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/74556fe4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c444035..91ae87a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -445,6 +445,11 @@
<failIfNoTests>false</failIfNoTests>
<skipTests>${skipTests}</skipTests>
<workingDirectory>${project.build.testOutputDirectory}</workingDirectory>
+ <!-- making sure that the sure-fire plugin doesn't run the integration tests-->
+ <!-- Integration tests are run using the fail-safe plugin in the module pom-->
+ <excludes>
+ <exclude>**/IT.java</exclude>
+ </excludes>
</configuration>
</plugin>
</plugins>