From 60c20aad53e4fc750a6c05fdebb2b7a33f10f24b Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Thu, 9 Mar 2017 12:24:47 -0800 Subject: [PATCH] Make getProjectId support GAE standard --- google-cloud-core/pom.xml | 5 +++++ .../main/java/com/google/cloud/ServiceOptions.java | 14 +++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index 0bc251fee7df..833ef2b6ec37 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -62,6 +62,11 @@ + + com.google.appengine + appengine-api-1.0-sdk + 1.9.50 + com.google.http-client google-http-client-jackson diff --git a/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java b/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java index d5b155486b58..8d311174ac07 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java @@ -21,6 +21,9 @@ import static com.google.common.base.Preconditions.checkNotNull; import static java.nio.charset.StandardCharsets.UTF_8; +import com.google.appengine.api.appidentity.AppIdentityService; +import com.google.appengine.api.appidentity.AppIdentityServiceFactory; +import com.google.appengine.api.utils.SystemProperty; import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.spi.ServiceRpcFactory; @@ -384,18 +387,11 @@ private static boolean isWindows() { protected static String getAppEngineProjectId() { try { - Class factoryClass = - Class.forName("com.google.appengine.api.appidentity.AppIdentityServiceFactory"); - Class serviceClass = - Class.forName("com.google.appengine.api.appidentity.AppIdentityService"); - Method method = factoryClass.getMethod("getAppIdentityService"); - Object appIdentityService = method.invoke(null); - method = serviceClass.getMethod("getServiceAccountName"); - String serviceAccountName = (String) method.invoke(appIdentityService); + AppIdentityService service = AppIdentityServiceFactory.getAppIdentityService(); + String serviceAccountName = service.getServiceAccountName(); int indexOfAtSign = serviceAccountName.indexOf('@'); return serviceAccountName.substring(0, indexOfAtSign); } catch (Exception ignore) { - // return null if can't determine return null; } }