You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sa...@apache.org on 2018/10/04 00:10:24 UTC

[geode] branch feature/GEODE-5787-refactor-dunit updated: wip2

This is an automated email from the ASF dual-hosted git repository.

sai_boorlagadda pushed a commit to branch feature/GEODE-5787-refactor-dunit
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-5787-refactor-dunit by this push:
     new fd74f42  wip2
fd74f42 is described below

commit fd74f422a84b4ca11a30e4d48a117b91c230b2dd
Author: Sai Boorlagadda <sb...@pivotal.io>
AuthorDate: Tue Oct 2 11:10:45 2018 -0700

    wip2
---
 .../geode/test/dunit/standalone/DUnitLauncher.java |  2 +-
 .../apache/geode/test/dunit2/ChildVMLauncher.java  |  7 ++---
 .../apache/geode/test/dunit2/DUnitEnvironment.java |  4 +++
 .../main/java/org/apache/geode/test/dunit2/VM.java | 35 ++++++++++++++++++++--
 .../java/org/apache/geode/test/dunit2/VMTest.java  |  7 +++--
 5 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
index 58c7c9b..39e5e4f 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
@@ -125,7 +125,7 @@ public class DUnitLauncher {
 
   public static final String RMI_PORT_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.RMI_PORT";
   public static final String VM_NUM_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_NUM";
-  static final String VM_VERSION_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_VERSION";
+  public static final String VM_VERSION_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_VERSION";
 
   private static final String LAUNCHED_PROPERTY = GEMFIRE_PREFIX + "DUnitLauncher.LAUNCHED";
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
index 6a19cab..40727b3 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
@@ -13,6 +13,8 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import org.apache.commons.io.FileUtils;
+
 import org.apache.geode.distributed.ConfigurationProperties;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.InternalLocator;
@@ -43,10 +45,6 @@ public class ChildVMLauncher {
     String[] cmd = buildJavaCommand(vmId, geodeVersion, registryHost, registryPort);
     System.out.println("Executing " + Arrays.toString(cmd));
 
-//    if (log4jConfig != null) {
-//      FileUtils.copyFileToDirectory(log4jConfig, workingDir);
-//    }
-
     // TODO - delete directory contents, preferably with commons io FileUtils
     Process process = Runtime.getRuntime().exec(cmd, null, workingDir);
     linkStreams(geodeVersion, vmId, process, process.getErrorStream(), System.err);
@@ -102,7 +100,6 @@ public class ChildVMLauncher {
     String jreLib = separator + "jre" + separator + "lib" + separator;
     classPath = removeFromPath(classPath, jreLib);
     cmds.add(classPath);
-    cmds.add("-D" + DUnitLauncher.RMI_HOST_PARAM + "=" + registryHost);
     cmds.add("-D" + DUnitLauncher.RMI_PORT_PARAM + "=" + registryPort);
     cmds.add("-D" + DUnitLauncher.VM_NUM_PARAM + "=" + vmId);
     cmds.add("-D" + DUnitLauncher.VM_VERSION_PARAM + "=" + geodeVersion);
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
index 62a3e72..555406b 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
@@ -4,4 +4,8 @@ public class DUnitEnvironment {
   public VM getVM(int i) {
     return new VM();
   }
+
+  public VM bounce(int i) {
+    //TODO:
+  }
 }
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
index 85ffcc5..87ce256 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
@@ -1,7 +1,10 @@
 package org.apache.geode.test.dunit2;
 
 import java.io.IOException;
+import java.rmi.NotBoundException;
 import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
 import java.util.concurrent.Callable;
 
 import hydra.MethExecutorResult;
@@ -13,11 +16,13 @@ import org.apache.geode.test.dunit.SerializableCallable;
 import org.apache.geode.test.dunit.SerializableCallableIF;
 import org.apache.geode.test.dunit.SerializableRunnable;
 import org.apache.geode.test.dunit.SerializableRunnableIF;
+import org.apache.geode.test.dunit.standalone.BounceResult;
 import org.apache.geode.test.dunit.standalone.RemoteDUnitVMIF;
+import org.apache.geode.test.dunit.standalone.VersionManager;
 
 public class VM {
   private ChildVMLauncher launcher;
-  private int id = 1;
+  private int id;
   private boolean alive = false;
 
   private Process process;
@@ -26,7 +31,13 @@ public class VM {
   public VM() {
 
   }
-  public VM(DUnitEnvConfig config, ChildVMLauncher launcher) {
+  public VM(int id, Process process, RemoteDUnitVMIF stub) {
+    this.id = id;
+    this.process = process;
+    this.stub = stub;
+  }
+
+  public VM(ChildVMLauncher launcher) {
     this.launcher = launcher;
   }
 
@@ -37,6 +48,26 @@ public class VM {
   public VM launch() throws IOException {
     alive = true;
     process = launcher.launch(1, "0", "0", "", 0);
+
+    //get the RMI stub
+
+    try {
+      if (!process.is(STARTUP_TIMEOUT)) {
+        throw new RuntimeException(STARTUP_TIMEOUT_MESSAGE);
+      }
+
+      Registry registry = LocateRegistry.createRegistry(rmiPort);
+      stub = (RemoteDUnitVMIF) registry.lookup(
+              org.apache.geode.test.dunit.VM.getVMName(VersionManager.CURRENT_VERSION, id));
+
+
+    } catch (RemoteException | NotBoundException e) {
+      throw new RuntimeException("could not lookup name", e);
+    } catch (InterruptedException e) {
+      throw new RuntimeException("Failed waiting for VM", e);
+    }
+  }
+
     return this;
   }
 
diff --git a/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java b/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
index 47e8fac..767df93 100644
--- a/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
+++ b/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
@@ -8,6 +8,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.contrib.java.lang.system.SystemOutRule;
 
+import org.apache.geode.test.dunit.standalone.VersionManager;
+
 public class VMTest {
 
   @Rule
@@ -32,10 +34,11 @@ public class VMTest {
   public void  testInvokeReturnsValueFromCallable() throws IOException {
     final String message = "Hello! World";
 
-    VM vm = new VM().launch();
+    ChildVMLauncher childVMLauncher = new ChildVMLauncher(new VersionManager());
+    VM vm = new VM(childVMLauncher).launch();
     String result = vm.invoke(() -> message);
 
     assertThat(result).isEqualTo(message);
   }
 
-}
\ No newline at end of file
+}