Repository: incubator-beam
Updated Branches:
  refs/heads/master b1ecf2461 -> 8b1e64a66


Added Bigtable Read DisplayData


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

Branch: refs/heads/master
Commit: 14bac44c7295095bedcfc30cae3fa8b04fe5a88e
Parents: b1ecf24
Author: Ian Zhou <[email protected]>
Authored: Thu Jul 28 17:46:21 2016 -0700
Committer: Dan Halperin <[email protected]>
Committed: Fri Jul 29 15:59:01 2016 -0700

----------------------------------------------------------------------
 .../beam/sdk/io/gcp/bigtable/BigtableIO.java    | 13 ++++++++++
 .../sdk/io/gcp/bigtable/BigtableIOTest.java     | 25 ++++++++++++++++++++
 2 files changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/14bac44c/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
index 84d52f6..f4082d4 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java
@@ -811,6 +811,19 @@ public class BigtableIO {
     }
 
     @Override
+    public void populateDisplayData(DisplayData.Builder builder) {
+      super.populateDisplayData(builder);
+
+      builder.add(DisplayData.item("tableId", tableId)
+          .withLabel("Table ID"));
+
+      if (filter != null) {
+        builder.add(DisplayData.item("rowFilter", filter.toString())
+            .withLabel("Table Row Filter"));
+      }
+    }
+
+    @Override
     public Coder<Row> getDefaultOutputCoder() {
       return ProtoCoder.of(Row.class);
     }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/14bac44c/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIOTest.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIOTest.java
 
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIOTest.java
index f5f0682..adf45a4 100644
--- 
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIOTest.java
+++ 
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIOTest.java
@@ -45,6 +45,7 @@ import org.apache.beam.sdk.testing.PAssert;
 import org.apache.beam.sdk.testing.TestPipeline;
 import org.apache.beam.sdk.transforms.Create;
 import org.apache.beam.sdk.transforms.display.DisplayData;
+import org.apache.beam.sdk.transforms.display.DisplayDataEvaluator;
 import org.apache.beam.sdk.values.KV;
 import org.apache.beam.sdk.values.PCollection;
 import org.apache.beam.sdk.values.TypeDescriptor;
@@ -86,6 +87,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
@@ -428,6 +430,29 @@ public class BigtableIOTest {
     assertThat(displayData, hasDisplayItem("bigtableOptions"));
   }
 
+  @Test
+  public void testReadingPrimitiveDisplayData() throws IOException, 
InterruptedException {
+    final String table = "fooTable";
+    service.createTable(table);
+
+    RowFilter rowFilter = RowFilter.newBuilder()
+        .setRowKeyRegexFilter(ByteString.copyFromUtf8("foo.*"))
+        .build();
+
+    DisplayDataEvaluator evaluator = DisplayDataEvaluator.create();
+    BigtableIO.Read read = BigtableIO.read()
+        .withBigtableOptions(BIGTABLE_OPTIONS)
+        .withTableId(table)
+        .withRowFilter(rowFilter)
+        .withBigtableService(service);
+
+    Set<DisplayData> displayData = 
evaluator.displayDataForPrimitiveSourceTransforms(read);
+    assertThat("BigtableIO.Read should include the table id in its primitive 
display data",
+        displayData, Matchers.hasItem(hasDisplayItem("tableId")));
+    assertThat("BigtableIO.Read should include the row filter, if it exists, 
in its primitive "
+        + "display data", displayData, 
Matchers.hasItem(hasDisplayItem("rowFilter")));
+  }
+
   /** Tests that a record gets written to the service and messages are logged. 
*/
   @Test
   public void testWriting() throws Exception {

Reply via email to