geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aba...@apache.org
Subject [12/58] [abbrv] geode git commit: GEODE-3054: escaping the escape character in the command string before passing it to the SimpleParser
Date Mon, 17 Jul 2017 18:06:21 GMT
GEODE-3054: escaping the escape character in the command string before passing it to the SimpleParser

(cherry picked from commit 2579a0d)


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/20bfe32c
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/20bfe32c
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/20bfe32c

Branch: refs/heads/master
Commit: 20bfe32c47c443149b80e494f21f4924be61d6bf
Parents: 5eca6f0
Author: Jinmei Liao <jiliao@pivotal.io>
Authored: Thu Jun 8 11:08:03 2017 -0700
Committer: Jinmei Liao <jiliao@pivotal.io>
Committed: Fri Jun 9 10:47:37 2017 -0700

----------------------------------------------------------------------
 .../management/internal/cli/GfshParser.java     |  2 +
 .../internal/cli/MultipleValueAdapter.java      | 35 -------------
 .../internal/cli/MultipleValueConverter.java    | 55 --------------------
 .../internal/cli/GfshParserParsingTest.java     | 29 +++++++++++
 4 files changed, 31 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/20bfe32c/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
index df16e9b..b5c24cb 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
@@ -177,6 +177,8 @@ public class GfshParser extends SimpleParser {
   public GfshParseResult parse(String userInput) {
     String rawInput = convertToSimpleParserInput(userInput);
 
+    // this tells the simpleParser not to interpret backslash as escaping character
+    rawInput = rawInput.replace("\\", "\\\\");
     // User SimpleParser to parse the input
     ParseResult result = super.parse(rawInput);
 

http://git-wip-us.apache.org/repos/asf/geode/blob/20bfe32c/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueAdapter.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueAdapter.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueAdapter.java
deleted file mode 100644
index 5c466a0..0000000
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueAdapter.java
+++ /dev/null
@@ -1,35 +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.geode.management.internal.cli;
-
-import java.util.List;
-
-import org.springframework.shell.core.Completion;
-import org.springframework.shell.core.MethodTarget;
-
-public abstract class MultipleValueAdapter<T> implements MultipleValueConverter<T>
{
-
-  @Override
-  public T convertFromText(String value, Class<?> targetType, String optionContext)
{
-    return null;
-  }
-
-  @Override
-  public boolean getAllPossibleValues(List<Completion> completions, Class<?>
targetType,
-      String existingData, String optionContext, MethodTarget target) {
-    return false;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/20bfe32c/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueConverter.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueConverter.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueConverter.java
deleted file mode 100644
index e3e1fec..0000000
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/MultipleValueConverter.java
+++ /dev/null
@@ -1,55 +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.geode.management.internal.cli;
-
-import java.util.List;
-
-import org.springframework.shell.core.Completion;
-import org.springframework.shell.core.Converter;
-import org.springframework.shell.core.MethodTarget;
-
-/**
- * Extends {@link Converter} to add multiple value support
- * 
- * 
- * @param <T>
- */
-public interface MultipleValueConverter<T> extends Converter<T> {
-
-  /**
-   * Similar to {@link Converter#convertFromText(String, Class, String)} but with support
for
-   * multiple values
-   * 
-   * @param value
-   * @param targetType
-   * @param context
-   * @return required Data
-   */
-  T convertFromText(String[] value, Class<?> targetType, String context);
-
-  /**
-   * Similar to {@link Converter#getAllPossibleValues(List, Class, String, String, MethodTarget)}
-   * but with support for multiple values
-   * 
-   * @param completions
-   * @param targetType
-   * @param existingData
-   * @param context
-   * @param target
-   * @return required Data
-   */
-  boolean getAllPossibleValues(List<Completion> completions, Class<?> targetType,
-      String[] existingData, String context, MethodTarget target);
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/20bfe32c/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserParsingTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserParsingTest.java
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserParsingTest.java
index ab6dc3d..a2efb36 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserParsingTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/GfshParserParsingTest.java
@@ -262,4 +262,33 @@ public class GfshParserParsingTest {
     assertThat(result).isNotNull();
   }
 
+
+  @Test
+  public void testCommandWithBackSlash() throws Exception {
+    String command =
+        "describe offline-disk-store --name=testDiskStore --disk-dirs=R:\\regrResults\\test";
+    GfshParseResult result = parser.parse(command);
+    assertThat(result.getParamValue("disk-dirs")).isEqualTo("R:\\regrResults\\test");
+  }
+
+  @Test
+  public void testCommandWithBackSlashTwo() throws Exception {
+    String command = "start locator --name=\\test";
+    GfshParseResult result = parser.parse(command);
+    assertThat(result.getParamValue("name")).isEqualTo("\\test");
+  }
+
+  @Test
+  public void testCommandWithBackSlashThree() throws Exception {
+    String command = "start locator --name=\\myName";
+    GfshParseResult result = parser.parse(command);
+    assertThat(result.getParamValue("name")).isEqualTo("\\myName");
+  }
+
+  @Test
+  public void testCommandWithBackSlashFour() throws Exception {
+    String command = "start locator --name=\\u0005Name";
+    GfshParseResult result = parser.parse(command);
+    assertThat(result.getParamValue("name")).isEqualTo("\\u0005Name");
+  }
 }


Mime
View raw message