Skip to content

Commit b4b755f

Browse files
add spring cloud context tool
1 parent 1f646fc commit b4b755f

File tree

13 files changed

+79
-4
lines changed

13 files changed

+79
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This project has dependency and transitive dependencies on Spring Projects. The
2828

2929
| Spring Cloud OCI | Spring Cloud | Spring Boot | OCI Java SDK |
3030
|-------------------|-----------------|---------------------|--------------|
31-
| 1.0.0 | <to-be-checked> | 3.0.x, 3.1.x | 3.19.0 |
31+
| 1.0.0 | 2021.0.x | 2.7.x | 3.19.0 |
3232

3333

3434
## Try out samples

docs/src/main/asciidoc/index.adoc

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,46 @@ include::logging.adoc[]
2929
== Configuration properties
3030

3131
To see the list of all OCI related configuration properties please check link:appendix.html[the Appendix page].
32+
33+
=== Configuration Refresh
34+
35+
The following properties are supported for Configuration auto-refresh at runtime without the need to restart applications
36+
37+
|===
38+
|Name | Default
39+
40+
|spring.cloud.oci.config.profile | `DEFAULT`
41+
|spring.cloud.oci.config.file | NA
42+
|spring.cloud.oci.config.type | NA
43+
|spring.cloud.oci.config.userId | NA
44+
|spring.cloud.oci.config.tenantId | NA
45+
|spring.cloud.oci.config.fingerprint | NA
46+
|spring.cloud.oci.config.privateKey | NA
47+
|spring.cloud.oci.config.passPhrase | NA
48+
|spring.cloud.oci.config.region | NA
49+
|spring.cloud.oci.region.static | NA
50+
|spring.cloud.oci.compartment.static | NA
51+
|spring.cloud.oci.logging.logId | NA
52+
53+
|===
54+
55+
Spring Boot Actuator can be used to explicitly refresh the externalized configuration during runtime. Add the corresponding build dependency to enable the Actuator:
56+
57+
Maven:
58+
----
59+
<dependency>
60+
<groupId>org.springframework.boot</groupId>
61+
<artifactId>spring-boot-starter-actuator</artifactId>
62+
</dependency>
63+
----
64+
65+
Gradle:
66+
----
67+
dependencies {
68+
implementation("org.springframework.boot:spring-boot-starter-actuator")
69+
}
70+
----
71+
72+
Set `management.endpoints.web.exposure.include=refresh` in the externalized configuration file of the Spring Boot Application to enable /actuator/refresh endpoint.
73+
74+
To refresh the updated Configuration properties at runtime make a POST API call to /actuator/refresh endpoint

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Licensed under the Universal Permissive License v 1.0 as shown at https://oss.or
5454

5555
<properties>
5656
<spring-cloud-oci-dependencies.version>${project.version}</spring-cloud-oci-dependencies.version>
57-
<!-- spring-cloud-dependencies.version>2022.0.1</spring-cloud-dependencies.version -->
57+
<spring-cloud-dependencies.version>2021.0.2</spring-cloud-dependencies.version>
5858
<spring-boot-dependencies.version>2.7.4</spring-boot-dependencies.version>
5959
<oci-sdk.version>3.19.0</oci-sdk.version>
6060
<spring-boot-maven-plugin.version>3.1.2</spring-boot-maven-plugin.version>
@@ -128,13 +128,13 @@ Licensed under the Universal Permissive License v 1.0 as shown at https://oss.or
128128
<scope>import</scope>
129129
</dependency>
130130

131-
<!-- dependency>
131+
<dependency>
132132
<groupId>org.springframework.cloud</groupId>
133133
<artifactId>spring-cloud-dependencies</artifactId>
134134
<version>${spring-cloud-dependencies.version}</version>
135135
<type>pom</type>
136136
<scope>import</scope>
137-
</dependency -->
137+
</dependency>
138138
</dependencies>
139139
</dependencyManagement>
140140

spring-cloud-oci-autoconfigure/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,9 @@ Licensed under the Universal Permissive License v 1.0 as shown at https://oss.or
8888
<groupId>com.oracle.oci.sdk</groupId>
8989
<artifactId>oci-java-sdk-common-httpclient-jersey3</artifactId>
9090
</dependency>
91+
<dependency>
92+
<groupId>org.springframework.cloud</groupId>
93+
<artifactId>spring-cloud-context</artifactId>
94+
</dependency>
9195
</dependencies>
9296
</project>

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/autoconfigure/core/CompartmentProviderAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1313
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1414
import org.springframework.boot.context.properties.EnableConfigurationProperties;
15+
import org.springframework.cloud.context.config.annotation.RefreshScope;
1516
import org.springframework.context.annotation.Bean;
1617

1718
/**
@@ -29,6 +30,7 @@ public CompartmentProviderAutoConfiguration(CompartmentProperties properties) {
2930
}
3031

3132
@Bean
33+
@RefreshScope
3234
@ConditionalOnMissingBean
3335
public CompartmentProvider compartmentProvider() {
3436
return createCompartmentProvider(properties);

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/autoconfigure/core/CredentialsProviderAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1919
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2020
import org.springframework.boot.context.properties.EnableConfigurationProperties;
21+
import org.springframework.cloud.context.config.annotation.RefreshScope;
2122
import org.springframework.context.annotation.Bean;
2223

2324
import java.io.IOException;
@@ -47,6 +48,7 @@ public CredentialsProviderAutoConfiguration(CredentialsProperties properties) {
4748
* @throws IOException
4849
*/
4950
@Bean (name = credentialsProviderQualifier)
51+
@RefreshScope
5052
@ConditionalOnMissingBean
5153
public BasicAuthenticationDetailsProvider credentialsProvider() throws IOException {
5254
return createCredentialsProvider(properties);

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/autoconfigure/core/RegionProviderAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1313
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1414
import org.springframework.boot.context.properties.EnableConfigurationProperties;
15+
import org.springframework.cloud.context.config.annotation.RefreshScope;
1516
import org.springframework.context.annotation.Bean;
1617

1718
/**
@@ -30,6 +31,7 @@ public RegionProviderAutoConfiguration(RegionProperties properties) {
3031
}
3132

3233
@Bean (name = regionProviderQualifier)
34+
@RefreshScope
3335
@ConditionalOnMissingBean
3436
public RegionProvider regionProvider() {
3537
return createRegionProvider(properties);

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/logging/LoggingAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1616
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1717
import org.springframework.boot.context.properties.EnableConfigurationProperties;
18+
import org.springframework.cloud.context.config.annotation.RefreshScope;
1819
import org.springframework.context.annotation.Bean;
1920

2021
import static com.oracle.cloud.spring.autoconfigure.core.CredentialsProviderAutoConfiguration.credentialsProviderQualifier;
@@ -41,12 +42,14 @@ public LoggingAutoConfiguration(LoggingProperties properties) {
4142
}
4243

4344
@Bean
45+
@RefreshScope
4446
@ConditionalOnMissingBean(LogService.class)
4547
LogService getLoggingImpl(Logging logging) {
4648
return new LogServiceImpl(logging, properties.getLogId());
4749
}
4850

4951
@Bean
52+
@RefreshScope
5053
@ConditionalOnMissingBean
5154
Logging loggingClient(@Qualifier(regionProviderQualifier) RegionProvider regionProvider,
5255
@Qualifier(credentialsProviderQualifier)

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/notification/NotificationAutoConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1717
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1818
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
19+
import org.springframework.cloud.context.config.annotation.RefreshScope;
1920
import org.springframework.context.annotation.Bean;
2021

2122
import static com.oracle.cloud.spring.autoconfigure.core.CredentialsProviderAutoConfiguration.credentialsProviderQualifier;
@@ -35,12 +36,14 @@
3536
public class NotificationAutoConfiguration {
3637

3738
@Bean
39+
@RefreshScope
3840
@ConditionalOnMissingBean(Notification.class)
3941
Notification getNotificationImpl(NotificationDataPlane notificationDataPlane, NotificationControlPlane notificationControlPlane ) {
4042
return new NotificationImpl(notificationDataPlane, notificationControlPlane);
4143
}
4244

4345
@Bean
46+
@RefreshScope
4447
@ConditionalOnMissingBean
4548
NotificationDataPlane notificationDataPlaneClient(@Qualifier(regionProviderQualifier) RegionProvider regionProvider,
4649
@Qualifier(credentialsProviderQualifier)
@@ -51,6 +54,7 @@ NotificationDataPlane notificationDataPlaneClient(@Qualifier(regionProviderQuali
5154
}
5255

5356
@Bean
57+
@RefreshScope
5458
@ConditionalOnMissingBean
5559
NotificationControlPlane notificationControlPlaneClient(@Qualifier(regionProviderQualifier) RegionProvider regionProvider,
5660
@Qualifier(credentialsProviderQualifier)

spring-cloud-oci-autoconfigure/src/main/java/com/oracle/cloud/spring/storage/StorageAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1717
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1818
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
19+
import org.springframework.cloud.context.config.annotation.RefreshScope;
1920
import org.springframework.context.annotation.Bean;
2021
import org.springframework.context.annotation.Import;
2122

@@ -40,6 +41,7 @@
4041
public class StorageAutoConfiguration {
4142

4243
@Bean
44+
@RefreshScope
4345
@ConditionalOnMissingBean(Storage.class)
4446
@ConditionalOnBean(StorageObjectConverter.class)
4547
Storage storageActions(ObjectStorageClient osClient, StorageObjectConverter storageObjectConverter,
@@ -51,6 +53,7 @@ Storage storageActions(ObjectStorageClient osClient, StorageObjectConverter stor
5153
}
5254

5355
@Bean
56+
@RefreshScope
5457
@ConditionalOnMissingBean
5558
ObjectStorageClient objectStorageClient(@Qualifier(regionProviderQualifier) RegionProvider regionProvider,
5659
@Qualifier(credentialsProviderQualifier)

0 commit comments

Comments
 (0)