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

[geode] branch add-extensions-to-classpath-155484283 updated (bcafe0e -> b1c9498)

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

jchen21 pushed a change to branch add-extensions-to-classpath-155484283
in repository https://gitbox.apache.org/repos/asf/geode.git.


 discard bcafe0e  Add extensions jars to locator/server's classpath
     new b1c9498  Add extensions jars to locator/server's classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (bcafe0e)
            \
             N -- N -- N   refs/heads/add-extensions-to-classpath-155484283 (b1c9498)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../geode/management/internal/cli/commands/StartMemberUtils.java      | 2 --
 .../geode/management/internal/cli/commands/StartServerCommand.java    | 2 +-
 .../geode/management/internal/cli/commands/StartMemberUtilsTest.java  | 4 ----
 3 files changed, 1 insertion(+), 7 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
jchen21@apache.org.

[geode] 01/01: Add extensions jars to locator/server's classpath

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch add-extensions-to-classpath-155484283
in repository https://gitbox.apache.org/repos/asf/geode.git

commit b1c949809053f51b17447786e47563b9d28e45ce
Author: Orhan Kislal <ok...@apache.org>
AuthorDate: Thu Mar 22 15:42:01 2018 -0700

    Add extensions jars to locator/server's classpath
    
    [GEODE-4923]
    
    Signed-off-by: Jianxia Chen <jc...@apache.org>
    Signed-off-by: Orhan Kislal <ok...@apache.org>
---
 .../internal/cli/commands/StartLocatorCommand.java | 27 +++++++++++++++++++++-
 .../internal/cli/commands/StartMemberUtils.java    | 25 +-------------------
 .../internal/cli/commands/StartServerCommand.java  | 22 ++++++++++++++++++
 .../cli/commands/StartMemberUtilsTest.java         | 26 ++++++++++++++++++++-
 4 files changed, 74 insertions(+), 26 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
index 4a82736..8d82238 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
@@ -18,6 +18,7 @@ package org.apache.geode.management.internal.cli.commands;
 import java.io.File;
 import java.net.InetAddress;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
@@ -25,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 import javax.management.MalformedObjectNameException;
 import javax.net.ssl.SSLException;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
 
@@ -470,7 +472,30 @@ public class StartLocatorCommand extends GfshCommand {
   }
 
   String getLocatorClasspath(final boolean includeSystemClasspath, final String userClasspath) {
+    List<String> jarFilePathnames = new ArrayList<>();
+    jarFilePathnames.add(StartMemberUtils.CORE_DEPENDENCIES_JAR_PATHNAME);
+    // include all extension dependencies on the CLASSPATH...
+    for (String extensionsJarPathname : getExtensionsJars()) {
+      if (org.apache.commons.lang.StringUtils.isNotBlank(extensionsJarPathname)) {
+        jarFilePathnames.add(extensionsJarPathname);
+      }
+    }
+
     return StartMemberUtils.toClasspath(includeSystemClasspath,
-        new String[] {StartMemberUtils.CORE_DEPENDENCIES_JAR_PATHNAME}, userClasspath);
+        jarFilePathnames.toArray(new String[jarFilePathnames.size()]), userClasspath);
+  }
+
+  private String[] getExtensionsJars() {
+    File extensionsDirectory = new File(StartMemberUtils.EXTENSIONS_PATHNAME);
+    File[] extensionsJars = extensionsDirectory.listFiles();
+
+    if (extensionsJars != null) {
+      // assume `extensions` directory does not contain any subdirectories. It only contains jars.
+      return Arrays.stream(extensionsJars).filter(file -> file.isFile()).map(
+          file -> IOUtils.appendToPath(StartMemberUtils.GEODE_HOME, "extensions", file.getName()))
+          .toArray(String[]::new);
+    } else {
+      return ArrayUtils.EMPTY_STRING_ARRAY;
+    }
   }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartMemberUtils.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartMemberUtils.java
index 184c339..ab9e9af 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartMemberUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartMemberUtils.java
@@ -232,22 +232,13 @@ public class StartMemberUtils {
     jarFilePathnames =
         (jarFilePathnames != null ? jarFilePathnames : ArrayUtils.EMPTY_STRING_ARRAY);
 
-    // Now, include all GemFire dependencies on the CLASSPATH...
+    // And finally, include all GemFire dependencies on the CLASSPATH...
     for (String jarFilePathname : jarFilePathnames) {
       if (StringUtils.isNotBlank(jarFilePathname)) {
         classpath.append((classpath.length() == 0) ? StringUtils.EMPTY : File.pathSeparator);
         classpath.append(jarFilePathname);
       }
     }
-
-    // And finally, include all extension dependencies on the CLASS`PATH...
-    for (String extensionsJarPathname : getExtensionsJars()) {
-      if (StringUtils.isNotBlank(extensionsJarPathname)) {
-        classpath.append((classpath.length() == 0) ? StringUtils.EMPTY : File.pathSeparator);
-        classpath.append(extensionsJarPathname);
-      }
-    }
-
     return classpath.toString();
   }
 
@@ -262,18 +253,4 @@ public class StartMemberUtils {
     }
     return gemfireJarPath;
   }
-
-  private static String[] getExtensionsJars() {
-    File extensionsDirectory = new File(EXTENSIONS_PATHNAME);
-    File[] extensionsJars = extensionsDirectory.listFiles();
-
-    if (extensionsJars != null) {
-      // assume `extensions` directory does not contain any subdirectories. It only contains jars.
-      return Arrays.stream(extensionsJars).filter(file -> file.isFile())
-          .map(file -> IOUtils.appendToPath(GEODE_HOME, "extensions", file.getName()))
-          .toArray(String[]::new);
-    } else {
-      return ArrayUtils.EMPTY_STRING_ARRAY;
-    }
-  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
index e12ca15..8545482 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
@@ -17,12 +17,14 @@ package org.apache.geode.management.internal.cli.commands;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import javax.management.MalformedObjectNameException;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
 
@@ -529,11 +531,31 @@ public class StartServerCommand extends GfshCommand {
     List<String> jarFilePathnames = new ArrayList<>();
 
     jarFilePathnames.add(StartMemberUtils.CORE_DEPENDENCIES_JAR_PATHNAME);
+    // include all extension dependencies on the CLASSPATH...
+    for (String extensionsJarPathname : getExtensionsJars()) {
+      if (org.apache.commons.lang.StringUtils.isNotBlank(extensionsJarPathname)) {
+        jarFilePathnames.add(extensionsJarPathname);
+      }
+    }
 
     return StartMemberUtils.toClasspath(includeSystemClasspath,
         jarFilePathnames.toArray(new String[jarFilePathnames.size()]), userClasspath);
   }
 
+  private String[] getExtensionsJars() {
+    File extensionsDirectory = new File(StartMemberUtils.EXTENSIONS_PATHNAME);
+    File[] extensionsJars = extensionsDirectory.listFiles();
+
+    if (extensionsJars != null) {
+      // assume `extensions` directory does not contain any subdirectories. It only contains jars.
+      return Arrays.stream(extensionsJars).filter(file -> file.isFile()).map(
+          file -> IOUtils.appendToPath(StartMemberUtils.GEODE_HOME, "extensions", file.getName()))
+          .toArray(String[]::new);
+    } else {
+      return ArrayUtils.EMPTY_STRING_ARRAY;
+    }
+  }
+
   private void addJvmOptionsForOutOfMemoryErrors(final List<String> commandLine) {
     if (SystemUtils.isHotSpotVM()) {
       if (SystemUtils.isWindows()) {
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/StartMemberUtilsTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/StartMemberUtilsTest.java
index e0b327d..43611d6 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/StartMemberUtilsTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/StartMemberUtilsTest.java
@@ -26,7 +26,6 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
@@ -106,6 +105,31 @@ public class StartMemberUtilsTest {
   }
 
   @Test
+  public void testExtensionsJars() throws IOException {
+
+    // when there is no `extensions` directory
+    String gemfireClasspath = StartMemberUtils.toClasspath(true, new String[0]);
+    assertThat(gemfireClasspath).doesNotContain("extensions");
+
+    if (File.separatorChar == '/') {
+      File extensionsDirectory = new File("/tmp/extensions");
+      try {
+
+        boolean result = extensionsDirectory.mkdir();
+        assertThat(result).isTrue();
+        File jarFile = new File("/tmp/extensions/test.jar");
+        result = jarFile.createNewFile();
+        assertThat(result).isTrue();
+        gemfireClasspath =
+            StartMemberUtils.toClasspath(true, new String[]{jarFile.getAbsolutePath()});
+        assertThat(gemfireClasspath).contains(jarFile.getName());
+      } finally {
+        FileUtils.deleteDirectory(extensionsDirectory);
+      }
+    }
+  }
+
+  @Test
   public void testAddMaxHeap() {
     List<String> baseCommandLine = new ArrayList<>();
 

-- 
To stop receiving notification emails like this one, please contact
jchen21@apache.org.