Skip to content

Commit 930e0d5

Browse files
author
Fabiano Oliveira
authored
Merge pull request #8 from stoconnor/ssm-and-sfn
Support for SSM and Step Functions
2 parents b87ccf7 + 18c0820 commit 930e0d5

File tree

7 files changed

+66
-1
lines changed

7 files changed

+66
-1
lines changed

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@
9797
<artifactId>cglib</artifactId>
9898
<version>3.2.6</version>
9999
</dependency>
100+
<dependency>
101+
<groupId>org.projectlombok</groupId>
102+
<artifactId>lombok</artifactId>
103+
<version>1.18.6</version>
104+
<scope>provided</scope>
105+
</dependency>
100106

101107
<!-- test dependencies -->
102108
<dependency>
@@ -109,7 +115,7 @@
109115
<dependency>
110116
<groupId>cloud.localstack</groupId>
111117
<artifactId>localstack-utils</artifactId>
112-
<version>0.1.13</version>
118+
<version>0.1.19</version>
113119
</dependency>
114120
<dependency>
115121
<groupId>org.springframework</groupId>

src/main/java/xyz/fabiano/spring/localstack/LocalstackService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public enum LocalstackService {
2020
CLOUDFORMATION("cloudformation"),
2121
CLOUDWATCH("cloudwatch"),
2222
SSM("ssm"),
23+
STEP_FUNCTION("stepfunctions"),
2324

2425
ELASTICSEARCH("elasticsearch", false),
2526
ELASTICSEARCH_SERVICE("es", false);

src/main/java/xyz/fabiano/spring/localstack/autoconfigure/EveryAwsClientAutoConfiguration.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212
import com.amazonaws.services.route53.AmazonRoute53;
1313
import com.amazonaws.services.s3.AmazonS3;
1414
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
15+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement;
1516
import com.amazonaws.services.sns.AmazonSNS;
1617
import com.amazonaws.services.sqs.AmazonSQS;
18+
import com.amazonaws.services.stepfunctions.AWSStepFunctions;
19+
import com.amazonaws.services.stepfunctions.AWSStepFunctionsClient;
1720
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1821
import org.springframework.context.annotation.Bean;
1922
import org.springframework.context.annotation.Configuration;
@@ -100,4 +103,10 @@ public AWSLambda awsLambda() {
100103
public AmazonCloudFormation amazonCloudFormation() {
101104
return amazonClientsHolder.amazonCloudFormation();
102105
}
106+
107+
@Bean
108+
public AWSSimpleSystemsManagement awsSimpleSystemsManagement() { return amazonClientsHolder.awsSimpleSystemsManagement(); }
109+
110+
@Bean
111+
public AWSStepFunctions awsStepFunctions() { return amazonClientsHolder.awsStepFunctions(); }
103112
}

src/main/java/xyz/fabiano/spring/localstack/legacy/LocalstackDocker.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ public String getEndpointSSM() {
186186
return endpointForService(ServiceName.SSM);
187187
}
188188

189+
public String getEndpointStepFunction() { return endpointForService(ServiceName.STEPFUNCTIONS); }
190+
189191

190192
public String endpointForService(String serviceName) {
191193
if (serviceToPortMap == null) {

src/main/java/xyz/fabiano/spring/localstack/support/AmazonAsyncDockerClientsHolder.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,14 @@
2323
import com.amazonaws.services.route53.AmazonRoute53AsyncClientBuilder;
2424
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsync;
2525
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsyncClientBuilder;
26+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement;
27+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder;
2628
import com.amazonaws.services.sns.AmazonSNSAsync;
2729
import com.amazonaws.services.sns.AmazonSNSAsyncClientBuilder;
2830
import com.amazonaws.services.sqs.AmazonSQSAsync;
2931
import com.amazonaws.services.sqs.AmazonSQSAsyncClientBuilder;
32+
import com.amazonaws.services.stepfunctions.AWSStepFunctions;
33+
import com.amazonaws.services.stepfunctions.AWSStepFunctionsClientBuilder;
3034
import xyz.fabiano.spring.localstack.legacy.LocalstackDocker;
3135

3236
public final class AmazonAsyncDockerClientsHolder extends AbstractAmazonDockerClientsHolder {
@@ -138,4 +142,20 @@ public AWSLambdaAsync awsLambda() {
138142
LocalstackDocker::getEndpointLambda
139143
);
140144
}
145+
146+
@Override
147+
public AWSSimpleSystemsManagement awsSimpleSystemsManagement() {
148+
return decorateWithConfigsAndBuild(
149+
AWSSimpleSystemsManagementClientBuilder.standard(),
150+
LocalstackDocker::getEndpointSSM
151+
);
152+
}
153+
154+
@Override
155+
public AWSStepFunctions awsStepFunctions() {
156+
return decorateWithConfigsAndBuild(
157+
AWSStepFunctionsClientBuilder.standard(),
158+
LocalstackDocker::getEndpointStepFunction
159+
);
160+
}
141161
}

src/main/java/xyz/fabiano/spring/localstack/support/AmazonClientsHolder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import com.amazonaws.services.route53.AmazonRoute53;
1313
import com.amazonaws.services.s3.AmazonS3;
1414
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
15+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement;
1516
import com.amazonaws.services.sns.AmazonSNS;
1617
import com.amazonaws.services.sqs.AmazonSQS;
18+
import com.amazonaws.services.stepfunctions.AWSStepFunctions;
1719

1820
public interface AmazonClientsHolder {
1921

@@ -44,4 +46,8 @@ public interface AmazonClientsHolder {
4446
AmazonRoute53 amazonRoute53();
4547

4648
AWSLambda awsLambda();
49+
50+
AWSSimpleSystemsManagement awsSimpleSystemsManagement();
51+
52+
AWSStepFunctions awsStepFunctions();
4753
}

src/main/java/xyz/fabiano/spring/localstack/support/AmazonDockerClientsHolder.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,15 @@
2323
import com.amazonaws.services.route53.AmazonRoute53ClientBuilder;
2424
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
2525
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
26+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement;
27+
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder;
2628
import com.amazonaws.services.sns.AmazonSNS;
2729
import com.amazonaws.services.sns.AmazonSNSClientBuilder;
2830
import com.amazonaws.services.sqs.AmazonSQS;
2931
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
32+
import com.amazonaws.services.stepfunctions.AWSStepFunctions;
33+
import com.amazonaws.services.stepfunctions.AWSStepFunctionsClient;
34+
import com.amazonaws.services.stepfunctions.AWSStepFunctionsClientBuilder;
3035
import xyz.fabiano.spring.localstack.legacy.LocalstackDocker;
3136

3237
public final class AmazonDockerClientsHolder extends AbstractAmazonDockerClientsHolder {
@@ -138,4 +143,20 @@ public AWSLambda awsLambda() {
138143
LocalstackDocker::getEndpointLambda
139144
);
140145
}
146+
147+
@Override
148+
public AWSSimpleSystemsManagement awsSimpleSystemsManagement() {
149+
return decorateWithConfigsAndBuild(
150+
AWSSimpleSystemsManagementClientBuilder.standard(),
151+
LocalstackDocker::getEndpointSSM
152+
);
153+
}
154+
155+
@Override
156+
public AWSStepFunctions awsStepFunctions() {
157+
return decorateWithConfigsAndBuild(
158+
AWSStepFunctionsClientBuilder.standard(),
159+
LocalstackDocker::getEndpointStepFunction
160+
);
161+
}
141162
}

0 commit comments

Comments
 (0)