Skip to content

Commit 6450944

Browse files
committed
merge from upstream, fix merge confilict and fix build on non java 8
2 parents c47875a + 3f7626d commit 6450944

232 files changed

Lines changed: 29743 additions & 2685 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ before_install:
1010
install: mvn install -DskipTests=true -Dgpg.skip=true
1111
script:
1212
- utilities/verify.sh
13-
branches:
14-
only:
15-
- master
1613
after_success:
1714
- utilities/after_success.sh
1815
env:

CONTRIBUTING.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@ Using maven for build/test
1515
After you cloned the repository use Maven for building and running the tests.
1616
Maven 3.0+ is required.
1717

18+
When downloading the source, we recommend you obtain service account credentials.
19+
These credentials will allow you to run integration tests using `mvn verify` in command line.
20+
Follow step 2 of the [authentication instructions](https://github.com/GoogleCloudPlatform/gcloud-java#authentication) to generate and use JSON service account credentials.
21+
22+
It's also important to test that changes don't break compatibility with App/Compute Engine and when running elsewhere.
23+
To run tests on different platforms, try deploying the apps available on the [gcloud-java-examples](https://github.com/GoogleCloudPlatform/gcloud-java-examples) repository.
24+
End-to-end tests should ensure that gcloud-java works when running on the
25+
26+
* App Engine production environment (see the docs for [uploading your app to production App Engine](https://cloud.google.com/appengine/docs/java/tools/maven#uploading_your_app_to_production_app_engine))
27+
* App Engine development server (see the docs for [testing your app with the development server](https://cloud.google.com/appengine/docs/java/tools/maven#testing_your_app_with_the_development_server))
28+
* Compute Engine (see the [Getting Started Guide](https://cloud.google.com/compute/docs/quickstart), and be sure to [enable the appropriate APIs](https://github.com/GoogleCloudPlatform/gcloud-common/tree/master/authentication#on-google-compute-engine))
29+
* Your desktop (using `mvn exec:java`, for example)
30+
31+
When changes are made to authentication and project ID-related code, authentication and project ID inference should be tested using all relevant methods detailed in the [authentication docs](https://github.com/GoogleCloudPlatform/gcloud-java#authentication) and [project ID docs](https://github.com/GoogleCloudPlatform/gcloud-java#specifying-a-project-id).
32+
33+
Known issue: If you have installed the Google Cloud SDK, be sure to log in (using `gcloud auth login`) before running tests. Though the Datastore tests use a local Datastore emulator that doesn't require authentication, they will not run if you have the Google Cloud SDK installed but aren't authenticated.
1834

1935
Adding Features
2036
---------------

README.md

Lines changed: 164 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,40 +12,151 @@ Java idiomatic client for [Google Cloud Platform][cloud-platform] services.
1212

1313
This client supports the following Google Cloud Platform services:
1414

15+
- [Google Cloud BigQuery] (#google-cloud-bigquery-alpha) (Alpha)
1516
- [Google Cloud Datastore] (#google-cloud-datastore)
17+
- [Google Cloud Resource Manager] (#google-cloud-resource-manager-alpha) (Alpha)
1618
- [Google Cloud Storage] (#google-cloud-storage)
1719

1820
> Note: This client is a work-in-progress, and may occasionally
1921
> make backwards-incompatible changes.
2022
2123
Quickstart
2224
----------
23-
Add this to your pom.xml file
25+
If you are using Maven, add this to your pom.xml file
2426
```xml
2527
<dependency>
2628
<groupId>com.google.gcloud</groupId>
2729
<artifactId>gcloud-java</artifactId>
28-
<version>0.0.10</version>
30+
<version>0.1.2</version>
2931
</dependency>
3032
```
33+
If you are using Gradle, add this to your dependencies
34+
```Groovy
35+
compile 'com.google.gcloud:gcloud-java:0.1.2'
36+
```
37+
If you are using SBT, add this to your dependencies
38+
```Scala
39+
libraryDependencies += "com.google.gcloud" % "gcloud-java" % "0.1.2"
40+
```
3141

3242
Example Applications
3343
--------------------
3444

45+
- [`BigQueryExample`](https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/gcloud-java-examples/src/main/java/com/google/gcloud/examples/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality
46+
- Read more about using this application on the [`gcloud-java-examples` docs page](http://googlecloudplatform.github.io/gcloud-java/apidocs/?com/google/gcloud/examples/BigQueryExample.html).
47+
- [`Bookshelf`](https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/bookshelf) - An App Engine app that manages a virtual bookshelf.
48+
- This app uses `gcloud-java` to interface with Cloud Datastore and Cloud Storage. It also uses Cloud SQL, another Google Cloud Platform service.
3549
- [`DatastoreExample`](https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/gcloud-java-examples/src/main/java/com/google/gcloud/examples/DatastoreExample.java) - A simple command line interface for the Cloud Datastore
3650
- Read more about using this application on the [`gcloud-java-examples` docs page](http://googlecloudplatform.github.io/gcloud-java/apidocs/?com/google/gcloud/examples/DatastoreExample.html).
51+
- [`ResourceManagerExample`](https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/gcloud-java-examples/src/main/java/com/google/gcloud/examples/ResourceManagerExample.java) - A simple command line interface providing some of Cloud Resource Manager's functionality
52+
- Read more about using this application on the [`gcloud-java-examples` docs page](http://googlecloudplatform.github.io/gcloud-java/apidocs/?com/google/gcloud/examples/ResourceManagerExample.html).
53+
- [`SparkDemo`](https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/managedvms/sparkjava) - An example of using gcloud-java-datastore from within the SparkJava and App Engine Managed VM frameworks.
54+
- Read about how it works on the example's [README page](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/managedvms/sparkjava#how-does-it-work).
3755
- [`StorageExample`](https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/gcloud-java-examples/src/main/java/com/google/gcloud/examples/StorageExample.java) - A simple command line interface providing some of Cloud Storage's functionality
3856
- Read more about using this application on the [`gcloud-java-examples` docs page](http://googlecloudplatform.github.io/gcloud-java/apidocs/?com/google/gcloud/examples/StorageExample.html).
3957

58+
Specifying a Project ID
59+
-----------------------
60+
61+
Most `gcloud-java` libraries require a project ID. There are multiple ways to specify this project ID.
62+
63+
1. When using `gcloud-java` libraries from within Compute/App Engine, there's no need to specify a project ID. It is automatically inferred from the production environment.
64+
2. When using `gcloud-java` elsewhere, you can do one of the following:
65+
* Supply the project ID when building the service options. For example, to use Datastore from a project with ID "PROJECT_ID", you can write:
66+
67+
```java
68+
Datastore datastore = DatastoreOptions.builder().projectId("PROJECT_ID").build().service();
69+
```
70+
* Specify the environment variable `GCLOUD_PROJECT` to be your desired project ID.
71+
* Set the project ID using the [Google Cloud SDK](https://cloud.google.com/sdk/?hl=en). To use the SDK, [download the SDK](https://cloud.google.com/sdk/?hl=en) if you haven't already, and set the project ID from the command line. For example:
72+
73+
```
74+
gcloud config set project PROJECT_ID
75+
```
76+
77+
`gcloud-java` determines the project ID from the following sources in the listed order, stopping once it finds a value:
78+
79+
1. Project ID supplied when building the service options
80+
2. Project ID specified by the environment variable `GCLOUD_PROJECT`
81+
3. App Engine project ID
82+
4. Google Cloud SDK project ID
83+
5. Compute Engine project ID
84+
4085
Authentication
4186
--------------
4287

43-
There are multiple ways to authenticate to use Google Cloud services.
88+
First, ensure that the necessary Google Cloud APIs are enabled for your project. To do this, follow the instructions on the [authentication document](https://github.com/GoogleCloudPlatform/gcloud-common/blob/master/authentication/readme.md#authentication) shared by all the gcloud language libraries.
89+
90+
Next, choose a method for authenticating API requests from within your project:
4491

4592
1. When using `gcloud-java` libraries from within Compute/App Engine, no additional authentication steps are necessary.
4693
2. When using `gcloud-java` libraries elsewhere, there are two options:
47-
* [Generate a JSON service account key](https://cloud.google.com/storage/docs/authentication?hl=en#service_accounts). Supply a path to the downloaded JSON credentials file when building the options supplied to datastore/storage constructor.
48-
* If running locally for development/testing, you can use use [Google Cloud SDK](https://cloud.google.com/sdk/?hl=en). To use the SDK authentication, [download the SDK](https://cloud.google.com/sdk/?hl=en) if you haven't already. Then login using the SDK (`gcloud auth login` in command line), and set your current project using `gcloud config set project PROJECT_ID`.
94+
* [Generate a JSON service account key](https://cloud.google.com/storage/docs/authentication?hl=en#service_accounts). After downloading that key, you must do one of the following:
95+
* Define the environment variable GOOGLE_APPLICATION_CREDENTIALS to be the location of the key. For example:
96+
```bash
97+
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json
98+
```
99+
* Supply the JSON credentials file when building the service options. For example, this Storage object has the necessary permissions to interact with your Google Cloud Storage data:
100+
```java
101+
Storage storage = StorageOptions.builder()
102+
.authCredentials(AuthCredentials.createForJson(new FileInputStream("/path/to/my/key.json"))
103+
.build()
104+
.service();
105+
```
106+
* If running locally for development/testing, you can use use Google Cloud SDK. Download the SDK if you haven't already, then login using the SDK (`gcloud auth login` in command line). Be sure to set your project ID as described above.
107+
108+
`gcloud-java` looks for credentials in the following order, stopping once it finds credentials:
109+
110+
1. Credentials supplied when building the service options
111+
2. App Engine credentials
112+
3. Key file pointed to by the GOOGLE_APPLICATION_CREDENTIALS environment variable
113+
4. Google Cloud SDK credentials
114+
5. Compute Engine credentials
115+
116+
Google Cloud BigQuery (Alpha)
117+
----------------------
118+
119+
- [API Documentation][bigquery-api]
120+
- [Official Documentation][cloud-bigquery-docs]
121+
122+
#### Preview
123+
124+
Here is a code snippet showing a simple usage example from within Compute/App Engine. Note that you
125+
must [supply credentials](#authentication) and a project ID if running this snippet elsewhere.
126+
127+
```java
128+
import com.google.gcloud.bigquery.BaseTableInfo;
129+
import com.google.gcloud.bigquery.BigQuery;
130+
import com.google.gcloud.bigquery.BigQueryOptions;
131+
import com.google.gcloud.bigquery.Field;
132+
import com.google.gcloud.bigquery.JobStatus;
133+
import com.google.gcloud.bigquery.LoadJobInfo;
134+
import com.google.gcloud.bigquery.Schema;
135+
import com.google.gcloud.bigquery.TableId;
136+
import com.google.gcloud.bigquery.TableInfo;
137+
138+
BigQuery bigquery = BigQueryOptions.defaultInstance().service();
139+
TableId tableId = TableId.of("dataset", "table");
140+
BaseTableInfo info = bigquery.getTable(tableId);
141+
if (info == null) {
142+
System.out.println("Creating table " + tableId);
143+
Field integerField = Field.of("fieldName", Field.Type.integer());
144+
bigquery.create(TableInfo.of(tableId, Schema.of(integerField)));
145+
} else {
146+
System.out.println("Loading data into table " + tableId);
147+
LoadJobInfo loadJob = LoadJobInfo.of(tableId, "gs://bucket/path");
148+
loadJob = bigquery.create(loadJob);
149+
while (loadJob.status().state() != JobStatus.State.DONE) {
150+
Thread.sleep(1000L);
151+
loadJob = bigquery.getJob(loadJob.jobId());
152+
}
153+
if (loadJob.status().error() != null) {
154+
System.out.println("Job completed with errors");
155+
} else {
156+
System.out.println("Job succeeded");
157+
}
158+
}
159+
```
49160
50161
Google Cloud Datastore
51162
----------------------
@@ -67,7 +178,7 @@ import com.google.gcloud.datastore.Entity;
67178
import com.google.gcloud.datastore.Key;
68179
import com.google.gcloud.datastore.KeyFactory;
69180
70-
Datastore datastore = DatastoreOptions.getDefaultInstance().service();
181+
Datastore datastore = DatastoreOptions.defaultInstance().service();
71182
KeyFactory keyFactory = datastore.newKeyFactory().kind(KIND);
72183
Key key = keyFactory.newKey(keyName);
73184
Entity entity = datastore.get(key);
@@ -87,6 +198,37 @@ if (entity == null) {
87198
}
88199
```
89200
201+
Google Cloud Resource Manager (Alpha)
202+
----------------------
203+
204+
- [API Documentation][resourcemanager-api]
205+
- [Official Documentation][cloud-resourcemanager-docs]
206+
207+
#### Preview
208+
209+
Here is a code snippet showing a simple usage example. Note that you must supply Google SDK credentials for this service, not other forms of authentication listed in the [Authentication section](#authentication).
210+
211+
```java
212+
import com.google.gcloud.resourcemanager.ProjectInfo;
213+
import com.google.gcloud.resourcemanager.ResourceManager;
214+
import com.google.gcloud.resourcemanager.ResourceManagerOptions;
215+
216+
import java.util.Iterator;
217+
218+
ResourceManager resourceManager = ResourceManagerOptions.defaultInstance().service();
219+
ProjectInfo myProject = resourceManager.get("some-project-id"); // Use an existing project's ID
220+
ProjectInfo newProjectInfo = resourceManager.replace(myProject.toBuilder()
221+
.addLabel("launch-status", "in-development").build());
222+
System.out.println("Updated the labels of project " + newProjectInfo.projectId()
223+
+ " to be " + newProjectInfo.labels());
224+
// List all the projects you have permission to view.
225+
Iterator<ProjectInfo> projectIterator = resourceManager.list().iterateAll();
226+
System.out.println("Projects I can view:");
227+
while (projectIterator.hasNext()) {
228+
System.out.println(projectIterator.next().projectId());
229+
}
230+
```
231+
90232
Google Cloud Storage
91233
----------------------
92234
@@ -110,10 +252,9 @@ import com.google.gcloud.storage.StorageOptions;
110252
import java.nio.ByteBuffer;
111253
import java.nio.channels.WritableByteChannel;
112254
113-
StorageOptions options = StorageOptions.builder().projectId("project").build();
114-
Storage storage = options.service();
255+
Storage storage = StorageOptions.defaultInstance().service();
115256
BlobId blobId = BlobId.of("bucket", "blob_name");
116-
Blob blob = Blob.load(storage, blobId);
257+
Blob blob = Blob.get(storage, blobId);
117258
if (blob == null) {
118259
BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("text/plain").build();
119260
storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));
@@ -127,6 +268,11 @@ if (blob == null) {
127268
}
128269
```
129270
271+
Troubleshooting
272+
---------------
273+
274+
To get help, follow the `gcloud-java` links in the `gcloud-*` [shared Troubleshooting document](https://github.com/GoogleCloudPlatform/gcloud-common/blob/master/troubleshooting/readme.md#troubleshooting).
275+
130276
Java Versions
131277
-------------
132278
@@ -153,7 +299,7 @@ Contributing
153299
154300
Contributions to this library are always welcome and highly encouraged.
155301
156-
See [CONTRIBUTING] for more information on how to get started.
302+
See `gcloud-java`'s [CONTRIBUTING] documentation and the `gcloud-*` [shared documentation](https://github.com/GoogleCloudPlatform/gcloud-common/blob/master/contributing/readme.md#how-to-contribute-to-gcloud) for more information on how to get started.
157303
158304
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more information.
159305
@@ -164,7 +310,7 @@ Apache 2.0 - See [LICENSE] for more information.
164310
165311
166312
[CONTRIBUTING]:https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/CONTRIBUTING.md
167-
[code-of-conduct]:https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/CODE_OF_CONDUCT.md
313+
[code-of-conduct]:https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/CODE_OF_CONDUCT.md#contributor-code-of-conduct
168314
[LICENSE]: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/LICENSE
169315
[TESTING]: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/TESTING.md
170316
[cloud-platform]: https://cloud.google.com/
@@ -181,3 +327,10 @@ Apache 2.0 - See [LICENSE] for more information.
181327
[cloud-storage-create-bucket]: https://cloud.google.com/storage/docs/cloud-console#_creatingbuckets
182328
[cloud-storage-activation]: https://cloud.google.com/storage/docs/signup
183329
[storage-api]: http://googlecloudplatform.github.io/gcloud-java/apidocs/index.html?com/google/gcloud/storage/package-summary.html
330+
331+
[resourcemanager-api]:http://googlecloudplatform.github.io/gcloud-java/apidocs/index.html?com/google/gcloud/resourcemanager/package-summary.html
332+
[cloud-resourcemanager-docs]:https://cloud.google.com/resource-manager/
333+
334+
[cloud-bigquery]: https://cloud.google.com/bigquery/
335+
[cloud-bigquery-docs]: https://cloud.google.com/bigquery/docs/overview
336+
[bigquery-api]: http://googlecloudplatform.github.io/gcloud-java/apidocs/index.html?com/google/gcloud/bigquery/package-summary.html

RELEASING.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,21 @@ This script takes an optional argument denoting the new version. By default, if
1010
2. Create a PR to update the pom.xml version.
1111
The PR should look something like [#225](https://github.com/GoogleCloudPlatform/gcloud-java/pull/225). After this PR is merged into GoogleCloudPlatform/gcloud-java, Travis CI will push a new website to GoogleCloudPlatform/gh-pages, push a new artifact to the Maven Central Repository, and update versions in the README files.
1212

13-
3. Create a release on Github manually.
14-
Go to the [releases page](https://github.com/GoogleCloudPlatform/gcloud-java/releases) and click "Draft a new release." Use `vX.Y.Z` as the "Tag Version" and `X.Y.Z` as the "Release Title", where `X.Y.Z` is the release version as listed in the `pom.xml` files.
13+
3. Before moving on, verify that the artifacts have successfully been pushed to the Maven Central Repository. Open Travis CI, click the ["Build History" tab](https://travis-ci.org/GoogleCloudPlatform/gcloud-java/builds), and open the second build's logs for Step 2's PR. Be sure that you are not opening the "Pull Request" build logs. When the build finishes, scroll to the end of the log and verify that the artifacts were successfully staged and deployed. You can also search for `gcloud-java` on the [Sonatype website](https://oss.sonatype.org/#nexus-search;quick~gcloud-java) and check the latest version number. If the deployment didn't succeed because of a flaky test, rerun the build.
1514

16-
4. Run `utilities/update_pom_version.sh` again (to include "-SNAPSHOT" in the project version).
15+
4. Publish a release on Github manually.
16+
Go to the [releases page](https://github.com/GoogleCloudPlatform/gcloud-java/releases) and open the appropriate release draft. Make sure the "Tag Version" is `vX.Y.Z` and the "Release Title" is `X.Y.Z`, where `X.Y.Z` is the release version as listed in the `pom.xml` files. The draft should already have all changes that impact users since the previous release. To double check this, you can use the `git log` command and look through the merged master branch pull requests. Here is an example of the log command to get non-merge commits between v0.0.12 and v0.1.0:
17+
18+
```
19+
git --no-pager log v0.0.12..v0.1.0 --pretty=oneline --abbrev-commit --no-merges
20+
```
21+
22+
Ensure that the format is consistent with previous releases (for an example, see the [0.1.0 release](https://github.com/GoogleCloudPlatform/gcloud-java/releases/tag/v0.1.0)). After adding any missing updates and reformatting as necessary, publish the draft. Finally, create a new draft for the next release.
23+
24+
5. Run `utilities/update_pom_version.sh` again (to include "-SNAPSHOT" in the project version).
1725
As mentioned before, there is an optional version argument. By default, the script will update the version from "X.Y.Z" to "X.Y.Z+1-SNAPSHOT". Suppose a different version is desired, for example X+1.0.0-SNAPSHOT. Then the appropriate command to run would be `utilities/update_pom_version.sh X+1.0.0-SNAPSHOT`.
1826

19-
5. Create and merge in another PR to reflect the updated project version. For an example of what this PR should look like, see [#227](https://github.com/GoogleCloudPlatform/gcloud-java/pull/227).
27+
6. Create and merge in another PR to reflect the updated project version. For an example of what this PR should look like, see [#227](https://github.com/GoogleCloudPlatform/gcloud-java/pull/227).
2028

2129
### To push a snapshot version
2230

0 commit comments

Comments
 (0)