-
Notifications
You must be signed in to change notification settings - Fork 316
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: [codegen] fix (restore) evaluation of generation_config librar…
…ies (#3047) * chore: [codegen] fix (restore) evaluation of generation_config libraries * chore: update starter modules in spring-cloud-previews --------- Co-authored-by: Cloud Java Bot <cloud-java-bot@google.com>
- Loading branch information
1 parent
0d75ce8
commit 9003db3
Showing
432 changed files
with
20,922 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 35 additions & 0 deletions
35
spring-cloud-previews/google-cloud-advisorynotifications-spring-starter/pom.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<parent> | ||
<groupId>com.google.cloud</groupId> | ||
<artifactId>spring-cloud-gcp-starters</artifactId> | ||
<version>5.4.4-SNAPSHOT</version><!-- {x-version-update:spring-cloud-gcp:current} --> | ||
<relativePath>../../spring-cloud-gcp-starters/pom.xml</relativePath> | ||
</parent> | ||
<artifactId>google-cloud-advisorynotifications-spring-starter</artifactId> | ||
<version>${project.parent.version}-preview</version> | ||
<name>Spring Boot Starter - advisorynotifications</name> | ||
<description>Spring Boot Starter with AutoConfiguration for advisorynotifications</description> | ||
|
||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>com.google.cloud</groupId> | ||
<artifactId>google-cloud-advisorynotifications</artifactId> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter</artifactId> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>com.google.cloud</groupId> | ||
<artifactId>spring-cloud-gcp-autoconfigure</artifactId> | ||
</dependency> | ||
</dependencies> | ||
|
||
</project> |
265 changes: 265 additions & 0 deletions
265
.../advisorynotifications/v1/spring/AdvisoryNotificationsServiceSpringAutoConfiguration.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,265 @@ | ||
/* | ||
* Copyright 2024 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* https://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.advisorynotifications.v1.spring; | ||
|
||
import com.google.api.core.BetaApi; | ||
import com.google.api.gax.core.CredentialsProvider; | ||
import com.google.api.gax.core.ExecutorProvider; | ||
import com.google.api.gax.retrying.RetrySettings; | ||
import com.google.api.gax.rpc.HeaderProvider; | ||
import com.google.api.gax.rpc.TransportChannelProvider; | ||
import com.google.cloud.advisorynotifications.v1.AdvisoryNotificationsServiceClient; | ||
import com.google.cloud.advisorynotifications.v1.AdvisoryNotificationsServiceSettings; | ||
import com.google.cloud.spring.autoconfigure.core.GcpContextAutoConfiguration; | ||
import com.google.cloud.spring.core.DefaultCredentialsProvider; | ||
import com.google.cloud.spring.core.Retry; | ||
import com.google.cloud.spring.core.util.RetryUtil; | ||
import java.io.IOException; | ||
import java.util.Collections; | ||
import javax.annotation.Generated; | ||
import org.apache.commons.logging.Log; | ||
import org.apache.commons.logging.LogFactory; | ||
import org.springframework.beans.factory.annotation.Qualifier; | ||
import org.springframework.boot.autoconfigure.AutoConfiguration; | ||
import org.springframework.boot.autoconfigure.AutoConfigureAfter; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
import org.springframework.context.annotation.Bean; | ||
|
||
// AUTO-GENERATED DOCUMENTATION AND CLASS. | ||
/** | ||
* Auto-configuration for {@link AdvisoryNotificationsServiceClient}. | ||
* | ||
* <p>Provides auto-configuration for Spring Boot | ||
* | ||
* <p>The default instance has everything set to sensible defaults: | ||
* | ||
* <ul> | ||
* <li>The default transport provider is used. | ||
* <li>Credentials are acquired automatically through Application Default Credentials. | ||
* <li>Retries are configured for idempotent methods but not for non-idempotent methods. | ||
* </ul> | ||
*/ | ||
@Generated("by google-cloud-spring-generator") | ||
@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") | ||
@AutoConfiguration | ||
@AutoConfigureAfter(GcpContextAutoConfiguration.class) | ||
@ConditionalOnClass(AdvisoryNotificationsServiceClient.class) | ||
@ConditionalOnProperty( | ||
value = "com.google.cloud.advisorynotifications.v1.advisory-notifications-service.enabled", | ||
matchIfMissing = true) | ||
@EnableConfigurationProperties(AdvisoryNotificationsServiceSpringProperties.class) | ||
public class AdvisoryNotificationsServiceSpringAutoConfiguration { | ||
private final AdvisoryNotificationsServiceSpringProperties clientProperties; | ||
private final CredentialsProvider credentialsProvider; | ||
private static final Log LOGGER = | ||
LogFactory.getLog(AdvisoryNotificationsServiceSpringAutoConfiguration.class); | ||
|
||
protected AdvisoryNotificationsServiceSpringAutoConfiguration( | ||
AdvisoryNotificationsServiceSpringProperties clientProperties, | ||
CredentialsProvider credentialsProvider) | ||
throws IOException { | ||
this.clientProperties = clientProperties; | ||
if (this.clientProperties.getCredentials().hasKey()) { | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Using credentials from AdvisoryNotificationsService-specific configuration"); | ||
} | ||
this.credentialsProvider = | ||
((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); | ||
} else { | ||
this.credentialsProvider = credentialsProvider; | ||
} | ||
} | ||
|
||
/** | ||
* Provides a default transport channel provider bean, corresponding to the client library's | ||
* default transport channel provider. If the library supports both GRPC and REST transport, and | ||
* the useRest property is configured, the HTTP/JSON transport provider will be used instead of | ||
* GRPC. | ||
* | ||
* @return a default transport channel provider. | ||
*/ | ||
@Bean | ||
@ConditionalOnMissingBean(name = "defaultAdvisoryNotificationsServiceTransportChannelProvider") | ||
public TransportChannelProvider defaultAdvisoryNotificationsServiceTransportChannelProvider() { | ||
if (this.clientProperties.getUseRest()) { | ||
return AdvisoryNotificationsServiceSettings.defaultHttpJsonTransportProviderBuilder().build(); | ||
} | ||
return AdvisoryNotificationsServiceSettings.defaultTransportChannelProvider(); | ||
} | ||
|
||
/** | ||
* Provides a AdvisoryNotificationsServiceSettings bean configured to use a | ||
* DefaultCredentialsProvider and the client library's default transport channel provider | ||
* (defaultAdvisoryNotificationsServiceTransportChannelProvider()). It also configures the quota | ||
* project ID and executor thread count, if provided through properties. | ||
* | ||
* <p>Retry settings are also configured from service-level and method-level properties specified | ||
* in AdvisoryNotificationsServiceSpringProperties. Method-level properties will take precedence | ||
* over service-level properties if available, and client library defaults will be used if neither | ||
* are specified. | ||
* | ||
* @param defaultTransportChannelProvider TransportChannelProvider to use in the settings. | ||
* @return a {@link AdvisoryNotificationsServiceSettings} bean configured with {@link | ||
* TransportChannelProvider} bean. | ||
*/ | ||
@Bean | ||
@ConditionalOnMissingBean | ||
public AdvisoryNotificationsServiceSettings advisoryNotificationsServiceSettings( | ||
@Qualifier("defaultAdvisoryNotificationsServiceTransportChannelProvider") | ||
TransportChannelProvider defaultTransportChannelProvider) | ||
throws IOException { | ||
AdvisoryNotificationsServiceSettings.Builder clientSettingsBuilder; | ||
if (this.clientProperties.getUseRest()) { | ||
clientSettingsBuilder = AdvisoryNotificationsServiceSettings.newHttpJsonBuilder(); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Using REST (HTTP/JSON) transport."); | ||
} | ||
} else { | ||
clientSettingsBuilder = AdvisoryNotificationsServiceSettings.newBuilder(); | ||
} | ||
clientSettingsBuilder | ||
.setCredentialsProvider(this.credentialsProvider) | ||
.setTransportChannelProvider(defaultTransportChannelProvider) | ||
.setEndpoint(AdvisoryNotificationsServiceSettings.getDefaultEndpoint()) | ||
.setHeaderProvider(this.userAgentHeaderProvider()); | ||
if (this.clientProperties.getQuotaProjectId() != null) { | ||
clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace( | ||
"Quota project id set to " | ||
+ this.clientProperties.getQuotaProjectId() | ||
+ ", this overrides project id from credentials."); | ||
} | ||
} | ||
if (this.clientProperties.getExecutorThreadCount() != null) { | ||
ExecutorProvider executorProvider = | ||
AdvisoryNotificationsServiceSettings.defaultExecutorProviderBuilder() | ||
.setExecutorThreadCount(this.clientProperties.getExecutorThreadCount()) | ||
.build(); | ||
clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace( | ||
"Background executor thread count is " | ||
+ this.clientProperties.getExecutorThreadCount()); | ||
} | ||
} | ||
Retry serviceRetry = clientProperties.getRetry(); | ||
if (serviceRetry != null) { | ||
RetrySettings listNotificationsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.listNotificationsSettings().getRetrySettings(), serviceRetry); | ||
clientSettingsBuilder | ||
.listNotificationsSettings() | ||
.setRetrySettings(listNotificationsRetrySettings); | ||
|
||
RetrySettings getNotificationRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.getNotificationSettings().getRetrySettings(), serviceRetry); | ||
clientSettingsBuilder | ||
.getNotificationSettings() | ||
.setRetrySettings(getNotificationRetrySettings); | ||
|
||
RetrySettings getSettingsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.getSettingsSettings().getRetrySettings(), serviceRetry); | ||
clientSettingsBuilder.getSettingsSettings().setRetrySettings(getSettingsRetrySettings); | ||
|
||
RetrySettings updateSettingsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.updateSettingsSettings().getRetrySettings(), serviceRetry); | ||
clientSettingsBuilder.updateSettingsSettings().setRetrySettings(updateSettingsRetrySettings); | ||
|
||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Configured service-level retry settings from properties."); | ||
} | ||
} | ||
Retry listNotificationsRetry = clientProperties.getListNotificationsRetry(); | ||
if (listNotificationsRetry != null) { | ||
RetrySettings listNotificationsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.listNotificationsSettings().getRetrySettings(), | ||
listNotificationsRetry); | ||
clientSettingsBuilder | ||
.listNotificationsSettings() | ||
.setRetrySettings(listNotificationsRetrySettings); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace( | ||
"Configured method-level retry settings for listNotifications from properties."); | ||
} | ||
} | ||
Retry getNotificationRetry = clientProperties.getGetNotificationRetry(); | ||
if (getNotificationRetry != null) { | ||
RetrySettings getNotificationRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.getNotificationSettings().getRetrySettings(), | ||
getNotificationRetry); | ||
clientSettingsBuilder | ||
.getNotificationSettings() | ||
.setRetrySettings(getNotificationRetrySettings); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Configured method-level retry settings for getNotification from properties."); | ||
} | ||
} | ||
Retry getSettingsRetry = clientProperties.getGetSettingsRetry(); | ||
if (getSettingsRetry != null) { | ||
RetrySettings getSettingsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.getSettingsSettings().getRetrySettings(), getSettingsRetry); | ||
clientSettingsBuilder.getSettingsSettings().setRetrySettings(getSettingsRetrySettings); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Configured method-level retry settings for getSettings from properties."); | ||
} | ||
} | ||
Retry updateSettingsRetry = clientProperties.getUpdateSettingsRetry(); | ||
if (updateSettingsRetry != null) { | ||
RetrySettings updateSettingsRetrySettings = | ||
RetryUtil.updateRetrySettings( | ||
clientSettingsBuilder.updateSettingsSettings().getRetrySettings(), | ||
updateSettingsRetry); | ||
clientSettingsBuilder.updateSettingsSettings().setRetrySettings(updateSettingsRetrySettings); | ||
if (LOGGER.isTraceEnabled()) { | ||
LOGGER.trace("Configured method-level retry settings for updateSettings from properties."); | ||
} | ||
} | ||
return clientSettingsBuilder.build(); | ||
} | ||
|
||
/** | ||
* Provides a AdvisoryNotificationsServiceClient bean configured with | ||
* AdvisoryNotificationsServiceSettings. | ||
* | ||
* @param advisoryNotificationsServiceSettings settings to configure an instance of client bean. | ||
* @return a {@link AdvisoryNotificationsServiceClient} bean configured with {@link | ||
* AdvisoryNotificationsServiceSettings} | ||
*/ | ||
@Bean | ||
@ConditionalOnMissingBean | ||
public AdvisoryNotificationsServiceClient advisoryNotificationsServiceClient( | ||
AdvisoryNotificationsServiceSettings advisoryNotificationsServiceSettings) | ||
throws IOException { | ||
return AdvisoryNotificationsServiceClient.create(advisoryNotificationsServiceSettings); | ||
} | ||
|
||
private HeaderProvider userAgentHeaderProvider() { | ||
String springLibrary = "spring-autogen-advisory-notifications-service"; | ||
String version = this.getClass().getPackage().getImplementationVersion(); | ||
return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); | ||
} | ||
} |
Oops, something went wrong.