Repository: incubator-apex-core Updated Branches: refs/heads/master 9e30cf86d -> e5512a3b7
APEXCORE-328 Use Maven Embedder to execute maven goals from unit test Project: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/commit/43711f34 Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/tree/43711f34 Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/diff/43711f34 Branch: refs/heads/master Commit: 43711f34790475323aef4b3ea4fd4374bc9a414c Parents: 058833c Author: Vlad Rozov <[email protected]> Authored: Mon Feb 8 08:31:33 2016 -0800 Committer: Vlad Rozov <[email protected]> Committed: Tue Feb 9 17:18:47 2016 -0800 ---------------------------------------------------------------------- engine/pom.xml | 40 ++++++++++ .../stram/support/StramTestSupport.java | 77 +++++++++++--------- .../mydtapp/src/assemble/appPackage.xml | 14 ++-- 3 files changed, 88 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/43711f34/engine/pom.xml ---------------------------------------------------------------------- diff --git a/engine/pom.xml b/engine/pom.xml index ab9ed37..2d9e120 100644 --- a/engine/pom.xml +++ b/engine/pom.xml @@ -165,6 +165,16 @@ </filesets> </configuration> </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>-Xmx2048m</argLine> + <systemPropertyVariables> + <maven.home>${maven.home}</maven.home> + <maven.multiModuleProjectDirectory>${maven.home}</maven.multiModuleProjectDirectory> + </systemPropertyVariables> + </configuration> + </plugin> </plugins> </build> @@ -318,6 +328,36 @@ <artifactId>xbean-asm5-shaded</artifactId> <version>4.3</version> </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-embedder</artifactId> + <version>3.3.9</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.aether</groupId> + <artifactId>aether-connector-basic</artifactId> + <version>1.0.2.v20150114</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.aether</groupId> + <artifactId>aether-transport-wagon</artifactId> + <version>1.0.2.v20150114</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http</artifactId> + <version>2.10</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + <version>2.10</version> + <scope>test</scope> + </dependency> </dependencies> <profiles> <profile> http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/43711f34/engine/src/test/java/com/datatorrent/stram/support/StramTestSupport.java ---------------------------------------------------------------------- diff --git a/engine/src/test/java/com/datatorrent/stram/support/StramTestSupport.java b/engine/src/test/java/com/datatorrent/stram/support/StramTestSupport.java index cf2a887..823434d 100644 --- a/engine/src/test/java/com/datatorrent/stram/support/StramTestSupport.java +++ b/engine/src/test/java/com/datatorrent/stram/support/StramTestSupport.java @@ -33,9 +33,16 @@ import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; -import net.lingala.zip4j.core.ZipFile; -import net.lingala.zip4j.model.ZipParameters; -import org.apache.commons.io.FileUtils; +import org.codehaus.plexus.DefaultPlexusContainer; +import org.codehaus.plexus.PlexusContainer; +import org.codehaus.plexus.logging.BaseLoggerManager; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.nio.SelectChannelConnector; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.eclipse.jetty.websocket.WebSocket; +import org.eclipse.jetty.websocket.WebSocketServlet; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.junit.Assert; @@ -43,9 +50,15 @@ import org.junit.rules.TestWatcher; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.commons.io.FileUtils; +import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; +import org.apache.hadoop.yarn.api.records.ApplicationId; +import org.apache.hadoop.yarn.util.Clock; +import org.apache.maven.cli.MavenCli; +import org.apache.maven.cli.logging.Slf4jLogger; + import com.datatorrent.api.Attribute; import com.datatorrent.api.StorageAgent; - import com.datatorrent.bufferserver.packet.MessageType; import com.datatorrent.stram.StramAppContext; import com.datatorrent.stram.StramLocalCluster; @@ -59,18 +72,9 @@ import com.datatorrent.stram.plan.physical.PTOperator; import com.datatorrent.stram.tuple.EndWindowTuple; import com.datatorrent.stram.tuple.Tuple; import com.datatorrent.stram.webapp.AppInfo; -import org.apache.commons.io.IOUtils; -import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; -import org.apache.hadoop.yarn.api.records.ApplicationId; -import org.apache.hadoop.yarn.util.Clock; -import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.nio.SelectChannelConnector; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.websocket.WebSocket; -import org.eclipse.jetty.websocket.WebSocketServlet; +import net.lingala.zip4j.core.ZipFile; +import net.lingala.zip4j.model.ZipParameters; /** * Bunch of utilities shared between tests. @@ -78,6 +82,24 @@ import org.eclipse.jetty.websocket.WebSocketServlet; abstract public class StramTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StramTestSupport.class); + private static MavenCli mavenCli = new MavenCli() + { + @Override + protected void customizeContainer(PlexusContainer container) + { + ((DefaultPlexusContainer)container).setLoggerManager( + new BaseLoggerManager() + { + @Override + protected org.codehaus.plexus.logging.Logger createLogger(String s) + { + return new Slf4jLogger(LOG); + } + } + ); + } + }; + private static final String workingDirectory = "src/test/resources/testAppPackage/mydtapp/"; public static final long DEFAULT_TIMEOUT_MILLIS = 30000; public static Object generateTuple(Object payload, int windowId) @@ -136,31 +158,14 @@ abstract public class StramTestSupport */ public static File createAppPackageFile() { - String appPackageDir = "src/test/resources/testAppPackage/mydtapp"; - String command = "mvn clean package -DskipTests"; - try { - Process p = Runtime.getRuntime().exec(command, null, new File(appPackageDir)); - IOUtils.copy(p.getInputStream(), System.out); - IOUtils.copy(p.getErrorStream(), System.err); - Assert.assertEquals(0, p.waitFor()); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - return new File(appPackageDir, "target/mydtapp-1.0-SNAPSHOT.apa"); + Assert.assertEquals(0, mavenCli.doMain(new String[] {"clean", "package", "-DskipTests"}, + workingDirectory, System.out, System.err)); + return new File(workingDirectory, "target/mydtapp-1.0-SNAPSHOT.apa"); } public static void removeAppPackageFile() { - String appPackageDir = "src/test/resources/testAppPackage/mydtapp"; - String command = "mvn clean"; - try { - Process p = Runtime.getRuntime().exec(command, null, new File(appPackageDir)); - IOUtils.copy(p.getInputStream(), System.out); - IOUtils.copy(p.getErrorStream(), System.err); - Assert.assertEquals(0, p.waitFor()); - } catch (Exception ex) { - throw new RuntimeException(ex); - } + Assert.assertEquals(0, mavenCli.doMain(new String[]{"clean"}, workingDirectory, System.out, System.err)); } /** http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/43711f34/engine/src/test/resources/testAppPackage/mydtapp/src/assemble/appPackage.xml ---------------------------------------------------------------------- diff --git a/engine/src/test/resources/testAppPackage/mydtapp/src/assemble/appPackage.xml b/engine/src/test/resources/testAppPackage/mydtapp/src/assemble/appPackage.xml index a870807..5231bef 100644 --- a/engine/src/test/resources/testAppPackage/mydtapp/src/assemble/appPackage.xml +++ b/engine/src/test/resources/testAppPackage/mydtapp/src/assemble/appPackage.xml @@ -28,33 +28,33 @@ <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> - <directory>${basedir}/target/</directory> + <directory>${project.build.directory}</directory> <outputDirectory>/app</outputDirectory> <includes> - <include>${project.artifactId}-${project.version}.jar</include> + <include>${artifact.artifactId}-${artifact.version}.jar</include> </includes> </fileSet> <fileSet> - <directory>${basedir}/target/deps</directory> + <directory>${project.build.directory}/deps</directory> <outputDirectory>/lib</outputDirectory> </fileSet> <fileSet> - <directory>${basedir}/src/site/conf</directory> + <directory>${project.basedir}/src/site/conf</directory> <outputDirectory>/conf</outputDirectory> <includes> <include>*.xml</include> </includes> </fileSet> <fileSet> - <directory>${basedir}/src/main/resources/META-INF</directory> + <directory>${project.basedir}/src/main/resources/META-INF</directory> <outputDirectory>/META-INF</outputDirectory> </fileSet> <fileSet> - <directory>${basedir}/src/main/resources/app</directory> + <directory>${project.basedir}/src/main/resources/app</directory> <outputDirectory>/app</outputDirectory> </fileSet> <fileSet> - <directory>${basedir}/src/main/resources/resources</directory> + <directory>${project.basedir}/src/main/resources/resources</directory> <outputDirectory>/resources</outputDirectory> </fileSet> </fileSets>
