You are viewing a plain text version of this content. The canonical link for it is here.
Posted to s4-commits@incubator.apache.org by mm...@apache.org on 2013/01/23 22:35:05 UTC
[4/7] git commit: Fixed module loader tests + code that should not
have been commented
Fixed module loader tests + code that should not have been commented
Project: http://git-wip-us.apache.org/repos/asf/incubator-s4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s4/commit/a941dfd0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s4/tree/a941dfd0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s4/diff/a941dfd0
Branch: refs/heads/dev
Commit: a941dfd0e60bf5686c2b836d78c0106a9a7a1d86
Parents: 2ecb531
Author: Matthieu Morel <mm...@apache.org>
Authored: Mon Jan 21 18:44:43 2013 +0100
Committer: Matthieu Morel <mm...@apache.org>
Committed: Mon Jan 21 19:01:41 2013 +0100
----------------------------------------------------------------------
.../org/apache/s4/base/util/S4RLoaderFactory.java | 2 +-
.../core/moduleloader/ModuleLoaderTestUtils.java | 109 ++++++++++++++
.../s4/core/moduleloader/TestModuleLoader.java | 117 +--------------
.../core/moduleloader/TestModuleLoaderRemote.java | 19 ++-
4 files changed, 128 insertions(+), 119 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/a941dfd0/subprojects/s4-base/src/main/java/org/apache/s4/base/util/S4RLoaderFactory.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-base/src/main/java/org/apache/s4/base/util/S4RLoaderFactory.java b/subprojects/s4-base/src/main/java/org/apache/s4/base/util/S4RLoaderFactory.java
index 527c57f..0a2a5c2 100644
--- a/subprojects/s4-base/src/main/java/org/apache/s4/base/util/S4RLoaderFactory.java
+++ b/subprojects/s4-base/src/main/java/org/apache/s4/base/util/S4RLoaderFactory.java
@@ -69,7 +69,7 @@ public class S4RLoaderFactory {
File s4rDir = null;
if (tmpDir == null) {
s4rDir = Files.createTempDir();
- // s4rDir.deleteOnExit();
+ s4rDir.deleteOnExit();
logger.warn(
"s4.tmp.dir not specified, using temporary directory [{}] for unpacking S4R. You may want to specify a parent non-temporary directory.",
s4rDir.getAbsolutePath());
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/a941dfd0/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/ModuleLoaderTestUtils.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/ModuleLoaderTestUtils.java b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/ModuleLoaderTestUtils.java
new file mode 100644
index 0000000..3b95334
--- /dev/null
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/ModuleLoaderTestUtils.java
@@ -0,0 +1,109 @@
+package org.apache.s4.core.moduleloader;
+
+import java.io.File;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import junit.framework.Assert;
+
+import org.apache.s4.base.Emitter;
+import org.apache.s4.base.Event;
+import org.apache.s4.base.EventMessage;
+import org.apache.s4.base.SerializerDeserializer;
+import org.apache.s4.comm.DefaultCommModule;
+import org.apache.s4.comm.tcp.TCPEmitter;
+import org.apache.s4.comm.topology.ZkClient;
+import org.apache.s4.core.BaseModule;
+import org.apache.s4.core.S4Node;
+import org.apache.s4.core.util.AppConfig;
+import org.apache.s4.deploy.DeploymentUtils;
+import org.apache.s4.fixtures.CommTestUtils;
+import org.apache.s4.fixtures.CoreTestUtils;
+import org.apache.s4.wordcount.WordCountApp;
+import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.ZooKeeper;
+
+import com.beust.jcommander.internal.Lists;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+import com.google.common.io.Resources;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+public class ModuleLoaderTestUtils {
+
+ private static final int NB_MESSAGES = 10;
+
+ public static Process testModuleLoader(boolean fork) throws Exception {
+
+ Process forkedS4Node = null;
+ // build custom-modules.jar
+ File gradlewFile = CoreTestUtils.findGradlewInRootDir();
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/custom-modules/build.gradle"), "clean", new String[0]);
+
+ File modulesJarFile = new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/custom-modules/build/libs/app/custom-modules.jar");
+
+ Assert.assertFalse(modulesJarFile.exists());
+
+ CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
+ + "/test-apps/custom-modules/build.gradle"), "jar", new String[0]);
+
+ // make sure it is created
+ Assert.assertTrue(modulesJarFile.exists());
+
+ // pass it as a configuration
+ DeploymentUtils.initAppConfig(
+ new AppConfig.Builder().appClassName(WordCountApp.class.getName())
+ .customModulesURIs(ImmutableList.of(modulesJarFile.toURI().toString()))
+ .customModulesNames(ImmutableList.of("org.apache.s4.TestListenerModule")).build(), "cluster1",
+ true, "localhost:2181");
+ if (fork) {
+ forkedS4Node = CoreTestUtils.forkS4Node(new String[] { "-c", "cluster1" });
+ } else {
+ S4Node.main(new String[] { "-c", "cluster1" });
+ }
+
+ Injector injector = Guice.createInjector(new BaseModule(Resources.getResource("default.s4.base.properties")
+ .openStream(), "cluster1"), new DefaultCommModule(Resources.getResource("default.s4.comm.properties")
+ .openStream()));
+
+ Emitter emitter = injector.getInstance(TCPEmitter.class);
+ List<Long> messages = Lists.newArrayList();
+ for (int i = 0; i < NB_MESSAGES; i++) {
+ messages.add(System.currentTimeMillis());
+ }
+
+ ZkClient zkClient = new ZkClient("localhost:2181");
+ zkClient.create("/test", 0, CreateMode.PERSISTENT);
+
+ final ZooKeeper zk = CommTestUtils.createZkClient();
+ final CountDownLatch signalMessagesReceived = new CountDownLatch(1);
+
+ // watch for last message in test data sequence
+ CoreTestUtils.watchAndSignalCreation("/test/data" + Strings.padStart(String.valueOf(NB_MESSAGES - 1), 10, '0'),
+ signalMessagesReceived, zk);
+
+ for (Long message : messages) {
+ Event event = new Event();
+ event.put("message", long.class, message);
+ emitter.send(0, new EventMessage("-1", "inputStream", injector.getInstance(SerializerDeserializer.class)
+ .serialize(event)));
+ }
+
+ // check sequential nodes in zk with correct data
+ Assert.assertTrue(signalMessagesReceived.await(10, TimeUnit.SECONDS));
+ List<String> children = zkClient.getChildren("/test");
+ for (String child : children) {
+ Long data = zkClient.readData("/test/" + child);
+ Assert.assertTrue(messages.contains(data));
+ }
+
+ return forkedS4Node;
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/a941dfd0/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoader.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoader.java b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoader.java
index 5113a62..a1ee016 100644
--- a/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoader.java
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoader.java
@@ -1,131 +1,18 @@
package org.apache.s4.core.moduleloader;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import junit.framework.Assert;
-
-import org.apache.s4.base.Emitter;
-import org.apache.s4.base.Event;
-import org.apache.s4.base.EventMessage;
-import org.apache.s4.base.SerializerDeserializer;
-import org.apache.s4.comm.DefaultCommModule;
-import org.apache.s4.comm.tcp.TCPEmitter;
-import org.apache.s4.comm.topology.ZkClient;
-import org.apache.s4.core.BaseModule;
-import org.apache.s4.core.S4Node;
-import org.apache.s4.core.util.AppConfig;
-import org.apache.s4.deploy.DeploymentUtils;
-import org.apache.s4.fixtures.CommTestUtils;
-import org.apache.s4.fixtures.CoreTestUtils;
import org.apache.s4.fixtures.ZkBasedTest;
-import org.apache.s4.wordcount.WordCountApp;
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.ZooKeeper;
-import org.junit.After;
import org.junit.Test;
-import com.beust.jcommander.internal.Lists;
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableList;
-import com.google.common.io.Resources;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
public class TestModuleLoader extends ZkBasedTest {
- private static final int NB_MESSAGES = 10;
- private Process forkS4Node;
- private TCPEmitter emitter;
- private Injector injector;
-
public TestModuleLoader() {
+ // need 2 partitions: 1 for the test emitter, 1 for the S4 node
super(2);
}
@Test
public void testLocal() throws Exception {
- testModuleLoader(false);
- }
-
- protected void testModuleLoader(boolean fork) throws Exception {
-
- // build custom-modules.jar
- File gradlewFile = CoreTestUtils.findGradlewInRootDir();
-
- CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/custom-modules/build.gradle"), "clean", new String[0]);
-
- File modulesJarFile = new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/custom-modules/build/libs/app/custom-modules.jar");
-
- Assert.assertFalse(modulesJarFile.exists());
-
- CoreTestUtils.callGradleTask(new File(gradlewFile.getParentFile().getAbsolutePath()
- + "/test-apps/custom-modules/build.gradle"), "jar", new String[0]);
-
- // make sure it is created
- Assert.assertTrue(modulesJarFile.exists());
-
- // pass it as a configuration
- DeploymentUtils.initAppConfig(
- new AppConfig.Builder().appClassName(WordCountApp.class.getName())
- .customModulesURIs(ImmutableList.of(modulesJarFile.toURI().toString()))
- .customModulesNames(ImmutableList.of("org.apache.s4.TestListenerModule")).build(), "cluster1",
- true, "localhost:2181");
- if (fork) {
- forkS4Node = CoreTestUtils.forkS4Node(new String[] { "-c", "cluster1" });
- } else {
- S4Node.main(new String[] { "-c", "cluster1" });
- }
-
- // injector = Guice.createInjector(new BaseModule(
- // Resources.getResource("default.s4.base.properties").openStream(), "cluster1"),
- // new CommModuleWithoutListener(Resources.getResource("default.s4.comm.properties").openStream()));
-
- injector = Guice.createInjector(new BaseModule(
- Resources.getResource("default.s4.base.properties").openStream(), "cluster1"), new DefaultCommModule(
- Resources.getResource("default.s4.comm.properties").openStream()));
-
- Emitter emitter = injector.getInstance(TCPEmitter.class);
- List<Long> messages = Lists.newArrayList();
- for (int i = 0; i < NB_MESSAGES; i++) {
- messages.add(System.currentTimeMillis());
- }
-
- ZkClient zkClient = new ZkClient("localhost:2181");
- zkClient.create("/test", 0, CreateMode.PERSISTENT);
-
- final ZooKeeper zk = CommTestUtils.createZkClient();
- final CountDownLatch signalMessagesReceived = new CountDownLatch(1);
-
- // watch for last message in test data sequence
- CoreTestUtils.watchAndSignalCreation("/test/data" + Strings.padStart(String.valueOf(NB_MESSAGES - 1), 10, '0'),
- signalMessagesReceived, zk);
-
- for (Long message : messages) {
- Event event = new Event();
- event.put("message", long.class, message);
- emitter.send(0, new EventMessage("-1", "inputStream", injector.getInstance(SerializerDeserializer.class)
- .serialize(event)));
- }
-
- // check sequential nodes in zk with correct data
- Assert.assertTrue(signalMessagesReceived.await(10, TimeUnit.SECONDS));
- List<String> children = zkClient.getChildren("/test");
- for (String child : children) {
- Long data = zkClient.readData("/test/" + child);
- Assert.assertTrue(messages.contains(data));
- }
-
- }
-
- @After
- public void cleanUp() throws IOException, InterruptedException {
- CoreTestUtils.killS4App(forkS4Node);
+ ModuleLoaderTestUtils.testModuleLoader(false);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/a941dfd0/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoaderRemote.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoaderRemote.java b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoaderRemote.java
index 0ebbe8b..6f57ef6 100644
--- a/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoaderRemote.java
+++ b/subprojects/s4-core/src/test/java/org/apache/s4/core/moduleloader/TestModuleLoaderRemote.java
@@ -1,12 +1,25 @@
package org.apache.s4.core.moduleloader;
+import java.io.IOException;
+
+import org.apache.s4.fixtures.CoreTestUtils;
+import org.apache.s4.fixtures.ZkBasedTest;
+import org.junit.After;
import org.junit.Test;
-// separated from its parent in order to start with clean environment with forked tests
-public class TestModuleLoaderRemote extends TestModuleLoader {
+// uses a separate class from TestModuleLoader in order to use a clean environment (tests are assumed to forked)
+public class TestModuleLoaderRemote extends ZkBasedTest {
+
+ private Process forkedS4Node;
@Test
public void testRemote() throws Exception {
- testModuleLoader(true);
+ forkedS4Node = ModuleLoaderTestUtils.testModuleLoader(true);
}
+
+ @After
+ public void cleanUp() throws IOException, InterruptedException {
+ CoreTestUtils.killS4App(forkedS4Node);
+ }
+
}