You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2022/01/14 12:38:20 UTC

[tinkerpop] branch master updated: when testing strings representing file contents cause the expected value to use system line-separators escape constructed literal strings representing file paths

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

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/master by this push:
     new b74e5f6  when testing strings representing file contents cause the expected value to use system line-separators escape constructed literal strings representing file paths
     new 15728ba  Merge pull request #1548 from phreed/TINKERPOP-2628-SQUASH
b74e5f6 is described below

commit b74e5f6560a76c8e1ec4d63a1b3b581f2fd26826
Author: fred eisele <fr...@vanderbilt.edu>
AuthorDate: Tue Jan 11 15:23:35 2022 -0600

    when testing strings representing file contents cause the expected value to use system line-separators
    escape constructed literal strings representing file paths
---
 .../traversal/util/DefaultTraversalMetrics.java    |  7 +++---
 .../util/DefaultTraversalMetricsTest.java          | 27 ++++++++++++----------
 gremlin-dotnet/src/pom.xml                         | 17 ++++++++++----
 gremlin-javascript/pom.xml                         | 13 +++++++++--
 .../tinkerpop/gremlin/features/StepDefinition.java |  8 ++++---
 gremlin-tools/gremlin-io-test/pom.xml              |  9 ++++++--
 .../tinkerpop/gremlin/structure/io/Model.java      |  9 +++++---
 gremlint/pom.xml                                   | 13 +++++++++--
 pom.xml                                            |  2 +-
 9 files changed, 73 insertions(+), 32 deletions(-)

diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
index 2c4b0e8..301cb83 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
@@ -118,10 +118,11 @@ public final class DefaultTraversalMetrics implements TraversalMetrics, Serializ
         // Build a pretty table of metrics data.
 
         // Append headers
-        final StringBuilder sb = new StringBuilder("Traversal Metrics\n")
+        final StringBuilder sb = new StringBuilder("Traversal Metrics")
+                .append(System.lineSeparator())
                 .append(String.format("%-50s %21s %11s %15s %8s", HEADERS));
-
-        sb.append("\n=============================================================================================================");
+        sb.append(System.lineSeparator());
+        sb.append("=============================================================================================================");
 
         appendMetrics(this.positionIndexedMetrics.values(), sb, 0);
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetricsTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetricsTest.java
index 9c4c2d8..6fef9b1 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetricsTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetricsTest.java
@@ -19,6 +19,8 @@
 package org.apache.tinkerpop.gremlin.process.traversal.util;
 
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -47,18 +49,19 @@ public class DefaultTraversalMetricsTest {
         childMetrics.addNested(backendMetrics);
 
         final DefaultTraversalMetrics profile = new DefaultTraversalMetrics(100, metrics);
-        final String expectedOutput = "Traversal Metrics\n" +
-                "Step                                                               Count  Traversers       Time (ms)    % Dur\n" +
-                "=============================================================================================================\n" +
-                "GraphStep                                                                                      0.000\n" +
-                "  GraphQuery                                                                                   0.000\n" +
-                "    \\_condition=name = Bob\n" +
-                "    AND-Query                                                                                  0.000\n" +
-                "      \\_index=gIndex\n" +
-                "      \\_query-hint=ZSORTED\n" +
-                "      backend-query                                                                            0.000\n" +
-                "        \\_query=gIndex:slice-query\n" +
+        final String LS = System.lineSeparator();
+        final String expectedOutput = "Traversal Metrics" + LS +
+                "Step                                                               Count  Traversers       Time (ms)    % Dur" + LS +
+                "=============================================================================================================" + LS +
+                "GraphStep                                                                                      0.000" + LS +
+                "  GraphQuery                                                                                   0.000" + LS +
+                "    \\_condition=name = Bob" + LS +
+                "    AND-Query                                                                                  0.000" + LS +
+                "      \\_index=gIndex" + LS +
+                "      \\_query-hint=ZSORTED" + LS +
+                "      backend-query                                                                            0.000" + LS +
+                "        \\_query=gIndex:slice-query" + LS +
                 "                                            >TOTAL                     -           -           0.000        -";
-        assertEquals(expectedOutput, profile.toString());
+        assertEquals("traversal metrics", expectedOutput, profile.toString());
     }
 }
diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml
index 9a6c7f5..f2a8480 100644
--- a/gremlin-dotnet/src/pom.xml
+++ b/gremlin-dotnet/src/pom.xml
@@ -53,16 +53,25 @@ limitations under the License.
                             <goal>execute</goal>
                         </goals>
                         <configuration>
+                            <properties>
+                                <property>
+                                    <name>projectBaseDir</name>
+                                    <value>${project.basedir}</value>
+                                </property>
+                                <property>
+                                    <name>mavenVersion</name>
+                                    <value>${project.version}</value>
+                                </property>
+                            </properties>
                             <scripts>
                                 <script>
-def mavenVersion = "${project.version}"
-def file = new File("${project.basedir}/Gremlin.Net/Gremlin.Net.csproj")
+def file = new File(projectBaseDir,"Gremlin.Net/Gremlin.Net.csproj")
 file.write(file.getText("UTF-8").replaceFirst(/&lt;Version&gt;(.*)&lt;\/Version&gt;/, "&lt;Version&gt;" + mavenVersion + "&lt;/Version&gt;"))
 
-file = new File("${project.basedir}/Gremlin.Net.Template/Gremlin.Net.Template.csproj")
+file = new File(projectBaseDir,"Gremlin.Net.Template/Gremlin.Net.Template.csproj")
 file.write(file.getText("UTF-8").replaceFirst(/Version="(.*)"/, "Version=\"" + mavenVersion + "\""))
 
-file = new File("${project.basedir}/Gremlin.Net.Template/Gremlin.Net.Template.nuspec")
+file = new File(projectBaseDir,"Gremlin.Net.Template/Gremlin.Net.Template.nuspec")
 file.write(file.getText("UTF-8").replaceFirst(/&lt;version&gt;(.*)&lt;\/version&gt;/, "&lt;version&gt;" + mavenVersion + "&lt;/version&gt;"))
                                 </script>
                             </scripts>
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index 2175683..4766bf3 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -119,11 +119,20 @@ limitations under the License.
                             <goal>execute</goal>
                         </goals>
                         <configuration>
+                            <properties>
+                                <property>
+                                    <name>projectBaseDir</name>
+                                    <value>${project.basedir}</value>
+                                </property>
+                                <property>
+                                    <name>mavenVersion</name>
+                                    <value>${project.version}</value>
+                                </property>
+                            </properties>
                             <scripts>
                                 <script>
-def mavenVersion = "${project.version}"
 def versionForJs = mavenVersion.replace("-SNAPSHOT", "-alpha1")
-def file = new File("${project.basedir}/src/main/javascript/gremlin-javascript/package.json")
+def file = new File(projectBaseDir, "src/main/javascript/gremlin-javascript/package.json")
 file.write(file.getText("UTF-8").replaceFirst(/"version": "(.*)",/, "\"version\": \"" + versionForJs + "\","))
                                 </script>
                             </scripts>
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
index e4d5e37..8976a12 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
@@ -45,6 +45,7 @@ import org.javatuples.Pair;
 import org.javatuples.Triplet;
 import org.junit.AssumptionViolatedException;
 
+import static org.apache.commons.text.StringEscapeUtils.escapeJava;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.collection.IsIn.in;
@@ -475,8 +476,9 @@ public final class StepDefinition {
 
     private String tryUpdateDataFilePath(final String docString) {
         final Matcher matcher = ioPattern.matcher(docString);
-        final String gremlin = matcher.matches() ?
-                docString.replace(matcher.group(1), world.changePathToDataFile(matcher.group(1))) : docString;
-        return gremlin;
+        if (! matcher.matches()) { return docString; }
+        final String relPath = matcher.group(1);
+        final String absPath = world.changePathToDataFile(relPath);
+        return docString.replace(relPath, escapeJava(absPath));
     }
 }
diff --git a/gremlin-tools/gremlin-io-test/pom.xml b/gremlin-tools/gremlin-io-test/pom.xml
index 999939e..a329f3b 100644
--- a/gremlin-tools/gremlin-io-test/pom.xml
+++ b/gremlin-tools/gremlin-io-test/pom.xml
@@ -197,14 +197,19 @@
                                     <goal>execute</goal>
                                 </goals>
                                 <configuration>
+                                    <properties>
+                                        <property>
+                                            <name>projectBuildDir</name>
+                                            <value>${project.build.directory}</value>
+                                        </property>
+                                    </properties>
                                     <scripts>
                                         <script>
                                             <![CDATA[
 import org.apache.tinkerpop.gremlin.structure.io.Model
 import java.io.File
 
-new File("${project.build.directory}/dev-docs/").mkdirs()
-Model.instance().saveAsCsv("${project.build.directory}/dev-docs/model.csv")
+Model.instance().saveAsCsv(new File(projectBuildDir, "dev-docs/model.csv"))
 ]]>
                                         </script>
                                     </scripts>
diff --git a/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
index 62aad55..87e5f86 100644
--- a/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
+++ b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
@@ -423,8 +423,11 @@ public class Model {
     }
 
     public void saveAsCsv(final String file) throws Exception {
-        final File f = new File(file);
-        f.getParentFile().mkdirs();
+        saveAsCsv(new File(file));
+    }
+
+    public void saveAsCsv(final File file) throws Exception {
+        file.getParentFile().mkdirs();
 
         final List<Compatibility> compatibilities = Stream.concat(
                 Stream.of(GraphSONCompatibility.values()),
@@ -443,7 +446,7 @@ public class Model {
                 throw new IllegalStateException("No support for the provided Compatibility type");
         }).collect(Collectors.toList()));
 
-        try (final PrintWriter writer = new PrintWriter(f)) {
+        try (final PrintWriter writer = new PrintWriter(file)) {
             writer.println(String.join(",", headers));
 
             final List<Entry> sorted = new ArrayList<>(entries());
diff --git a/gremlint/pom.xml b/gremlint/pom.xml
index af6c7a4..d53b17e 100644
--- a/gremlint/pom.xml
+++ b/gremlint/pom.xml
@@ -68,11 +68,20 @@ limitations under the License.
                             <goal>execute</goal>
                         </goals>
                         <configuration>
+                            <properties>
+                                <property>
+                                    <name>projectBaseDir</name>
+                                    <value>${project.basedir}</value>
+                                </property>
+                                <property>
+                                    <name>mavenVersion</name>
+                                    <value>${project.version}</value>
+                                </property>
+                            </properties>
                             <scripts>
                                 <script>
-                                    def mavenVersion = "${project.version}"
                                     def versionForJs = mavenVersion.replace("-SNAPSHOT", "-alpha1")
-                                    def file = new File("${project.basedir}/package.json")
+                                    def file = new File(projectBaseDir,"package.json")
                                     file.write(file.getText("UTF-8").replaceFirst(/"version": "(.*)",/, "\"version\": \"" + versionForJs + "\","))
                                 </script>
                             </scripts>
diff --git a/pom.xml b/pom.xml
index d75f368..f89fc9d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -400,7 +400,7 @@ limitations under the License.
                         <exclude>.repository/**</exclude>
                         <exclude>**/target/**</exclude>
                         <exclude>data/*.txt</exclude>
-                        <exclude>bin/gremlin.sh</exclude>
+                        <exclude>**/bin/gremlin.sh</exclude>
                         <exclude>docs/static/**</exclude>
                         <exclude>docs/site/home/css/**</exclude>
                         <exclude>docs/site/home/js/**</exclude>