Skip to content
This repository was archived by the owner on Jul 28, 2023. It is now read-only.

Commit 812caca

Browse files
authored
fixed leaked DAX dependency (#91)
1 parent bb5a9eb commit 812caca

File tree

3 files changed

+56
-40
lines changed

3 files changed

+56
-40
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=2.2.12
1+
version=2.2.13
22
awsJavaSdkVersion=1.11.500
33
awsKinesisClientVersion=1.8.5
44
gradleWrapperVersion=3.4.1

grails-aws-sdk-dynamodb/src/main/groovy/grails/plugin/awssdk/dynamodb/AbstractDBService.groovy

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package grails.plugin.awssdk.dynamodb
22

33
import agorapulse.libs.awssdk.util.AwsClientUtil
4-
import com.amazon.dax.client.dynamodbv2.AmazonDaxClientBuilder
5-
import com.amazon.dax.client.dynamodbv2.ClientConfig
6-
import com.amazonaws.ClientConfiguration
7-
import com.amazonaws.Protocol
84
import com.amazonaws.regions.Region
95
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB
106
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder
@@ -18,7 +14,6 @@ import java.lang.reflect.Field
1814
import java.lang.reflect.Method
1915
import java.text.ParseException
2016
import java.text.SimpleDateFormat
21-
import java.util.concurrent.TimeUnit
2217

2318
@Slf4j
2419
abstract class AbstractDBService<TItemClass> implements InitializingBean {
@@ -57,17 +52,7 @@ abstract class AbstractDBService<TItemClass> implements InitializingBean {
5752
String daxEndpoint = config?.dax?.endpoint
5853

5954
if (daxEndpoint) {
60-
ClientConfig clientConfig = buildClientConfiguration(config, serviceConfig)
61-
.withRegion(region)
62-
.withEndpoints(daxEndpoint)
63-
64-
client = AmazonDaxClientBuilder
65-
.standard()
66-
.withEndpointConfiguration(daxEndpoint)
67-
.withRegion(region.name)
68-
.withCredentials(AwsClientUtil.buildCredentials(config, serviceConfig))
69-
.withClientConfiguration(clientConfig)
70-
.build()
55+
client = DaxHelper.buildDaxClient(daxEndpoint, region, config, serviceConfig)
7156
} else {
7257
// Create client
7358
client = AmazonDynamoDBClientBuilder
@@ -1084,27 +1069,4 @@ abstract class AbstractDBService<TItemClass> implements InitializingBean {
10841069
config[SERVICE_NAME]
10851070
}
10861071

1087-
static ClientConfig buildClientConfiguration(defaultConfig, serviceConfig) {
1088-
Map config = [
1089-
connectionTimeout: defaultConfig.connectionTimeout ?: 0,
1090-
maxConnections: defaultConfig.maxConnections ?: 0,
1091-
maxErrorRetry: defaultConfig.maxErrorRetry ?: 0,
1092-
socketTimeout: defaultConfig.socketTimeout ?: 0,
1093-
]
1094-
if (serviceConfig) {
1095-
if (serviceConfig.connectionTimeout) config.connectionTimeout = serviceConfig.connectionTimeout
1096-
if (serviceConfig.maxConnections) config.maxConnections = serviceConfig.maxConnections
1097-
if (serviceConfig.maxErrorRetry) config.maxErrorRetry = serviceConfig.maxErrorRetry
1098-
if (serviceConfig.socketTimeout) config.socketTimeout = serviceConfig.socketTimeout
1099-
}
1100-
1101-
ClientConfig clientConfiguration = new ClientConfig()
1102-
if (config.connectionTimeout) clientConfiguration.withConnectTimeout(config.connectionTimeout, TimeUnit.MILLISECONDS)
1103-
if (config.maxConnections) clientConfiguration.withMaxPendingConnectsPerHost(config.maxConnections)
1104-
if (config.maxErrorRetry) clientConfiguration.withReadRetries(config.maxErrorRetry)
1105-
if (config.maxErrorRetry) clientConfiguration.withReadRetries(config.maxErrorRetry)
1106-
if (config.socketTimeout) clientConfiguration.withRequestTimeout(config.socketTimeout, TimeUnit.MILLISECONDS)
1107-
clientConfiguration
1108-
}
1109-
11101072
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package grails.plugin.awssdk.dynamodb
2+
3+
import agorapulse.libs.awssdk.util.AwsClientUtil
4+
import com.amazon.dax.client.dynamodbv2.AmazonDaxClientBuilder
5+
import com.amazon.dax.client.dynamodbv2.ClientConfig
6+
import com.amazonaws.regions.Region
7+
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB
8+
import groovy.transform.CompileDynamic
9+
import groovy.transform.CompileStatic
10+
11+
import java.util.concurrent.TimeUnit
12+
13+
@CompileStatic
14+
class DaxHelper {
15+
16+
static AmazonDynamoDB buildDaxClient(String daxEndpoint, Region region, Object config, Object serviceConfig) {
17+
ClientConfig clientConfig = buildClientConfiguration(config, serviceConfig)
18+
.withRegion(region)
19+
.withEndpoints(daxEndpoint)
20+
21+
return AmazonDaxClientBuilder
22+
.standard()
23+
.withEndpointConfiguration(daxEndpoint)
24+
.withRegion(region.name)
25+
.withCredentials(AwsClientUtil.buildCredentials(config, serviceConfig))
26+
.withClientConfiguration(clientConfig)
27+
.build()
28+
}
29+
30+
@CompileDynamic
31+
private static ClientConfig buildClientConfiguration(defaultConfig, serviceConfig) {
32+
Map config = [
33+
connectionTimeout: defaultConfig.connectionTimeout ?: 0,
34+
maxConnections: defaultConfig.maxConnections ?: 0,
35+
maxErrorRetry: defaultConfig.maxErrorRetry ?: 0,
36+
socketTimeout: defaultConfig.socketTimeout ?: 0,
37+
]
38+
if (serviceConfig) {
39+
if (serviceConfig.connectionTimeout) config.connectionTimeout = serviceConfig.connectionTimeout
40+
if (serviceConfig.maxConnections) config.maxConnections = serviceConfig.maxConnections
41+
if (serviceConfig.maxErrorRetry) config.maxErrorRetry = serviceConfig.maxErrorRetry
42+
if (serviceConfig.socketTimeout) config.socketTimeout = serviceConfig.socketTimeout
43+
}
44+
45+
ClientConfig clientConfiguration = new ClientConfig()
46+
if (config.connectionTimeout) clientConfiguration.withConnectTimeout(config.connectionTimeout, TimeUnit.MILLISECONDS)
47+
if (config.maxConnections) clientConfiguration.withMaxPendingConnectsPerHost(config.maxConnections)
48+
if (config.maxErrorRetry) clientConfiguration.withReadRetries(config.maxErrorRetry)
49+
if (config.maxErrorRetry) clientConfiguration.withReadRetries(config.maxErrorRetry)
50+
if (config.socketTimeout) clientConfiguration.withRequestTimeout(config.socketTimeout, TimeUnit.MILLISECONDS)
51+
clientConfiguration
52+
}
53+
54+
}

0 commit comments

Comments
 (0)