Skip to content

Commit

Permalink
Merge pull request #353 from GoogleCloudPlatform/quickstarts
Browse files Browse the repository at this point in the history
Add google-cloud-java client libraries quickstart samples.
  • Loading branch information
tswast authored Oct 26, 2016
2 parents 1dfce92 + 1d255d9 commit 237e3aa
Show file tree
Hide file tree
Showing 25 changed files with 931 additions and 6 deletions.
4 changes: 4 additions & 0 deletions bigquery/cloud-client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ You can then run a given `ClassName` via:
-DpropertyName=propertyValue \
-Dexec.args="any arguments to the app"

### Creating a new dataset (using the quickstart sample)

mvn exec:java -Dexec.mainClass=com.example.bigquery.QuickstartSample

### Running a synchronous query

mvn exec:java -Dexec.mainClass=com.example.bigquery.SyncQuerySample \
Expand Down
2 changes: 1 addition & 1 deletion bigquery/cloud-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<dependency>
<groupId>com.google.truth</groupId>
<artifactId>truth</artifactId>
<version>0.29</version>
<version>0.30</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
Copyright 2016, Google, Inc.
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.bigquery;

// [START bigquery_quickstart]
// Imports the Google Cloud client library
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.DatasetInfo;

public class QuickstartSample {
public static void main(String... args) throws Exception {
// Instantiates a client
BigQuery bigquery = BigQueryOptions.defaultInstance().service();

// The name for the new dataset
String datasetName = "my_new_dataset";

// Prepares a new dataset
Dataset dataset = null;
DatasetInfo datasetInfo = DatasetInfo.builder(datasetName).build();

// Creates the dataset
dataset = bigquery.create(datasetInfo);

System.out.printf("Dataset %s created.%n", dataset.datasetId().dataset());
}
}
// [END bigquery_quickstart]
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
Copyright 2016, Google, Inc.
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.bigquery;

import static com.google.common.truth.Truth.assertThat;

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.DatasetId;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

/**
* Tests for quickstart sample.
*/
@RunWith(JUnit4.class)
@SuppressWarnings("checkstyle:abbreviationaswordinname")
public class QuickstartSampleIT {
private ByteArrayOutputStream bout;
private PrintStream out;

private static final void deleteMyNewDataset() {
BigQuery bigquery = BigQueryOptions.defaultInstance().service();
String datasetName = "my_new_dataset";
DatasetId datasetId = DatasetId.of(datasetName);
DatasetDeleteOption deleteContents = DatasetDeleteOption.deleteContents();
bigquery.delete(datasetId, deleteContents);
}

@Before
public void setUp() {
deleteMyNewDataset();

bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
System.setOut(out);
}

@After
public void tearDown() {
System.setOut(null);
deleteMyNewDataset();
}

@Test
public void testQuickstart() throws Exception {
QuickstartSample.main();
String got = bout.toString();
assertThat(got).contains("Dataset my_new_dataset created.");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
* Tests for synchronous query sample.
*/
@RunWith(JUnit4.class)
public class SyncQuerySampleTest {
@SuppressWarnings("checkstyle:abbreviationaswordinname")
public class SyncQuerySampleIT {
private ByteArrayOutputStream bout;
private PrintStream out;

Expand Down
26 changes: 26 additions & 0 deletions datastore/cloud-client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Getting Started with Cloud Datastore and the Google Cloud Client libraries

[Google Cloud Datastore][Datastore] is a highly-scalable NoSQL database for your applications.
These sample Java applications demonstrate how to access the Datastore API using
the [Google Cloud Client Library for Java][google-cloud-java].

[Datastore]: https://cloud.google.com/datastore/
[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java

## Quickstart

Install [Maven](http://maven.apache.org/).

Build your project with:

mvn clean package -DskipTests

You can then run a given `ClassName` via:

mvn exec:java -Dexec.mainClass=com.example.bigquery.ClassName \
-DpropertyName=propertyValue \
-Dexec.args="any arguments to the app"

### Creating a new entity (using the quickstart sample)

mvn exec:java -Dexec.mainClass=com.example.datastore.QuickstartSample
57 changes: 57 additions & 0 deletions datastore/cloud-client/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<!--
Copyright 2016 Google Inc. All Rights Reserved.
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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>come.example.datastore</groupId>
<artifactId>datastore-google-cloud-samples</artifactId>
<packaging>jar</packaging>

<!-- Parent defines config for testing & linting. -->
<parent>
<artifactId>doc-samples</artifactId>
<groupId>com.google.cloud</groupId>
<version>1.0.0</version>
<relativePath>../..</relativePath>
</parent>

<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
<version>0.4.0</version>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.truth</groupId>
<artifactId>truth</artifactId>
<version>0.30</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
Copyright 2016, Google, Inc.
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.datastore;

// [START datastore_quickstart]
// Imports the Google Cloud client library
import com.google.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;
import com.google.cloud.datastore.Entity;
import com.google.cloud.datastore.Key;

public class QuickstartSample {
public static void main(String... args) throws Exception {
// Instantiates a client
Datastore datastore = DatastoreOptions.defaultInstance().service();

// The kind for the new entity
String kind = "Task";
// The name/ID for the new entity
String name = "sampletask1";
// The Cloud Datastore key for the new entity
Key taskKey = datastore.newKeyFactory().kind(kind).newKey(name);

// Prepares the new entity
Entity task = Entity.builder(taskKey)
.set("description", "Buy milk")
.build();

// Saves the entity
datastore.put(task);

System.out.printf("Saved %s: %s%n", task.key().name(), task.getString("description"));
}
}
// [END datastore_quickstart]
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
Copyright 2016, Google, Inc.
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.datastore;

import static com.google.common.truth.Truth.assertThat;

import com.google.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;
import com.google.cloud.datastore.Key;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

/**
* Tests for quickstart sample.
*/
@RunWith(JUnit4.class)
@SuppressWarnings("checkstyle:abbreviationaswordinname")
public class QuickstartSampleIT {
private ByteArrayOutputStream bout;
private PrintStream out;

private static final void deleteTestEntity() {
Datastore datastore = DatastoreOptions.defaultInstance().service();
String kind = "Task";
String name = "sampletask1";
Key taskKey = datastore.newKeyFactory().kind(kind).newKey(name);
datastore.delete(taskKey);
}

@Before
public void setUp() {
deleteTestEntity();

bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
System.setOut(out);
}

@After
public void tearDown() {
System.setOut(null);
deleteTestEntity();
}

@Test
public void testQuickstart() throws Exception {
QuickstartSample.main();
String got = bout.toString();
assertThat(got).contains("Saved sampletask1: Buy milk");
}
}
// [END datastore_quickstart]
10 changes: 8 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,13 @@
<module>appengine/users</module>
<module>appengine/xmpp</module>
<module>bigquery</module>
<module>bigquery/cloud-client</module>
<module>compute/cmdline</module>
<module>compute/error-reporting</module>
<module>compute/mailjet</module>
<module>compute/sendgrid</module>
<module>datastore</module>
<module>logging</module>
<module>datastore/cloud-client</module>
<module>flexible/analytics</module>
<module>flexible/async-rest</module>
<module>flexible/cloudsql</module>
Expand All @@ -101,15 +102,20 @@
-->
<module>flexible/static-files</module>
<module>flexible/twilio</module>
<module>language/analysis</module>
<module>logging</module>
<module>monitoring/v2</module>
<module>monitoring/v3</module>
<module>pubsub/cloud-client</module>
<module>speech/grpc</module>
<module>storage/cloud-client</module>
<module>storage/json-api</module>
<module>storage/storage-transfer</module>
<module>storage/xml-api/cmdline-sample</module>
<module>storage/xml-api/serviceaccount-appengine-sample</module>
<module>taskqueue/deferred</module>
<module>language/analysis</module>
<module>translate</module>
<module>translate/cloud-client</module>
<module>unittests</module>
<module>vision/face-detection</module>
<module>vision/label</module>
Expand Down
Loading

0 comments on commit 237e3aa

Please sign in to comment.