diff --git a/bigquery/cloud-client/README.md b/bigquery/cloud-client/README.md
index a8dd6cf6702..6b86d256e79 100644
--- a/bigquery/cloud-client/README.md
+++ b/bigquery/cloud-client/README.md
@@ -12,6 +12,9 @@ the [Google Cloud Client Library for Java][google-cloud-java].
Install [Maven](http://maven.apache.org/).
+[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started).
+Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable.
+
Build your project with:
mvn clean package -DskipTests
diff --git a/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java b/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java
index e1b40c4e7cd..b2fce8bcf00 100644
--- a/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java
+++ b/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java
@@ -25,7 +25,9 @@
public class QuickstartSample {
public static void main(String... args) throws Exception {
- // Instantiates a client
+ // Instantiate a client. If you don't specify credentials when constructing a client, the
+ // client library will look for credentials in the environment, such as the
+ // GOOGLE_APPLICATION_CREDENTIALS environment variable.
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
// The name for the new dataset
diff --git a/bigquery/datatransfer/cloud-client/README.md b/bigquery/datatransfer/cloud-client/README.md
new file mode 100644
index 00000000000..b3599d89c71
--- /dev/null
+++ b/bigquery/datatransfer/cloud-client/README.md
@@ -0,0 +1,32 @@
+# Getting Started with BigQuery Data Transfer API
+
+[BigQuery Data Transfer Service][BigQuery Data Transfer] features an API that
+allows developers to create transfer jobs from data sources to BigQuery.
+These sample Java applications demonstrate how to access the BigQuery Data
+Transfer API using the [Google Cloud Client Library for
+Java][google-cloud-java].
+
+[BigQuery Data Transfer]: https://cloud.google.com/bigquery/docs/transfer-service-overview
+[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java
+
+## Quickstart
+
+Install [Maven](http://maven.apache.org/).
+
+[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started).
+Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable.
+
+Build your project with:
+
+ mvn clean package -DskipTests
+
+You can then run a given `ClassName` via:
+
+ mvn exec:java -Dexec.mainClass=com.example.bigquerydatatransfer.ClassName \
+ -DpropertyName=propertyValue \
+ -Dexec.args="any arguments to the app"
+
+### Listing available data sources
+
+ mvn exec:java -Dexec.mainClass=com.example.bigquerydatatransfer.QuickstartSample \
+ -Dexec.args='YOUR_PROJECT_ID'
diff --git a/bigquery/datatransfer/cloud-client/pom.xml b/bigquery/datatransfer/cloud-client/pom.xml
new file mode 100644
index 00000000000..eec8a9a49ea
--- /dev/null
+++ b/bigquery/datatransfer/cloud-client/pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+ com.example.bigquerydatatransfer
+ bigquerydatatransfer-google-cloud-samples
+ jar
+
+
+
+ doc-samples
+ com.google.cloud
+ 1.0.0
+ ../../..
+
+
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+ com.google.cloud
+ google-cloud-bigquerydatatransfer
+ 0.32.0-beta
+
+
+
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ com.google.truth
+ truth
+ 0.36
+ test
+
+
+
diff --git a/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java b/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java
new file mode 100644
index 00000000000..0fad9ebed87
--- /dev/null
+++ b/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java
@@ -0,0 +1,58 @@
+/*
+ Copyright 2018 Google LLC
+
+ Licensed 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 com.example.bigquerydatatransfer;
+
+// [START bigquery_datatransfer_quickstart]
+// Imports the Google Cloud client library
+import com.google.cloud.bigquery.datatransfer.v1.DataSource;
+import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
+import com.google.cloud.bigquery.datatransfer.v1.ListDataSourcesRequest;
+import com.google.cloud.bigquery.datatransfer.v1.PagedResponseWrappers.ListDataSourcesPagedResponse;
+
+public class QuickstartSample {
+ /**
+ * List available data sources for the BigQuery Data Transfer service.
+ */
+ public static void main(String... args) throws Exception {
+ // Sets your Google Cloud Platform project ID.
+ // String projectId = "YOUR_PROJECT_ID";
+ String projectId = args[0];
+
+ // Instantiate a client. If you don't specify credentials when constructing a client, the
+ // client library will look for credentials in the environment, such as the
+ // GOOGLE_APPLICATION_CREDENTIALS environment variable.
+ try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
+ // Request the list of available data sources.
+ String parent = String.format("projects/%s", projectId);
+ ListDataSourcesRequest request =
+ ListDataSourcesRequest.newBuilder()
+ .setParent(parent)
+ .build();
+ ListDataSourcesPagedResponse response = client.listDataSources(request);
+
+ // Print the results.
+ System.out.println("Supported Data Sources:");
+ for (DataSource dataSource : response.iterateAll()) {
+ System.out.println(dataSource.getDisplayName());
+ System.out.printf("\tID: %s%n", dataSource.getDataSourceId());
+ System.out.printf("\tFull path: %s%n", dataSource.getName());
+ System.out.printf("\tDescription: %s%n", dataSource.getDescription());
+ }
+ }
+ }
+}
+// [END bigquery_datatransfer_quickstart]
diff --git a/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java b/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java
new file mode 100644
index 00000000000..01de37c5d9e
--- /dev/null
+++ b/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java
@@ -0,0 +1,56 @@
+/*
+ Copyright 2018 Google LLC
+
+ Licensed 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 com.example.bigquerydatatransfer;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Tests for quickstart sample. */
+@RunWith(JUnit4.class)
+@SuppressWarnings("checkstyle:abbreviationaswordinname")
+public class QuickstartSampleIT {
+ private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
+
+ private ByteArrayOutputStream bout;
+ private PrintStream out;
+
+ @Before
+ public void setUp() {
+ bout = new ByteArrayOutputStream();
+ out = new PrintStream(bout);
+ System.setOut(out);
+ }
+
+ @After
+ public void tearDown() {
+ System.setOut(null);
+ }
+
+ @Test
+ public void testQuickstart() throws Exception {
+ QuickstartSample.main(PROJECT_ID);
+ String got = bout.toString();
+ assertThat(got).contains("Supported Data Sources:");
+ }
+}
diff --git a/pom.xml b/pom.xml
index 0f8154e45e7..1c3707418e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,7 @@
compute
bigquery/cloud-client
+ bigquery/datatransfer/cloud-client
bigquery/rest
dataflow/spanner-io