From b72db114777b405014e3aa302706693a1f357c05 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Wed, 5 Apr 2017 02:49:39 -0700 Subject: [PATCH 1/9] Make project.properties path be API independente - Previously we generate all project.properties files into root which is incorrect - Now the caller API client needs to pass in artifact ID to retrieve the corresponding version - Create project.properties for Veneer-only clients as well --- google-cloud-bigquery/pom.xml | 21 +++++++ .../bigquery/spi/v2/HttpBigQueryRpc.java | 7 ++- google-cloud-compute/pom.xml | 21 +++++++ .../cloud/compute/spi/v1/HttpComputeRpc.java | 8 ++- google-cloud-core/pom.xml | 21 +++++++ .../google/cloud/GrpcTransportOptions.java | 6 +- .../google/cloud/HttpTransportOptions.java | 9 +-- .../java/com/google/cloud/ServiceOptions.java | 60 ++++++++----------- .../cloud/HttpTransportOptionsTest.java | 2 +- .../com/google/cloud/ServiceOptionsTest.java | 13 ++-- google-cloud-datastore/pom.xml | 21 +++++++ .../datastore/spi/v1/HttpDatastoreRpc.java | 6 +- google-cloud-dns/pom.xml | 21 +++++++ .../google/cloud/dns/spi/v1/HttpDnsRpc.java | 7 ++- google-cloud-errorreporting/pom.xml | 4 +- google-cloud-language/pom.xml | 4 +- google-cloud-logging/pom.xml | 4 +- .../cloud/logging/spi/v2/GrpcLoggingRpc.java | 4 +- google-cloud-monitoring/pom.xml | 4 +- google-cloud-pubsub/pom.xml | 4 +- google-cloud-resourcemanager/pom.xml | 21 +++++++ .../spi/v1beta1/HttpResourceManagerRpc.java | 8 ++- google-cloud-spanner/pom.xml | 21 ++++++- google-cloud-speech/pom.xml | 4 +- google-cloud-storage/pom.xml | 21 +++++++ .../cloud/storage/spi/v1/HttpStorageRpc.java | 8 ++- google-cloud-trace/pom.xml | 4 +- google-cloud-translate/pom.xml | 21 +++++++ .../translate/spi/v2/HttpTranslateRpc.java | 8 ++- google-cloud-vision/pom.xml | 4 +- 30 files changed, 285 insertions(+), 82 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2373dad80ab4..926c8c4f8fa1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -16,6 +16,7 @@ google-cloud-bigquery + ${project.version} @@ -61,4 +62,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 0f27b463523d..5963d047b118 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -63,6 +63,8 @@ public class HttpBigQueryRpc implements BigQueryRpc { public static final String DEFAULT_PROJECTION = "full"; + + private static final String ARTIFACT_ID = "google-cloud-bigquery"; private static final String BASE_RESUMABLE_URI = "https://www.googleapis.com/upload/bigquery/v2/projects/"; // see: https://cloud.google.com/bigquery/loading-data-post-request#resume-upload @@ -73,11 +75,12 @@ public class HttpBigQueryRpc implements BigQueryRpc { public HttpBigQueryRpc(BigQueryOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); this.options = options; bigquery = new Bigquery.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(options.getApplicationName(ARTIFACT_ID)) .build(); } diff --git a/google-cloud-compute/pom.xml b/google-cloud-compute/pom.xml index ba992ca98647..0700db49e218 100644 --- a/google-cloud-compute/pom.xml +++ b/google-cloud-compute/pom.xml @@ -15,6 +15,7 @@ google-cloud-compute + ${project.version} @@ -54,4 +55,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java index eccbee1481c0..2fe6783105ae 100644 --- a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java +++ b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java @@ -69,6 +69,7 @@ import com.google.api.services.compute.model.Zone; import com.google.api.services.compute.model.ZoneList; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.compute.ComputeException; import com.google.cloud.compute.ComputeOptions; import com.google.common.collect.ImmutableList; @@ -77,17 +78,19 @@ public class HttpComputeRpc implements ComputeRpc { + private static final String ARTIFACT_ID = "google-cloud-compute"; private final ComputeOptions options; private final Compute compute; public HttpComputeRpc(ComputeOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); this.options = options; compute = new Compute.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) .build(); } @@ -744,6 +747,7 @@ public Operation resizeDisk(String zone, String disk, long sizeGb, Map options) { try { return compute.subnetworks() diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index f80a522c34ad..ee6cd90d0f0e 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -15,6 +15,7 @@ google-cloud-core + ${project.version} @@ -171,4 +172,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java index b84f03e9156d..63ba053f3df7 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java @@ -213,12 +213,14 @@ public UnaryCallSettings.Builder getApiCallSettings(RetrySettings retrySettings) * Returns a channel provider from the given default provider. */ public static ChannelProvider setUpChannelProvider( - InstantiatingChannelProvider.Builder providerBuilder, ServiceOptions serviceOptions) { + InstantiatingChannelProvider.Builder providerBuilder, + ServiceOptions serviceOptions, + String artifactId) { HostAndPort hostAndPort = HostAndPort.fromString(serviceOptions.getHost()); providerBuilder.setServiceAddress(hostAndPort.getHostText()) .setPort(hostAndPort.getPort()) .setClientLibHeader(ServiceOptions.getGoogApiClientLibName(), - firstNonNull(ServiceOptions.getLibraryVersion(), "")); + firstNonNull(ServiceOptions.getLibraryVersion(artifactId), "")); Credentials scopedCredentials = serviceOptions.getScopedCredentials(); if (scopedCredentials != null && scopedCredentials != NoCredentials.getInstance()) { providerBuilder.setCredentialsProvider(FixedCredentialsProvider.create(scopedCredentials)); diff --git a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java index 970ca555fea6..540b42374d15 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java @@ -138,7 +138,8 @@ public HttpTransportFactory getHttpTransportFactory() { * Returns a request initializer responsible for initializing requests according to service * options. */ - public HttpRequestInitializer getHttpRequestInitializer(ServiceOptions serviceOptions) { + public HttpRequestInitializer getHttpRequestInitializer( + ServiceOptions serviceOptions, final String artifactId) { Credentials scopedCredentials = serviceOptions.getScopedCredentials(); final HttpRequestInitializer delegate = scopedCredentials != null && scopedCredentials != NoCredentials.getInstance() @@ -157,17 +158,17 @@ public void initialize(HttpRequest httpRequest) throws IOException { } HttpHeaders headers = httpRequest.getHeaders(); - headers.set("x-goog-api-client", getXGoogApiClientHeader()); + headers.set("x-goog-api-client", getXGoogApiClientHeader(artifactId)); } }; } - String getXGoogApiClientHeader() { + static String getXGoogApiClientHeader(String artifactId) { return String.format( "gl-java/%s %s/%s", getJavaVersion(), ServiceOptions.getGoogApiClientLibName(), - ServiceOptions.getLibraryVersion()); + ServiceOptions.getLibraryVersion(artifactId)); } private static String getJavaVersion() { 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 55f2c08ac4c5..8770b984929c 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,20 +21,15 @@ import static com.google.common.base.Preconditions.checkNotNull; import static java.nio.charset.StandardCharsets.UTF_8; -import com.google.api.gax.core.CurrentMillisClock; import com.google.api.gax.core.ApiClock; +import com.google.api.gax.core.CurrentMillisClock; +import com.google.api.gax.core.PropertiesProvider; import com.google.api.gax.core.RetrySettings; import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.spi.ServiceRpcFactory; import com.google.common.collect.Iterables; import com.google.common.io.Files; - -import org.joda.time.Duration; -import org.json.JSONException; -import org.json.JSONObject; -import org.json.JSONTokener; - import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -52,7 +47,6 @@ import java.util.Enumeration; import java.util.Locale; import java.util.Objects; -import java.util.Properties; import java.util.ServiceLoader; import java.util.Set; import java.util.jar.Attributes; @@ -60,6 +54,10 @@ import java.util.jar.Manifest; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.joda.time.Duration; +import org.json.JSONException; +import org.json.JSONObject; +import org.json.JSONTokener; /** * Abstract class representing service options. @@ -78,12 +76,11 @@ public abstract class ServiceOptions, private static final String ARTIFACT_ID = "google-cloud-core"; private static final String LIBRARY_NAME = "gcloud-java"; private static final String X_GOOGLE_CLIENT_HEADER_NAME = "gccl"; - private static final String LIBRARY_VERSION = defaultLibraryVersion(); - private static final String APPLICATION_NAME = - LIBRARY_VERSION == null ? LIBRARY_NAME : LIBRARY_NAME + "/" + LIBRARY_VERSION; - private static final String META_FILE_ROOT = "/META-INF/maven/"; - private static final String META_VERSION_KEY = "version"; + private static final String PROPERTIES_VERSION_KEY = "artifact.version"; + private static final String PROPERTIES_ROOT = "/properties/"; + private static final String PROPERTIES_FILE = "project.properties"; + private static final RetrySettings DEFAULT_RETRY_SETTINGS = getDefaultRetrySettingsBuilder() .build(); private static final RetrySettings NO_RETRY_SETTINGS = getDefaultRetrySettingsBuilder() @@ -525,8 +522,9 @@ public TransportOptions getTransportOptions() { /** * Returns the application's name as a string in the format {@code gcloud-java/[version]}. */ - public static String getApplicationName() { - return APPLICATION_NAME; + public static String getApplicationName(String artifactId) { + String libraryVersion = getLibraryVersion(artifactId); + return libraryVersion == null ? LIBRARY_NAME : LIBRARY_NAME + "/" + libraryVersion; } @@ -547,8 +545,12 @@ public static String getGoogApiClientLibName() { /** * Returns the library's version as a string. */ - public static String getLibraryVersion() { - return LIBRARY_VERSION; + public static String getLibraryVersion(String artifactId) { + String version = getPomVersion(artifactId); + if (version == null) { + version = getManifestVersion(); + } + return version; } protected int baseHashCode() { @@ -618,25 +620,13 @@ static T getFromServiceLoader(Class clazz, T defaultInstance) { return Iterables.getFirst(ServiceLoader.load(clazz), defaultInstance); } - private static String defaultLibraryVersion() { - String version = getPomVersion(); - if (version == null) { - version = getManifestVersion(); - } - return version; - } - - private static String getPomVersion() { + private static String getPomVersion(String artifactId) { try { - Properties properties = new Properties(); - String mavenPropertiesPath = META_FILE_ROOT - + ServiceOptions.class.getPackage().getName() + "/" - + ARTIFACT_ID + "/pom.properties"; - InputStream inputStream = ServiceOptions.class.getResourceAsStream(mavenPropertiesPath); - if (inputStream != null) { - properties.load(inputStream); - return properties.getProperty(META_VERSION_KEY, ""); - } + String projectPropertiesPath = PROPERTIES_ROOT + + artifactId + "/" + + PROPERTIES_FILE; + return PropertiesProvider.loadProperty( + ServiceOptions.class, projectPropertiesPath, PROPERTIES_VERSION_KEY); } catch (Exception e) { // ignore } diff --git a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java index 23a2c10a5084..93397894d1e5 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java @@ -66,7 +66,7 @@ public void testBaseHashCode() { public void testHeader() { String expectedHeaderPattern = "^gl-java/.* gccl/.*"; assertTrue(Pattern.compile(expectedHeaderPattern) - .matcher(DEFAULT_OPTIONS.getXGoogApiClientHeader()) + .matcher(HttpTransportOptions.getXGoogApiClientHeader("google-cloud-core")) .find()); } } diff --git a/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java b/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java index 3ef3f21e3cff..ff28f09b2f1b 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java @@ -26,16 +26,14 @@ import com.google.api.gax.core.CurrentMillisClock; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.spi.ServiceRpcFactory; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Set; import java.util.regex.Pattern; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; public class ServiceOptionsTest { private static final String JSON_KEY = @@ -98,7 +96,7 @@ public class ServiceOptionsTest { private static final TestServiceOptions OPTIONS_COPY = OPTIONS.toBuilder().build(); private static final String LIBRARY_NAME = "gcloud-java"; private static final Pattern APPLICATION_NAME_PATTERN = - Pattern.compile(LIBRARY_NAME + "(/[0-9]+.[0-9]+.[0-9]+)?"); + Pattern.compile(LIBRARY_NAME + "/.*"); @Rule public ExpectedException thrown = ExpectedException.none(); @@ -273,7 +271,8 @@ public void testLibraryName() { @Test public void testApplicationName() { - assertTrue(APPLICATION_NAME_PATTERN.matcher(OPTIONS.getApplicationName()).matches()); + assertTrue(APPLICATION_NAME_PATTERN.matcher( + OPTIONS.getApplicationName("google-cloud-core")).matches()); } @Test diff --git a/google-cloud-datastore/pom.xml b/google-cloud-datastore/pom.xml index c5c198c563f1..63de058e3486 100644 --- a/google-cloud-datastore/pom.xml +++ b/google-cloud-datastore/pom.xml @@ -16,6 +16,7 @@ google-cloud-datastore + ${project.version} @@ -59,4 +60,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java index 2d7fb437155e..a5e41954f13a 100644 --- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java +++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java @@ -20,6 +20,7 @@ import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.http.HttpTransport; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.datastore.DatastoreException; import com.google.cloud.datastore.DatastoreOptions; import com.google.datastore.v1.AllocateIdsRequest; @@ -40,6 +41,7 @@ public class HttpDatastoreRpc implements DatastoreRpc { + private static final String ARTIFACT_ID = "google-cloud-datastore"; private final com.google.datastore.v1.client.Datastore client; public HttpDatastoreRpc(DatastoreOptions options) { @@ -74,12 +76,12 @@ public HttpDatastoreRpc(DatastoreOptions options) { private HttpRequestInitializer getHttpRequestInitializer(final DatastoreOptions options, HttpTransportOptions httpTransportOptions) { final HttpRequestInitializer delegate = httpTransportOptions - .getHttpRequestInitializer(options); + .getHttpRequestInitializer(options, ARTIFACT_ID); return new HttpRequestInitializer() { @Override public void initialize(HttpRequest httpRequest) throws IOException { delegate.initialize(httpRequest); - httpRequest.getHeaders().setUserAgent(options.getApplicationName()); + httpRequest.getHeaders().setUserAgent(ServiceOptions.getApplicationName(ARTIFACT_ID)); } }; } diff --git a/google-cloud-dns/pom.xml b/google-cloud-dns/pom.xml index 0edb7b094b02..df4115df56ee 100644 --- a/google-cloud-dns/pom.xml +++ b/google-cloud-dns/pom.xml @@ -17,6 +17,7 @@ google-cloud-dns + ${project.version} @@ -65,4 +66,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java index 9b2bcfab3e2d..8b7914e08352 100644 --- a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java +++ b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java @@ -34,6 +34,7 @@ import com.google.api.services.dns.model.ResourceRecordSet; import com.google.api.services.dns.model.ResourceRecordSetsListResponse; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.dns.DnsException; import com.google.cloud.dns.DnsOptions; import java.io.IOException; @@ -45,6 +46,7 @@ public class HttpDnsRpc implements DnsRpc { private static final String SORT_BY = "changeSequence"; + private static final String ARTIFACT_ID = "google-cloud-dns"; private final Dns dns; private final DnsOptions options; @@ -181,10 +183,11 @@ private static DnsException translate(IOException exception, boolean idempotent) public HttpDnsRpc(DnsOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); this.dns = new Dns.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) .build(); this.options = options; } diff --git a/google-cloud-errorreporting/pom.xml b/google-cloud-errorreporting/pom.xml index 5111f1c90230..19212dcfcce0 100644 --- a/google-cloud-errorreporting/pom.xml +++ b/google-cloud-errorreporting/pom.xml @@ -96,10 +96,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-language/pom.xml b/google-cloud-language/pom.xml index cdf5318ff0a5..cb061ce34621 100644 --- a/google-cloud-language/pom.xml +++ b/google-cloud-language/pom.xml @@ -97,10 +97,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-logging/pom.xml b/google-cloud-logging/pom.xml index ec2f7d2db183..80f388aabe0d 100644 --- a/google-cloud-logging/pom.xml +++ b/google-cloud-logging/pom.xml @@ -97,10 +97,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java index 1ca3155872b2..2db63ef2b6cd 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java @@ -65,6 +65,8 @@ public class GrpcLoggingRpc implements LoggingRpc { + private static final String ARTIFACT_ID = "google-cloud-logging"; + private final ConfigClient configClient; private final LoggingClient loggingClient; private final MetricsClient metricsClient; @@ -91,7 +93,7 @@ public GrpcLoggingRpc(LoggingOptions options) throws IOException { channelProvider = FixedChannelProvider.create(managedChannel); } else { channelProvider = GrpcTransportOptions.setUpChannelProvider( - LoggingSettings.defaultChannelProviderBuilder(), options); + LoggingSettings.defaultChannelProviderBuilder(), options, ARTIFACT_ID); } providerManager = ProviderManager.newBuilder() .setChannelProvider(channelProvider) diff --git a/google-cloud-monitoring/pom.xml b/google-cloud-monitoring/pom.xml index d021954015be..7a29fe88ff5c 100644 --- a/google-cloud-monitoring/pom.xml +++ b/google-cloud-monitoring/pom.xml @@ -96,10 +96,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-pubsub/pom.xml b/google-cloud-pubsub/pom.xml index d80ad28d318b..72c6165b8b2c 100644 --- a/google-cloud-pubsub/pom.xml +++ b/google-cloud-pubsub/pom.xml @@ -102,10 +102,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-resourcemanager/pom.xml b/google-cloud-resourcemanager/pom.xml index e908bd694d4b..714219dab27e 100644 --- a/google-cloud-resourcemanager/pom.xml +++ b/google-cloud-resourcemanager/pom.xml @@ -15,6 +15,7 @@ google-cloud-resourcemanager + ${project.version} @@ -54,4 +55,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java index 08ff101ab5f4..c0f042418040 100644 --- a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java +++ b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java @@ -32,6 +32,7 @@ import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsRequest; import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsResponse; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.resourcemanager.ResourceManagerException; import com.google.cloud.resourcemanager.ResourceManagerOptions; import com.google.common.collect.ImmutableList; @@ -43,16 +44,19 @@ public class HttpResourceManagerRpc implements ResourceManagerRpc { + private static final String ARTIFACT_ID = "google-cloud-resourcemanager"; + private final Cloudresourcemanager resourceManager; public HttpResourceManagerRpc(ResourceManagerOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); resourceManager = new Cloudresourcemanager.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) .build(); } diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index d05bbf38c396..e43a98d6d72e 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -34,9 +34,26 @@ google-cloud-spanner + ${project.version} + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + org.apache.maven.plugins maven-surefire-plugin @@ -144,7 +161,7 @@ com.google.guava -guava + guava 19.0 @@ -203,5 +220,5 @@ 20151123 test - + diff --git a/google-cloud-speech/pom.xml b/google-cloud-speech/pom.xml index d18781de341a..6278e47071c0 100644 --- a/google-cloud-speech/pom.xml +++ b/google-cloud-speech/pom.xml @@ -107,10 +107,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 1862ad9e2d1e..8cc8158e90f0 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -16,6 +16,7 @@ google-cloud-storage + ${project.version} @@ -59,4 +60,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java index 7d11be03b25a..37e1ffe2d007 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java @@ -51,6 +51,7 @@ import com.google.api.services.storage.model.StorageObject; import com.google.cloud.BaseServiceException; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import com.google.common.base.Function; @@ -74,6 +75,8 @@ public class HttpStorageRpc implements StorageRpc { public static final String DEFAULT_PROJECTION = "full"; + + private static final String ARTIFACT_ID = "google-cloud-storage"; private static final String ENCRYPTION_KEY_PREFIX = "x-goog-encryption-"; private static final String SOURCE_ENCRYPTION_KEY_PREFIX = "x-goog-copy-source-encryption-"; private final StorageOptions options; @@ -84,11 +87,12 @@ public class HttpStorageRpc implements StorageRpc { public HttpStorageRpc(StorageOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); this.options = options; storage = new Storage.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) .build(); } diff --git a/google-cloud-trace/pom.xml b/google-cloud-trace/pom.xml index 4f6504b90266..a7c5aa815684 100644 --- a/google-cloud-trace/pom.xml +++ b/google-cloud-trace/pom.xml @@ -96,10 +96,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties diff --git a/google-cloud-translate/pom.xml b/google-cloud-translate/pom.xml index 2f18f365a225..283f7e37eca7 100644 --- a/google-cloud-translate/pom.xml +++ b/google-cloud-translate/pom.xml @@ -16,6 +16,7 @@ google-cloud-translate + ${project.version} @@ -59,4 +60,24 @@ test + + + + org.codehaus.mojo + properties-maven-plugin + 1.0-alpha-2 + + + generate-resources + + write-project-properties + + + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + + + + + + diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java index 9949d2e0a434..3b63dce3c7fb 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java @@ -31,6 +31,7 @@ import com.google.api.services.translate.model.LanguagesResource; import com.google.api.services.translate.model.TranslationsResource; import com.google.cloud.HttpTransportOptions; +import com.google.cloud.ServiceOptions; import com.google.cloud.translate.TranslateException; import com.google.cloud.translate.TranslateOptions; import com.google.common.base.Function; @@ -43,17 +44,20 @@ public class HttpTranslateRpc implements TranslateRpc { + private static final String ARTIFACT_ID = "google-cloud-translate"; + private final TranslateOptions options; private final Translate translate; public HttpTranslateRpc(TranslateOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = + transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); this.options = options; translate = new Translate.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) + .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) .build(); } diff --git a/google-cloud-vision/pom.xml b/google-cloud-vision/pom.xml index 8598d2afc213..76b531fa9846 100644 --- a/google-cloud-vision/pom.xml +++ b/google-cloud-vision/pom.xml @@ -97,10 +97,10 @@ generate-resources - write-project-properties + write-project-properties - ${project.build.outputDirectory}/project.properties + ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties From 3391879521163225f46cb9ff3309347dbaf05d6b Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Thu, 6 Apr 2017 13:09:42 -0700 Subject: [PATCH 2/9] update PR comments --- .settings/org.eclipse.core.resources.prefs | 3 -- .../cloud/bigquery/BigQueryOptions.java | 6 ++-- .../bigquery/spi/v2/HttpBigQueryRpc.java | 5 ++- .../google/cloud/compute/ComputeOptions.java | 5 +-- .../cloud/compute/spi/v1/HttpComputeRpc.java | 5 ++- .../google/cloud/GrpcTransportOptions.java | 5 ++- .../google/cloud/HttpTransportOptions.java | 8 ++--- .../java/com/google/cloud/ServiceOptions.java | 32 ++++++++++++------- .../cloud/datastore/DatastoreOptions.java | 5 ++- .../datastore/spi/v1/HttpDatastoreRpc.java | 6 ++-- .../java/com/google/cloud/dns/DnsOptions.java | 8 +++-- .../google/cloud/dns/spi/v1/HttpDnsRpc.java | 6 ++-- .../google/cloud/logging/LoggingOptions.java | 8 +++-- .../cloud/logging/spi/v2/GrpcLoggingRpc.java | 4 +-- .../cloud/logging/spi/v2/LoggingSettings.java | 7 ++-- .../ResourceManagerOptions.java | 9 ++++-- .../spi/v1beta1/HttpResourceManagerRpc.java | 7 ++-- .../google/cloud/storage/StorageOptions.java | 8 +++-- .../cloud/storage/spi/v1/HttpStorageRpc.java | 6 ++-- .../cloud/translate/TranslateOptions.java | 11 ++++--- .../translate/spi/v2/HttpTranslateRpc.java | 7 ++-- 21 files changed, 85 insertions(+), 76 deletions(-) delete mode 100644 .settings/org.eclipse.core.resources.prefs diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 5b781ec6d952..000000000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/test/java=UTF-8 diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index cafa0d3d8563..7a0a5b67fea7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -21,15 +21,15 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.collect.ImmutableSet; - import java.util.Set; public class BigQueryOptions extends ServiceOptions { + private static final String ARTIFACT_ID = "google-cloud-bigquery"; private static final String API_SHORT_NAME = "BigQuery"; private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery"; private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); @@ -59,6 +59,8 @@ public static class Builder extends ServiceOptions.Builder { private Builder() { + super(); + setArtifactId(ARTIFACT_ID); } private Builder(BigQueryOptions options) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 5963d047b118..4ab313d85aa7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -64,7 +64,6 @@ public class HttpBigQueryRpc implements BigQueryRpc { public static final String DEFAULT_PROJECTION = "full"; - private static final String ARTIFACT_ID = "google-cloud-bigquery"; private static final String BASE_RESUMABLE_URI = "https://www.googleapis.com/upload/bigquery/v2/projects/"; // see: https://cloud.google.com/bigquery/loading-data-post-request#resume-upload @@ -76,11 +75,11 @@ public HttpBigQueryRpc(BigQueryOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); this.options = options; bigquery = new Bigquery.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName(ARTIFACT_ID)) + .setApplicationName(options.getApplicationName()) .build(); } diff --git a/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java b/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java index 31ab253a1244..ff1c2a70effe 100644 --- a/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java +++ b/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java @@ -21,15 +21,15 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.compute.spi.v1.ComputeRpc; import com.google.cloud.compute.spi.ComputeRpcFactory; +import com.google.cloud.compute.spi.v1.ComputeRpc; import com.google.cloud.compute.spi.v1.HttpComputeRpc; import com.google.common.collect.ImmutableSet; - import java.util.Set; public class ComputeOptions extends ServiceOptions { + private static final String ARTIFACT_ID = "google-cloud-compute"; private static final String API_SHORT_NAME = "Compute"; private static final String COMPUTE_SCOPE = "https://www.googleapis.com/auth/compute"; private static final Set SCOPES = ImmutableSet.of(COMPUTE_SCOPE); @@ -63,6 +63,7 @@ private Builder() { private Builder(ComputeOptions options) { super(options); + setArtifactId(ARTIFACT_ID); } @Override diff --git a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java index 2fe6783105ae..82f97610a5c1 100644 --- a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java +++ b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java @@ -78,7 +78,6 @@ public class HttpComputeRpc implements ComputeRpc { - private static final String ARTIFACT_ID = "google-cloud-compute"; private final ComputeOptions options; private final Compute compute; @@ -86,11 +85,11 @@ public HttpComputeRpc(ComputeOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); this.options = options; compute = new Compute.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) + .setApplicationName(ServiceOptions.getApplicationName()) .build(); } diff --git a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java index 63ba053f3df7..8ed4166a7de9 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java @@ -214,13 +214,12 @@ public UnaryCallSettings.Builder getApiCallSettings(RetrySettings retrySettings) */ public static ChannelProvider setUpChannelProvider( InstantiatingChannelProvider.Builder providerBuilder, - ServiceOptions serviceOptions, - String artifactId) { + ServiceOptions serviceOptions) { HostAndPort hostAndPort = HostAndPort.fromString(serviceOptions.getHost()); providerBuilder.setServiceAddress(hostAndPort.getHostText()) .setPort(hostAndPort.getPort()) .setClientLibHeader(ServiceOptions.getGoogApiClientLibName(), - firstNonNull(ServiceOptions.getLibraryVersion(artifactId), "")); + firstNonNull(serviceOptions.getLibraryVersion(), "")); Credentials scopedCredentials = serviceOptions.getScopedCredentials(); if (scopedCredentials != null && scopedCredentials != NoCredentials.getInstance()) { providerBuilder.setCredentialsProvider(FixedCredentialsProvider.create(scopedCredentials)); diff --git a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java index 540b42374d15..6c3d12950d52 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java @@ -139,7 +139,7 @@ public HttpTransportFactory getHttpTransportFactory() { * options. */ public HttpRequestInitializer getHttpRequestInitializer( - ServiceOptions serviceOptions, final String artifactId) { + final ServiceOptions serviceOptions) { Credentials scopedCredentials = serviceOptions.getScopedCredentials(); final HttpRequestInitializer delegate = scopedCredentials != null && scopedCredentials != NoCredentials.getInstance() @@ -158,17 +158,17 @@ public void initialize(HttpRequest httpRequest) throws IOException { } HttpHeaders headers = httpRequest.getHeaders(); - headers.set("x-goog-api-client", getXGoogApiClientHeader(artifactId)); + headers.set("x-goog-api-client", getXGoogApiClientHeader(serviceOptions)); } }; } - static String getXGoogApiClientHeader(String artifactId) { + static String getXGoogApiClientHeader(ServiceOptions serviceOptions) { return String.format( "gl-java/%s %s/%s", getJavaVersion(), ServiceOptions.getGoogApiClientLibName(), - ServiceOptions.getLibraryVersion(artifactId)); + serviceOptions.getLibraryVersion()); } private static String getJavaVersion() { 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 8770b984929c..8ea510a6d6a9 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 @@ -78,7 +78,7 @@ public abstract class ServiceOptions, private static final String X_GOOGLE_CLIENT_HEADER_NAME = "gccl"; private static final String PROPERTIES_VERSION_KEY = "artifact.version"; - private static final String PROPERTIES_ROOT = "/properties/"; + private static final String PROPERTIES_ROOT = "/properties"; private static final String PROPERTIES_FILE = "project.properties"; private static final RetrySettings DEFAULT_RETRY_SETTINGS = getDefaultRetrySettingsBuilder() @@ -96,6 +96,7 @@ public abstract class ServiceOptions, private final ApiClock clock; private final Credentials credentials; private final TransportOptions transportOptions; + private final String artifactId; private transient ServiceRpcFactory serviceRpcFactory; private transient ServiceFactory serviceFactory; @@ -121,6 +122,7 @@ public abstract static class Builder, private ServiceRpcFactory serviceRpcFactory; private ApiClock clock; private TransportOptions transportOptions; + private String artifactId; protected Builder() {} @@ -133,6 +135,7 @@ protected Builder(ServiceOptions options) { serviceRpcFactory = options.serviceRpcFactory; clock = options.clock; transportOptions = options.transportOptions; + artifactId = options.artifactId; } protected abstract ServiceOptions build(); @@ -234,6 +237,11 @@ public B setTransportOptions(TransportOptions transportOptions) { this.transportOptions = transportOptions; return self(); } + + public B setArtifactId(String artifactId) { + this.artifactId = artifactId; + return self(); + } } protected ServiceOptions(Class> serviceFactoryClass, @@ -259,6 +267,7 @@ protected ServiceOptions(Class> ser clock = firstNonNull(builder.clock, CurrentMillisClock.getDefaultClock()); transportOptions = firstNonNull(builder.transportOptions, serviceDefaults.getDefaultTransportOptions()); + artifactId = firstNonNull(builder.artifactId, ARTIFACT_ID); } /** @@ -522,8 +531,8 @@ public TransportOptions getTransportOptions() { /** * Returns the application's name as a string in the format {@code gcloud-java/[version]}. */ - public static String getApplicationName(String artifactId) { - String libraryVersion = getLibraryVersion(artifactId); + public String getApplicationName() { + String libraryVersion = getLibraryVersion(); return libraryVersion == null ? LIBRARY_NAME : LIBRARY_NAME + "/" + libraryVersion; } @@ -545,8 +554,8 @@ public static String getGoogApiClientLibName() { /** * Returns the library's version as a string. */ - public static String getLibraryVersion(String artifactId) { - String version = getPomVersion(artifactId); + public String getLibraryVersion() { + String version = getPomVersion(); if (version == null) { version = getManifestVersion(); } @@ -620,11 +629,10 @@ static T getFromServiceLoader(Class clazz, T defaultInstance) { return Iterables.getFirst(ServiceLoader.load(clazz), defaultInstance); } - private static String getPomVersion(String artifactId) { + private String getPomVersion() { try { - String projectPropertiesPath = PROPERTIES_ROOT - + artifactId + "/" - + PROPERTIES_FILE; + String projectPropertiesPath = PROPERTIES_ROOT + "/" + + artifactId + "/" + PROPERTIES_FILE; return PropertiesProvider.loadProperty( ServiceOptions.class, projectPropertiesPath, PROPERTIES_VERSION_KEY); } catch (Exception e) { @@ -633,7 +641,7 @@ private static String getPomVersion(String artifactId) { return null; } - private static String getManifestVersion() { + private String getManifestVersion() { String version = null; try { Enumeration resources = @@ -641,8 +649,8 @@ private static String getManifestVersion() { while (resources.hasMoreElements() && version == null) { Manifest manifest = new Manifest(resources.nextElement().openStream()); Attributes manifestAttributes = manifest.getMainAttributes(); - String artifactId = manifestAttributes.getValue(MANIFEST_ARTIFACT_ID_KEY); - if (artifactId != null && artifactId.equals(ARTIFACT_ID)) { + String currentArtifactId = manifestAttributes.getValue(MANIFEST_ARTIFACT_ID_KEY); + if (currentArtifactId != null && currentArtifactId.equals(artifactId)) { version = manifestAttributes.getValue(MANIFEST_VERSION_KEY); } } diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java index 75ac99473abc..9cee85775092 100644 --- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java +++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java @@ -23,8 +23,8 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.datastore.spi.v1.DatastoreRpc; import com.google.cloud.datastore.spi.DatastoreRpcFactory; +import com.google.cloud.datastore.spi.v1.DatastoreRpc; import com.google.cloud.datastore.spi.v1.HttpDatastoreRpc; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; @@ -35,6 +35,7 @@ public class DatastoreOptions extends ServiceOptions { + private static final String ARTIFACT_ID = "google-cloud-datastore"; private static final long serialVersionUID = -1018382430058137336L; private static final String API_SHORT_NAME = "Datastore"; private static final String DATASTORE_SCOPE = "https://www.googleapis.com/auth/datastore"; @@ -68,6 +69,8 @@ public static class Builder extends private String namespace; private Builder() { + super(); + setArtifactId(ARTIFACT_ID); } private Builder(DatastoreOptions options) { diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java index a5e41954f13a..2d7fb437155e 100644 --- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java +++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/HttpDatastoreRpc.java @@ -20,7 +20,6 @@ import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.http.HttpTransport; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.datastore.DatastoreException; import com.google.cloud.datastore.DatastoreOptions; import com.google.datastore.v1.AllocateIdsRequest; @@ -41,7 +40,6 @@ public class HttpDatastoreRpc implements DatastoreRpc { - private static final String ARTIFACT_ID = "google-cloud-datastore"; private final com.google.datastore.v1.client.Datastore client; public HttpDatastoreRpc(DatastoreOptions options) { @@ -76,12 +74,12 @@ public HttpDatastoreRpc(DatastoreOptions options) { private HttpRequestInitializer getHttpRequestInitializer(final DatastoreOptions options, HttpTransportOptions httpTransportOptions) { final HttpRequestInitializer delegate = httpTransportOptions - .getHttpRequestInitializer(options, ARTIFACT_ID); + .getHttpRequestInitializer(options); return new HttpRequestInitializer() { @Override public void initialize(HttpRequest httpRequest) throws IOException { delegate.initialize(httpRequest); - httpRequest.getHeaders().setUserAgent(ServiceOptions.getApplicationName(ARTIFACT_ID)); + httpRequest.getHeaders().setUserAgent(options.getApplicationName()); } }; } diff --git a/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java b/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java index 7a187f006d23..f285d6017a9f 100644 --- a/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java +++ b/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java @@ -21,16 +21,16 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.dns.spi.v1.HttpDnsRpc; -import com.google.cloud.dns.spi.v1.DnsRpc; import com.google.cloud.dns.spi.DnsRpcFactory; +import com.google.cloud.dns.spi.v1.DnsRpc; +import com.google.cloud.dns.spi.v1.HttpDnsRpc; import com.google.common.collect.ImmutableSet; - import java.util.Set; public class DnsOptions extends ServiceOptions { private static final long serialVersionUID = -2501790264435912627L; + private static final String ARTIFACT_ID = "google-cloud-dns"; private static final String API_SHORT_NAME = "Dns"; private static final String GC_DNS_RW = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"; private static final Set SCOPES = ImmutableSet.of(GC_DNS_RW); @@ -58,6 +58,8 @@ public static class Builder extends ServiceOptions.Builder { private Builder() { + super(); + setArtifactId(ARTIFACT_ID); } private Builder(DnsOptions options) { diff --git a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java index 8b7914e08352..93293f1f4af4 100644 --- a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java +++ b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java @@ -34,7 +34,6 @@ import com.google.api.services.dns.model.ResourceRecordSet; import com.google.api.services.dns.model.ResourceRecordSetsListResponse; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.dns.DnsException; import com.google.cloud.dns.DnsOptions; import java.io.IOException; @@ -46,7 +45,6 @@ public class HttpDnsRpc implements DnsRpc { private static final String SORT_BY = "changeSequence"; - private static final String ARTIFACT_ID = "google-cloud-dns"; private final Dns dns; private final DnsOptions options; @@ -184,10 +182,10 @@ public HttpDnsRpc(DnsOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); this.dns = new Dns.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) + .setApplicationName(options.getApplicationName()) .build(); this.options = options; } diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java index 65998d5b0813..4abc58bf6f12 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java @@ -21,9 +21,9 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; +import com.google.cloud.logging.spi.LoggingRpcFactory; import com.google.cloud.logging.spi.v2.GrpcLoggingRpc; import com.google.cloud.logging.spi.v2.LoggingRpc; -import com.google.cloud.logging.spi.LoggingRpcFactory; import com.google.cloud.logging.spi.v2.LoggingSettings; import com.google.common.collect.ImmutableSet; import java.io.IOException; @@ -31,6 +31,7 @@ public class LoggingOptions extends ServiceOptions { + private static final String ARTIFACT_ID = "google-cloud-logging"; private static final String API_SHORT_NAME = "Logging"; private static final String LOGGING_SCOPE = "https://www.googleapis.com/auth/logging.admin"; private static final Set SCOPES = ImmutableSet.of(LOGGING_SCOPE); @@ -76,7 +77,10 @@ protected String getDefaultHost() { public static class Builder extends ServiceOptions.Builder { - private Builder() {} + private Builder() { + super(); + setArtifactId(ARTIFACT_ID); + } private Builder(LoggingOptions options) { super(options); diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java index 2db63ef2b6cd..1ca3155872b2 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/GrpcLoggingRpc.java @@ -65,8 +65,6 @@ public class GrpcLoggingRpc implements LoggingRpc { - private static final String ARTIFACT_ID = "google-cloud-logging"; - private final ConfigClient configClient; private final LoggingClient loggingClient; private final MetricsClient metricsClient; @@ -93,7 +91,7 @@ public GrpcLoggingRpc(LoggingOptions options) throws IOException { channelProvider = FixedChannelProvider.create(managedChannel); } else { channelProvider = GrpcTransportOptions.setUpChannelProvider( - LoggingSettings.defaultChannelProviderBuilder(), options, ARTIFACT_ID); + LoggingSettings.defaultChannelProviderBuilder(), options); } providerManager = ProviderManager.newBuilder() .setChannelProvider(channelProvider) diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java index 831a65f88e38..5f2e2327265e 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java @@ -15,10 +15,6 @@ */ package com.google.cloud.logging.spi.v2; -import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogEntriesPagedResponse; -import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogsPagedResponse; -import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListMonitoredResourceDescriptorsPagedResponse; - import com.google.api.MonitoredResourceDescriptor; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.batching.PartitionKey; @@ -43,6 +39,9 @@ import com.google.api.gax.grpc.SimpleCallSettings; import com.google.api.gax.grpc.UnaryCallSettings; import com.google.api.gax.grpc.UnaryCallable; +import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogEntriesPagedResponse; +import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogsPagedResponse; +import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListMonitoredResourceDescriptorsPagedResponse; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java index 66c832a290c6..554ea6c39fb0 100644 --- a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java +++ b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java @@ -21,17 +21,17 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; +import com.google.cloud.resourcemanager.spi.ResourceManagerRpcFactory; import com.google.cloud.resourcemanager.spi.v1beta1.HttpResourceManagerRpc; import com.google.cloud.resourcemanager.spi.v1beta1.ResourceManagerRpc; -import com.google.cloud.resourcemanager.spi.ResourceManagerRpcFactory; import com.google.common.collect.ImmutableSet; - import java.util.Set; public class ResourceManagerOptions extends ServiceOptions { private static final long serialVersionUID = 624147474447836183L; + private static final String ARTIFACT_ID = "google-cloud-resourcemanager"; private static final String API_SHORT_NAME = "ResourceManager"; private static final String GCRM_SCOPE = "https://www.googleapis.com/auth/cloud-platform"; private static final Set SCOPES = ImmutableSet.of(GCRM_SCOPE); @@ -72,7 +72,10 @@ protected String getDefaultHost() { public static class Builder extends ServiceOptions.Builder { - private Builder() {} + private Builder() { + super(); + setArtifactId(ARTIFACT_ID); + } private Builder(ResourceManagerOptions options) { super(options); diff --git a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java index c0f042418040..3af74e3bd9cc 100644 --- a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java +++ b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java @@ -32,7 +32,6 @@ import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsRequest; import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsResponse; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.resourcemanager.ResourceManagerException; import com.google.cloud.resourcemanager.ResourceManagerOptions; import com.google.common.collect.ImmutableList; @@ -44,19 +43,17 @@ public class HttpResourceManagerRpc implements ResourceManagerRpc { - private static final String ARTIFACT_ID = "google-cloud-resourcemanager"; - private final Cloudresourcemanager resourceManager; public HttpResourceManagerRpc(ResourceManagerOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); resourceManager = new Cloudresourcemanager.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) + .setApplicationName(options.getApplicationName()) .build(); } diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java index e885ebf5d54d..ed02567c175f 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java @@ -21,15 +21,16 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; +import com.google.cloud.storage.spi.StorageRpcFactory; import com.google.cloud.storage.spi.v1.HttpStorageRpc; import com.google.cloud.storage.spi.v1.StorageRpc; -import com.google.cloud.storage.spi.StorageRpcFactory; import com.google.common.collect.ImmutableSet; import java.util.Set; public class StorageOptions extends ServiceOptions { private static final long serialVersionUID = -2907268477247502947L; + private static final String ARTIFACT_ID = "google-cloud-storage"; private static final String API_SHORT_NAME = "Storage"; private static final String GCS_SCOPE = "https://www.googleapis.com/auth/devstorage.full_control"; private static final Set SCOPES = ImmutableSet.of(GCS_SCOPE); @@ -57,7 +58,10 @@ public ServiceRpc create(StorageOptions options) { public static class Builder extends ServiceOptions.Builder { - private Builder() {} + private Builder() { + super(); + setArtifactId(ARTIFACT_ID); + } private Builder(StorageOptions options) { super(options); diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java index 37e1ffe2d007..40937621812d 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java @@ -51,7 +51,6 @@ import com.google.api.services.storage.model.StorageObject; import com.google.cloud.BaseServiceException; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import com.google.common.base.Function; @@ -76,7 +75,6 @@ public class HttpStorageRpc implements StorageRpc { public static final String DEFAULT_PROJECTION = "full"; - private static final String ARTIFACT_ID = "google-cloud-storage"; private static final String ENCRYPTION_KEY_PREFIX = "x-goog-encryption-"; private static final String SOURCE_ENCRYPTION_KEY_PREFIX = "x-goog-copy-source-encryption-"; private final StorageOptions options; @@ -88,11 +86,11 @@ public HttpStorageRpc(StorageOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); this.options = options; storage = new Storage.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) + .setApplicationName(options.getApplicationName()) .build(); } diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java index 98d083f3feba..693cb0827a61 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java @@ -17,7 +17,6 @@ package com.google.cloud.translate; import static com.google.common.base.MoreObjects.firstNonNull; -import static com.google.common.base.Preconditions.checkArgument; import com.google.cloud.HttpTransportOptions; import com.google.cloud.ServiceDefaults; @@ -25,11 +24,10 @@ import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; import com.google.cloud.translate.Translate.TranslateOption; +import com.google.cloud.translate.spi.TranslateRpcFactory; import com.google.cloud.translate.spi.v2.HttpTranslateRpc; import com.google.cloud.translate.spi.v2.TranslateRpc; -import com.google.cloud.translate.spi.TranslateRpcFactory; import com.google.common.collect.ImmutableSet; - import java.util.List; import java.util.Locale; import java.util.Objects; @@ -39,6 +37,7 @@ public class TranslateOptions extends ServiceOptions { private static final long serialVersionUID = -572597134540398216L; + private static final String ARTIFACT_ID = "google-cloud-translate"; private static final String API_SHORT_NAME = "Translate"; private static final String DEFAULT_HOST = "https://translation.googleapis.com"; private static final String API_KEY_ENV_NAME = "GOOGLE_API_KEY"; @@ -74,11 +73,15 @@ public static class Builder extends private String apiKey; private String targetLanguage; - private Builder() {} + private Builder() { + super(); + setArtifactId(ARTIFACT_ID); + } private Builder(TranslateOptions options) { super(options); this.apiKey = options.apiKey; + setArtifactId(ARTIFACT_ID); } diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java index 3b63dce3c7fb..d2c45e81a758 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java @@ -31,7 +31,6 @@ import com.google.api.services.translate.model.LanguagesResource; import com.google.api.services.translate.model.TranslationsResource; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.translate.TranslateException; import com.google.cloud.translate.TranslateOptions; import com.google.common.base.Function; @@ -44,8 +43,6 @@ public class HttpTranslateRpc implements TranslateRpc { - private static final String ARTIFACT_ID = "google-cloud-translate"; - private final TranslateOptions options; private final Translate translate; @@ -53,11 +50,11 @@ public HttpTranslateRpc(TranslateOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options, ARTIFACT_ID); + transportOptions.getHttpRequestInitializer(options); this.options = options; translate = new Translate.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName(ARTIFACT_ID)) + .setApplicationName(options.getApplicationName()) .build(); } From 23287a875aca372cdcdb68f402041af5b8986ece Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Thu, 6 Apr 2017 13:10:53 -0700 Subject: [PATCH 3/9] restore settings --- .settings/org.eclipse.core.resources.prefs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .settings/org.eclipse.core.resources.prefs diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000000..5b781ec6d952 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 From 6b9cb12705cd0da6fb14db97c1677064f5a0a4cf Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Thu, 6 Apr 2017 13:58:33 -0700 Subject: [PATCH 4/9] Fix formatting. Revert files --- .../com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 4 +--- .../com/google/cloud/compute/spi/v1/HttpComputeRpc.java | 7 ++----- .../main/java/com/google/cloud/GrpcTransportOptions.java | 3 +-- .../src/main/java/com/google/cloud/ServiceOptions.java | 4 ++-- .../main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java | 3 +-- .../com/google/cloud/logging/spi/v2/LoggingSettings.java | 7 ++++--- .../spi/v1beta1/HttpResourceManagerRpc.java | 3 +-- .../com/google/cloud/storage/spi/v1/HttpStorageRpc.java | 4 +--- .../google/cloud/translate/spi/v2/HttpTranslateRpc.java | 3 +-- 9 files changed, 14 insertions(+), 24 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 4ab313d85aa7..0f27b463523d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -63,7 +63,6 @@ public class HttpBigQueryRpc implements BigQueryRpc { public static final String DEFAULT_PROJECTION = "full"; - private static final String BASE_RESUMABLE_URI = "https://www.googleapis.com/upload/bigquery/v2/projects/"; // see: https://cloud.google.com/bigquery/loading-data-post-request#resume-upload @@ -74,8 +73,7 @@ public class HttpBigQueryRpc implements BigQueryRpc { public HttpBigQueryRpc(BigQueryOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; bigquery = new Bigquery.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) diff --git a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java index 82f97610a5c1..eccbee1481c0 100644 --- a/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java +++ b/google-cloud-compute/src/main/java/com/google/cloud/compute/spi/v1/HttpComputeRpc.java @@ -69,7 +69,6 @@ import com.google.api.services.compute.model.Zone; import com.google.api.services.compute.model.ZoneList; import com.google.cloud.HttpTransportOptions; -import com.google.cloud.ServiceOptions; import com.google.cloud.compute.ComputeException; import com.google.cloud.compute.ComputeOptions; import com.google.common.collect.ImmutableList; @@ -84,12 +83,11 @@ public class HttpComputeRpc implements ComputeRpc { public HttpComputeRpc(ComputeOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; compute = new Compute.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) - .setApplicationName(ServiceOptions.getApplicationName()) + .setApplicationName(options.getApplicationName()) .build(); } @@ -746,7 +744,6 @@ public Operation resizeDisk(String zone, String disk, long sizeGb, Map options) { try { return compute.subnetworks() diff --git a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java index 8ed4166a7de9..f578b8698a3d 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/GrpcTransportOptions.java @@ -213,8 +213,7 @@ public UnaryCallSettings.Builder getApiCallSettings(RetrySettings retrySettings) * Returns a channel provider from the given default provider. */ public static ChannelProvider setUpChannelProvider( - InstantiatingChannelProvider.Builder providerBuilder, - ServiceOptions serviceOptions) { + InstantiatingChannelProvider.Builder providerBuilder, ServiceOptions serviceOptions) { HostAndPort hostAndPort = HostAndPort.fromString(serviceOptions.getHost()); providerBuilder.setServiceAddress(hostAndPort.getHostText()) .setPort(hostAndPort.getPort()) 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 8ea510a6d6a9..ca3d33f80bef 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 @@ -649,8 +649,8 @@ private String getManifestVersion() { while (resources.hasMoreElements() && version == null) { Manifest manifest = new Manifest(resources.nextElement().openStream()); Attributes manifestAttributes = manifest.getMainAttributes(); - String currentArtifactId = manifestAttributes.getValue(MANIFEST_ARTIFACT_ID_KEY); - if (currentArtifactId != null && currentArtifactId.equals(artifactId)) { + String value = manifestAttributes.getValue(MANIFEST_ARTIFACT_ID_KEY); + if (value != null && value.equals(artifactId)) { version = manifestAttributes.getValue(MANIFEST_VERSION_KEY); } } diff --git a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java index 93293f1f4af4..9b2bcfab3e2d 100644 --- a/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java +++ b/google-cloud-dns/src/main/java/com/google/cloud/dns/spi/v1/HttpDnsRpc.java @@ -181,8 +181,7 @@ private static DnsException translate(IOException exception, boolean idempotent) public HttpDnsRpc(DnsOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.dns = new Dns.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) .setApplicationName(options.getApplicationName()) diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java index 5f2e2327265e..831a65f88e38 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/spi/v2/LoggingSettings.java @@ -15,6 +15,10 @@ */ package com.google.cloud.logging.spi.v2; +import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogEntriesPagedResponse; +import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogsPagedResponse; +import static com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListMonitoredResourceDescriptorsPagedResponse; + import com.google.api.MonitoredResourceDescriptor; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.batching.PartitionKey; @@ -39,9 +43,6 @@ import com.google.api.gax.grpc.SimpleCallSettings; import com.google.api.gax.grpc.UnaryCallSettings; import com.google.api.gax.grpc.UnaryCallable; -import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogEntriesPagedResponse; -import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListLogsPagedResponse; -import com.google.cloud.logging.spi.v2.PagedResponseWrappers.ListMonitoredResourceDescriptorsPagedResponse; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java index 3af74e3bd9cc..08ff101ab5f4 100644 --- a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java +++ b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/spi/v1beta1/HttpResourceManagerRpc.java @@ -48,8 +48,7 @@ public class HttpResourceManagerRpc implements ResourceManagerRpc { public HttpResourceManagerRpc(ResourceManagerOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); resourceManager = new Cloudresourcemanager.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java index 40937621812d..7d11be03b25a 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java @@ -74,7 +74,6 @@ public class HttpStorageRpc implements StorageRpc { public static final String DEFAULT_PROJECTION = "full"; - private static final String ENCRYPTION_KEY_PREFIX = "x-goog-encryption-"; private static final String SOURCE_ENCRYPTION_KEY_PREFIX = "x-goog-copy-source-encryption-"; private final StorageOptions options; @@ -85,8 +84,7 @@ public class HttpStorageRpc implements StorageRpc { public HttpStorageRpc(StorageOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; storage = new Storage.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java index d2c45e81a758..9949d2e0a434 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/spi/v2/HttpTranslateRpc.java @@ -49,8 +49,7 @@ public class HttpTranslateRpc implements TranslateRpc { public HttpTranslateRpc(TranslateOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); - HttpRequestInitializer initializer = - transportOptions.getHttpRequestInitializer(options); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; translate = new Translate.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) From dc88e2c1edc7284210e9d901b13940c73d841e29 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Thu, 6 Apr 2017 14:27:11 -0700 Subject: [PATCH 5/9] Fix tests --- .../java/com/google/cloud/HttpTransportOptionsTest.java | 7 +++++-- .../src/test/java/com/google/cloud/ServiceOptionsTest.java | 5 ++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java index 93397894d1e5..f4e890678bcd 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java @@ -64,9 +64,12 @@ public void testBaseHashCode() { @Test public void testHeader() { - String expectedHeaderPattern = "^gl-java/.* gccl/.*"; + String expectedHeaderPattern = "^gl-java/.* gccl/0.0.0"; + final ServiceOptions mockOptions = EasyMock.createMock(ServiceOptions.class); + EasyMock.expect(mockOptions.getLibraryVersion()).andReturn("0.0.0"); + EasyMock.replay(mockOptions); assertTrue(Pattern.compile(expectedHeaderPattern) - .matcher(HttpTransportOptions.getXGoogApiClientHeader("google-cloud-core")) + .matcher(HttpTransportOptions.getXGoogApiClientHeader(mockOptions)) .find()); } } diff --git a/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java b/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java index ff28f09b2f1b..38b468d93ebc 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java @@ -266,13 +266,12 @@ public void testBaseEquals() { @Test public void testLibraryName() { - assertEquals(LIBRARY_NAME, OPTIONS.getLibraryName()); + assertEquals(LIBRARY_NAME, ServiceOptions.getLibraryName()); } @Test public void testApplicationName() { - assertTrue(APPLICATION_NAME_PATTERN.matcher( - OPTIONS.getApplicationName("google-cloud-core")).matches()); + assertTrue(APPLICATION_NAME_PATTERN.matcher(OPTIONS.getApplicationName()).matches()); } @Test From 403009e48618ccb07934cbd368d45a652855294e Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Fri, 7 Apr 2017 14:57:31 -0700 Subject: [PATCH 6/9] Change path --- google-cloud-bigquery/pom.xml | 2 +- google-cloud-compute/pom.xml | 2 +- google-cloud-core/pom.xml | 2 +- google-cloud-datastore/pom.xml | 2 +- google-cloud-dns/pom.xml | 2 +- google-cloud-errorreporting/pom.xml | 2 +- google-cloud-language/pom.xml | 2 +- google-cloud-logging/pom.xml | 2 +- google-cloud-monitoring/pom.xml | 2 +- google-cloud-pubsub/pom.xml | 2 +- google-cloud-resourcemanager/pom.xml | 2 +- google-cloud-spanner/pom.xml | 2 +- google-cloud-speech/pom.xml | 2 +- google-cloud-storage/pom.xml | 2 +- google-cloud-trace/pom.xml | 2 +- google-cloud-translate/pom.xml | 2 +- google-cloud-vision/pom.xml | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 133658d3b908..c27271c62e9b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -75,7 +75,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/bigquery/project.properties diff --git a/google-cloud-compute/pom.xml b/google-cloud-compute/pom.xml index 87103bc319a6..562dff22a43c 100644 --- a/google-cloud-compute/pom.xml +++ b/google-cloud-compute/pom.xml @@ -68,7 +68,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/compute/project.properties diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index 9f7d4fc526e5..56f40feeeba0 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -185,7 +185,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/project.properties diff --git a/google-cloud-datastore/pom.xml b/google-cloud-datastore/pom.xml index d08cf4cc7263..afba74e8e1c3 100644 --- a/google-cloud-datastore/pom.xml +++ b/google-cloud-datastore/pom.xml @@ -73,7 +73,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/datastore/project.properties diff --git a/google-cloud-dns/pom.xml b/google-cloud-dns/pom.xml index e4da0c08fc63..ace8778735a3 100644 --- a/google-cloud-dns/pom.xml +++ b/google-cloud-dns/pom.xml @@ -79,7 +79,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/dns/project.properties diff --git a/google-cloud-errorreporting/pom.xml b/google-cloud-errorreporting/pom.xml index 7453db2c6a24..9b9f57a0c1c0 100644 --- a/google-cloud-errorreporting/pom.xml +++ b/google-cloud-errorreporting/pom.xml @@ -99,7 +99,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/errorreporting/project.properties diff --git a/google-cloud-language/pom.xml b/google-cloud-language/pom.xml index 8c04c28e6293..03e14128c4e1 100644 --- a/google-cloud-language/pom.xml +++ b/google-cloud-language/pom.xml @@ -111,7 +111,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/language/project.properties diff --git a/google-cloud-logging/pom.xml b/google-cloud-logging/pom.xml index 5b584652bf4d..afec2f83b0a7 100644 --- a/google-cloud-logging/pom.xml +++ b/google-cloud-logging/pom.xml @@ -100,7 +100,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/logging/project.properties diff --git a/google-cloud-monitoring/pom.xml b/google-cloud-monitoring/pom.xml index b8b734e70afe..2cac685b3da3 100644 --- a/google-cloud-monitoring/pom.xml +++ b/google-cloud-monitoring/pom.xml @@ -99,7 +99,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/monitoring/project.properties diff --git a/google-cloud-pubsub/pom.xml b/google-cloud-pubsub/pom.xml index cfe4351c5240..c300794e646b 100644 --- a/google-cloud-pubsub/pom.xml +++ b/google-cloud-pubsub/pom.xml @@ -105,7 +105,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/pubsub/project.properties diff --git a/google-cloud-resourcemanager/pom.xml b/google-cloud-resourcemanager/pom.xml index 554a48f00c81..aa6cfdff90ad 100644 --- a/google-cloud-resourcemanager/pom.xml +++ b/google-cloud-resourcemanager/pom.xml @@ -68,7 +68,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/resourcemanager/project.properties diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 06ca34bc71f8..b83d1ac94b86 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -49,7 +49,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/spanner/project.properties diff --git a/google-cloud-speech/pom.xml b/google-cloud-speech/pom.xml index 2337c1f35693..df51d8397c78 100644 --- a/google-cloud-speech/pom.xml +++ b/google-cloud-speech/pom.xml @@ -110,7 +110,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/speech/project.properties diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 6a96d1962ce0..2263dfb3646f 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -73,7 +73,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/storage/${project.artifactId}/project.properties diff --git a/google-cloud-trace/pom.xml b/google-cloud-trace/pom.xml index 8fb29d8be5b9..091929ee217e 100644 --- a/google-cloud-trace/pom.xml +++ b/google-cloud-trace/pom.xml @@ -99,7 +99,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/trace/project.properties diff --git a/google-cloud-translate/pom.xml b/google-cloud-translate/pom.xml index 674bab42848b..e2c74a6d229d 100644 --- a/google-cloud-translate/pom.xml +++ b/google-cloud-translate/pom.xml @@ -73,7 +73,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/translate/${project.artifactId}/project.properties diff --git a/google-cloud-vision/pom.xml b/google-cloud-vision/pom.xml index a03f34125d82..04162038eb1c 100644 --- a/google-cloud-vision/pom.xml +++ b/google-cloud-vision/pom.xml @@ -100,7 +100,7 @@ write-project-properties - ${project.build.outputDirectory}/properties/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/vision/project.properties From c18c37880b9b360a0a7cb6d803314e991cd8e2a1 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Mon, 10 Apr 2017 20:20:56 -0700 Subject: [PATCH 7/9] Update PR comments --- .../cloud/bigquery/BigQueryOptions.java | 6 +- .../google/cloud/compute/ComputeOptions.java | 5 +- .../google/cloud/HttpTransportOptions.java | 2 +- .../java/com/google/cloud/ServiceOptions.java | 68 ++++++------------- .../cloud/HttpTransportOptionsTest.java | 2 +- .../cloud/datastore/DatastoreOptions.java | 6 +- .../java/com/google/cloud/dns/DnsOptions.java | 8 +-- .../google/cloud/logging/LoggingOptions.java | 6 +- .../ResourceManagerOptions.java | 9 +-- google-cloud-storage/pom.xml | 2 +- .../google/cloud/storage/StorageOptions.java | 8 +-- google-cloud-translate/pom.xml | 2 +- .../cloud/translate/TranslateOptions.java | 11 ++- 13 files changed, 43 insertions(+), 92 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 7a0a5b67fea7..cafa0d3d8563 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -21,15 +21,15 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.collect.ImmutableSet; + import java.util.Set; public class BigQueryOptions extends ServiceOptions { - private static final String ARTIFACT_ID = "google-cloud-bigquery"; private static final String API_SHORT_NAME = "BigQuery"; private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery"; private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); @@ -59,8 +59,6 @@ public static class Builder extends ServiceOptions.Builder { private Builder() { - super(); - setArtifactId(ARTIFACT_ID); } private Builder(BigQueryOptions options) { diff --git a/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java b/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java index ff1c2a70effe..31ab253a1244 100644 --- a/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java +++ b/google-cloud-compute/src/main/java/com/google/cloud/compute/ComputeOptions.java @@ -21,15 +21,15 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.compute.spi.ComputeRpcFactory; import com.google.cloud.compute.spi.v1.ComputeRpc; +import com.google.cloud.compute.spi.ComputeRpcFactory; import com.google.cloud.compute.spi.v1.HttpComputeRpc; import com.google.common.collect.ImmutableSet; + import java.util.Set; public class ComputeOptions extends ServiceOptions { - private static final String ARTIFACT_ID = "google-cloud-compute"; private static final String API_SHORT_NAME = "Compute"; private static final String COMPUTE_SCOPE = "https://www.googleapis.com/auth/compute"; private static final Set SCOPES = ImmutableSet.of(COMPUTE_SCOPE); @@ -63,7 +63,6 @@ private Builder() { private Builder(ComputeOptions options) { super(options); - setArtifactId(ARTIFACT_ID); } @Override diff --git a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java index 6c3d12950d52..94e9bcf8e76b 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java +++ b/google-cloud-core/src/main/java/com/google/cloud/HttpTransportOptions.java @@ -163,7 +163,7 @@ public void initialize(HttpRequest httpRequest) throws IOException { }; } - static String getXGoogApiClientHeader(ServiceOptions serviceOptions) { + String getXGoogApiClientHeader(ServiceOptions serviceOptions) { return String.format( "gl-java/%s %s/%s", getJavaVersion(), 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 ca3d33f80bef..9e6388f0ead3 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 @@ -28,6 +28,7 @@ import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.spi.ServiceRpcFactory; +import com.google.common.base.Splitter; import com.google.common.collect.Iterables; import com.google.common.io.Files; import java.io.BufferedReader; @@ -44,14 +45,11 @@ import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; -import java.util.Enumeration; +import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.ServiceLoader; import java.util.Set; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.jar.Manifest; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.joda.time.Duration; @@ -71,14 +69,11 @@ public abstract class ServiceOptions, private static final String DEFAULT_HOST = "https://www.googleapis.com"; private static final String LEGACY_PROJECT_ENV_NAME = "GCLOUD_PROJECT"; private static final String PROJECT_ENV_NAME = "GOOGLE_CLOUD_PROJECT"; - private static final String MANIFEST_ARTIFACT_ID_KEY = "artifactId"; - private static final String MANIFEST_VERSION_KEY = "Implementation-Version"; - private static final String ARTIFACT_ID = "google-cloud-core"; private static final String LIBRARY_NAME = "gcloud-java"; private static final String X_GOOGLE_CLIENT_HEADER_NAME = "gccl"; private static final String PROPERTIES_VERSION_KEY = "artifact.version"; - private static final String PROPERTIES_ROOT = "/properties"; + private static final String DEFAULT_PACKAGE_PATH = "com/google/cloud"; private static final String PROPERTIES_FILE = "project.properties"; private static final RetrySettings DEFAULT_RETRY_SETTINGS = getDefaultRetrySettingsBuilder() @@ -96,7 +91,6 @@ public abstract class ServiceOptions, private final ApiClock clock; private final Credentials credentials; private final TransportOptions transportOptions; - private final String artifactId; private transient ServiceRpcFactory serviceRpcFactory; private transient ServiceFactory serviceFactory; @@ -122,7 +116,6 @@ public abstract static class Builder, private ServiceRpcFactory serviceRpcFactory; private ApiClock clock; private TransportOptions transportOptions; - private String artifactId; protected Builder() {} @@ -135,7 +128,6 @@ protected Builder(ServiceOptions options) { serviceRpcFactory = options.serviceRpcFactory; clock = options.clock; transportOptions = options.transportOptions; - artifactId = options.artifactId; } protected abstract ServiceOptions build(); @@ -237,11 +229,6 @@ public B setTransportOptions(TransportOptions transportOptions) { this.transportOptions = transportOptions; return self(); } - - public B setArtifactId(String artifactId) { - this.artifactId = artifactId; - return self(); - } } protected ServiceOptions(Class> serviceFactoryClass, @@ -267,7 +254,6 @@ protected ServiceOptions(Class> ser clock = firstNonNull(builder.clock, CurrentMillisClock.getDefaultClock()); transportOptions = firstNonNull(builder.transportOptions, serviceDefaults.getDefaultTransportOptions()); - artifactId = firstNonNull(builder.artifactId, ARTIFACT_ID); } /** @@ -555,11 +541,16 @@ public static String getGoogApiClientLibName() { * Returns the library's version as a string. */ public String getLibraryVersion() { - String version = getPomVersion(); - if (version == null) { - version = getManifestVersion(); + try { + String version = getVersionProperty(getPackagePath()); + if (version == null) { + version = getVersionProperty(DEFAULT_PACKAGE_PATH); + } + return version; + } catch (Exception e) { + // ignore } - return version; + return null; } protected int baseHashCode() { @@ -629,34 +620,17 @@ static T getFromServiceLoader(Class clazz, T defaultInstance) { return Iterables.getFirst(ServiceLoader.load(clazz), defaultInstance); } - private String getPomVersion() { - try { - String projectPropertiesPath = PROPERTIES_ROOT + "/" - + artifactId + "/" + PROPERTIES_FILE; - return PropertiesProvider.loadProperty( - ServiceOptions.class, projectPropertiesPath, PROPERTIES_VERSION_KEY); - } catch (Exception e) { - // ignore - } - return null; + private String getVersionProperty(String packagePath) { + String projectPropertiesPath = "/" + packagePath + "/" + PROPERTIES_FILE; + return PropertiesProvider.loadProperty( + ServiceOptions.class, projectPropertiesPath, PROPERTIES_VERSION_KEY); } - private String getManifestVersion() { - String version = null; - try { - Enumeration resources = - ServiceOptions.class.getClassLoader().getResources(JarFile.MANIFEST_NAME); - while (resources.hasMoreElements() && version == null) { - Manifest manifest = new Manifest(resources.nextElement().openStream()); - Attributes manifestAttributes = manifest.getMainAttributes(); - String value = manifestAttributes.getValue(MANIFEST_ARTIFACT_ID_KEY); - if (value != null && value.equals(artifactId)) { - version = manifestAttributes.getValue(MANIFEST_VERSION_KEY); - } - } - } catch (IOException e) { - // ignore + private String getPackagePath() { + List fullClassName = Splitter.on(".").splitToList(this.getClass().getCanonicalName()); + if (fullClassName.size() > 2) { + return String.join("/", fullClassName.subList(0, fullClassName.size() - 1)); } - return version; + return DEFAULT_PACKAGE_PATH; } } diff --git a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java index f4e890678bcd..4d828ea6e729 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/HttpTransportOptionsTest.java @@ -69,7 +69,7 @@ public void testHeader() { EasyMock.expect(mockOptions.getLibraryVersion()).andReturn("0.0.0"); EasyMock.replay(mockOptions); assertTrue(Pattern.compile(expectedHeaderPattern) - .matcher(HttpTransportOptions.getXGoogApiClientHeader(mockOptions)) + .matcher(OPTIONS.getXGoogApiClientHeader(mockOptions)) .find()); } } diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java index 9cee85775092..fb0565280b5d 100644 --- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java +++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java @@ -35,7 +35,6 @@ public class DatastoreOptions extends ServiceOptions { - private static final String ARTIFACT_ID = "google-cloud-datastore"; private static final long serialVersionUID = -1018382430058137336L; private static final String API_SHORT_NAME = "Datastore"; private static final String DATASTORE_SCOPE = "https://www.googleapis.com/auth/datastore"; @@ -68,10 +67,7 @@ public static class Builder extends private String namespace; - private Builder() { - super(); - setArtifactId(ARTIFACT_ID); - } + private Builder() {} private Builder(DatastoreOptions options) { super(options); diff --git a/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java b/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java index f285d6017a9f..7a187f006d23 100644 --- a/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java +++ b/google-cloud-dns/src/main/java/com/google/cloud/dns/DnsOptions.java @@ -21,16 +21,16 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.dns.spi.DnsRpcFactory; -import com.google.cloud.dns.spi.v1.DnsRpc; import com.google.cloud.dns.spi.v1.HttpDnsRpc; +import com.google.cloud.dns.spi.v1.DnsRpc; +import com.google.cloud.dns.spi.DnsRpcFactory; import com.google.common.collect.ImmutableSet; + import java.util.Set; public class DnsOptions extends ServiceOptions { private static final long serialVersionUID = -2501790264435912627L; - private static final String ARTIFACT_ID = "google-cloud-dns"; private static final String API_SHORT_NAME = "Dns"; private static final String GC_DNS_RW = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"; private static final Set SCOPES = ImmutableSet.of(GC_DNS_RW); @@ -58,8 +58,6 @@ public static class Builder extends ServiceOptions.Builder { private Builder() { - super(); - setArtifactId(ARTIFACT_ID); } private Builder(DnsOptions options) { diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java index d3fc3ad5592c..4f883c6427e7 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java @@ -31,7 +31,6 @@ public class LoggingOptions extends ServiceOptions { - private static final String ARTIFACT_ID = "google-cloud-logging"; private static final String API_SHORT_NAME = "Logging"; private static final String LOGGING_SCOPE = "https://www.googleapis.com/auth/logging.admin"; private static final Set SCOPES = ImmutableSet.of(LOGGING_SCOPE); @@ -76,10 +75,7 @@ protected String getDefaultHost() { public static class Builder extends ServiceOptions.Builder { - private Builder() { - super(); - setArtifactId(ARTIFACT_ID); - } + private Builder() {} private Builder(LoggingOptions options) { super(options); diff --git a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java index 554ea6c39fb0..66c832a290c6 100644 --- a/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java +++ b/google-cloud-resourcemanager/src/main/java/com/google/cloud/resourcemanager/ResourceManagerOptions.java @@ -21,17 +21,17 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.resourcemanager.spi.ResourceManagerRpcFactory; import com.google.cloud.resourcemanager.spi.v1beta1.HttpResourceManagerRpc; import com.google.cloud.resourcemanager.spi.v1beta1.ResourceManagerRpc; +import com.google.cloud.resourcemanager.spi.ResourceManagerRpcFactory; import com.google.common.collect.ImmutableSet; + import java.util.Set; public class ResourceManagerOptions extends ServiceOptions { private static final long serialVersionUID = 624147474447836183L; - private static final String ARTIFACT_ID = "google-cloud-resourcemanager"; private static final String API_SHORT_NAME = "ResourceManager"; private static final String GCRM_SCOPE = "https://www.googleapis.com/auth/cloud-platform"; private static final Set SCOPES = ImmutableSet.of(GCRM_SCOPE); @@ -72,10 +72,7 @@ protected String getDefaultHost() { public static class Builder extends ServiceOptions.Builder { - private Builder() { - super(); - setArtifactId(ARTIFACT_ID); - } + private Builder() {} private Builder(ResourceManagerOptions options) { super(options); diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 2263dfb3646f..44dee6bf6ad5 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -73,7 +73,7 @@ write-project-properties - ${project.build.outputDirectory}/com/google/cloud/storage/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/storage/project.properties diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java index ed02567c175f..e885ebf5d54d 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageOptions.java @@ -21,16 +21,15 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.storage.spi.StorageRpcFactory; import com.google.cloud.storage.spi.v1.HttpStorageRpc; import com.google.cloud.storage.spi.v1.StorageRpc; +import com.google.cloud.storage.spi.StorageRpcFactory; import com.google.common.collect.ImmutableSet; import java.util.Set; public class StorageOptions extends ServiceOptions { private static final long serialVersionUID = -2907268477247502947L; - private static final String ARTIFACT_ID = "google-cloud-storage"; private static final String API_SHORT_NAME = "Storage"; private static final String GCS_SCOPE = "https://www.googleapis.com/auth/devstorage.full_control"; private static final Set SCOPES = ImmutableSet.of(GCS_SCOPE); @@ -58,10 +57,7 @@ public ServiceRpc create(StorageOptions options) { public static class Builder extends ServiceOptions.Builder { - private Builder() { - super(); - setArtifactId(ARTIFACT_ID); - } + private Builder() {} private Builder(StorageOptions options) { super(options); diff --git a/google-cloud-translate/pom.xml b/google-cloud-translate/pom.xml index e2c74a6d229d..94132cc3aeef 100644 --- a/google-cloud-translate/pom.xml +++ b/google-cloud-translate/pom.xml @@ -73,7 +73,7 @@ write-project-properties - ${project.build.outputDirectory}/com/google/cloud/translate/${project.artifactId}/project.properties + ${project.build.outputDirectory}/com/google/cloud/translate/project.properties diff --git a/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java b/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java index 693cb0827a61..98d083f3feba 100644 --- a/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java +++ b/google-cloud-translate/src/main/java/com/google/cloud/translate/TranslateOptions.java @@ -17,6 +17,7 @@ package com.google.cloud.translate; import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.Preconditions.checkArgument; import com.google.cloud.HttpTransportOptions; import com.google.cloud.ServiceDefaults; @@ -24,10 +25,11 @@ import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; import com.google.cloud.translate.Translate.TranslateOption; -import com.google.cloud.translate.spi.TranslateRpcFactory; import com.google.cloud.translate.spi.v2.HttpTranslateRpc; import com.google.cloud.translate.spi.v2.TranslateRpc; +import com.google.cloud.translate.spi.TranslateRpcFactory; import com.google.common.collect.ImmutableSet; + import java.util.List; import java.util.Locale; import java.util.Objects; @@ -37,7 +39,6 @@ public class TranslateOptions extends ServiceOptions { private static final long serialVersionUID = -572597134540398216L; - private static final String ARTIFACT_ID = "google-cloud-translate"; private static final String API_SHORT_NAME = "Translate"; private static final String DEFAULT_HOST = "https://translation.googleapis.com"; private static final String API_KEY_ENV_NAME = "GOOGLE_API_KEY"; @@ -73,15 +74,11 @@ public static class Builder extends private String apiKey; private String targetLanguage; - private Builder() { - super(); - setArtifactId(ARTIFACT_ID); - } + private Builder() {} private Builder(TranslateOptions options) { super(options); this.apiKey = options.apiKey; - setArtifactId(ARTIFACT_ID); } From 6a2c4c94e4a2a9ab7023da7710900d6191b38e0e Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Mon, 10 Apr 2017 20:27:02 -0700 Subject: [PATCH 8/9] Remove eclipse auto format change --- .../java/com/google/cloud/datastore/DatastoreOptions.java | 5 +++-- .../main/java/com/google/cloud/logging/LoggingOptions.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java index fb0565280b5d..75ac99473abc 100644 --- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java +++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java @@ -23,8 +23,8 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.datastore.spi.DatastoreRpcFactory; import com.google.cloud.datastore.spi.v1.DatastoreRpc; +import com.google.cloud.datastore.spi.DatastoreRpcFactory; import com.google.cloud.datastore.spi.v1.HttpDatastoreRpc; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; @@ -67,7 +67,8 @@ public static class Builder extends private String namespace; - private Builder() {} + private Builder() { + } private Builder(DatastoreOptions options) { super(options); diff --git a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java index 4f883c6427e7..feb7cdcacac7 100644 --- a/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java +++ b/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingOptions.java @@ -21,9 +21,9 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.logging.spi.LoggingRpcFactory; import com.google.cloud.logging.spi.v2.GrpcLoggingRpc; import com.google.cloud.logging.spi.v2.LoggingRpc; +import com.google.cloud.logging.spi.LoggingRpcFactory; import com.google.cloud.logging.spi.v2.LoggingSettings; import com.google.common.collect.ImmutableSet; import java.io.IOException; From b36d408448e2be3d2d7106c913f10d299595d803 Mon Sep 17 00:00:00 2001 From: Shin Fan Date: Tue, 11 Apr 2017 19:29:53 -0700 Subject: [PATCH 9/9] Update PR comment --- .../src/main/java/com/google/cloud/ServiceOptions.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) 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 9e6388f0ead3..e9b262dc3288 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 @@ -28,7 +28,6 @@ import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.spi.ServiceRpcFactory; -import com.google.common.base.Splitter; import com.google.common.collect.Iterables; import com.google.common.io.Files; import java.io.BufferedReader; @@ -45,7 +44,6 @@ import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; -import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.ServiceLoader; @@ -627,10 +625,6 @@ private String getVersionProperty(String packagePath) { } private String getPackagePath() { - List fullClassName = Splitter.on(".").splitToList(this.getClass().getCanonicalName()); - if (fullClassName.size() > 2) { - return String.join("/", fullClassName.subList(0, fullClassName.size() - 1)); - } - return DEFAULT_PACKAGE_PATH; + return this.getClass().getPackage().getName().replaceAll("\\.", "/"); } }