Skip to content

Commit 288d099

Browse files
authored
Merge pull request #266 from DP-3T/merge-master-back
Merge Master back to Develop
2 parents a891aa2 + 079097a commit 288d099

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

dpppt-backend-sdk/dpppt-backend-sdk-ws/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
3333
</dependency>
3434

35+
<dependency>
36+
<groupId>org.springframework.boot</groupId>
37+
<artifactId>spring-boot-starter-cloud-connectors</artifactId>
38+
</dependency>
39+
3540
<dependency>
3641
<groupId>ch.ubique.openapi</groupId>
3742
<artifactId>doc-annotations</artifactId>
@@ -148,5 +153,4 @@
148153
</plugin>
149154
</plugins>
150155
</build>
151-
152156
</project>

dpppt-backend-sdk/dpppt-backend-sdk-ws/src/main/java/org/dpppt/backend/sdk/ws/config/WSCloudBaseConfig.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,50 @@
1010

1111
package org.dpppt.backend.sdk.ws.config;
1212

13+
import java.util.Map;
1314
import javax.sql.DataSource;
1415
import org.dpppt.backend.sdk.ws.security.KeyVault;
1516
import org.dpppt.backend.sdk.ws.security.KeyVault.PrivateKeyNoSuitableEncodingFoundException;
1617
import org.dpppt.backend.sdk.ws.security.KeyVault.PublicKeyNoSuitableEncodingFoundException;
1718
import org.flywaydb.core.Flyway;
18-
import org.springframework.beans.factory.annotation.Autowired;
1919
import org.springframework.beans.factory.annotation.Value;
20+
import org.springframework.cloud.CloudFactory;
21+
import org.springframework.cloud.service.PooledServiceConnectorConfig.PoolConfig;
22+
import org.springframework.cloud.service.relational.DataSourceConfig;
2023
import org.springframework.context.annotation.Bean;
2124
import org.springframework.context.annotation.Configuration;
22-
import org.springframework.context.annotation.Lazy;
2325

2426
@Configuration
2527
public abstract class WSCloudBaseConfig extends WSBaseConfig {
2628

27-
@Autowired @Lazy private DataSource dataSource;
28-
2929
abstract String getPublicKey();
3030

3131
abstract String getPrivateKey();
3232

3333
@Value("${ws.cloud.base.config.publicKey.fromCertificate:true}")
3434
private boolean publicKeyFromCertificate;
3535

36+
@Value("${datasource.maximumPoolSize:5}")
37+
int dataSourceMaximumPoolSize;
38+
39+
@Value("${datasource.connectionTimeout:30000}")
40+
int dataSourceConnectionTimeout;
41+
42+
@Value("${datasource.leakDetectionThreshold:0}")
43+
int dataSourceLeakDetectionThreshold;
44+
45+
@Bean
3646
@Override
3747
public DataSource dataSource() {
38-
return dataSource;
48+
PoolConfig poolConfig = new PoolConfig(dataSourceMaximumPoolSize, dataSourceConnectionTimeout);
49+
DataSourceConfig dbConfig =
50+
new DataSourceConfig(
51+
poolConfig,
52+
null,
53+
null,
54+
Map.of("leakDetectionThreshold", dataSourceLeakDetectionThreshold));
55+
CloudFactory factory = new CloudFactory();
56+
return factory.getCloud().getSingletonServiceConnector(DataSource.class, dbConfig);
3957
}
4058

4159
@Bean

dpppt-backend-sdk/dpppt-backend-sdk-ws/src/test/java/org/dpppt/backend/sdk/ws/config/TestingCloudDevConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ String getPublicKey() {
4040
}
4141

4242
@Bean
43-
DataSource hsqlSource() {
43+
@Override
44+
public DataSource dataSource() {
4445
return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.HSQL).build();
4546
}
4647

0 commit comments

Comments
 (0)