org.apache.maven.plugins
@@ -42,7 +39,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -51,14 +48,8 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
@@ -66,11 +57,6 @@
sns-extended-client
2.1.0
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
-
software.amazon.awssdk
secretsmanager
@@ -80,12 +66,6 @@
gson
2.10.1
-
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
-
software.amazon.awssdk
sns
diff --git a/javav2/example_code/sqs/pom.xml b/javav2/example_code/sqs/pom.xml
index 5f1179d84d1..fb431663ab0 100644
--- a/javav2/example_code/sqs/pom.xml
+++ b/javav2/example_code/sqs/pom.xml
@@ -17,10 +17,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
org.apache.maven.plugins
@@ -38,7 +35,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -47,8 +44,8 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
@@ -60,23 +57,6 @@
gson
2.10.1
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
-
-
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
-
org.mockito
mockito-all
@@ -91,5 +71,13 @@
software.amazon.awssdk
s3
+
+ software.amazon.awssdk
+ sso
+
+
+ software.amazon.awssdk
+ ssooidc
+
\ No newline at end of file
diff --git a/javav2/example_code/ssm/pom.xml b/javav2/example_code/ssm/pom.xml
index a73fdc3ba7e..42314e1eceb 100644
--- a/javav2/example_code/ssm/pom.xml
+++ b/javav2/example_code/ssm/pom.xml
@@ -26,10 +26,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
@@ -38,23 +35,23 @@
software.amazon.awssdk
bom
- 2.25.56
+ 2.29.45
pom
import
-
- software.amazon.awssdk
- ssm
-
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
+
+ software.amazon.awssdk
+ ssm
+
software.amazon.awssdk
secretsmanager
@@ -69,21 +66,12 @@
2.10.1
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
+ software.amazon.awssdk
+ sso
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
+ software.amazon.awssdk
+ ssooidc
\ No newline at end of file
diff --git a/javav2/example_code/stepfunctions/pom.xml b/javav2/example_code/stepfunctions/pom.xml
index a9cb2bc1a95..f791a6baae8 100644
--- a/javav2/example_code/stepfunctions/pom.xml
+++ b/javav2/example_code/stepfunctions/pom.xml
@@ -26,10 +26,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
@@ -38,7 +35,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -47,21 +44,10 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
-
software.amazon.awssdk
secretsmanager
@@ -71,12 +57,6 @@
gson
2.10.1
-
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
-
software.amazon.awssdk
transcribe
@@ -99,5 +79,13 @@
software.amazon.awssdk
sfn
+
+ software.amazon.awssdk
+ sso
+
+
+ software.amazon.awssdk
+ ssooidc
+
\ No newline at end of file
diff --git a/javav2/example_code/stepfunctions/src/main/java/com/example/stepfunctions/StepFunctionsScenario.java b/javav2/example_code/stepfunctions/src/main/java/com/example/stepfunctions/StepFunctionsScenario.java
index 673f62a273b..bc2d8a98ae5 100644
--- a/javav2/example_code/stepfunctions/src/main/java/com/example/stepfunctions/StepFunctionsScenario.java
+++ b/javav2/example_code/stepfunctions/src/main/java/com/example/stepfunctions/StepFunctionsScenario.java
@@ -29,6 +29,9 @@
import software.amazon.awssdk.services.sfn.model.StartExecutionRequest;
import software.amazon.awssdk.services.sfn.model.StartExecutionResponse;
import software.amazon.awssdk.services.sfn.model.StateMachineType;
+
+import java.io.File;
+import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -36,23 +39,24 @@
import java.util.UUID;
// snippet-start:[stepfunctions.java2.scenario.main]
+
/**
* You can obtain the JSON file to create a state machine in the following
* GitHub location.
- *
+ *
* https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/sample_files
- *
+ *
* To run this code example, place the chat_sfn_state_machine.json file into
* your project's resources folder.
- *
+ *
* Also, set up your development environment, including your credentials.
- *
+ *
* For information, see this documentation topic:
- *
+ *
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
- *
+ *
* This Java code example performs the following tasks:
- *
+ *
* 1. Creates an activity.
* 2. Creates a state machine.
* 3. Describes the state machine.
@@ -67,16 +71,17 @@ public class StepFunctionsScenario {
public static void main(String[] args) throws Exception {
final String usage = """
- Usage:
-
+ Usage:
+
- Where:
- roleName - The name of the IAM role to create for this state machine.
- activityName - The name of an activity to create.
- stateMachineName - The name of the state machine to create.
- """;
+ Where:
+ roleName - The name of the IAM role to create for this state machine.
+ activityName - The name of an activity to create.
+ stateMachineName - The name of the state machine to create.
+ jsonFile - The location of the chat_sfn_state_machine.json file. You can located it in resources/sample_files.
+ """;
- if (args.length != 3) {
+ if (args.length != 4) {
System.out.println(usage);
System.exit(1);
}
@@ -84,32 +89,36 @@ public static void main(String[] args) throws Exception {
String roleName = args[0];
String activityName = args[1];
String stateMachineName = args[2];
- String polJSON = "{\n" +
- " \"Version\": \"2012-10-17\",\n" +
- " \"Statement\": [\n" +
- " {\n" +
- " \"Sid\": \"\",\n" +
- " \"Effect\": \"Allow\",\n" +
- " \"Principal\": {\n" +
- " \"Service\": \"states.amazonaws.com\"\n" +
- " },\n" +
- " \"Action\": \"sts:AssumeRole\"\n" +
- " }\n" +
- " ]\n" +
- "}";
+ String jsonFile = args[3];
+ String polJSON = """
+ {
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Sid": "",
+ "Effect": "Allow",
+ "Principal": {
+ "Service": "states.amazonaws.com"
+ },
+ "Action": "sts:AssumeRole"
+ }
+ ]
+ }
+ """;
+
Scanner sc = new Scanner(System.in);
boolean action = false;
Region region = Region.US_EAST_1;
SfnClient sfnClient = SfnClient.builder()
- .region(region)
- .build();
+ .region(region)
+ .build();
Region regionGl = Region.AWS_GLOBAL;
IamClient iam = IamClient.builder()
- .region(regionGl)
- .build();
+ .region(regionGl)
+ .build();
System.out.println(DASHES);
System.out.println("Welcome to the AWS Step Functions example scenario.");
@@ -121,12 +130,10 @@ public static void main(String[] args) throws Exception {
System.out.println("The ARN of the activity is " + activityArn);
System.out.println(DASHES);
- // Get JSON to use for the state machine and place the activityArn value into
- // it.
- InputStream input = StepFunctionsScenario.class.getClassLoader()
- .getResourceAsStream("chat_sfn_state_machine.json");
+ // Read the file using FileInputStream
+ FileInputStream inputStream = new FileInputStream(jsonFile);
ObjectMapper mapper = new ObjectMapper();
- JsonNode jsonNode = mapper.readValue(input, JsonNode.class);
+ JsonNode jsonNode = mapper.readValue(inputStream, JsonNode.class);
String jsonString = mapper.writeValueAsString(jsonNode);
// Modify the Resource node.
@@ -199,10 +206,10 @@ public static void main(String[] args) throws Exception {
public static String createIAMRole(IamClient iam, String rolename, String polJSON) {
try {
CreateRoleRequest request = CreateRoleRequest.builder()
- .roleName(rolename)
- .assumeRolePolicyDocument(polJSON)
- .description("Created using the AWS SDK for Java")
- .build();
+ .roleName(rolename)
+ .assumeRolePolicyDocument(polJSON)
+ .description("Created using the AWS SDK for Java")
+ .build();
CreateRoleResponse response = iam.createRole(request);
return response.role().arn();
@@ -218,8 +225,8 @@ public static String createIAMRole(IamClient iam, String rolename, String polJSO
public static void describeExe(SfnClient sfnClient, String executionArn) {
try {
DescribeExecutionRequest executionRequest = DescribeExecutionRequest.builder()
- .executionArn(executionArn)
- .build();
+ .executionArn(executionArn)
+ .build();
String status = "";
boolean hasSucceeded = false;
@@ -249,9 +256,9 @@ public static void describeExe(SfnClient sfnClient, String executionArn) {
public static void sendTaskSuccess(SfnClient sfnClient, String token, String json) {
try {
SendTaskSuccessRequest successRequest = SendTaskSuccessRequest.builder()
- .taskToken(token)
- .output(json)
- .build();
+ .taskToken(token)
+ .output(json)
+ .build();
sfnClient.sendTaskSuccess(successRequest);
@@ -266,8 +273,8 @@ public static void sendTaskSuccess(SfnClient sfnClient, String token, String jso
public static List getActivityTask(SfnClient sfnClient, String actArn) {
List myList = new ArrayList<>();
GetActivityTaskRequest getActivityTaskRequest = GetActivityTaskRequest.builder()
- .activityArn(actArn)
- .build();
+ .activityArn(actArn)
+ .build();
GetActivityTaskResponse response = sfnClient.getActivityTask(getActivityTaskRequest);
myList.add(response.taskToken());
@@ -280,8 +287,8 @@ public static List getActivityTask(SfnClient sfnClient, String actArn) {
public static void deleteActivity(SfnClient sfnClient, String actArn) {
try {
DeleteActivityRequest activityRequest = DeleteActivityRequest.builder()
- .activityArn(actArn)
- .build();
+ .activityArn(actArn)
+ .build();
sfnClient.deleteActivity(activityRequest);
System.out.println("You have deleted " + actArn);
@@ -297,8 +304,8 @@ public static void deleteActivity(SfnClient sfnClient, String actArn) {
public static void describeStateMachine(SfnClient sfnClient, String stateMachineArn) {
try {
DescribeStateMachineRequest stateMachineRequest = DescribeStateMachineRequest.builder()
- .stateMachineArn(stateMachineArn)
- .build();
+ .stateMachineArn(stateMachineArn)
+ .build();
DescribeStateMachineResponse response = sfnClient.describeStateMachine(stateMachineRequest);
System.out.println("The name of the State machine is " + response.name());
@@ -316,13 +323,13 @@ public static void describeStateMachine(SfnClient sfnClient, String stateMachine
public static void deleteMachine(SfnClient sfnClient, String stateMachineArn) {
try {
DeleteStateMachineRequest deleteStateMachineRequest = DeleteStateMachineRequest.builder()
- .stateMachineArn(stateMachineArn)
- .build();
+ .stateMachineArn(stateMachineArn)
+ .build();
sfnClient.deleteStateMachine(deleteStateMachineRequest);
DescribeStateMachineRequest describeStateMachine = DescribeStateMachineRequest.builder()
- .stateMachineArn(stateMachineArn)
- .build();
+ .stateMachineArn(stateMachineArn)
+ .build();
while (true) {
DescribeStateMachineResponse response = sfnClient.describeStateMachine(describeStateMachine);
@@ -343,10 +350,10 @@ public static String startWorkflow(SfnClient sfnClient, String stateMachineArn,
String uuidValue = uuid.toString();
try {
StartExecutionRequest executionRequest = StartExecutionRequest.builder()
- .input(jsonEx)
- .stateMachineArn(stateMachineArn)
- .name(uuidValue)
- .build();
+ .input(jsonEx)
+ .stateMachineArn(stateMachineArn)
+ .name(uuidValue)
+ .build();
StartExecutionResponse response = sfnClient.startExecution(executionRequest);
return response.executionArn();
@@ -363,11 +370,11 @@ public static String startWorkflow(SfnClient sfnClient, String stateMachineArn,
public static String createMachine(SfnClient sfnClient, String roleARN, String stateMachineName, String json) {
try {
CreateStateMachineRequest machineRequest = CreateStateMachineRequest.builder()
- .definition(json)
- .name(stateMachineName)
- .roleArn(roleARN)
- .type(StateMachineType.STANDARD)
- .build();
+ .definition(json)
+ .name(stateMachineName)
+ .roleArn(roleARN)
+ .type(StateMachineType.STANDARD)
+ .build();
CreateStateMachineResponse response = sfnClient.createStateMachine(machineRequest);
return response.stateMachineArn();
@@ -384,8 +391,8 @@ public static String createMachine(SfnClient sfnClient, String roleARN, String s
public static String createActivity(SfnClient sfnClient, String activityName) {
try {
CreateActivityRequest activityRequest = CreateActivityRequest.builder()
- .name(activityName)
- .build();
+ .name(activityName)
+ .build();
CreateActivityResponse response = sfnClient.createActivity(activityRequest);
return response.activityArn();
diff --git a/javav2/example_code/stepfunctions/src/test/java/StepFunctionsTest.java b/javav2/example_code/stepfunctions/src/test/java/StepFunctionsTest.java
index d108faeabd6..39d41e6e424 100644
--- a/javav2/example_code/stepfunctions/src/test/java/StepFunctionsTest.java
+++ b/javav2/example_code/stepfunctions/src/test/java/StepFunctionsTest.java
@@ -90,107 +90,6 @@ public void TestHello() {
System.out.println("Test 2 passed");
}
- @Test
- @Tag("IntegrationTest")
- @Order(3)
- public void TestSTFMVP() throws Exception {
- Region regionGl = Region.AWS_GLOBAL;
- IamClient iam = IamClient.builder()
- .region(regionGl)
- .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
- .build();
- Scanner sc = new Scanner(System.in);
- boolean action = false;
- String polJSON = "{\n" +
- " \"Version\": \"2012-10-17\",\n" +
- " \"Statement\": [\n" +
- " {\n" +
- " \"Sid\": \"\",\n" +
- " \"Effect\": \"Allow\",\n" +
- " \"Principal\": {\n" +
- " \"Service\": \"states.amazonaws.com\"\n" +
- " },\n" +
- " \"Action\": \"sts:AssumeRole\"\n" +
- " }\n" +
- " ]\n" +
- "}";
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Create an activity.");
- String activityArn = StepFunctionsScenario.createActivity(sfnClient, activityNameSC);
- System.out.println("The ARN of the activity is " + activityArn);
- System.out.println(StepFunctionsScenario.DASHES);
- InputStream input = StepFunctionsScenario.class.getClassLoader()
- .getResourceAsStream("chat_sfn_state_machine.json");
- ObjectMapper mapper = new ObjectMapper();
- JsonNode jsonNode = mapper.readValue(input, JsonNode.class);
- String jsonString = mapper.writeValueAsString(jsonNode);
-
- // Modify the Resource node.
- ObjectMapper objectMapper = new ObjectMapper();
- JsonNode root = objectMapper.readTree(jsonString);
- ((ObjectNode) root.path("States").path("GetInput")).put("Resource", activityArn);
-
- // Convert the modified Java object back to a JSON string.
- String stateDefinition = objectMapper.writeValueAsString(root);
- System.out.println(stateDefinition);
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Create a state machine.");
- String roleARN = StepFunctionsScenario.createIAMRole(iam, roleNameSC, polJSON);
- String stateMachineArn = StepFunctionsScenario.createMachine(sfnClient, roleARN, stateMachineNameSC,
- stateDefinition);
- System.out.println("The ARN of the state machine is " + stateMachineArn);
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Describe the state machine.");
- StepFunctionsScenario.describeStateMachine(sfnClient, stateMachineArn);
- System.out.println("What should ChatSFN call you?");
- String userName = "Foo";
- System.out.println("Hello " + userName);
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println(StepFunctionsScenario.DASHES);
- // The json information to pass to the StartExecution call.
- String executionJson = "{ \"name\" : \"" + userName + "\" }";
- System.out.println(executionJson);
- System.out.println("Start execution of the state machine and interact with it.");
- String runArn = StepFunctionsScenario.startWorkflow(sfnClient, stateMachineArn, executionJson);
- System.out.println("The ARN of the state machine execution is " + runArn);
- List myList;
- while (!action) {
- myList = StepFunctionsScenario.getActivityTask(sfnClient, activityArn);
- System.out.println("ChatSFN: " + myList.get(1));
- System.out.println(userName + " please specify a value.");
- String myAction = "done";
- action = true;
-
- System.out.println("You have selected " + myAction);
- String taskJson = "{ \"action\" : \"" + myAction + "\" }";
- System.out.println(taskJson);
- StepFunctionsScenario.sendTaskSuccess(sfnClient, myList.get(0), taskJson);
- }
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Describe the execution.");
- StepFunctionsScenario.describeExe(sfnClient, runArn);
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Delete the activity.");
- StepFunctionsScenario.deleteActivity(sfnClient, activityArn);
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println(StepFunctionsScenario.DASHES);
- System.out.println("Delete the state machines.");
- StepFunctionsScenario.deleteMachine(sfnClient, stateMachineArn);
- System.out.println(StepFunctionsScenario.DASHES);
-
- System.out.println("Test 4 passed");
- }
-
private static String getSecretValues() {
SecretsManagerClient secretClient = SecretsManagerClient.builder()
.region(Region.US_EAST_1)
diff --git a/javav2/example_code/sts/pom.xml b/javav2/example_code/sts/pom.xml
index 4e8231d66ed..fdb2113c117 100644
--- a/javav2/example_code/sts/pom.xml
+++ b/javav2/example_code/sts/pom.xml
@@ -26,10 +26,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
@@ -38,7 +35,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -60,26 +57,17 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.0
+ junit-jupiter
+ 5.11.4
test
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.0
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.0
+ software.amazon.awssdk
+ sso
- org.junit.platform
- junit-platform-launcher
- 1.9.0
- test
+ software.amazon.awssdk
+ ssooidc
\ No newline at end of file
diff --git a/javav2/example_code/support/pom.xml b/javav2/example_code/support/pom.xml
index d3eccfbc862..f1490cb7769 100644
--- a/javav2/example_code/support/pom.xml
+++ b/javav2/example_code/support/pom.xml
@@ -27,7 +27,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
+ 3.5.2
@@ -36,7 +36,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -45,41 +45,31 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
software.amazon.awssdk
support
- 2.20.26
-
-
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
+
com.fasterxml.jackson.core
jackson-databind
2.14.2
- org.junit.platform
- junit-platform-commons
- 1.9.2
+ org.apache.logging.log4j
+ log4j-api
+ 2.20.0
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
+ software.amazon.awssdk
+ sso
- org.apache.logging.log4j
- log4j-api
- 2.20.0
+ software.amazon.awssdk
+ ssooidc
\ No newline at end of file
diff --git a/javav2/example_code/swf/pom.xml b/javav2/example_code/swf/pom.xml
index b5e18c09efe..17c23b59fef 100644
--- a/javav2/example_code/swf/pom.xml
+++ b/javav2/example_code/swf/pom.xml
@@ -25,10 +25,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
@@ -37,7 +34,7 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
@@ -46,8 +43,8 @@
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
@@ -60,25 +57,16 @@
2.10.1
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
+ software.amazon.awssdk
+ swf
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
+ software.amazon.awssdk
+ sso
software.amazon.awssdk
- swf
+ ssooidc
diff --git a/javav2/example_code/textract/pom.xml b/javav2/example_code/textract/pom.xml
index 0bc2ba8ae0b..eecc6813ee6 100644
--- a/javav2/example_code/textract/pom.xml
+++ b/javav2/example_code/textract/pom.xml
@@ -26,10 +26,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
+ 3.5.2
@@ -38,17 +35,17 @@
software.amazon.awssdk
bom
- 2.21.20
+ 2.29.45
pom
import
-
+
org.junit.jupiter
- junit-jupiter-api
- 5.9.2
+ junit-jupiter
+ 5.11.4
test
@@ -61,25 +58,16 @@
2.10.1
- org.junit.jupiter
- junit-jupiter-engine
- 5.9.2
- test
-
-
- org.junit.platform
- junit-platform-commons
- 1.9.2
+ software.amazon.awssdk
+ textract
- org.junit.platform
- junit-platform-launcher
- 1.9.2
- test
+ software.amazon.awssdk
+ sso
software.amazon.awssdk
- textract
+ ssooidc
\ No newline at end of file
diff --git a/javav2/example_code/timestream/pom.xml b/javav2/example_code/timestream/pom.xml
index af0f03c7c34..47190eb9798 100644
--- a/javav2/example_code/timestream/pom.xml
+++ b/javav2/example_code/timestream/pom.xml
@@ -17,11 +17,8 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.22.1
-
- IntegrationTest
-
-
+ 3.5.2
+