diff --git a/java/.snyk b/java/.snyk
index 7d6f94f3..18f21c0e 100644
--- a/java/.snyk
+++ b/java/.snyk
@@ -12,4 +12,8 @@ ignore:
SNYK:LIC:MAVEN:JUNIT:JUNIT:EPL-1.0:
- '*':
reason: Use of the library is consistent with commercial use as we are not making changes, only consuming it as part of commercial work.
- expires: '2030-01-01T00:00:00.000Z'
\ No newline at end of file
+ expires: '2030-01-01T00:00:00.000Z'
+ snyk:lic:maven:org.aspectj:aspectjweaver:EPL-1.0:
+ - '*':
+ reason: Use of the library is consistent with commercial use as we are not making changes, only consuming it as part of commercial work.
+ expires: '2030-01-01T00:00:00.000Z'
diff --git a/java/pom.xml b/java/pom.xml
index 6a6f1a92..95b1cc70 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -20,9 +20,13 @@
Demo project for Java
- 1.0.2.2-RELEASE
+ 1.0.3.2-RELEASE
1.0.3
+
+ no-aws
+ no-azure
+
11
1.18.0
1.6.1
@@ -52,6 +56,8 @@
4.2.7
2.17.0
1.5.2.Final
+ 1.12.273
+ 1.9.9.1
2.13
3.1.2
@@ -71,15 +77,6 @@
9000
-
-
-
- snapshots
- default-maven-virtual
- https://amidostacks.jfrog.io/artifactory/default-maven-virtual
-
-
-
@@ -98,6 +95,12 @@
com.amido.stacks.modules
stacks-core-api
${stacks.core.api.version}
+
+
+ org.aspectj
+ aspectjweaver
+
+
@@ -228,15 +231,6 @@
provided
-
-
org.springframework.boot
spring-boot-starter-test
@@ -320,6 +314,12 @@
runtime
+
+ com.amazonaws
+ aws-java-sdk-s3
+ ${aws-java-sdk-s3.version}
+
+
@@ -546,6 +546,37 @@
+
+
+
+
+ aws
+
+
+ .
+
+
+
+ aws
+
+
+
+
+
+
+ azure
+
+
+ .
+
+
+
+ azure
+
+
+
+
+
owasp-dependency-check
@@ -565,6 +596,7 @@
+
test
@@ -575,6 +607,7 @@
+
local
@@ -588,6 +621,7 @@
+
update-permissions
@@ -621,5 +655,6 @@
+
diff --git a/java/run_tests.sh b/java/run_tests.sh
new file mode 100755
index 00000000..960d96cf
--- /dev/null
+++ b/java/run_tests.sh
@@ -0,0 +1,7 @@
+export BASE_URL=http://localhost:9000
+
+mvn -f ../api-tests/pom.xml clean verify
+open ../api-tests/target/site/serenity/index.html
+
+mvn -f ../api-tests-karate/pom.xml clean test
+open ../api-tests-karate/target/surefire-reports/karate-summary.html
\ No newline at end of file
diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/SecretsController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/SecretsController.java
new file mode 100644
index 00000000..46643dd2
--- /dev/null
+++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/SecretsController.java
@@ -0,0 +1,25 @@
+package com.amido.stacks.workloads.menu.api.v1;
+
+import com.amido.stacks.workloads.menu.service.v1.SecretsService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping(
+ path = "/v1/secrets",
+ produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8")
+@RequiredArgsConstructor
+public class SecretsController {
+
+ private final SecretsService secretsService;
+
+ @GetMapping
+ public ResponseEntity getSecrets() {
+
+ return ResponseEntity.ok(secretsService.getSecrets());
+ }
+}
diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/SecretsService.java b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/SecretsService.java
new file mode 100644
index 00000000..931e9b5e
--- /dev/null
+++ b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/SecretsService.java
@@ -0,0 +1,33 @@
+package com.amido.stacks.workloads.menu.service.v1;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class SecretsService {
+
+ @Value(value = "${stacks-secret-1:secret-not-available}")
+ private String secret1;
+
+ @Value(value = "${stacks-secret-2:secret-not-available}")
+ private String secret2;
+
+ @Value(value = "${stacks-secret-3:secret-not-available}")
+ private String secret3;
+
+ @Value(value = "${stacks-secret-4:secret-not-available}")
+ private String secret4;
+
+ public String getSecrets() {
+
+ log.info("Getting some secrets...");
+
+ return showSecrets();
+ }
+
+ private String showSecrets() {
+ return "Secrets -> " + secret1 + ", " + secret2 + ", " + secret3 + ", " + secret4;
+ }
+}
diff --git a/java/src/main/resources/application-aws.yml b/java/src/main/resources/application-aws.yml
new file mode 100644
index 00000000..97a6ce16
--- /dev/null
+++ b/java/src/main/resources/application-aws.yml
@@ -0,0 +1,9 @@
+spring.config.import:
+ - optional:aws-secretsmanager:/stacks-secret/example-1/
+ - optional:aws-secretsmanager:/stacks-secret/example-2/
+
+aws:
+ xray:
+ enabled: ${AWS_XRAY_ENABLED:false}
+ secretsmanager:
+ enabled: ${AWS_SECRETS_ENABLED:false}
diff --git a/java/src/main/resources/application-azure.yml b/java/src/main/resources/application-azure.yml
new file mode 100644
index 00000000..89231add
--- /dev/null
+++ b/java/src/main/resources/application-azure.yml
@@ -0,0 +1,10 @@
+azure:
+ application-insights:
+ instrumentation-key: xxxxxx
+ enabled: true
+ keyvault:
+ enabled: false
+ uri: https://amido.stacks-tmp.vault.azure.net/
+ client-id: xxxxxx
+ client-key: xxxxxx
+ tenant-id: xxxxxx
diff --git a/java/src/main/resources/application.yml b/java/src/main/resources/application.yml
index 524dda51..305cad7b 100644
--- a/java/src/main/resources/application.yml
+++ b/java/src/main/resources/application.yml
@@ -1,4 +1,9 @@
spring:
+ profiles:
+ include:
+ - "@aws.profile.name@"
+ - "@azure.profile.name@"
+
application:
name: stacks-api
data:
@@ -31,14 +36,3 @@ springdoc:
enabled: true
enabled: true
path: /swagger/oas-json
-
-azure:
- application-insights:
- instrumentation-key: xxxxxx
- enabled: true
- keyvault:
- enabled: false
- uri: https://amido-stacks-tmp.vault.azure.net/
- client-id: xxxxxx
- client-key: xxxxxx
- tenant-id: xxxxxx
diff --git a/java/src/main/resources/local/application-aws.yml b/java/src/main/resources/local/application-aws.yml
new file mode 100644
index 00000000..97a6ce16
--- /dev/null
+++ b/java/src/main/resources/local/application-aws.yml
@@ -0,0 +1,9 @@
+spring.config.import:
+ - optional:aws-secretsmanager:/stacks-secret/example-1/
+ - optional:aws-secretsmanager:/stacks-secret/example-2/
+
+aws:
+ xray:
+ enabled: ${AWS_XRAY_ENABLED:false}
+ secretsmanager:
+ enabled: ${AWS_SECRETS_ENABLED:false}
diff --git a/java/src/main/resources/local/application-azure.yml b/java/src/main/resources/local/application-azure.yml
new file mode 100644
index 00000000..89231add
--- /dev/null
+++ b/java/src/main/resources/local/application-azure.yml
@@ -0,0 +1,10 @@
+azure:
+ application-insights:
+ instrumentation-key: xxxxxx
+ enabled: true
+ keyvault:
+ enabled: false
+ uri: https://amido.stacks-tmp.vault.azure.net/
+ client-id: xxxxxx
+ client-key: xxxxxx
+ tenant-id: xxxxxx
diff --git a/java/src/test/java/com/amido/stacks/workloads/menu/api/v1/SecretsControllerTest.java b/java/src/test/java/com/amido/stacks/workloads/menu/api/v1/SecretsControllerTest.java
new file mode 100644
index 00000000..1477c559
--- /dev/null
+++ b/java/src/test/java/com/amido/stacks/workloads/menu/api/v1/SecretsControllerTest.java
@@ -0,0 +1,55 @@
+package com.amido.stacks.workloads.menu.api.v1;
+
+import static org.assertj.core.api.BDDAssertions.then;
+
+import com.amido.stacks.workloads.Application;
+import com.amido.stacks.workloads.util.TestHelper;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.http.HttpStatus;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.TestPropertySource;
+
+@SpringBootTest(
+ webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
+ classes = Application.class,
+ properties = {
+ "stacks-secret-1=SEC1",
+ "stacks-secret-2=SEC2",
+ "stacks-secret-3=SEC3",
+ "stacks-secret-4=SEC4"
+ })
+@TestPropertySource(
+ properties = {
+ "management.port=0",
+ "aws.xray.enabled=false",
+ "aws.secretsmanager.enabled=false"
+ })
+@Tag("Integration")
+@ActiveProfiles("test")
+class SecretsControllerTest {
+
+ public static final String GET_SECRETS = "/v1/secrets";
+
+ @LocalServerPort private int port;
+
+ @Autowired private TestRestTemplate testRestTemplate;
+
+ @Test
+ void shouldReturnValidSecrets() {
+ // Given
+
+ // When
+ var response =
+ this.testRestTemplate.getForEntity(
+ String.format("%s/v1/secrets", TestHelper.getBaseURL(port)), String.class);
+
+ // Then
+ then(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ then(response.getBody()).isEqualTo("Secrets -> SEC1, SEC2, SEC3, SEC4");
+ }
+}
diff --git a/java/x.txt b/java/x.txt
new file mode 100644
index 00000000..a4e0cdcf
--- /dev/null
+++ b/java/x.txt
@@ -0,0 +1,276 @@
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ---------------< com.amido.stacks.workloads:stacks-api >----------------
+[INFO] Building stacks-api 1.0.0
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- maven-dependency-plugin:3.2.0:tree (default-cli) @ stacks-api ---
+[INFO] com.amido.stacks.workloads:stacks-api:jar:1.0.0
+[INFO] +- com.amido.stacks.modules:stacks-core-api:jar:1.0.3.2-RELEASE:compile
+[INFO] | +- ch.qos.logback:logback-classic:jar:1.2.7:compile
+[INFO] | +- org.slf4j:slf4j-api:jar:1.7.32:compile
+[INFO] | +- org.springframework.cloud:spring-cloud-context:jar:3.1.3:compile
+[INFO] | | \- org.springframework.security:spring-security-crypto:jar:5.6.0:compile
+[INFO] | +- io.awspring.cloud:spring-cloud-starter-aws-secrets-manager-config:jar:2.4.1:compile
+[INFO] | | +- io.awspring.cloud:spring-cloud-aws-secrets-manager-config:jar:2.4.1:compile
+[INFO] | | | \- com.amazonaws:aws-java-sdk-secretsmanager:jar:1.12.195:compile
+[INFO] | | +- io.awspring.cloud:spring-cloud-aws-core:jar:2.4.1:compile
+[INFO] | | | \- com.amazonaws:aws-java-sdk-ec2:jar:1.12.195:compile
+[INFO] | | \- javax.activation:javax.activation-api:jar:1.2.0:compile
+[INFO] | +- com.amazonaws:aws-xray-recorder-sdk-spring:jar:2.11.2:compile
+[INFO] | | +- com.amazonaws:aws-xray-recorder-sdk-core:jar:2.11.2:compile
+[INFO] | | | \- com.amazonaws:aws-java-sdk-xray:jar:1.12.228:compile
+[INFO] | | +- org.aspectj:aspectjrt:jar:1.9.7:compile
+[INFO] | | +- org.springframework:spring-context-support:jar:5.3.13:runtime
+[INFO] | | \- org.springframework:spring-aspects:jar:5.3.13:runtime
+[INFO] | +- com.amazonaws:aws-xray-recorder-sdk-log4j:jar:2.11.2:compile
+[INFO] | +- com.amazonaws:aws-xray-recorder-sdk-apache-http:jar:2.11.2:compile
+[INFO] | | \- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
+[INFO] | | \- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
+[INFO] | +- com.amazonaws:aws-xray-recorder-sdk-metrics:jar:2.11.2:compile
+[INFO] | | \- com.amazonaws:aws-xray-recorder-sdk-aws-sdk-core:jar:2.11.2:runtime
+[INFO] | \- org.mapstruct:mapstruct:jar:1.5.2.Final:compile
+[INFO] +- com.amido.stacks.modules:stacks-core-commons:jar:1.0.3:compile
+[INFO] | \- org.springframework:spring-context:jar:5.3.13:compile
+[INFO] | +- org.springframework:spring-aop:jar:5.3.13:compile
+[INFO] | +- org.springframework:spring-beans:jar:5.3.13:compile
+[INFO] | \- org.springframework:spring-expression:jar:5.3.13:compile
+[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.6.1:compile
+[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.6.1:compile
+[INFO] | | +- org.springframework.boot:spring-boot:jar:2.6.1:compile
+[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.6.1:compile
+[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.14.1:compile
+[INFO] | | | \- org.slf4j:jul-to-slf4j:jar:1.7.32:compile
+[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
+[INFO] | | \- org.yaml:snakeyaml:jar:1.29:compile
+[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.6.1:compile
+[INFO] | | \- org.springframework.boot:spring-boot-actuator:jar:2.6.1:compile
+[INFO] | \- io.micrometer:micrometer-core:jar:1.8.0:compile
+[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
+[INFO] | \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
+[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.6.1:compile
+[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.6.1:compile
+[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.13.0:compile
+[INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.13.0:compile
+[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.6.1:compile
+[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.55:compile
+[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.55:compile
+[INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.55:compile
+[INFO] | +- org.springframework:spring-web:jar:5.3.13:compile
+[INFO] | \- org.springframework:spring-webmvc:jar:5.3.13:compile
+[INFO] +- org.springdoc:springdoc-openapi-ui:jar:1.6.1:compile
+[INFO] | +- org.springdoc:springdoc-openapi-webmvc-core:jar:1.6.1:compile
+[INFO] | | \- org.springdoc:springdoc-openapi-common:jar:1.6.1:compile
+[INFO] | | +- io.swagger.core.v3:swagger-models:jar:2.1.11:compile
+[INFO] | | +- io.swagger.core.v3:swagger-annotations:jar:2.1.11:compile
+[INFO] | | +- io.swagger.core.v3:swagger-integration:jar:2.1.11:compile
+[INFO] | | | \- io.swagger.core.v3:swagger-core:jar:2.1.11:compile
+[INFO] | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.13.0:compile
+[INFO] | | | \- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
+[INFO] | | \- io.github.classgraph:classgraph:jar:4.8.116:compile
+[INFO] | +- org.webjars:swagger-ui:jar:4.1.3:compile
+[INFO] | \- org.webjars:webjars-locator-core:jar:0.48:compile
+[INFO] +- org.springdoc:springdoc-openapi-data-rest:jar:1.6.1:compile
+[INFO] | +- org.springdoc:springdoc-openapi-hateoas:jar:1.6.1:compile
+[INFO] | | \- org.springframework.hateoas:spring-hateoas:jar:1.4.0:compile
+[INFO] | \- org.springframework.data:spring-data-rest-core:jar:3.6.0:compile
+[INFO] | +- org.springframework:spring-tx:jar:5.3.13:compile
+[INFO] | +- org.springframework.data:spring-data-commons:jar:2.6.0:compile
+[INFO] | +- org.springframework.plugin:spring-plugin-core:jar:2.0.0.RELEASE:compile
+[INFO] | \- org.atteo:evo-inflector:jar:1.3:compile
+[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.17.0:compile
+[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.13.0:compile
+[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.13.0:compile
+[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.0:compile
+[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.0:compile
+[INFO] +- com.azure.spring:azure-spring-boot:jar:3.6.0:compile
+[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.6.1:compile
+[INFO] | +- javax.validation:validation-api:jar:2.0.1.Final:compile
+[INFO] | +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
+[INFO] | \- org.springframework:spring-core:jar:5.3.13:compile
+[INFO] | \- org.springframework:spring-jcl:jar:5.3.13:compile
+[INFO] +- com.microsoft.azure:applicationinsights-spring-boot-starter:jar:2.6.4:runtime
+[INFO] | \- com.microsoft.azure:applicationinsights-web:jar:2.6.4:runtime
+[INFO] +- com.microsoft.azure:applicationinsights-logging-logback:jar:2.6.4:runtime
+[INFO] | \- com.microsoft.azure:applicationinsights-core:jar:2.6.4:runtime
+[INFO] +- ch.qos.logback:logback-core:jar:1.2.8:compile
+[INFO] +- net.minidev:json-smart:jar:2.4.7:compile
+[INFO] | \- net.minidev:accessors-smart:jar:2.4.7:compile
+[INFO] | \- org.ow2.asm:asm:jar:9.1:compile
+[INFO] +- com.beust:jcommander:jar:1.81:compile
+[INFO] +- com.auth0:auth0-spring-security-api:jar:1.4.1:compile
+[INFO] | +- com.auth0:java-jwt:jar:3.13.0:compile
+[INFO] | +- com.auth0:jwks-rsa:jar:0.15.0:compile
+[INFO] | | \- com.google.guava:guava:jar:30.0-jre:runtime
+[INFO] | | +- com.google.guava:failureaccess:jar:1.0.1:runtime
+[INFO] | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:runtime
+[INFO] | | +- org.checkerframework:checker-qual:jar:3.5.0:runtime
+[INFO] | | +- com.google.errorprone:error_prone_annotations:jar:2.3.4:runtime
+[INFO] | | \- com.google.j2objc:j2objc-annotations:jar:1.3:runtime
+[INFO] | +- org.springframework.security:spring-security-core:jar:5.6.0:compile
+[INFO] | +- org.springframework.security:spring-security-web:jar:5.6.0:compile
+[INFO] | +- org.springframework.security:spring-security-config:jar:5.6.0:compile
+[INFO] | \- commons-codec:commons-codec:jar:1.15:compile
+[INFO] +- org.projectlombok:lombok:jar:1.18.22:provided
+[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.6.1:test
+[INFO] | +- org.springframework.boot:spring-boot-test:jar:2.6.1:test
+[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.6.1:test
+[INFO] | +- com.jayway.jsonpath:json-path:jar:2.6.0:compile
+[INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:compile
+[INFO] | | \- jakarta.activation:jakarta.activation-api:jar:1.2.2:compile
+[INFO] | +- org.assertj:assertj-core:jar:3.21.0:test
+[INFO] | +- org.junit.jupiter:junit-jupiter:jar:5.8.2:test
+[INFO] | | \- org.junit.jupiter:junit-jupiter-params:jar:5.8.2:test
+[INFO] | +- org.mockito:mockito-core:jar:4.1.0:test
+[INFO] | | +- net.bytebuddy:byte-buddy:jar:1.11.22:test
+[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.11.22:test
+[INFO] | | \- org.objenesis:objenesis:jar:3.2:test
+[INFO] | +- org.skyscreamer:jsonassert:jar:1.5.0:test
+[INFO] | +- org.springframework:spring-test:jar:5.3.13:test
+[INFO] | \- org.xmlunit:xmlunit-core:jar:2.8.3:test
+[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.8.2:test
+[INFO] | +- org.opentest4j:opentest4j:jar:1.2.0:test
+[INFO] | +- org.junit.platform:junit-platform-commons:jar:1.8.2:test
+[INFO] | \- org.apiguardian:apiguardian-api:jar:1.1.2:test
+[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.8.2:test
+[INFO] | \- org.junit.platform:junit-platform-engine:jar:1.8.2:test
+[INFO] +- org.mockito:mockito-junit-jupiter:jar:4.1.0:test
+[INFO] +- org.hamcrest:hamcrest:jar:2.2:test
+[INFO] +- nl.jqno.equalsverifier:equalsverifier:jar:3.8.1:test
+[INFO] +- au.com.dius:pact-jvm-provider-spring:jar:4.0.10:test
+[INFO] | +- javax.servlet:javax.servlet-api:jar:4.0.1:test
+[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.13.0:test
+[INFO] | | \- joda-time:joda-time:jar:2.10.8:compile
+[INFO] | \- au.com.dius:pact-jvm-provider-junit:jar:4.0.10:test
+[INFO] | +- org.apache.httpcomponents:fluent-hc:jar:4.5.13:test
+[INFO] | +- junit:junit:jar:4.13.2:test
+[INFO] | | \- org.hamcrest:hamcrest-core:jar:2.2:test
+[INFO] | +- org.jooq:jool:jar:0.9.14:test
+[INFO] | +- com.github.rholder:guava-retrying:jar:2.0.0:test
+[INFO] | +- javax.mail:mail:jar:1.5.0-b01:test
+[INFO] | | \- javax.activation:activation:jar:1.1:test
+[INFO] | +- au.com.dius:pact-jvm-core-support:jar:4.0.10:test
+[INFO] | | +- com.google.code.gson:gson:jar:2.8.9:test
+[INFO] | | +- io.github.microutils:kotlin-logging:jar:1.6.26:test
+[INFO] | | | \- io.github.microutils:kotlin-logging-common:jar:1.6.26:test
+[INFO] | | +- io.arrow-kt:arrow-core-extensions:jar:0.9.0:test
+[INFO] | | | +- io.arrow-kt:arrow-annotations:jar:0.9.0:test
+[INFO] | | | | \- io.kindedj:kindedj:jar:1.1.0:test
+[INFO] | | | +- io.arrow-kt:arrow-typeclasses:jar:0.9.0:test
+[INFO] | | | \- io.arrow-kt:arrow-core-data:jar:0.9.0:test
+[INFO] | | \- com.github.salomonbrys.kotson:kotson:jar:2.5.0:test
+[INFO] | \- au.com.dius:pact-jvm-provider:jar:4.0.10:test
+[INFO] | +- org.fusesource.jansi:jansi:jar:1.17.1:test
+[INFO] | +- au.com.dius:pact-jvm-core-model:jar:4.0.10:test
+[INFO] | +- au.com.dius:pact-jvm-core-pact-broker:jar:4.0.10:test
+[INFO] | | \- org.dmfs:rfc3986-uri:jar:0.8:test
+[INFO] | | +- org.dmfs:iterators:jar:1.5:test
+[INFO] | | \- org.dmfs:optional:jar:0.3:test
+[INFO] | +- au.com.dius:pact-jvm-core-matchers:jar:4.0.10:test
+[INFO] | +- org.scala-lang:scala-library:jar:2.12.8:test
+[INFO] | \- org.codehaus.groovy:groovy:jar:3.0.9:test
+[INFO] +- au.com.dius.pact:consumer:jar:4.3.2:test
+[INFO] | +- au.com.dius.pact.core:support:jar:4.3.2:test
+[INFO] | | +- io.github.microutils:kotlin-logging-jvm:jar:2.0.10:test
+[INFO] | | +- com.michael-bull.kotlin-result:kotlin-result-jvm:jar:1.1.12:test
+[INFO] | | +- org.antlr:antlr4:jar:4.9.2:test
+[INFO] | | | +- org.antlr:antlr4-runtime:jar:4.9.2:test
+[INFO] | | | +- org.antlr:antlr-runtime:jar:3.5.2:test
+[INFO] | | | +- org.antlr:ST4:jar:4.3:test
+[INFO] | | | +- org.abego.treelayout:org.abego.treelayout.core:jar:1.0.3:test
+[INFO] | | | \- com.ibm.icu:icu4j:jar:61.1:test
+[INFO] | | \- com.google.code.findbugs:jsr305:jar:3.0.2:runtime
+[INFO] | +- au.com.dius.pact.core:model:jar:4.3.2:test
+[INFO] | | +- au.com.dius.pact.core:pactbroker:jar:4.3.2:test
+[INFO] | | +- org.apache.commons:commons-collections4:jar:4.4:test
+[INFO] | | +- org.apache.tika:tika-core:jar:1.27:test
+[INFO] | | +- io.ktor:ktor-http-jvm:jar:1.6.1:test
+[INFO] | | | +- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:jar:1.5.2:test
+[INFO] | | | \- io.ktor:ktor-utils-jvm:jar:1.6.1:test
+[INFO] | | | \- io.ktor:ktor-io-jvm:jar:1.6.1:test
+[INFO] | | \- commons-beanutils:commons-beanutils:jar:1.9.4:test
+[INFO] | | \- commons-collections:commons-collections:jar:3.2.2:test
+[INFO] | +- au.com.dius.pact.core:matchers:jar:4.3.2:test
+[INFO] | | +- xerces:xercesImpl:jar:2.12.1:test
+[INFO] | | | \- xml-apis:xml-apis:jar:1.4.01:test
+[INFO] | | +- com.github.ajalt:mordant:jar:1.2.1:test
+[INFO] | | | \- com.github.ajalt:colormath:jar:1.2.0:test
+[INFO] | | \- com.github.zafarkhaja:java-semver:jar:0.9.0:test
+[INFO] | +- org.apache.httpcomponents.client5:httpclient5:jar:5.1.2:test
+[INFO] | | +- org.apache.httpcomponents.core5:httpcore5:jar:5.1.2:test
+[INFO] | | \- org.apache.httpcomponents.core5:httpcore5-h2:jar:5.1.2:test
+[INFO] | +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.6.0:test
+[INFO] | | +- org.jetbrains:annotations:jar:13.0:test
+[INFO] | | \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.6.0:test
+[INFO] | +- org.jetbrains.kotlin:kotlin-reflect:jar:1.6.0:test
+[INFO] | +- org.apache.httpcomponents.client5:httpclient5-fluent:jar:5.1.2:test
+[INFO] | +- com.googlecode.java-diff-utils:diffutils:jar:1.3.0:test
+[INFO] | +- dk.brics.automaton:automaton:jar:1.11-8:test
+[INFO] | +- org.json:json:jar:20210307:test
+[INFO] | +- io.netty:netty-handler:jar:4.1.70.Final:test
+[INFO] | | +- io.netty:netty-common:jar:4.1.70.Final:test
+[INFO] | | +- io.netty:netty-resolver:jar:4.1.70.Final:test
+[INFO] | | +- io.netty:netty-buffer:jar:4.1.70.Final:test
+[INFO] | | +- io.netty:netty-transport:jar:4.1.70.Final:test
+[INFO] | | \- io.netty:netty-codec:jar:4.1.70.Final:test
+[INFO] | +- io.ktor:ktor-server-netty:jar:1.6.2:test
+[INFO] | | +- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.6.0:test
+[INFO] | | +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.6.0:test
+[INFO] | | +- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:jar:1.5.2:test
+[INFO] | | +- io.ktor:ktor-server-host-common:jar:1.6.2:test
+[INFO] | | | +- io.ktor:ktor-server-core:jar:1.6.2:test
+[INFO] | | | | \- com.typesafe:config:jar:1.3.1:test
+[INFO] | | | \- io.ktor:ktor-http-cio-jvm:jar:1.6.2:test
+[INFO] | | +- io.netty:netty-codec-http2:jar:4.1.70.Final:test
+[INFO] | | | \- io.netty:netty-codec-http:jar:4.1.70.Final:test
+[INFO] | | +- org.eclipse.jetty.alpn:alpn-api:jar:1.1.3.v20160715:test
+[INFO] | | +- io.netty:netty-transport-native-kqueue:jar:4.1.70.Final:test
+[INFO] | | | +- io.netty:netty-transport-native-unix-common:jar:4.1.70.Final:test
+[INFO] | | | \- io.netty:netty-transport-classes-kqueue:jar:4.1.70.Final:test
+[INFO] | | \- io.netty:netty-transport-native-epoll:jar:4.1.70.Final:test
+[INFO] | | \- io.netty:netty-transport-classes-epoll:jar:4.1.70.Final:test
+[INFO] | +- io.ktor:ktor-network-tls-certificates:jar:1.6.2:test
+[INFO] | | \- io.ktor:ktor-network-tls-jvm:jar:1.6.2:test
+[INFO] | | \- io.ktor:ktor-network-jvm:jar:1.6.2:test
+[INFO] | +- io.pact.plugin.driver:core:jar:0.0.7:test
+[INFO] | | +- com.vdurmont:semver4j:jar:3.1.0:test
+[INFO] | | +- io.grpc:grpc-protobuf:jar:1.41.0:test
+[INFO] | | | +- io.grpc:grpc-api:jar:1.41.0:test
+[INFO] | | | | \- io.grpc:grpc-context:jar:1.41.0:test
+[INFO] | | | +- com.google.protobuf:protobuf-java:jar:3.17.2:test
+[INFO] | | | +- com.google.api.grpc:proto-google-common-protos:jar:2.0.1:test
+[INFO] | | | \- io.grpc:grpc-protobuf-lite:jar:1.41.0:test
+[INFO] | | +- io.grpc:grpc-stub:jar:1.41.0:test
+[INFO] | | +- io.grpc:grpc-netty:jar:1.41.0:test
+[INFO] | | | +- io.grpc:grpc-core:jar:1.41.0:test (version selected from constraint [1.41.0,1.41.0])
+[INFO] | | | | +- com.google.android:annotations:jar:4.1.1.4:test
+[INFO] | | | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.19:test
+[INFO] | | | +- io.netty:netty-handler-proxy:jar:4.1.70.Final:test
+[INFO] | | | | \- io.netty:netty-codec-socks:jar:4.1.70.Final:test
+[INFO] | | | \- io.perfmark:perfmark-api:jar:0.23.0:test
+[INFO] | | +- javax.json:javax.json-api:jar:1.1.4:test
+[INFO] | | \- org.glassfish:javax.json:jar:1.1.4:test
+[INFO] | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
+[INFO] | +- com.github.mifmif:generex:jar:1.0.2:test
+[INFO] | +- commons-io:commons-io:jar:1.3.2:test
+[INFO] | \- org.apache.commons:commons-text:jar:1.9:test
+[INFO] +- org.pitest:pitest-parent:pom:1.7.3:compile
+[INFO] +- com.nimbusds:oauth2-oidc-sdk:jar:9.9:runtime
+[INFO] | +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:runtime
+[INFO] | +- com.nimbusds:content-type:jar:2.1:runtime
+[INFO] | +- com.nimbusds:lang-tag:jar:1.5:runtime
+[INFO] | \- com.nimbusds:nimbus-jose-jwt:jar:9.10:runtime
+[INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.12.273:compile
+[INFO] | +- com.amazonaws:aws-java-sdk-kms:jar:1.12.273:compile
+[INFO] | +- com.amazonaws:aws-java-sdk-core:jar:1.12.273:compile
+[INFO] | | +- commons-logging:commons-logging:jar:1.1.3:compile
+[INFO] | | +- software.amazon.ion:ion-java:jar:1.0.2:compile
+[INFO] | | \- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.13.0:compile
+[INFO] | \- com.amazonaws:jmespath-java:jar:1.12.273:compile
+[INFO] \- org.aspectj:aspectjweaver:jar:1.9.9.1:runtime
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 1.935 s
+[INFO] Finished at: 2022-08-03T18:52:03+01:00
+[INFO] ------------------------------------------------------------------------