From 5ea1c02a4d2c57f8d8d7471c14d6261fd5a3feba Mon Sep 17 00:00:00 2001 From: Eric Koleda Date: Tue, 16 Oct 2018 15:53:50 -0400 Subject: [PATCH 001/283] Use a fixed port for auth callbacks --- .../quickstart/src/main/java/AdminSDKDirectoryQuickstart.java | 3 ++- .../quickstart/src/main/java/AdminSDKReportsQuickstart.java | 3 ++- .../quickstart/src/main/java/AdminSDKResellerQuickstart.java | 3 ++- appsScript/quickstart/src/main/java/AppsScriptQuickstart.java | 3 ++- calendar/quickstart/src/main/java/CalendarQuickstart.java | 3 ++- .../com/google/api/services/samples/calendar/sync/Utils.java | 3 ++- classroom/quickstart/src/main/java/ClassroomQuickstart.java | 3 ++- drive/quickstart/src/main/java/DriveQuickstart.java | 3 ++- gmail/quickstart/src/main/java/GmailQuickstart.java | 3 ++- people/quickstart/src/main/java/PeopleQuickstart.java | 3 ++- sheets/quickstart/src/main/java/SheetsQuickstart.java | 3 ++- slides/quickstart/src/main/java/SlidesQuickstart.java | 3 ++- tasks/quickstart/src/main/java/TasksQuickstart.java | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) diff --git a/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java b/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java index 02e32040..5d614567 100644 --- a/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java +++ b/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java b/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java index 2c7562ee..a7c83e5d 100644 --- a/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java +++ b/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java b/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java index 5090793e..a14d69f0 100644 --- a/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java +++ b/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java b/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java index 6e1a92aa..be97726c 100644 --- a/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java +++ b/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java @@ -66,7 +66,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/calendar/quickstart/src/main/java/CalendarQuickstart.java b/calendar/quickstart/src/main/java/CalendarQuickstart.java index f427fc3b..c667e5b6 100644 --- a/calendar/quickstart/src/main/java/CalendarQuickstart.java +++ b/calendar/quickstart/src/main/java/CalendarQuickstart.java @@ -65,7 +65,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java b/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java index c8863331..d9b4cbc0 100644 --- a/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java +++ b/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java @@ -90,7 +90,8 @@ public static Credential authorize(List scopes) throws Exception { GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, JSON_FACTORY, clientSecrets, scopes).setDataStoreFactory(dataStoreFactory).build(); // Authorize. - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } /** Gets the datastore factory used in these samples. */ diff --git a/classroom/quickstart/src/main/java/ClassroomQuickstart.java b/classroom/quickstart/src/main/java/ClassroomQuickstart.java index 98498b0b..0f455c75 100644 --- a/classroom/quickstart/src/main/java/ClassroomQuickstart.java +++ b/classroom/quickstart/src/main/java/ClassroomQuickstart.java @@ -63,7 +63,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/drive/quickstart/src/main/java/DriveQuickstart.java b/drive/quickstart/src/main/java/DriveQuickstart.java index 5d43e211..b3ce3e3d 100644 --- a/drive/quickstart/src/main/java/DriveQuickstart.java +++ b/drive/quickstart/src/main/java/DriveQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/gmail/quickstart/src/main/java/GmailQuickstart.java b/gmail/quickstart/src/main/java/GmailQuickstart.java index 49c1968f..15ba9231 100644 --- a/gmail/quickstart/src/main/java/GmailQuickstart.java +++ b/gmail/quickstart/src/main/java/GmailQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/people/quickstart/src/main/java/PeopleQuickstart.java b/people/quickstart/src/main/java/PeopleQuickstart.java index b303fd6c..103ee032 100644 --- a/people/quickstart/src/main/java/PeopleQuickstart.java +++ b/people/quickstart/src/main/java/PeopleQuickstart.java @@ -65,7 +65,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/sheets/quickstart/src/main/java/SheetsQuickstart.java b/sheets/quickstart/src/main/java/SheetsQuickstart.java index 077f0891..5fbb3b06 100644 --- a/sheets/quickstart/src/main/java/SheetsQuickstart.java +++ b/sheets/quickstart/src/main/java/SheetsQuickstart.java @@ -63,7 +63,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } /** diff --git a/slides/quickstart/src/main/java/SlidesQuickstart.java b/slides/quickstart/src/main/java/SlidesQuickstart.java index e23d0228..c06d2dc8 100644 --- a/slides/quickstart/src/main/java/SlidesQuickstart.java +++ b/slides/quickstart/src/main/java/SlidesQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/tasks/quickstart/src/main/java/TasksQuickstart.java b/tasks/quickstart/src/main/java/TasksQuickstart.java index fb452e85..9fadb3f5 100644 --- a/tasks/quickstart/src/main/java/TasksQuickstart.java +++ b/tasks/quickstart/src/main/java/TasksQuickstart.java @@ -64,7 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { From 69203d6a66fc23a15c678e02087ca3ee86ff78a7 Mon Sep 17 00:00:00 2001 From: Andrzej Samek <4798496+asamek@users.noreply.github.com> Date: Tue, 6 Nov 2018 15:58:48 +0100 Subject: [PATCH 002/283] spelling fix --- calendar/quickstart/src/main/java/CalendarQuickstart.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/calendar/quickstart/src/main/java/CalendarQuickstart.java b/calendar/quickstart/src/main/java/CalendarQuickstart.java index c667e5b6..66a863ca 100644 --- a/calendar/quickstart/src/main/java/CalendarQuickstart.java +++ b/calendar/quickstart/src/main/java/CalendarQuickstart.java @@ -65,8 +65,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { From b5698ecb41e65bb75260da7747d6f353be7af050 Mon Sep 17 00:00:00 2001 From: Eric Koleda Date: Tue, 6 Nov 2018 15:53:46 -0500 Subject: [PATCH 003/283] Apply fix from #41 to the rest of the quickstarts. --- .../quickstart/src/main/java/AdminSDKDirectoryQuickstart.java | 4 ++-- .../quickstart/src/main/java/AdminSDKReportsQuickstart.java | 4 ++-- .../quickstart/src/main/java/AdminSDKResellerQuickstart.java | 4 ++-- appsScript/quickstart/src/main/java/AppsScriptQuickstart.java | 4 ++-- .../com/google/api/services/samples/calendar/sync/Utils.java | 4 ++-- classroom/quickstart/src/main/java/ClassroomQuickstart.java | 4 ++-- drive/quickstart/src/main/java/DriveQuickstart.java | 4 ++-- gmail/quickstart/src/main/java/GmailQuickstart.java | 4 ++-- people/quickstart/src/main/java/PeopleQuickstart.java | 4 ++-- sheets/quickstart/src/main/java/SheetsQuickstart.java | 4 ++-- slides/quickstart/src/main/java/SlidesQuickstart.java | 4 ++-- tasks/quickstart/src/main/java/TasksQuickstart.java | 4 ++-- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java b/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java index 5d614567..9348503c 100644 --- a/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java +++ b/adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java b/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java index a7c83e5d..d1ec5d1e 100644 --- a/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java +++ b/adminSDK/reports/quickstart/src/main/java/AdminSDKReportsQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java b/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java index a14d69f0..e1070471 100644 --- a/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java +++ b/adminSDK/reseller/quickstart/src/main/java/AdminSDKResellerQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java b/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java index be97726c..4f24474a 100644 --- a/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java +++ b/appsScript/quickstart/src/main/java/AppsScriptQuickstart.java @@ -66,8 +66,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java b/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java index d9b4cbc0..32e9fb87 100644 --- a/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java +++ b/calendar/sync/src/main/java/com/google/api/services/samples/calendar/sync/Utils.java @@ -90,8 +90,8 @@ public static Credential authorize(List scopes) throws Exception { GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, JSON_FACTORY, clientSecrets, scopes).setDataStoreFactory(dataStoreFactory).build(); // Authorize. - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } /** Gets the datastore factory used in these samples. */ diff --git a/classroom/quickstart/src/main/java/ClassroomQuickstart.java b/classroom/quickstart/src/main/java/ClassroomQuickstart.java index 0f455c75..dc32692c 100644 --- a/classroom/quickstart/src/main/java/ClassroomQuickstart.java +++ b/classroom/quickstart/src/main/java/ClassroomQuickstart.java @@ -63,8 +63,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/drive/quickstart/src/main/java/DriveQuickstart.java b/drive/quickstart/src/main/java/DriveQuickstart.java index b3ce3e3d..509b4ada 100644 --- a/drive/quickstart/src/main/java/DriveQuickstart.java +++ b/drive/quickstart/src/main/java/DriveQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/gmail/quickstart/src/main/java/GmailQuickstart.java b/gmail/quickstart/src/main/java/GmailQuickstart.java index 15ba9231..27c06bc5 100644 --- a/gmail/quickstart/src/main/java/GmailQuickstart.java +++ b/gmail/quickstart/src/main/java/GmailQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/people/quickstart/src/main/java/PeopleQuickstart.java b/people/quickstart/src/main/java/PeopleQuickstart.java index 103ee032..26e5d93e 100644 --- a/people/quickstart/src/main/java/PeopleQuickstart.java +++ b/people/quickstart/src/main/java/PeopleQuickstart.java @@ -65,8 +65,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/sheets/quickstart/src/main/java/SheetsQuickstart.java b/sheets/quickstart/src/main/java/SheetsQuickstart.java index 5fbb3b06..48bbea47 100644 --- a/sheets/quickstart/src/main/java/SheetsQuickstart.java +++ b/sheets/quickstart/src/main/java/SheetsQuickstart.java @@ -63,8 +63,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } /** diff --git a/slides/quickstart/src/main/java/SlidesQuickstart.java b/slides/quickstart/src/main/java/SlidesQuickstart.java index c06d2dc8..02e7be38 100644 --- a/slides/quickstart/src/main/java/SlidesQuickstart.java +++ b/slides/quickstart/src/main/java/SlidesQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { diff --git a/tasks/quickstart/src/main/java/TasksQuickstart.java b/tasks/quickstart/src/main/java/TasksQuickstart.java index 9fadb3f5..d94b5f66 100644 --- a/tasks/quickstart/src/main/java/TasksQuickstart.java +++ b/tasks/quickstart/src/main/java/TasksQuickstart.java @@ -64,8 +64,8 @@ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); - LocalServerReceiver receier = new LocalServerReceiver.Builder().setPort(8888).build(); - return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); + LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); + return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { From ae5c1a31c677551fd873b718c9486045c92ef608 Mon Sep 17 00:00:00 2001 From: Arie Date: Tue, 13 Nov 2018 10:09:55 -0800 Subject: [PATCH 004/283] Add files via upload --- adminSDK/alertcenter/quickstart/build.gradle | 18 +++ .../alertcenter/quickstart/settings.gradle | 18 +++ .../java/AdminSDKAlertCenterQuickstart.java | 106 ++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 adminSDK/alertcenter/quickstart/build.gradle create mode 100644 adminSDK/alertcenter/quickstart/settings.gradle create mode 100644 adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java diff --git a/adminSDK/alertcenter/quickstart/build.gradle b/adminSDK/alertcenter/quickstart/build.gradle new file mode 100644 index 00000000..25d08517 --- /dev/null +++ b/adminSDK/alertcenter/quickstart/build.gradle @@ -0,0 +1,18 @@ +apply plugin: 'java' +apply plugin: 'application' +apply plugin: 'idea' + +mainClassName = 'AdminSDKAlertCenterQuickstart' +sourceCompatibility = 1.8 +targetCompatibility = 1.8 +version = '1.0' + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.google.api-client:google-api-client:1.20.0' + compile 'com.google.auth:google-auth-library-oauth2-http:0.11.0' + compile 'com.google.apis:google-api-services-alertcenter:v1beta1-rev7-1.25.0' +} \ No newline at end of file diff --git a/adminSDK/alertcenter/quickstart/settings.gradle b/adminSDK/alertcenter/quickstart/settings.gradle new file mode 100644 index 00000000..7bcc727d --- /dev/null +++ b/adminSDK/alertcenter/quickstart/settings.gradle @@ -0,0 +1,18 @@ +/* + * This settings file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * In a single project build this file can be empty or even removed. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user guide at https://docs.gradle.org/3.5/userguide/multi_project_builds.html + */ + +/* +// To declare projects as part of a multi-project build use the 'include' method +include 'shared' +include 'api' +include 'services:webservice' +*/ + +rootProject.name = 'quickstart' diff --git a/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java b/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java new file mode 100644 index 00000000..b98c6059 --- /dev/null +++ b/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java @@ -0,0 +1,106 @@ +// 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. + +// [START admin_sdk_alertcenter_quickstart] + +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.services.alertcenter.v1beta1.AlertCenter; +import com.google.api.services.alertcenter.v1beta1.model.Alert; +import com.google.api.services.alertcenter.v1beta1.model.AlertFeedback; +import com.google.api.services.alertcenter.v1beta1.model.ListAlertsResponse; +import com.google.auth.Credentials; +import com.google.auth.http.HttpCredentialsAdapter; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import java.io.IOException; +import java.io.InputStream; +import java.security.GeneralSecurityException; +import java.util.Collections; +import java.util.List; + +public class AdminSDKAlertCenterQuickstart { + + private static final String APPLICATION_NAME = "Google Admin SDK Alert Center API Java Quickstart"; + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + /** + * Global instance of the scopes required by this quickstart. If modifying these scopes, delete + * your previously saved tokens/ folder. + */ + private static final List SCOPES = Collections + .singletonList("https://www.googleapis.com/auth/apps.alerts"); + private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; + + + /** + * Creates an authorized Credentials object. + * + * @return An authorized Credentials object. + * @throws IOException If the credentials.json file cannot be found. + */ + private static Credentials getCredentials(String delegatedAdmin) throws IOException { + // [START admin_sdk_alertcenter_get_credentials] + InputStream in = AdminSDKAlertCenterQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); + if (in == null) { + throw new IOException("Credential file was not found"); + } + GoogleCredentials credentials = ServiceAccountCredentials + .fromStream(in) + .createDelegated(delegatedAdmin) + .createScoped(SCOPES); + // [END admin_sdk_alertcenter_get_credentials] + return credentials; + } + + public static void main(String... args) throws IOException, GeneralSecurityException { + // [START admin_sdk_alertcenter_create_client] + String delegatedAdmin = "admin@xxx.com"; + NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport(); + AlertCenter service = new AlertCenter.Builder(transport, JSON_FACTORY, + new HttpCredentialsAdapter(getCredentials(delegatedAdmin))) + .setApplicationName(APPLICATION_NAME) + .build(); + // [END admin_sdk_alertcenter_create_client] + + // [START admin_sdk_alertcenter_list_alerts] + ListAlertsResponse listResponse = service.alerts().list().setPageSize(20).execute(); + while (listResponse.getAlerts() != null) { + for (Alert alert : listResponse.getAlerts()) { + System.out.println(alert); + } + if (listResponse.getNextPageToken() == null || listResponse.getNextPageToken().isEmpty()) { + break; + } + listResponse = service.alerts().list().setPageToken(listResponse.getNextPageToken()) + .setPageSize(20).execute(); + } + // [END admin_sdk_alertcenter_list_alerts] + + + listResponse = service.alerts().list().setPageSize(20).execute(); + if (listResponse == null || listResponse.isEmpty()) { + System.out.println("No alerts"); + } + String alertId = listResponse.getAlerts().get(0).getAlertId(); + // [START admin_sdk_alertcenter_provide_feedback] + AlertFeedback newFeedback = new AlertFeedback(); + newFeedback.setType("VERY_USEFUL"); + AlertFeedback feedback = service.alerts().feedback().create(alertId, newFeedback).execute(); + System.out.println(feedback); + // [END admin_sdk_alertcenter_provide_feedback] + } +} +// [END admin_sdk_alertcenter_quickstart] From 51657c00be1d602c3a113a538e7851cd9f4f8d0a Mon Sep 17 00:00:00 2001 From: Arie Date: Tue, 13 Nov 2018 10:12:54 -0800 Subject: [PATCH 005/283] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 888e3088..453cfcb2 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ A collection of samples that demonstrate how to call G Suite APIs in Java. ### Admin SDK +- [Alert Center Quickstart](https://developers.google.com/admin-sdk/alertcenter/quickstart/java) - [Directory Quickstart](https://developers.google.com/admin-sdk/directory/v1/quickstart/java) - [Reports Quickstart](https://developers.google.com/admin-sdk/reports/v1/quickstart/java) - [Reseller Quickstart](https://developers.google.com/admin-sdk/reseller/v1/quickstart/java) From 921b62c6f820f767d3cfadc4b8ac4a9068297499 Mon Sep 17 00:00:00 2001 From: Arie Date: Tue, 13 Nov 2018 10:13:41 -0800 Subject: [PATCH 006/283] Update .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 899860b0..ca28a01d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ jdk: # - oraclejdk9 # Use a Build Matrix for subdirs (https://lord.io/blog/2014/travis-multiple-subdirs/) env: + - DIR=adminSDK/alertcenter/quickstart - DIR=adminSDK/directory/quickstart - DIR=adminSDK/reports/quickstart - DIR=adminSDK/reseller/quickstart From 48bc7ecef9b5f3ef8d7fea1e6e93702277259129 Mon Sep 17 00:00:00 2001 From: Arie Date: Wed, 14 Nov 2018 14:16:56 -0800 Subject: [PATCH 007/283] Update AdminSDKAlertCenterQuickstart.java --- .../java/AdminSDKAlertCenterQuickstart.java | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java b/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java index b98c6059..cfca6b29 100644 --- a/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java +++ b/adminSDK/alertcenter/quickstart/src/main/java/AdminSDKAlertCenterQuickstart.java @@ -43,15 +43,16 @@ public class AdminSDKAlertCenterQuickstart { private static final List SCOPES = Collections .singletonList("https://www.googleapis.com/auth/apps.alerts"); private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; - + private static final String DELEGATED_ADMIN_EMAIL = "admin@xxx.com"; /** * Creates an authorized Credentials object. * + * @param delegatedAdminEmail A delegated admin email to associate with the created credentials. * @return An authorized Credentials object. * @throws IOException If the credentials.json file cannot be found. */ - private static Credentials getCredentials(String delegatedAdmin) throws IOException { + private static Credentials getCredentials(String delegatedAdminEmail) throws IOException { // [START admin_sdk_alertcenter_get_credentials] InputStream in = AdminSDKAlertCenterQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); if (in == null) { @@ -59,7 +60,7 @@ private static Credentials getCredentials(String delegatedAdmin) throws IOExcept } GoogleCredentials credentials = ServiceAccountCredentials .fromStream(in) - .createDelegated(delegatedAdmin) + .createDelegated(delegatedAdminEmail) .createScoped(SCOPES); // [END admin_sdk_alertcenter_get_credentials] return credentials; @@ -67,34 +68,39 @@ private static Credentials getCredentials(String delegatedAdmin) throws IOExcept public static void main(String... args) throws IOException, GeneralSecurityException { // [START admin_sdk_alertcenter_create_client] - String delegatedAdmin = "admin@xxx.com"; + NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport(); AlertCenter service = new AlertCenter.Builder(transport, JSON_FACTORY, - new HttpCredentialsAdapter(getCredentials(delegatedAdmin))) + new HttpCredentialsAdapter(getCredentials(DELEGATED_ADMIN_EMAIL))) .setApplicationName(APPLICATION_NAME) .build(); // [END admin_sdk_alertcenter_create_client] // [START admin_sdk_alertcenter_list_alerts] - ListAlertsResponse listResponse = service.alerts().list().setPageSize(20).execute(); - while (listResponse.getAlerts() != null) { - for (Alert alert : listResponse.getAlerts()) { - System.out.println(alert); - } - if (listResponse.getNextPageToken() == null || listResponse.getNextPageToken().isEmpty()) { - break; - } - listResponse = service.alerts().list().setPageToken(listResponse.getNextPageToken()) + String pageToken = null; + do { + ListAlertsResponse listResponse = service.alerts().list().setPageToken(pageToken) .setPageSize(20).execute(); - } + if (listResponse.getAlerts() != null) { + for (Alert alert : listResponse.getAlerts()) { + System.out.println(alert); + } + } + pageToken = listResponse.getNextPageToken(); + } while (pageToken != null); // [END admin_sdk_alertcenter_list_alerts] - - listResponse = service.alerts().list().setPageSize(20).execute(); + ListAlertsResponse listResponse = service.alerts().list().setPageSize(20).execute(); if (listResponse == null || listResponse.isEmpty()) { System.out.println("No alerts"); + } else { + String alertId = listResponse.getAlerts().get(0).getAlertId(); + // Uncomment the line below to set alert feedback. + // setAlertFeedback(service, alertId); } - String alertId = listResponse.getAlerts().get(0).getAlertId(); + } + + private static void setAlertFeedback(AlertCenter service, String alertId) throws IOException { // [START admin_sdk_alertcenter_provide_feedback] AlertFeedback newFeedback = new AlertFeedback(); newFeedback.setType("VERY_USEFUL"); From b5dc94f4015e394f4462d4df4264347d62db1cd3 Mon Sep 17 00:00:00 2001 From: Jeremy Meredith Date: Sun, 2 Dec 2018 17:35:26 -0700 Subject: [PATCH 008/283] Adding java quickstart for Drive Activity v2 API. --- drive/activity-v2/quickstart/build.gradle | 17 ++ .../main/java/DriveActivityQuickstart.java | 184 ++++++++++++++++++ 2 files changed, 201 insertions(+) create mode 100644 drive/activity-v2/quickstart/build.gradle create mode 100644 drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java diff --git a/drive/activity-v2/quickstart/build.gradle b/drive/activity-v2/quickstart/build.gradle new file mode 100644 index 00000000..cedfe72f --- /dev/null +++ b/drive/activity-v2/quickstart/build.gradle @@ -0,0 +1,17 @@ +apply plugin: 'java' +apply plugin: 'application' + +mainClassName = 'DriveActivityQuickstart' +sourceCompatibility = 1.8 +targetCompatibility = 1.8 +version = '1.0' + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.google.api-client:google-api-client:1.27.0' + compile 'com.google.oauth-client:google-oauth-client-jetty:1.27.0' + compile 'com.google.apis:google-api-services-driveactivity:v2-rev20181113-1.27.0' +} diff --git a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java new file mode 100644 index 00000000..334ae860 --- /dev/null +++ b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java @@ -0,0 +1,184 @@ +import com.google.api.client.auth.oauth2.Credential; +import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; +import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; +import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; +import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.store.FileDataStoreFactory; +import com.google.api.services.driveactivity.v2.DriveActivityScopes; +import com.google.api.services.driveactivity.v2.model.*; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public class DriveActivityQuickstart { + /** Application name. */ + private static final String APPLICATION_NAME = "G Suite Activity API Java Quickstart"; + + /** Directory to store authorization tokens for this application. */ + private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens"); + + /** Global instance of the {@link FileDataStoreFactory}. */ + private static FileDataStoreFactory DATA_STORE_FACTORY; + + /** Global instance of the JSON factory. */ + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + + /** Global instance of the HTTP transport. */ + private static HttpTransport HTTP_TRANSPORT; + + /** + * Global instance of the scopes required by this quickstart. + * + *

If modifying these scopes, delete your previously saved credentials at + * ~/.credentials/driveactivity-java-quickstart + */ + private static final List SCOPES = + Arrays.asList(DriveActivityScopes.DRIVE_ACTIVITY_READONLY); + + static { + try { + HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); + DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR); + } catch (Throwable t) { + t.printStackTrace(); + System.exit(1); + } + } + + /** + * Creates an authorized Credential object. + * + * @return an authorized Credential object. + * @throws IOException + */ + public static Credential authorize() throws IOException { + // Load client secrets. + InputStream in = DriveActivityQuickstart.class.getResourceAsStream("/credentials.json"); + GoogleClientSecrets clientSecrets = + GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); + + // Build flow and trigger user authorization request. + GoogleAuthorizationCodeFlow flow = + new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) + .setDataStoreFactory(DATA_STORE_FACTORY) + .setAccessType("offline") + .build(); + Credential credential = + new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); + System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); + return credential; + } + + /** + * Build and return an authorized Drive Activity client service. + * + * @return an authorized DriveActivity client service + * @throws IOException + */ + public static com.google.api.services.driveactivity.v2.DriveActivity getDriveActivityService() + throws IOException { + Credential credential = authorize(); + return new com.google.api.services.driveactivity.v2.DriveActivity.Builder( + HTTP_TRANSPORT, JSON_FACTORY, credential) + .setApplicationName(APPLICATION_NAME) + .build(); + } + + public static void main(String[] args) throws IOException { + // Build a new authorized API client service. + com.google.api.services.driveactivity.v2.DriveActivity service = getDriveActivityService(); + + // Print the recent activity in your Google Drive. + QueryDriveActivityResponse result = + service + .activity() + .query( + new QueryDriveActivityRequest() + .setPageSize(10) + .setConsolidationStrategy(new ConsolidationStrategy().setLegacy(new Legacy()))) + .execute(); + List activities = result.getActivities(); + if (activities == null || activities.size() == 0) { + System.out.println("No activity."); + } else { + System.out.println("Recent activity:"); + for (DriveActivity activity : activities) { + String time = getTimeInfo(activity); + String action = getActionInfo(activity.getPrimaryActionDetail()); + List actors = + activity.getActors().stream() + .map(DriveActivityQuickstart::getActorInfo) + .collect(Collectors.toList()); + List targets = + activity.getTargets().stream() + .map(DriveActivityQuickstart::getTargetInfo) + .collect(Collectors.toList()); + System.out.printf("%s: %s, %s, %s\n", time, truncated(actors), action, truncated(targets)); + } + } + } + + private static String truncated(List array) { + return truncated(array, 2); + } + + private static String truncated(List array, int limit) { + String contents = array.stream().limit(limit).collect(Collectors.joining(", ")); + String more = array.size() > limit ? ", ..." : ""; + return "[" + contents + more + "]"; + } + + private static String getTimeInfo(DriveActivity activity) { + if (activity.getTimestamp() != null) { + return activity.getTimestamp(); + } + if (activity.getTimeRange() != null) { + return activity.getTimeRange().getEndTime(); + } + return "unknown"; + } + + private static String getActionInfo(ActionDetail actionDetail) { + return actionDetail.keySet().iterator().next(); + } + + private static String getUserInfo(User user) { + if (user.getKnownUser() != null) { + KnownUser knownUser = user.getKnownUser(); + Boolean isMe = knownUser.getIsCurrentUser(); + return (isMe != null && isMe) ? "people/me" : knownUser.getPersonName(); + } + return user.keySet().iterator().next(); + } + + private static String getActorInfo(Actor actor) { + if (actor.getUser() != null) { + return getUserInfo(actor.getUser()); + } + return actor.keySet().iterator().next(); + } + + private static String getTargetInfo(Target target) { + if (target.getDriveItem() != null) { + return "driveItem:\"" + target.getDriveItem().getTitle() + "\""; + } + if (target.getTeamDrive() != null) { + return "teamDrive:\"" + target.getTeamDrive().getTitle() + "\""; + } + if (target.getFileComment() != null) { + DriveItem parent = target.getFileComment().getParent(); + if (parent != null) { + return "fileComment:\"" + parent.getTitle() + "\""; + } + return "fileComment:unknown"; + } + return target.keySet().iterator().next(); + } +} From 9532915ab6518aa210f64cf66f1faa531d52cc37 Mon Sep 17 00:00:00 2001 From: Jeremy Meredith Date: Sun, 2 Dec 2018 18:37:47 -0700 Subject: [PATCH 009/283] Adding a missing settings.gradle for Drive Activity v2, copied from v1. --- drive/activity-v2/quickstart/settings.gradle | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 drive/activity-v2/quickstart/settings.gradle diff --git a/drive/activity-v2/quickstart/settings.gradle b/drive/activity-v2/quickstart/settings.gradle new file mode 100644 index 00000000..7bcc727d --- /dev/null +++ b/drive/activity-v2/quickstart/settings.gradle @@ -0,0 +1,18 @@ +/* + * This settings file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * In a single project build this file can be empty or even removed. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user guide at https://docs.gradle.org/3.5/userguide/multi_project_builds.html + */ + +/* +// To declare projects as part of a multi-project build use the 'include' method +include 'shared' +include 'api' +include 'services:webservice' +*/ + +rootProject.name = 'quickstart' From a39374dd91e6c2e9b6d31f11ac3e33af67043a86 Mon Sep 17 00:00:00 2001 From: Jeremy Meredith Date: Mon, 3 Dec 2018 10:54:48 -0700 Subject: [PATCH 010/283] Updating formatting and API name string for java Drive Activity v2 quickstart. --- .../main/java/DriveActivityQuickstart.java | 295 +++++++++--------- .../main/java/DriveActivityQuickstart.java | 2 +- 2 files changed, 147 insertions(+), 150 deletions(-) diff --git a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java index 334ae860..05a38a8d 100644 --- a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java +++ b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java @@ -18,167 +18,164 @@ import java.util.stream.Collectors; public class DriveActivityQuickstart { - /** Application name. */ - private static final String APPLICATION_NAME = "G Suite Activity API Java Quickstart"; - - /** Directory to store authorization tokens for this application. */ - private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens"); - - /** Global instance of the {@link FileDataStoreFactory}. */ - private static FileDataStoreFactory DATA_STORE_FACTORY; - - /** Global instance of the JSON factory. */ - private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); - - /** Global instance of the HTTP transport. */ - private static HttpTransport HTTP_TRANSPORT; - - /** - * Global instance of the scopes required by this quickstart. - * - *

If modifying these scopes, delete your previously saved credentials at - * ~/.credentials/driveactivity-java-quickstart - */ - private static final List SCOPES = - Arrays.asList(DriveActivityScopes.DRIVE_ACTIVITY_READONLY); - - static { - try { - HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); - DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR); - } catch (Throwable t) { - t.printStackTrace(); - System.exit(1); + /** Application name. */ + private static final String APPLICATION_NAME = "Drive Activity API Java Quickstart"; + + /** Directory to store authorization tokens for this application. */ + private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens"); + + /** Global instance of the {@link FileDataStoreFactory}. */ + private static FileDataStoreFactory DATA_STORE_FACTORY; + + /** Global instance of the JSON factory. */ + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + + /** Global instance of the HTTP transport. */ + private static HttpTransport HTTP_TRANSPORT; + + /** + * Global instance of the scopes required by this quickstart. + * + *

If modifying these scopes, delete your previously saved credentials at + * ~/.credentials/driveactivity-java-quickstart + */ + private static final List SCOPES = + Arrays.asList(DriveActivityScopes.DRIVE_ACTIVITY_READONLY); + + static { + try { + HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); + DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR); + } catch (Throwable t) { + t.printStackTrace(); + System.exit(1); + } } - } - - /** - * Creates an authorized Credential object. - * - * @return an authorized Credential object. - * @throws IOException - */ - public static Credential authorize() throws IOException { - // Load client secrets. - InputStream in = DriveActivityQuickstart.class.getResourceAsStream("/credentials.json"); - GoogleClientSecrets clientSecrets = - GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); - - // Build flow and trigger user authorization request. - GoogleAuthorizationCodeFlow flow = - new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) - .setDataStoreFactory(DATA_STORE_FACTORY) - .setAccessType("offline") - .build(); - Credential credential = - new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); - System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); - return credential; - } - - /** - * Build and return an authorized Drive Activity client service. - * - * @return an authorized DriveActivity client service - * @throws IOException - */ - public static com.google.api.services.driveactivity.v2.DriveActivity getDriveActivityService() - throws IOException { - Credential credential = authorize(); - return new com.google.api.services.driveactivity.v2.DriveActivity.Builder( - HTTP_TRANSPORT, JSON_FACTORY, credential) - .setApplicationName(APPLICATION_NAME) - .build(); - } - - public static void main(String[] args) throws IOException { - // Build a new authorized API client service. - com.google.api.services.driveactivity.v2.DriveActivity service = getDriveActivityService(); - - // Print the recent activity in your Google Drive. - QueryDriveActivityResponse result = - service - .activity() - .query( - new QueryDriveActivityRequest() - .setPageSize(10) - .setConsolidationStrategy(new ConsolidationStrategy().setLegacy(new Legacy()))) - .execute(); - List activities = result.getActivities(); - if (activities == null || activities.size() == 0) { - System.out.println("No activity."); - } else { - System.out.println("Recent activity:"); - for (DriveActivity activity : activities) { - String time = getTimeInfo(activity); - String action = getActionInfo(activity.getPrimaryActionDetail()); - List actors = - activity.getActors().stream() - .map(DriveActivityQuickstart::getActorInfo) - .collect(Collectors.toList()); - List targets = - activity.getTargets().stream() - .map(DriveActivityQuickstart::getTargetInfo) - .collect(Collectors.toList()); - System.out.printf("%s: %s, %s, %s\n", time, truncated(actors), action, truncated(targets)); - } + + /** + * Creates an authorized Credential object. + * + * @return an authorized Credential object. + * @throws IOException + */ + public static Credential authorize() throws IOException { + // Load client secrets. + InputStream in = DriveActivityQuickstart.class.getResourceAsStream("/credentials.json"); + GoogleClientSecrets clientSecrets = + GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); + + // Build flow and trigger user authorization request. + GoogleAuthorizationCodeFlow flow = + new GoogleAuthorizationCodeFlow.Builder( + HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) + .setDataStoreFactory(DATA_STORE_FACTORY) + .setAccessType("offline") + .build(); + Credential credential = + new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()) + .authorize("user"); + System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); + return credential; } - } - private static String truncated(List array) { - return truncated(array, 2); - } + /** + * Build and return an authorized Drive Activity client service. + * + * @return an authorized DriveActivity client service + * @throws IOException + */ + public static com.google.api.services.driveactivity.v2.DriveActivity getDriveActivityService() + throws IOException { + Credential credential = authorize(); + return new com.google.api.services.driveactivity.v2.DriveActivity.Builder( + HTTP_TRANSPORT, JSON_FACTORY, credential) + .setApplicationName(APPLICATION_NAME) + .build(); + } - private static String truncated(List array, int limit) { - String contents = array.stream().limit(limit).collect(Collectors.joining(", ")); - String more = array.size() > limit ? ", ..." : ""; - return "[" + contents + more + "]"; - } + public static void main(String[] args) throws IOException { + // Build a new authorized API client service. + com.google.api.services.driveactivity.v2.DriveActivity service = getDriveActivityService(); + + // Print the recent activity in your Google Drive. + QueryDriveActivityResponse result = + service.activity().query(new QueryDriveActivityRequest().setPageSize(10)).execute(); + List activities = result.getActivities(); + if (activities == null || activities.size() == 0) { + System.out.println("No activity."); + } else { + System.out.println("Recent activity:"); + for (DriveActivity activity : activities) { + String time = getTimeInfo(activity); + String action = getActionInfo(activity.getPrimaryActionDetail()); + List actors = + activity.getActors().stream() + .map(DriveActivityQuickstart::getActorInfo) + .collect(Collectors.toList()); + List targets = + activity.getTargets().stream() + .map(DriveActivityQuickstart::getTargetInfo) + .collect(Collectors.toList()); + System.out.printf( + "%s: %s, %s, %s\n", time, truncated(actors), action, truncated(targets)); + } + } + } - private static String getTimeInfo(DriveActivity activity) { - if (activity.getTimestamp() != null) { - return activity.getTimestamp(); + private static String truncated(List array) { + return truncated(array, 2); } - if (activity.getTimeRange() != null) { - return activity.getTimeRange().getEndTime(); + + private static String truncated(List array, int limit) { + String contents = array.stream().limit(limit).collect(Collectors.joining(", ")); + String more = array.size() > limit ? ", ..." : ""; + return "[" + contents + more + "]"; } - return "unknown"; - } - - private static String getActionInfo(ActionDetail actionDetail) { - return actionDetail.keySet().iterator().next(); - } - - private static String getUserInfo(User user) { - if (user.getKnownUser() != null) { - KnownUser knownUser = user.getKnownUser(); - Boolean isMe = knownUser.getIsCurrentUser(); - return (isMe != null && isMe) ? "people/me" : knownUser.getPersonName(); + + private static String getTimeInfo(DriveActivity activity) { + if (activity.getTimestamp() != null) { + return activity.getTimestamp(); + } + if (activity.getTimeRange() != null) { + return activity.getTimeRange().getEndTime(); + } + return "unknown"; } - return user.keySet().iterator().next(); - } - private static String getActorInfo(Actor actor) { - if (actor.getUser() != null) { - return getUserInfo(actor.getUser()); + private static String getActionInfo(ActionDetail actionDetail) { + return actionDetail.keySet().iterator().next(); } - return actor.keySet().iterator().next(); - } - private static String getTargetInfo(Target target) { - if (target.getDriveItem() != null) { - return "driveItem:\"" + target.getDriveItem().getTitle() + "\""; + private static String getUserInfo(User user) { + if (user.getKnownUser() != null) { + KnownUser knownUser = user.getKnownUser(); + Boolean isMe = knownUser.getIsCurrentUser(); + return (isMe != null && isMe) ? "people/me" : knownUser.getPersonName(); + } + return user.keySet().iterator().next(); } - if (target.getTeamDrive() != null) { - return "teamDrive:\"" + target.getTeamDrive().getTitle() + "\""; + + private static String getActorInfo(Actor actor) { + if (actor.getUser() != null) { + return getUserInfo(actor.getUser()); + } + return actor.keySet().iterator().next(); } - if (target.getFileComment() != null) { - DriveItem parent = target.getFileComment().getParent(); - if (parent != null) { - return "fileComment:\"" + parent.getTitle() + "\""; - } - return "fileComment:unknown"; + + private static String getTargetInfo(Target target) { + if (target.getDriveItem() != null) { + return "driveItem:\"" + target.getDriveItem().getTitle() + "\""; + } + if (target.getTeamDrive() != null) { + return "teamDrive:\"" + target.getTeamDrive().getTitle() + "\""; + } + if (target.getFileComment() != null) { + DriveItem parent = target.getFileComment().getParent(); + if (parent != null) { + return "fileComment:\"" + parent.getTitle() + "\""; + } + return "fileComment:unknown"; + } + return target.keySet().iterator().next(); } - return target.keySet().iterator().next(); - } } diff --git a/drive/activity/quickstart/src/main/java/DriveActivityQuickstart.java b/drive/activity/quickstart/src/main/java/DriveActivityQuickstart.java index 019e26f2..8d445ef8 100644 --- a/drive/activity/quickstart/src/main/java/DriveActivityQuickstart.java +++ b/drive/activity/quickstart/src/main/java/DriveActivityQuickstart.java @@ -38,7 +38,7 @@ public class DriveActivityQuickstart { /** Application name. */ private static final String APPLICATION_NAME = - "G Suite Activity API Java Quickstart"; + "Drive Activity API Java Quickstart"; /** Directory to store authorization tokens for this application. */ private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens"); From 3c696c84b64e1d1fe9af5969fabac9c49b8cc9e4 Mon Sep 17 00:00:00 2001 From: Jeremy Meredith Date: Mon, 3 Dec 2018 12:56:01 -0700 Subject: [PATCH 011/283] Adding copyright notice and region tags for drive_activity_v2_quickstart. --- .../src/main/java/DriveActivityQuickstart.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java index 05a38a8d..eaeb9680 100644 --- a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java +++ b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java @@ -1,3 +1,18 @@ +// 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. + +// [START drive_activity_v2_quickstart] import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; @@ -179,3 +194,4 @@ private static String getTargetInfo(Target target) { return target.keySet().iterator().next(); } } +// [END drive_activity_v2_quickstart] From 8ed642ebcca964ca92914ece127ab97db6be5b85 Mon Sep 17 00:00:00 2001 From: Jeremy Meredith Date: Wed, 16 Jan 2019 11:18:14 -0700 Subject: [PATCH 012/283] Adding comments and a new helper method to Drive Activity v2 API quickstart. --- .../main/java/DriveActivityQuickstart.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java index eaeb9680..1bdae385 100644 --- a/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java +++ b/drive/activity-v2/quickstart/src/main/java/DriveActivityQuickstart.java @@ -1,4 +1,4 @@ -// Copyright 2018 Google LLC +// Copyright 2019 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,7 +28,9 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.AbstractMap; import java.util.Arrays; +import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; @@ -137,16 +139,25 @@ public static void main(String[] args) throws IOException { } } + /** Returns a string representation of the first elements in a list. */ private static String truncated(List array) { - return truncated(array, 2); + return truncatedTo(array, 2); } - private static String truncated(List array, int limit) { + /** Returns a string representation of the first elements in a list. */ + private static String truncatedTo(List array, int limit) { String contents = array.stream().limit(limit).collect(Collectors.joining(", ")); String more = array.size() > limit ? ", ..." : ""; return "[" + contents + more + "]"; } + /** Returns the name of a set property in an object, or else "unknown". */ + private static String getOneOf(AbstractMap obj) { + Iterator iterator = obj.keySet().iterator(); + return iterator.hasNext() ? iterator.next() : "unknown"; + } + + /** Returns a time associated with an activity. */ private static String getTimeInfo(DriveActivity activity) { if (activity.getTimestamp() != null) { return activity.getTimestamp(); @@ -157,26 +168,30 @@ private static String getTimeInfo(DriveActivity activity) { return "unknown"; } + /** Returns the type of action. */ private static String getActionInfo(ActionDetail actionDetail) { - return actionDetail.keySet().iterator().next(); + return getOneOf(actionDetail); } + /** Returns user information, or the type of user if not a known user. */ private static String getUserInfo(User user) { if (user.getKnownUser() != null) { KnownUser knownUser = user.getKnownUser(); Boolean isMe = knownUser.getIsCurrentUser(); return (isMe != null && isMe) ? "people/me" : knownUser.getPersonName(); } - return user.keySet().iterator().next(); + return getOneOf(user); } + /** Returns actor information, or the type of actor if not a user. */ private static String getActorInfo(Actor actor) { if (actor.getUser() != null) { return getUserInfo(actor.getUser()); } - return actor.keySet().iterator().next(); + return getOneOf(actor); } + /** Returns the type of a target and an associated title. */ private static String getTargetInfo(Target target) { if (target.getDriveItem() != null) { return "driveItem:\"" + target.getDriveItem().getTitle() + "\""; @@ -191,7 +206,7 @@ private static String getTargetInfo(Target target) { } return "fileComment:unknown"; } - return target.keySet().iterator().next(); + return getOneOf(target); } } // [END drive_activity_v2_quickstart] From 02ee977ef712f5e5bc136be23de0f5a5cf7d73dc Mon Sep 17 00:00:00 2001 From: Matt Lau Date: Fri, 1 Feb 2019 11:42:33 -0800 Subject: [PATCH 013/283] Add samples for hold migration. --- vault/vault-hold-migration-api/apis.ipr | 365 ++++++++++++++++++ vault/vault-hold-migration-api/apis.iws | 318 +++++++++++++++ vault/vault-hold-migration-api/build.gradle | 22 ++ .../vault-hold-migration-api/settings.gradle | 19 + .../vault/chatmigration/DirectoryService.java | 59 +++ .../vault/chatmigration/DuplicateHold.java | 125 ++++++ .../vault/chatmigration/HoldsReport.java | 160 ++++++++ .../vault/chatmigration/MigrationHelper.java | 196 ++++++++++ .../vault/chatmigration/QuickStart.java | 127 ++++++ .../chatmigration/RetryableTemplate.java | 49 +++ 10 files changed, 1440 insertions(+) create mode 100644 vault/vault-hold-migration-api/apis.ipr create mode 100644 vault/vault-hold-migration-api/apis.iws create mode 100644 vault/vault-hold-migration-api/build.gradle create mode 100644 vault/vault-hold-migration-api/settings.gradle create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/DirectoryService.java create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/DuplicateHold.java create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/HoldsReport.java create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/MigrationHelper.java create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/QuickStart.java create mode 100644 vault/vault-hold-migration-api/src/main/java/com/google/vault/chatmigration/RetryableTemplate.java diff --git a/vault/vault-hold-migration-api/apis.ipr b/vault/vault-hold-migration-api/apis.ipr new file mode 100644 index 00000000..d9d8eb33 --- /dev/null +++ b/vault/vault-hold-migration-api/apis.ipr @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6 + + + + + + + + + + + + + \ No newline at end of file diff --git a/vault/vault-hold-migration-api/apis.iws b/vault/vault-hold-migration-api/apis.iws new file mode 100644 index 00000000..ede0ae6b --- /dev/null +++ b/vault/vault-hold-migration-api/apis.iws @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +