diff --git a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/InsertAllRequest.java b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/InsertAllRequest.java index 6f39f20e498d..f0d61583f83f 100644 --- a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/InsertAllRequest.java +++ b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/InsertAllRequest.java @@ -52,15 +52,15 @@ public class InsertAllRequest implements Serializable { * id used by BigQuery to detect duplicate insertion requests on a best-effort basis. * *
Example usage of creating a row to insert: - *
{@code - * ListrepeatedFieldValue = Arrays.asList(1L, 2L); - * Map recordContent = new HashMap (); - * recordContent.put("subfieldName1", "value"); - * recordContent.put("subfieldName2", repeatedFieldValue); - * Map rowContent = new HashMap (); - * rowContent.put("fieldName1", true); - * rowContent.put("fieldName2", recordContent); - * RowToInsert row = new RowToInsert("rowId", rowContent); + * {@code + * List* * @see @@ -177,16 +177,16 @@ public Builder addRow(RowToInsert rowToInsert) { * Adds a row to be inserted with associated id. * *repeatedFieldValue = Arrays.asList(1L, 2L); + * Map recordContent = new HashMap (); + * recordContent.put("subfieldName1", "value"); + * recordContent.put("subfieldName2", repeatedFieldValue); + * Map rowContent = new HashMap (); + * rowContent.put("fieldName1", true); + * rowContent.put("fieldName2", recordContent); + * RowToInsert row = new RowToInsert("rowId", rowContent); * } Example usage of adding a row with associated id: - *
{@code - * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId); - * ListrepeatedFieldValue = Arrays.asList(1L, 2L); - * Map recordContent = new HashMap (); - * recordContent.put("subfieldName1", "value"); - * recordContent.put("subfieldName2", repeatedFieldValue); - * Map rowContent = new HashMap (); - * rowContent.put("fieldName1", true); - * rowContent.put("fieldName2", recordContent); - * builder.addRow("rowId", rowContent); + * {@code + * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId); + * List*/ public Builder addRow(String id, MaprepeatedFieldValue = Arrays.asList(1L, 2L); + * Map recordContent = new HashMap (); + * recordContent.put("subfieldName1", "value"); + * recordContent.put("subfieldName2", repeatedFieldValue); + * Map rowContent = new HashMap (); + * rowContent.put("fieldName1", true); + * rowContent.put("fieldName2", recordContent); + * builder.addRow("rowId", rowContent); * } content) { @@ -198,16 +198,16 @@ public Builder addRow(String id, Map content) { * Adds a row to be inserted without an associated id. * * Example usage of adding a row without an associated id: - *
{@code - * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId); - * ListrepeatedFieldValue = Arrays.asList(1L, 2L); - * Map recordContent = new HashMap (); - * recordContent.put("subfieldName1", "value"); - * recordContent.put("subfieldName2", repeatedFieldValue); - * Map rowContent = new HashMap (); - * rowContent.put("fieldName1", true); - * rowContent.put("fieldName2", recordContent); - * builder.addRow(rowContent); + * {@code + * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId); + * List*/ public Builder addRow(MaprepeatedFieldValue = Arrays.asList(1L, 2L); + * Map recordContent = new HashMap (); + * recordContent.put("subfieldName1", "value"); + * recordContent.put("subfieldName2", repeatedFieldValue); + * Map rowContent = new HashMap (); + * rowContent.put("fieldName1", true); + * rowContent.put("fieldName2", recordContent); + * builder.addRow(rowContent); * } content) { diff --git a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryRequest.java b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryRequest.java index 0bcfb3d4a9ae..5f99f3c5b4ee 100644 --- a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryRequest.java +++ b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryRequest.java @@ -35,26 +35,26 @@ * {@link QueryResponse#jobCompleted()} returns {@code true}. * * Example usage of a query request: - *
{@code - * // Substitute "field", "table" and "dataset" with real field, table and dataset identifiers - * QueryRequest request = QueryRequest.builder("SELECT field FROM table") - * .defaultDataset(DatasetId.of("dataset")) - * .maxWaitTime(60000L) - * .maxResults(1000L) - * .build(); - * QueryResponse response = bigquery.query(request); - * while (!response.jobCompleted()) { - * Thread.sleep(1000); - * response = bigquery.getQueryResults(response.jobId()); - * } - * ListexecutionErrors = response.executionErrors(); - * // look for errors in executionErrors - * QueryResult result = response.result(); - * Iterator > rowIterator = result.iterateAll(); - * while(rowIterator.hasNext()) { - * List
row = rowIterator.next(); - * // do something with row - * } + * {@code + * // Substitute "field", "table" and "dataset" with real field, table and dataset identifiers + * QueryRequest request = QueryRequest.builder("SELECT field FROM table") + * .defaultDataset(DatasetId.of("dataset")) + * .maxWaitTime(60000L) + * .maxResults(1000L) + * .build(); + * QueryResponse response = bigquery.query(request); + * while (!response.jobCompleted()) { + * Thread.sleep(1000); + * response = bigquery.getQueryResults(response.jobId()); + * } + * List* * @see Query diff --git a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryResponse.java b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryResponse.java index 77386747754f..12000cc1cbd2 100644 --- a/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryResponse.java +++ b/gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryResponse.java @@ -29,20 +29,20 @@ * Query Request ({@link BigQuery#query(QueryRequest)}). * *executionErrors = response.executionErrors(); + * // look for errors in executionErrors + * QueryResult result = response.result(); + * Iterator > rowIterator = result.iterateAll(); + * while(rowIterator.hasNext()) { + * List
row = rowIterator.next(); + * // do something with row + * } * } Example usage of a query response: - *
{@code - * QueryResponse response = bigquery.query(request); - * while (!response.jobCompleted()) { - * Thread.sleep(1000); - * response = bigquery.getQueryResults(response.jobId()); - * } - * ListexecutionErrors = response.executionErrors(); - * // look for errors in executionErrors - * QueryResult result = response.result(); - * Iterator > rowIterator = result.iterateAll(); - * while(rowIterator.hasNext()) { - * List
row = rowIterator.next(); - * // do something with row - * } + * {@code + * QueryResponse response = bigquery.query(request); + * while (!response.jobCompleted()) { + * Thread.sleep(1000); + * response = bigquery.getQueryResults(response.jobId()); + * } + * List* * @see Get Query diff --git a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/ITBigQueryTest.java b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/it/ITBigQueryTest.java similarity index 94% rename from gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/ITBigQueryTest.java rename to gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/it/ITBigQueryTest.java index 8021809be6b2..aa89ed89123e 100644 --- a/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/ITBigQueryTest.java +++ b/gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/it/ITBigQueryTest.java @@ -14,14 +14,8 @@ * limitations under the License. */ -package com.google.gcloud.bigquery; - -import static com.google.gcloud.bigquery.BigQuery.DatasetField; -import static com.google.gcloud.bigquery.BigQuery.JobField; -import static com.google.gcloud.bigquery.BigQuery.JobListOption; -import static com.google.gcloud.bigquery.BigQuery.JobOption; -import static com.google.gcloud.bigquery.BigQuery.TableField; -import static com.google.gcloud.bigquery.BigQuery.TableOption; +package com.google.gcloud.bigquery.it; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -32,7 +26,42 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.gcloud.Page; +import com.google.gcloud.WriteChannel; +import com.google.gcloud.bigquery.BigQuery; +import com.google.gcloud.bigquery.BigQuery.DatasetField; import com.google.gcloud.bigquery.BigQuery.DatasetOption; +import com.google.gcloud.bigquery.BigQuery.JobField; +import com.google.gcloud.bigquery.BigQuery.JobListOption; +import com.google.gcloud.bigquery.BigQuery.JobOption; +import com.google.gcloud.bigquery.BigQuery.TableField; +import com.google.gcloud.bigquery.BigQuery.TableOption; +import com.google.gcloud.bigquery.BigQueryError; +import com.google.gcloud.bigquery.BigQueryException; +import com.google.gcloud.bigquery.CopyJobConfiguration; +import com.google.gcloud.bigquery.Dataset; +import com.google.gcloud.bigquery.DatasetId; +import com.google.gcloud.bigquery.DatasetInfo; +import com.google.gcloud.bigquery.ExternalTableDefinition; +import com.google.gcloud.bigquery.ExtractJobConfiguration; +import com.google.gcloud.bigquery.Field; +import com.google.gcloud.bigquery.FieldValue; +import com.google.gcloud.bigquery.FormatOptions; +import com.google.gcloud.bigquery.InsertAllRequest; +import com.google.gcloud.bigquery.InsertAllResponse; +import com.google.gcloud.bigquery.Job; +import com.google.gcloud.bigquery.JobInfo; +import com.google.gcloud.bigquery.LoadJobConfiguration; +import com.google.gcloud.bigquery.QueryJobConfiguration; +import com.google.gcloud.bigquery.QueryRequest; +import com.google.gcloud.bigquery.QueryResponse; +import com.google.gcloud.bigquery.Schema; +import com.google.gcloud.bigquery.StandardTableDefinition; +import com.google.gcloud.bigquery.Table; +import com.google.gcloud.bigquery.TableDefinition; +import com.google.gcloud.bigquery.TableId; +import com.google.gcloud.bigquery.TableInfo; +import com.google.gcloud.bigquery.ViewDefinition; +import com.google.gcloud.bigquery.WriteChannelConfiguration; import com.google.gcloud.bigquery.testing.RemoteBigQueryHelper; import com.google.gcloud.storage.BlobInfo; import com.google.gcloud.storage.BucketInfo; @@ -45,7 +74,6 @@ import org.junit.Test; import org.junit.rules.Timeout; -import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -140,7 +168,7 @@ public class ITBigQueryTest { public Timeout globalTimeout = Timeout.seconds(300); @BeforeClass - public static void beforeClass() throws IOException, InterruptedException { + public static void beforeClass() throws InterruptedException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); RemoteGcsHelper gcsHelper = RemoteGcsHelper.create(); bigquery = bigqueryHelper.options().service(); @@ -169,8 +197,9 @@ public static void afterClass() throws ExecutionException, InterruptedException if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); } - if (storage != null && !RemoteGcsHelper.forceDelete(storage, BUCKET, 10, TimeUnit.SECONDS)) { - if (LOG.isLoggable(Level.WARNING)) { + if (storage != null) { + boolean wasDeleted = RemoteGcsHelper.forceDelete(storage, BUCKET, 10, TimeUnit.SECONDS); + if (!wasDeleted && LOG.isLoggable(Level.WARNING)) { LOG.log(Level.WARNING, "Deletion of bucket {0} timed out, bucket is not empty", BUCKET); } } @@ -685,7 +714,7 @@ public void testListJobsWithSelectedFields() { } @Test - public void testCreateAndGetJob() throws InterruptedException { + public void testCreateAndGetJob() { String sourceTableName = "test_create_and_get_job_source_table"; String destinationTableName = "test_create_and_get_job_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -717,7 +746,7 @@ public void testCreateAndGetJob() throws InterruptedException { } @Test - public void testCreateAndGetJobWithSelectedFields() throws InterruptedException { + public void testCreateAndGetJobWithSelectedFields() { String sourceTableName = "test_create_and_get_job_with_selected_fields_source_table"; String destinationTableName = "test_create_and_get_job_with_selected_fields_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -874,12 +903,12 @@ public void testCancelJob() throws InterruptedException { } @Test - public void testCancelNonExistingJob() throws InterruptedException { + public void testCancelNonExistingJob() { assertFalse(bigquery.cancel("test_cancel_non_existing_job")); } @Test - public void testInsertFromFile() throws InterruptedException, FileNotFoundException { + public void testInsertFromFile() throws InterruptedException { String destinationTableName = "test_insert_from_file_table"; TableId tableId = TableId.of(DATASET, destinationTableName); WriteChannelConfiguration configuration = WriteChannelConfiguration.builder(tableId) @@ -887,7 +916,7 @@ public void testInsertFromFile() throws InterruptedException, FileNotFoundExcept .createDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) .schema(TABLE_SCHEMA) .build(); - try (TableDataWriteChannel channel = bigquery.writer(configuration)) { + try (WriteChannel channel = bigquery.writer(configuration)) { channel.write(ByteBuffer.wrap(JSON_CONTENT.getBytes(StandardCharsets.UTF_8))); } catch (IOException e) { fail("IOException was not expected"); diff --git a/gcloud-java-core/src/main/java/com/google/gcloud/Restorable.java b/gcloud-java-core/src/main/java/com/google/gcloud/Restorable.java index 90633c70046f..0b573522e370 100644 --- a/gcloud-java-core/src/main/java/com/google/gcloud/Restorable.java +++ b/gcloud-java-core/src/main/java/com/google/gcloud/Restorable.java @@ -21,14 +21,14 @@ * *executionErrors = response.executionErrors(); + * // look for errors in executionErrors + * QueryResult result = response.result(); + * Iterator > rowIterator = result.iterateAll(); + * while(rowIterator.hasNext()) { + * List
row = rowIterator.next(); + * // do something with row + * } * } * A typical capture usage: - *
{@code + *{@code * X restorableObj; // X instanceof Restorable* * A typical restore usage: - ** RestorableState state = restorableObj.capture(); * .. persist state * } {@code + *{@code * RestorableStatestate = ... // read from persistence * X restorableObj = state.restore(); * ... diff --git a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Batch.java b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Batch.java index 75a5d1381403..5306a685195a 100644 --- a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Batch.java +++ b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Batch.java @@ -24,14 +24,14 @@ * to the Datastore upon {@link #submit}. * A usage example: * {@code - * Entity entity1 = datastore.get(key1); - * Batch batch = datastore.newBatch(); - * Entity entity2 = Entity.builder(key2).set("name", "John").build(); - * entity1 = Entity.builder(entity1).clear().setNull("bla").build(); - * Entity entity3 = Entity.builder(key3).set("title", "title").build(); - * batch.update(entity1); - * batch.add(entity2, entity3); - * batch.submit(); + * Entity entity1 = datastore.get(key1); + * Batch batch = datastore.newBatch(); + * Entity entity2 = Entity.builder(key2).set("name", "John").build(); + * entity1 = Entity.builder(entity1).clear().setNull("bla").build(); + * Entity entity3 = Entity.builder(key3).set("title", "title").build(); + * batch.update(entity1); + * batch.add(entity2, entity3); + * batch.submit(); * }*/ public interface Batch extends DatastoreBatchWriter { diff --git a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/GqlQuery.java b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/GqlQuery.java index e6ae166dbf07..7c03b69d9f39 100644 --- a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/GqlQuery.java +++ b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/GqlQuery.java @@ -43,27 +43,27 @@ *A usage example:
* *When the type of the results is known the preferred usage would be: - *
{@code - * Queryquery = - * Query.gqlQueryBuilder(Query.ResultType.ENTITY, "select * from kind").build(); - * QueryResults results = datastore.run(query); - * while (results.hasNext()) { - * Entity entity = results.next(); - * ... - * } + * {@code + * Query* *query = + * Query.gqlQueryBuilder(Query.ResultType.ENTITY, "select * from kind").build(); + * QueryResults results = datastore.run(query); + * while (results.hasNext()) { + * Entity entity = results.next(); + * ... + * } * } When the type of the results is unknown you can use this approach: - *
{@code - * Query> query = Query.gqlQueryBuilder("select __key__ from kind").build(); - * QueryResults> results = datastore.run(query); - * if (Key.class.isAssignableFrom(results.resultClass())) { - * QueryResultskeys = (QueryResults ) results; - * while (keys.hasNext()) { - * Key key = keys.next(); - * ... - * } + * {@code + * Query> query = Query.gqlQueryBuilder("select __key__ from kind").build(); + * QueryResults> results = datastore.run(query); + * if (Key.class.isAssignableFrom(results.resultClass())) { + * QueryResults* * @paramkeys = (QueryResults ) results; + * while (keys.hasNext()) { + * Key key = keys.next(); + * ... * } + * } * } the type of the result values this query will produce diff --git a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/StructuredQuery.java b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/StructuredQuery.java index 15cca241e250..5892268f859c 100644 --- a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/StructuredQuery.java +++ b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/StructuredQuery.java @@ -46,35 +46,35 @@ * A usage example:
* *A simple query that returns all entities for a specific kind - *
{@code - * Queryquery = Query.entityQueryBuilder().kind(kind).build(); - * QueryResults results = datastore.run(query); - * while (results.hasNext()) { - * Entity entity = results.next(); - * ... - * } + * {@code + * Query* *query = Query.entityQueryBuilder().kind(kind).build(); + * QueryResults results = datastore.run(query); + * while (results.hasNext()) { + * Entity entity = results.next(); + * ... + * } * } A simple key-only query of all entities for a specific kind - *
{@code - * QuerykeyOnlyQuery = Query.keyQueryBuilder().kind(KIND1).build(); - * QueryResults results = datastore.run(keyOnlyQuery); - * ... + * {@code + * Query* *keyOnlyQuery = Query.keyQueryBuilder().kind(KIND1).build(); + * QueryResults results = datastore.run(keyOnlyQuery); + * ... * } A less trivial example of a projection query that returns the first 10 results * of "age" and "name" properties (sorted and grouped by "age") with an age greater than 18 - *
{@code - * Queryquery = Query.projectionEntityQueryBuilder() - * .kind(kind) - * .projection(Projection.property("age"), Projection.first("name")) - * .filter(PropertyFilter.gt("age", 18)) - * .groupBy("age") - * .orderBy(OrderBy.asc("age")) - * .limit(10) - * .build(); - * QueryResults results = datastore.run(query); - * ... + * {@code + * Query* * @paramquery = Query.projectionEntityQueryBuilder() + * .kind(kind) + * .projection(Projection.property("age"), Projection.first("name")) + * .filter(PropertyFilter.gt("age", 18)) + * .groupBy("age") + * .orderBy(OrderBy.asc("age")) + * .limit(10) + * .build(); + * QueryResults results = datastore.run(query); + * ... * } the type of the result values this query will produce diff --git a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Transaction.java b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Transaction.java index 8089c0130f5d..78ee217f31e7 100644 --- a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Transaction.java +++ b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/Transaction.java @@ -30,21 +30,21 @@ * the Datastore upon {@code commit}. * A usage example: * {@code - * Transaction transaction = datastore.newTransaction(); - * try { - * Entity entity = transaction.get(key); - * if (!entity.contains("last_name") || entity.isNull("last_name")) { - * String[] name = entity.getString("name").split(" "); - * entity = Entity.builder(entity).remove("name").set("first_name", name[0]) - * .set("last_name", name[1]).build(); - * transaction.update(entity); - * transaction.commit(); - * } - * } finally { - * if (transaction.active()) { - * transaction.rollback(); - * } + * Transaction transaction = datastore.newTransaction(); + * try { + * Entity entity = transaction.get(key); + * if (!entity.contains("last_name") || entity.isNull("last_name")) { + * String[] name = entity.getString("name").split(" "); + * entity = Entity.builder(entity).remove("name").set("first_name", name[0]) + * .set("last_name", name[1]).build(); + * transaction.update(entity); + * transaction.commit(); * } + * } finally { + * if (transaction.active()) { + * transaction.rollback(); + * } + * } * }* * @see diff --git a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/testing/LocalGcdHelper.java b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/testing/LocalGcdHelper.java index 7c60da50b0b0..c60035de087f 100644 --- a/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/testing/LocalGcdHelper.java +++ b/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/testing/LocalGcdHelper.java @@ -526,6 +526,7 @@ private static void extractFile(ZipInputStream zipIn, File filePath) throws IOEx public static boolean sendQuitRequest(int port) { StringBuilder result = new StringBuilder(); + String shutdownMsg = "Shutting down local server"; try { URL url = new URL("http", "localhost", port, "/_ah/admin/quit"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); @@ -537,13 +538,13 @@ public static boolean sendQuitRequest(int port) { out.flush(); InputStream in = con.getInputStream(); int currByte = 0; - while ((currByte = in.read()) != -1) { + while ((currByte = in.read()) != -1 && result.length() < shutdownMsg.length()) { result.append(((char) currByte)); } } catch (IOException ignore) { // ignore } - return result.toString().startsWith("Shutting down local server"); + return result.toString().startsWith(shutdownMsg); } public void stop() throws IOException, InterruptedException { diff --git a/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreExceptionTest.java b/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreExceptionTest.java index 4d62224172f9..f7bdcb89bcec 100644 --- a/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreExceptionTest.java +++ b/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreExceptionTest.java @@ -78,7 +78,8 @@ public void testDatastoreException() throws Exception { @Test public void testTranslateAndThrow() throws Exception { DatastoreException cause = new DatastoreException(503, "message", "UNAVAILABLE"); - RetryHelper.RetryHelperException exceptionMock = createMock(RetryHelper.RetryHelperException.class); + RetryHelper.RetryHelperException exceptionMock = + createMock(RetryHelper.RetryHelperException.class); expect(exceptionMock.getCause()).andReturn(cause).times(2); replay(exceptionMock); try { diff --git a/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/StructuredQueryTest.java b/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/StructuredQueryTest.java index b0d188cae16e..4b6589efd723 100644 --- a/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/StructuredQueryTest.java +++ b/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/StructuredQueryTest.java @@ -40,7 +40,8 @@ public class StructuredQueryTest { private static final Cursor END_CURSOR = Cursor.copyFrom(new byte[] {10}); private static final int OFFSET = 42; private static final Integer LIMIT = 43; - private static final Filter FILTER = CompositeFilter.and(PropertyFilter.gt("p1", 10), PropertyFilter.eq("a", "v")); + private static final Filter FILTER = + CompositeFilter.and(PropertyFilter.gt("p1", 10), PropertyFilter.eq("a", "v")); private static final OrderBy ORDER_BY_1 = OrderBy.asc("p2"); private static final OrderBy ORDER_BY_2 = OrderBy.desc("p3"); private static final ListORDER_BY = ImmutableList.of(ORDER_BY_1, ORDER_BY_2); diff --git a/gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerImpl.java b/gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerImpl.java index e087caab5966..4176b4e610ba 100644 --- a/gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerImpl.java +++ b/gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerImpl.java @@ -140,7 +140,8 @@ Iterable > call() { public Project apply( com.google.api.services.cloudresourcemanager.model.Project projectPb) { return new Project( - serviceOptions.service(), new ProjectInfo.BuilderImpl(ProjectInfo.fromPb(projectPb))); + serviceOptions.service(), + new ProjectInfo.BuilderImpl(ProjectInfo.fromPb(projectPb))); } }); return new PageImpl<>( diff --git a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Blob.java b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Blob.java index ec8ab361328e..aea424ca4063 100644 --- a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Blob.java +++ b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Blob.java @@ -351,8 +351,10 @@ public Blob reload(BlobSourceOption... options) { * * * Example usage of replacing blob's metadata: - *
{@code blob.toBuilder().metadata(null).build().update();} - * {@code blob.toBuilder().metadata(newMetadata).build().update();} + *{@code + * blob.toBuilder().metadata(null).build().update(); + * blob.toBuilder().metadata(newMetadata).build().update(); + * } ** * @param options update options diff --git a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/CopyWriter.java b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/CopyWriter.java index 1e5427a847d4..7eb91d0910a2 100644 --- a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/CopyWriter.java +++ b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/CopyWriter.java @@ -57,9 +57,10 @@ public class CopyWriter implements Restorable{ * is {@code false} will block until all pending chunks are copied. * * This method has the same effect of doing: - *
{@code while (!copyWriter.isDone()) { - * copyWriter.copyChunk(); - * }} + *{@code + * while (!copyWriter.isDone()) { + * copyWriter.copyChunk(); + * }} ** * @throws StorageException upon failure diff --git a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Storage.java b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Storage.java index d1799daede3e..0ebe013202b0 100644 --- a/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Storage.java +++ b/gcloud-java-storage/src/main/java/com/google/gcloud/storage/Storage.java @@ -1300,8 +1300,10 @@ private static void checkContentType(BlobInfo blobInfo) throws IllegalArgumentEx * can be done by setting the provided {@code blobInfo}'s metadata to {@code null}. * *Example usage of replacing blob's metadata: - *
{@code service.update(BlobInfo.builder("bucket", "name").metadata(null).build());} - * {@code service.update(BlobInfo.builder("bucket", "name").metadata(newMetadata).build());} + *{@code + * service.update(BlobInfo.builder("bucket", "name").metadata(null).build()); + * service.update(BlobInfo.builder("bucket", "name").metadata(newMetadata).build()); + * } ** * @return the updated blob @@ -1315,8 +1317,10 @@ private static void checkContentType(BlobInfo blobInfo) throws IllegalArgumentEx * can be done by setting the provided {@code blobInfo}'s metadata to {@code null}. * *Example usage of replacing blob's metadata: - *
{@code service.update(BlobInfo.builder("bucket", "name").metadata(null).build());} - * {@code service.update(BlobInfo.builder("bucket", "name").metadata(newMetadata).build());} + *{@code + * service.update(BlobInfo.builder("bucket", "name").metadata(null).build()); + * service.update(BlobInfo.builder("bucket", "name").metadata(newMetadata).build()); + * } ** * @return the updated blob @@ -1373,14 +1377,15 @@ private static void checkContentType(BlobInfo blobInfo) throws IllegalArgumentEx * might issue multiple RPC calls depending on blob's size. * *Example usage of copy: - *
{@code BlobInfo blob = service.copy(copyRequest).result();} + *{@code BlobInfo blob = service.copy(copyRequest).result();} ** To explicitly issue chunk copy requests use {@link CopyWriter#copyChunk()} instead: - *{@code CopyWriter copyWriter = service.copy(copyRequest); - * while (!copyWriter.isDone()) { - * copyWriter.copyChunk(); - * } - * BlobInfo blob = copyWriter.result(); + *{@code + * CopyWriter copyWriter = service.copy(copyRequest); + * while (!copyWriter.isDone()) { + * copyWriter.copyChunk(); + * } + * BlobInfo blob = copyWriter.result(); * } ** @@ -1462,8 +1467,8 @@ private static void checkContentType(BlobInfo blobInfo) throws IllegalArgumentEx * accessible blobs, but don't want to require users to explicitly log in. * *Example usage of creating a signed URL that is valid for 2 weeks: - *
{@code - * service.signUrl(BlobInfo.builder("bucket", "name").build(), 14, TimeUnit.DAYS); + *{@code + * service.signUrl(BlobInfo.builder("bucket", "name").build(), 14, TimeUnit.DAYS); * }* * @param blobInfo the blob associated with the signed URL diff --git a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/ITStorageTest.java b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/it/ITStorageTest.java similarity index 97% rename from gcloud-java-storage/src/test/java/com/google/gcloud/storage/ITStorageTest.java rename to gcloud-java-storage/src/test/java/com/google/gcloud/storage/it/ITStorageTest.java index dffcc366036a..43c2cf6d372b 100644 --- a/gcloud-java-storage/src/test/java/com/google/gcloud/storage/ITStorageTest.java +++ b/gcloud-java-storage/src/test/java/com/google/gcloud/storage/it/ITStorageTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.gcloud.storage; +package com.google.gcloud.storage.it; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertArrayEquals; @@ -32,8 +32,19 @@ import com.google.gcloud.ReadChannel; import com.google.gcloud.RestorableState; import com.google.gcloud.WriteChannel; +import com.google.gcloud.storage.BatchRequest; +import com.google.gcloud.storage.BatchResponse; +import com.google.gcloud.storage.Blob; +import com.google.gcloud.storage.BlobId; +import com.google.gcloud.storage.BlobInfo; +import com.google.gcloud.storage.Bucket; +import com.google.gcloud.storage.BucketInfo; +import com.google.gcloud.storage.CopyWriter; +import com.google.gcloud.storage.HttpMethod; +import com.google.gcloud.storage.Storage; import com.google.gcloud.storage.Storage.BlobField; import com.google.gcloud.storage.Storage.BucketField; +import com.google.gcloud.storage.StorageException; import com.google.gcloud.storage.testing.RemoteGcsHelper; import org.junit.AfterClass; @@ -77,8 +88,9 @@ public static void beforeClass() { @AfterClass public static void afterClass() throws ExecutionException, InterruptedException { - if (storage != null && !RemoteGcsHelper.forceDelete(storage, BUCKET, 5, TimeUnit.SECONDS)) { - if (log.isLoggable(Level.WARNING)) { + if (storage != null) { + boolean wasDeleted = RemoteGcsHelper.forceDelete(storage, BUCKET, 5, TimeUnit.SECONDS); + if (!wasDeleted && log.isLoggable(Level.WARNING)) { log.log(Level.WARNING, "Deletion of bucket {0} timed out, bucket is not empty", BUCKET); } } @@ -431,7 +443,7 @@ public void testUpdateBlobFail() { @Test public void testDeleteNonExistingBlob() { String blobName = "test-delete-non-existing-blob"; - assertTrue(!storage.delete(BUCKET, blobName)); + assertFalse(storage.delete(BUCKET, blobName)); } @Test @@ -439,7 +451,7 @@ public void testDeleteBlobNonExistingGeneration() { String blobName = "test-delete-blob-non-existing-generation"; BlobInfo blob = BlobInfo.builder(BUCKET, blobName).build(); assertNotNull(storage.create(blob)); - assertTrue(!storage.delete(BlobId.of(BUCKET, blobName, -1L))); + assertFalse(storage.delete(BlobId.of(BUCKET, blobName, -1L))); } @Test @@ -955,7 +967,7 @@ public void testDeleteBlobsFail() { assertNotNull(storage.create(sourceBlob1)); ListdeleteStatus = storage.delete(sourceBlob1.blobId(), sourceBlob2.blobId()); assertTrue(deleteStatus.get(0)); - assertTrue(!deleteStatus.get(1)); + assertFalse(deleteStatus.get(1)); } @Test