You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by dh...@apache.org on 2017/04/26 19:37:41 UTC

[3/4] beam git commit: LocalResourceId: make toString end in '/' for directories

LocalResourceId: make toString end in '/' for directories


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

Branch: refs/heads/master
Commit: e07ba68ea380064ecb8bb9c838e712e2457214c6
Parents: 85aaa62
Author: Dan Halperin <dh...@google.com>
Authored: Tue Apr 25 20:48:52 2017 -0700
Committer: Dan Halperin <dh...@google.com>
Committed: Wed Apr 26 12:27:42 2017 -0700

----------------------------------------------------------------------
 .../org/apache/beam/sdk/io/LocalResourceId.java |  4 +++-
 .../apache/beam/sdk/io/LocalResourceIdTest.java | 23 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/e07ba68e/sdks/java/core/src/main/java/org/apache/beam/sdk/io/LocalResourceId.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/LocalResourceId.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/LocalResourceId.java
index 091e955..9aa765b 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/LocalResourceId.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/LocalResourceId.java
@@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 
+import java.io.File;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Objects;
@@ -45,7 +46,8 @@ class LocalResourceId implements ResourceId {
   }
 
   private LocalResourceId(Path path, boolean isDirectory) {
-    this.pathString = path.normalize().toString();
+    this.pathString = path.toAbsolutePath().normalize().toString()
+        + (isDirectory ? File.separatorChar : "");
     this.isDirectory = isDirectory;
   }
 

http://git-wip-us.apache.org/repos/asf/beam/blob/e07ba68e/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
index 37bd303..7a5f0be 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
@@ -17,9 +17,15 @@
  */
 package org.apache.beam.sdk.io;
 
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.endsWith;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.startsWith;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThat;
 
+import java.io.File;
 import java.nio.file.Paths;
 import org.apache.beam.sdk.io.fs.ResolveOptions.StandardResolveOptions;
 import org.apache.beam.sdk.io.fs.ResourceId;
@@ -27,6 +33,7 @@ import org.apache.commons.lang3.SystemUtils;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
@@ -40,6 +47,8 @@ public class LocalResourceIdTest {
 
   @Rule
   public ExpectedException thrown = ExpectedException.none();
+  @Rule
+  public TemporaryFolder tmpFolder = new TemporaryFolder();
 
   @Test
   public void testResolveInUnix() throws Exception {
@@ -214,6 +223,20 @@ public class LocalResourceIdTest {
         toResourceIdentifier("/root/tmp/"));
   }
 
+  @Test
+  public void testToString() throws Exception {
+    File someFile = tmpFolder.newFile("somefile");
+    LocalResourceId fileResource = LocalResourceId.fromPath(someFile.toPath(), false);
+    assertThat(fileResource.toString(), not(endsWith(File.separator)));
+    assertThat(fileResource.toString(), containsString("somefile"));
+    assertThat(fileResource.toString(), startsWith(tmpFolder.getRoot().getAbsolutePath()));
+
+    LocalResourceId dirResource = LocalResourceId.fromPath(someFile.toPath(), true);
+    assertThat(dirResource.toString(), endsWith(File.separator));
+    assertThat(dirResource.toString(), containsString("somefile"));
+    assertThat(dirResource.toString(), startsWith(tmpFolder.getRoot().getAbsolutePath()));
+  }
+
   private LocalResourceId toResourceIdentifier(String str) throws Exception {
     boolean isDirectory;
     if (SystemUtils.IS_OS_WINDOWS) {