From f50916991c2b7f4a7b7aaa39ff8dd0d5c327b87a Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 00:11:42 -0500 Subject: [PATCH 01/41] noop. --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index cf6ad344c..2cc04ba80 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,3 @@ Filibuster instrumentation for the JVM. - - - - From 6ced28b292aaa113a7fe58309780ebe580bf0d9b Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 00:29:02 -0500 Subject: [PATCH 02/41] Disable docker integration. --- .../workflows/99-junit-functional-docker.yaml | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 .github/workflows/99-junit-functional-docker.yaml diff --git a/.github/workflows/99-junit-functional-docker.yaml b/.github/workflows/99-junit-functional-docker.yaml deleted file mode 100644 index 0cbacb8d7..000000000 --- a/.github/workflows/99-junit-functional-docker.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: Java (Functional Tests, Docker Integration) - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 25 - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: '11' - distribution: 'adopt' - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - name: Test with Gradle - run: ./gradlew testWithFaultInjectionDocker From ca3c94f65651b852e69e51fe3ec0c99548dd2ac1 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 00:30:18 -0500 Subject: [PATCH 03/41] Disable python integration tests. --- .../workflows/98-junit-functional-python.yaml | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 .github/workflows/98-junit-functional-python.yaml diff --git a/.github/workflows/98-junit-functional-python.yaml b/.github/workflows/98-junit-functional-python.yaml deleted file mode 100644 index b1c1ff3bb..000000000 --- a/.github/workflows/98-junit-functional-python.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: Java (Functional Tests, Python Integration) - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 25 - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: '11' - distribution: 'adopt' - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - name: Clone Filibuster (Python) - run: cd /tmp && git clone http://github.com/filibuster-testing/filibuster -b improvements-2 - - name: Build Filibuster (Python) - run: cd /tmp/filibuster && sudo make - - name: Install Filibuster (Python) - run: cd /tmp/filibuster && sudo make install - - name: Test with Gradle - run: ./gradlew testWithFaultInjectionPython From b919bac12e27280b373ad3116dda90b0730587bc Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 00:42:25 -0500 Subject: [PATCH 04/41] Remove jacoco (since it isn't working anyway.) --- build.gradle | 6 ------ 1 file changed, 6 deletions(-) diff --git a/build.gradle b/build.gradle index 209ed3390..1e528b995 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,6 @@ apply plugin: 'java' apply plugin: 'idea' apply plugin: 'eclipse' apply plugin: 'application' -apply plugin: 'jacoco' apply plugin: 'com.diffplug.spotless' apply plugin: 'com.google.protobuf' @@ -107,7 +106,6 @@ dependencies { test { useJUnitPlatform() - finalizedBy jacocoTestReport maxParallelForks = 1 timeout = Duration.ofMinutes(60) minHeapSize = "128m" // initial heap size @@ -122,10 +120,6 @@ test { } } -jacocoTestReport { - dependsOn test -} - tasks.withType(JavaCompile) { options.compilerArgs += '-parameters' options.compilerArgs += '-Xlint:unchecked' From 88374570ed52fa18d285a9f97e7837637b9ba90b Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 01:31:32 -0500 Subject: [PATCH 05/41] Move WorldTest to another directory to determine if it's flaky based on location. --- .../filibuster/functional/java/{basic => http}/WorldTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/cloud/filibuster/functional/java/{basic => http}/WorldTest.java (99%) diff --git a/src/test/java/cloud/filibuster/functional/java/basic/WorldTest.java b/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java similarity index 99% rename from src/test/java/cloud/filibuster/functional/java/basic/WorldTest.java rename to src/test/java/cloud/filibuster/functional/java/http/WorldTest.java index 640b3cefa..bd8665975 100644 --- a/src/test/java/cloud/filibuster/functional/java/basic/WorldTest.java +++ b/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.java.basic; +package cloud.filibuster.functional.java.http; import cloud.filibuster.examples.APIServiceGrpc; import cloud.filibuster.examples.Hello; From 5dbf2bf7a029d94d95034ed77c0b902811c24a4c Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:18:53 -0500 Subject: [PATCH 06/41] Remove unused variables. --- .../PurchaseWorkflowWithPricingAdjustmentService.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/test/java/cloud/filibuster/functional/java/purchase/PurchaseWorkflowWithPricingAdjustmentService.java b/src/test/java/cloud/filibuster/functional/java/purchase/PurchaseWorkflowWithPricingAdjustmentService.java index ad445a3c8..42082a565 100644 --- a/src/test/java/cloud/filibuster/functional/java/purchase/PurchaseWorkflowWithPricingAdjustmentService.java +++ b/src/test/java/cloud/filibuster/functional/java/purchase/PurchaseWorkflowWithPricingAdjustmentService.java @@ -74,10 +74,6 @@ public static Map.Entry getDiscountCode() { private final String sessionId; - private final boolean abortOnNoDiscount; - - private final int abortOnLessThanDiscountAmount; - private final Channel channel; private final StatefulRedisConnection connection; @@ -90,8 +86,6 @@ public static Map.Entry getDiscountCode() { public PurchaseWorkflowWithPricingAdjustmentService(String sessionId, boolean abortOnNoDiscount, int abortOnLessThanDiscountAmount) { this.sessionId = sessionId; - this.abortOnNoDiscount = abortOnNoDiscount; - this.abortOnLessThanDiscountAmount = abortOnLessThanDiscountAmount; this.channel = getRpcChannel(); this.connection = getRedisConnection(); this.dao = getCockroachDAO(); From 3fe5f038830503a7b1a47c4d9f3d6f2a267c87dd Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:21:08 -0500 Subject: [PATCH 07/41] Prevent 400 Bad Request by sending required header. --- .../instrumentors/FilibusterServerInstrumentor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java b/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java index 72120f2d4..33591670d 100644 --- a/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java +++ b/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java @@ -160,7 +160,9 @@ public void beforeInvocation() { HttpHeaderNames.CONTENT_TYPE, "application/json", "X-Filibuster-Instrumentation", - "true"); + "true", + "X-Filibuster-Is-Update", + String.valueOf(false)); AggregatedHttpResponse response = webClient.execute(postJson, payload.toString()).aggregate().join(); ResponseHeaders headers = response.headers(); From f56e0819754314fa89d501a71fc4b8f5653fb916 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:25:58 -0500 Subject: [PATCH 08/41] Make test resilient to thread scheduling anomalies. --- .../filibuster/functional/java/http/WorldTest.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java b/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java index bd8665975..4aeb6df81 100644 --- a/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java +++ b/src/test/java/cloud/filibuster/functional/java/http/WorldTest.java @@ -72,7 +72,17 @@ public void testWorld() { Hello.HelloRequest request = Hello.HelloRequest.newBuilder().setName("Chris").build(); Hello.HelloReply reply = apiServiceBlockingStub.world(request); assertEquals("Hello!", reply.getMessage()); - assertFalse(wasFaultInjected()); + + // DEIs will either be nested or not, depending on thread scheduling: it will only work if all executions share the same scheduling and the server assigns DEIs on the same thread the outgoing request is issued on. + // Therefore, this test is flaky. + // In short, we may fail to inject a fault where we should have injected one. + // + // We may have tried to, but didn't due to thread scheduling. + // Therefore, we remove this check. + // + // Ideally, this would be fixed if the context storage was replaced with OTEL. + // + // assertFalse(wasFaultInjected()); } catch (StatusRuntimeException sre) { boolean expected = false; @@ -104,4 +114,6 @@ public void testWorld() { assertTrue(expected, "did not expect: " + sre); } } + + // See comment above as to why we do not have a count on expected faults to be injected. } From 8b106d38494e3a2f540630195ab3b42538287eca Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:26:06 -0500 Subject: [PATCH 09/41] Switch to Gradle 8.4. --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 05679dc3c..e411586a5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 38ff3508ac535009e63264e9639fcb1b7c694a8c Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:27:39 -0500 Subject: [PATCH 10/41] Add shadow jar plugin. --- build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1e528b995..31c5acbd8 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,9 @@ plugins { id "net.ltgt.errorprone" version "2.0.2" id 'signing' id 'maven-publish' - id('io.github.gradle-nexus.publish-plugin') version '1.1.0' + id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' id 'com.adarshr.test-logger' version '3.2.0' + id 'com.github.johnrengelman.shadow' version '8.1.0' } apply plugin: 'java' From 72605fea7f2749b6776f42eb60c323e69ae3bcdf Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:28:27 -0500 Subject: [PATCH 11/41] Remove errorprone. --- build.gradle | 71 ---------------------------------------------------- 1 file changed, 71 deletions(-) diff --git a/build.gradle b/build.gradle index 31c5acbd8..84798ffc7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,6 @@ buildscript { plugins { id 'java' id "com.diffplug.spotless" version "5.0.0" - id "net.ltgt.errorprone" version "2.0.2" id 'signing' id 'maven-publish' id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' @@ -36,9 +35,6 @@ dependencyLocking { } dependencies { - errorprone "com.google.errorprone:error_prone_core:latest.release" - errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" - ['armeria', 'armeria-brave', 'armeria-grpc', @@ -129,73 +125,6 @@ tasks.withType(JavaCompile) { tasks.withType(JavaCompile).configureEach { options.forkOptions.jvmArgs.addAll(['--add-opens', 'jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED']) - - // stolen from opentelemetry. - options.errorprone { - enabled = rootProject.findProperty("disableErrorProne") != "true" - disableWarningsInGeneratedCode = true - allDisabledChecksAsWarnings = true - - excludedPaths = ".*/build/generated/.*" - - // Doesn't work well with Java 8 - disable("FutureReturnValueIgnored") - - // Require Guava - disable("AutoValueImmutableFields") - disable("StringSplitter") - disable("ImmutableMemberCollection") - - // Don't currently use this (to indicate a local variable that's mutated) but could - // consider for future. - disable("Var") - - // Don't support Android without desugar - disable("AndroidJdkLibsChecker") - disable("Java7ApiChecker") - disable("StaticOrDefaultInterfaceMethod") - - // Great check, but for bytecode manipulation it's too common to separate over - // onEnter / onExit - disable("MustBeClosedChecker") - - // Common to avoid an allocation. Revisit if it's worth opt-in suppressing instead of - // disabling entirely. - disable("MixedMutabilityReturnType") - - // We end up using obsolete types if a library we're instrumenting uses them. - disable("JdkObsolete") - disable("JavaUtilDate") - - // Storing into a variable in onEnter triggers this unfortunately. - disable("UnusedVariable") - - // some moving. - disable("DefaultPackage") - - // var usage: potentially need to revert for opentelemetry integration. - disable("Varifier") - - // wildcard import: potentially need to revert for opentelemetry integration. - disable("WildcardImport") - - // address this. - disable("PrivateConstructorForUtilityClass") - - // with older APIs. - disable("InconsistentOverloads") - disable("TypeParameterNaming") - - // We don't use tools that recognize. - disable("InlineMeSuggester") - disable("DoNotCallSuggester") - - disable("UnnecessarilyFullyQualified") - - if (name.contains("Jmh") || name.contains("Test")) { - disable("MemberName") - } - } } protobuf { From 7c319bc0b0dcd8ea5cf803aed725e75626dab60b Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:43:02 -0500 Subject: [PATCH 12/41] Add dummy main class. --- src/main/java/cloud/filibuster/Main.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/cloud/filibuster/Main.java diff --git a/src/main/java/cloud/filibuster/Main.java b/src/main/java/cloud/filibuster/Main.java new file mode 100644 index 000000000..0eb9b892c --- /dev/null +++ b/src/main/java/cloud/filibuster/Main.java @@ -0,0 +1,7 @@ +package cloud.filibuster; + +public class Main { + private Main() { + + } +} From e02cf9f1a760418848246eb503ccc940abe1f3d6 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:43:12 -0500 Subject: [PATCH 13/41] Remove locking. --- build.gradle | 4 - gradle.lockfile | 277 ------------------------------------------------ 2 files changed, 281 deletions(-) delete mode 100644 gradle.lockfile diff --git a/build.gradle b/build.gradle index 84798ffc7..3bdc019f8 100644 --- a/build.gradle +++ b/build.gradle @@ -30,10 +30,6 @@ repositories { mavenCentral() } -dependencyLocking { - lockAllConfigurations() -} - dependencies { ['armeria', 'armeria-brave', diff --git a/gradle.lockfile b/gradle.lockfile deleted file mode 100644 index 0d1257603..000000000 --- a/gradle.lockfile +++ /dev/null @@ -1,277 +0,0 @@ -# This is a Gradle generated file for dependency locking. -# Manual edits can break the build and are not advised. -# This file is expected to be part of source control. -aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor -ch.qos.logback:logback-classic:1.2.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -ch.qos.logback:logback-core:1.2.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.aayushatharva.brotli4j:brotli4j:1.6.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.auth0:java-jwt:3.18.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.datastax.cassandra:cassandra-driver-core:4.0.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.datastax.oss:java-driver-core:4.0.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.datastax.oss:java-driver-shaded-guava:25.1-jre=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.datastax.oss:native-protocol:1.4.4=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-annotations:2.13.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-core:2.13.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-databind:2.13.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.jackson:jackson-bom:2.13.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml.woodstox:woodstox-core:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.fasterxml:aalto-xml:1.3.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor -com.github.cliftonlabs:json-simple:2.1.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.docker-java:docker-java-api:3.2.13=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.docker-java:docker-java-transport-zerodep:3.2.13=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.docker-java:docker-java-transport:3.2.13=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jffi:1.2.17=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jnr-a64asm:1.0.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jnr-constants:0.9.9=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jnr-ffi:2.1.9=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jnr-posix:3.0.49=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor -com.github.luben:zstd-jni:1.5.0-4=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.rzymek:opczip:1.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.spotbugs:spotbugs-annotations:3.1.12=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.tomakehurst:wiremock-standalone:2.27.2=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.github.virtuald:curvesapi:1.06=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.android:annotations:4.1.1.4=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.api.grpc:proto-google-common-protos:2.9.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor -com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,compileProtoPath,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.code.gson:gson:2.8.9=compileClasspath,testCompileClasspath -com.google.code.gson:gson:2.9.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.21.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.21.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.21.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.21.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.21.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:javac:9+181-r4173-1=errorproneJavac -com.google.guava:failureaccess:1.0.1=annotationProcessor,compileClasspath,compileProtoPath,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor -com.google.guava:guava:31.1-android=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.j2objc:j2objc-annotations:1.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.21.7=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor -com.google.protobuf:protobuf-java:3.21.7=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.protobuf:protoc:3.12.0=protobufToolsLocator_protoc -com.linecorp.armeria:armeria-brave:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-grpc-protocol:1.14.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-grpc:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-jetty9:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-kafka:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-kotlin:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-logback:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-retrofit2:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-rxjava3:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-saml:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-thrift0.13:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-tomcat9:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria-zookeeper3:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.linecorp.armeria:armeria:1.14.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.squareup.okhttp3:okhttp:3.14.9=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.squareup.okio:okio:1.17.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.squareup.retrofit2:retrofit:2.9.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.typesafe:config:1.3.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.zaxxer:SparseBitSet:1.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -commons-beanutils:commons-beanutils:1.9.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -commons-codec:commons-codec:1.15=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -commons-collections:commons-collections:3.2.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -commons-io:commons-io:2.11.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -commons-lang:commons-lang:2.4=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -commons-logging:commons-logging:1.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.dropwizard.metrics:metrics-core:4.0.5=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor -io.github.java-diff-utils:java-diff-utils:4.0=annotationProcessor,errorprone,testAnnotationProcessor -io.grpc:grpc-api:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-context:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-core:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-protobuf-lite:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-protobuf:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-services:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:grpc-stub:1.53.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.grpc:protoc-gen-grpc-java:1.36.1=protobufToolsLocator_grpc -io.lettuce:lettuce-core:6.2.2.RELEASE=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.micrometer:micrometer-core:1.8.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-buffer:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-buffer:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec-dns:4.1.73.Final=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec-haproxy:4.1.73.Final=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec-http2:4.1.73.Final=compileClasspath,testCompileClasspath -io.netty:netty-codec-http2:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec-http:4.1.73.Final=compileClasspath,testCompileClasspath -io.netty:netty-codec-http:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec-socks:4.1.73.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-codec:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-codec:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-common:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-common:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-handler-proxy:4.1.73.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-handler:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-handler:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-resolver-dns-classes-macos:4.1.73.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-resolver-dns-native-macos:4.1.73.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-resolver-dns:4.1.73.Final=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-resolver:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-resolver:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-tcnative-boringssl-static:2.0.46.Final=compileProtoPath,runtimeClasspath -io.netty:netty-tcnative-boringssl-static:2.0.61.Final=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-tcnative-classes:2.0.46.Final=compileProtoPath,runtimeClasspath -io.netty:netty-tcnative-classes:2.0.61.Final=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-transport-classes-epoll:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-transport-native-epoll:4.1.63.Final=compileClasspath,testCompileClasspath -io.netty:netty-transport-native-epoll:4.1.73.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-transport-native-unix-common:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-transport-native-unix-common:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.netty:netty-transport:4.1.85.Final=compileClasspath,testCompileClasspath -io.netty:netty-transport:4.1.86.Final=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:1.6.0-alpha=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api-metrics:1.6.0-alpha=testCompileProtoPath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.6.0=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.6.0=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.opentelemetry:opentelemetry-extension-annotations:1.6.0=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.opentelemetry:opentelemetry-semconv:1.6.0-alpha=testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.perfmark:perfmark-api:0.25.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -io.projectreactor:reactor-core:3.4.25=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.reactivex.rxjava3:rxjava:3.1.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.zipkin.brave:brave-instrumentation-http:5.13.7=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.zipkin.brave:brave:5.13.7=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.zipkin.reporter2:zipkin-reporter-brave:2.16.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.zipkin.reporter2:zipkin-reporter:2.16.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.zipkin.zipkin2:zipkin:2.23.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -javax.annotation:javax.annotation-api:1.3.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor -javax.servlet:javax.servlet-api:3.1.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -joda-time:joda-time:2.9=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -junit:junit:4.13.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -log4j:log4j:1.2.17=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -net.bytebuddy:byte-buddy:1.12.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -net.java.dev.jna:jna:5.8.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -net.shibboleth.utilities:java-support:7.5.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -net.sourceforge.jexcelapi:jxl:2.6.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.commons:commons-collections4:4.4=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.commons:commons-compress:1.23.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.commons:commons-jexl3:3.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.commons:commons-math3:3.6.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.curator:curator-client:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.curator:curator-framework:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.curator:curator-recipes:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.curator:curator-x-discovery:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.httpcomponents:httpclient:4.5.13=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.httpcomponents:httpcore:4.4.13=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.kafka:kafka-clients:3.1.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.logging.log4j:log4j-api:2.17.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.poi:poi-ooxml-lite:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.poi:poi-ooxml:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.poi:poi:5.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.santuario:xmlsec:2.0.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.thrift:libthrift:0.13.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.tomcat.embed:tomcat-embed-core:9.0.56=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.tomcat:tomcat-annotations-api:9.0.56=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.velocity:velocity:1.7=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.xmlbeans:xmlbeans:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.yetus:audience-annotations:0.5.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.zookeeper:zookeeper-jute:3.6.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apache.zookeeper:zookeeper:3.6.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.apiguardian:apiguardian-api:1.1.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.bouncycastle:bcprov-jdk15on:1.59=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.checkerframework:checker-qual:3.12.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.21=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.codehaus.woodstox:stax2-api:4.2=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.cryptacular:cryptacular:1.1.4=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.curioswitch.curiostack:protobuf-jackson:2.0.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.dhatim:fastexcel-reader:0.15.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.dhatim:fastexcel:0.15.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.eclipse.jetty:jetty-http:9.4.46.v20220331=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:9.4.46.v20220331=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.eclipse.jetty:jetty-server:9.4.46.v20220331=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:9.4.46.v20220331=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.eclipse.jgit:org.eclipse.jgit:4.4.1.201607150455-r=annotationProcessor,errorprone,testAnnotationProcessor -org.grpcmock:grpcmock-core:0.9.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.grpcmock:grpcmock-junit5:0.9.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.hamcrest:hamcrest-core:1.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.hdrhistogram:HdrHistogram:2.1.12=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jacoco:org.jacoco.agent:0.8.7=jacocoAgent,jacocoAnt -org.jacoco:org.jacoco.ant:0.8.7=jacocoAnt -org.jacoco:org.jacoco.core:0.8.7=jacocoAnt -org.jacoco:org.jacoco.report:0.8.7=jacocoAnt -org.jetbrains.kotlin:kotlin-reflect:1.6.10=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:1.6.10=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.jetbrains:annotations:17.0.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.json:json:20220924=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-api:5.7.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-engine:5.7.0=testRuntimeClasspath -org.junit.platform:junit-platform-commons:1.7.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.junit.platform:junit-platform-engine:1.7.0=testRuntimeClasspath -org.junit:junit-bom:5.7.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jxls:jxls-jexcel:1.0.9=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.jxls:jxls:2.6.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.latencyutils:LatencyUtils:2.0.3=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.lz4:lz4-java:1.8.0=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-core:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-messaging-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-messaging-impl:3.4.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-profile-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-saml-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-saml-impl:3.4.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-security-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-security-impl:3.4.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-soap-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-soap-impl:3.4.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-storage-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-xmlsec-api:3.4.6=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.opensaml:opensaml-xmlsec-impl:3.4.6=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.opentest4j:opentest4j:1.2.0=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm-analysis:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm-analysis:9.1=jacocoAnt -org.ow2.asm:asm-commons:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm-commons:9.1=jacocoAnt -org.ow2.asm:asm-tree:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm-tree:9.1=jacocoAnt -org.ow2.asm:asm-util:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm:5.0.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.ow2.asm:asm:9.1=jacocoAnt -org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor -org.postgresql:postgresql:42.3.3=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.reactivestreams:reactive-streams:1.0.4=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.slf4j:jcl-over-slf4j:1.7.26=compileClasspath,testCompileClasspath -org.slf4j:jcl-over-slf4j:1.7.34=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.slf4j:log4j-over-slf4j:1.7.30=runtimeClasspath,testRuntimeClasspath -org.slf4j:slf4j-api:1.7.36=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.testcontainers:testcontainers:1.17.5=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.xerial.snappy:snappy-java:1.1.8.4=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:annotations:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:apache-client:2.20.74=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:auth:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:aws-core:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:aws-json-protocol:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:dynamodb:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:endpoints-spi:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:http-client-spi:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:json-utils:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:metrics-spi:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:netty-nio-client:2.20.74=compileProtoPath,runtimeClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:profiles:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:protocol-core:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:regions:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:sdk-core:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:third-party-jackson-core:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.awssdk:utils:2.20.74=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -software.amazon.eventstream:eventstream:1.0.1=compileClasspath,compileProtoPath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -empty=protobuf,signatures,testProtobuf From 51c96e79635e0f622c3db7cd75e86a66adf3ef05 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:43:28 -0500 Subject: [PATCH 14/41] Add java library. --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 3bdc019f8..052ef992c 100644 --- a/build.gradle +++ b/build.gradle @@ -6,6 +6,7 @@ buildscript { plugins { id 'java' + id 'java-library' id "com.diffplug.spotless" version "5.0.0" id 'signing' id 'maven-publish' From 45e05a28d6ad5564e6452d49a541ce500bc658a3 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:44:47 -0500 Subject: [PATCH 15/41] Make private constructor. --- src/main/java/cloud/filibuster/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cloud/filibuster/Main.java b/src/main/java/cloud/filibuster/Main.java index 0eb9b892c..c32f73d37 100644 --- a/src/main/java/cloud/filibuster/Main.java +++ b/src/main/java/cloud/filibuster/Main.java @@ -2,6 +2,6 @@ public class Main { private Main() { - + } } From 487b6b727cf5a2b736faa943526309ba9ca69f29 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:45:38 -0500 Subject: [PATCH 16/41] Set main class name. --- build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle b/build.gradle index 052ef992c..d836c52ae 100644 --- a/build.gradle +++ b/build.gradle @@ -337,3 +337,6 @@ task testWithFaultInjectionDocker(type: Test) { includeTestsMatching('cloud.filibuster.functional.docker.*') } } + +project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") + From 749c6b1e74cccd513e6f35b880f6c5e289bc9f1d Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 02:45:52 -0500 Subject: [PATCH 17/41] Setup jar manifest. --- build.gradle | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build.gradle b/build.gradle index d836c52ae..87ef18904 100644 --- a/build.gradle +++ b/build.gradle @@ -340,3 +340,13 @@ task testWithFaultInjectionDocker(type: Test) { project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") + +jar { + manifest { + attributes("Main-Class": "cloud.filibuster.instrumentation.Main") + attributes("Add-Exports": "java.base/sun.security.x509") + attributes("Implementation-Version": project.version) + attributes("Implementation-Title": "Filibuster") + } +} + From 750b9454f4636009a1e45878dcc47a7d1a07cfdd Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 03:01:09 -0500 Subject: [PATCH 18/41] Add standalone publishing publication. --- build.gradle | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/build.gradle b/build.gradle index 87ef18904..089b9337c 100644 --- a/build.gradle +++ b/build.gradle @@ -185,6 +185,40 @@ nexusPublishing { publishing { publications { + standaloneJar(MavenPublication) { publication -> + artifact sourcesJar + artifact javadocJar + + pom { + name = 'Filibuster instrumentation for the JVM' + artifactId = 'instrumentation-standalone' + packaging = 'jar' + description = 'Instrumtation for the JVM to enable the Filibuster testing utility.' + url = 'https://github.com/filibuster-testing/filibuster-java-instrumentation' + + scm { + connection = 'scm:git:git://github.com/filibuster-testing/filibuster-java-instrumentation.git' + developerConnection = 'scm:git:ssh://github.com/filibuster-testing/filibuster-java-instrumentation.git' + url = 'https://github.com/filibuster-testing/filibuster-java-instrumentation' + } + + licenses { + license { + name = 'The Apache License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id = 'cmeiklejohn' + name = 'Christopher S. Meiklejohn' + email = 'christopher.meiklejohn@gmail.com' + } + } + } + } + mavenJava(MavenPublication) { from components.java From d0fb4fa3c45325f5e07b557e8eba690abf4d81ca Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 03:01:31 -0500 Subject: [PATCH 19/41] Add shadowJar configuration. --- build.gradle | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/build.gradle b/build.gradle index 089b9337c..c636a37c5 100644 --- a/build.gradle +++ b/build.gradle @@ -372,6 +372,39 @@ task testWithFaultInjectionDocker(type: Test) { } } +shadowJar { + archiveBaseName.set('instrumentation-standalone') + archiveClassifier.set('') + configurations = [ + project.configurations.runtimeClasspath + ] + + zip64 = true + + relocate "com.linecorp", "filibuster.com.linecorp" + relocate "io.lettuce", "filibuster.io.lettuce" + relocate "org.postgresql", "filibuster.org.postgresql" + relocate "com.datastax", "filibuster.com.datastax" + relocate "software.amazon", "filibuster.software.amazon" + relocate 'com.datastax', "filibuster.com.datastax" + relocate "com.github", "filibuster.com.github" + relocate "org.json", "filibuster.org.json" + relocate "org.jetbrains", "filibuster.org.jetbrains" + relocate "io.grpc", "filibuster.io.grpc" + relocate 'com.google', "filibuster.com.google" + relocate 'org.grpcmock', "filibuster.org.grpcmock" + relocate 'org.eclipse', "filibuster.org.eclipse" + relocate 'org.junit', "filibuster.org.junit" + relocate "org.testcontainers", "filibuster.org.testcontainers" + relocate "org.apache", "filibuster.org.apache" + relocate "org.jxls", "filibuster.org.jxls" + relocate "org.dhatim", "filibuster.org.dhatim" + + mergeServiceFiles() + + exclude 'META-INF/maven/**' + exclude 'module-info.class' +} project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") From c9a0fc069423a9ecf02281889f1a646ad9cbc3f9 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 03:01:45 -0500 Subject: [PATCH 20/41] Update jar build configuration. --- build.gradle | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index c636a37c5..231f3f257 100644 --- a/build.gradle +++ b/build.gradle @@ -372,6 +372,23 @@ task testWithFaultInjectionDocker(type: Test) { } } +assemble.dependsOn jar, shadowJar + +project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") + +allprojects { + shadowJar.dependsOn jar +} + +jar { + manifest { + attributes("Main-Class": "cloud.filibuster.instrumentation.Main") + attributes("Add-Exports": "java.base/sun.security.x509") + attributes("Implementation-Version": project.version) + attributes("Implementation-Title": "Filibuster") + } +} + shadowJar { archiveBaseName.set('instrumentation-standalone') archiveClassifier.set('') @@ -405,15 +422,4 @@ shadowJar { exclude 'META-INF/maven/**' exclude 'module-info.class' } -project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") - - -jar { - manifest { - attributes("Main-Class": "cloud.filibuster.instrumentation.Main") - attributes("Add-Exports": "java.base/sun.security.x509") - attributes("Implementation-Version": project.version) - attributes("Implementation-Title": "Filibuster") - } -} From 2ff719b39c8138bdbbf40e46bb1ad279ae50bdc1 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 03:01:55 -0500 Subject: [PATCH 21/41] Bump to 3.0.0. --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 231f3f257..310961164 100644 --- a/build.gradle +++ b/build.gradle @@ -167,7 +167,7 @@ javadoc { group = "cloud.filibuster" archivesBaseName = "instrumentation" -version = "2.2.3" +version = "3.0.0" java { withJavadocJar() @@ -422,4 +422,3 @@ shadowJar { exclude 'META-INF/maven/**' exclude 'module-info.class' } - From 3b8b90cdaa7576f376cb83988f3293a27673180f Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 03:02:06 -0500 Subject: [PATCH 22/41] Switch to API configuration. --- build.gradle | 64 ++++++++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 40 deletions(-) diff --git a/build.gradle b/build.gradle index 310961164..6c087f22c 100644 --- a/build.gradle +++ b/build.gradle @@ -45,55 +45,39 @@ dependencies { 'armeria-thrift0.13', 'armeria-tomcat9', 'armeria-zookeeper3'].each { - implementation "com.linecorp.armeria:${it}:1.14.0" + api "com.linecorp.armeria:${it}:1.14.0" } + api "io.lettuce:lettuce-core:6.2.2.RELEASE" + api 'org.postgresql:postgresql:42.3.3' + api 'com.datastax.cassandra:cassandra-driver-core:4.0.0' + api 'software.amazon.awssdk:dynamodb:2.20.74' + api 'com.datastax.cassandra:cassandra-driver-core:4.0.0' + api "com.github.cliftonlabs:json-simple:2.1.2" + api "org.json:json:20220924" + api 'org.jetbrains:annotations:16.0.2' + api "io.grpc:grpc-netty-shaded:1.40.1" + api 'com.google.code.gson:gson:2.8.9' + api 'org.grpcmock:grpcmock-junit5:0.9.3' + api 'com.google.protobuf:protobuf-java-util:3.21.7' + api 'org.eclipse.jetty:jetty-http:9.4.46.v20220331' + api 'org.eclipse.jetty:jetty-io:9.4.46.v20220331' + api 'org.eclipse.jetty:jetty-server:9.4.46.v20220331' + api 'org.eclipse.jetty:jetty-util:9.4.46.v20220331' + api 'org.junit.jupiter:junit-jupiter-api:5.7.0' + api "org.testcontainers:testcontainers:1.17.5" + api "org.apache.poi:poi:5.2.0" + api "org.apache.poi:poi-ooxml:5.2.0" + api "org.jxls:jxls-jexcel:1.0.9" + api "org.dhatim:fastexcel:0.15.3" + api "org.dhatim:fastexcel-reader:0.15.3" - implementation "io.lettuce:lettuce-core:6.2.2.RELEASE" - implementation 'org.postgresql:postgresql:42.3.3' - implementation 'com.datastax.cassandra:cassandra-driver-core:4.0.0' - implementation 'software.amazon.awssdk:dynamodb:2.20.74' - implementation 'com.datastax.cassandra:cassandra-driver-core:4.0.0' - implementation "com.github.cliftonlabs:json-simple:2.1.2" - implementation "org.json:json:20220924" - implementation 'org.jetbrains:annotations:16.0.2' - implementation "io.grpc:grpc-netty-shaded:1.40.1" - implementation 'com.google.code.gson:gson:2.8.9' - implementation 'org.grpcmock:grpcmock-junit5:0.9.3' - implementation 'com.google.protobuf:protobuf-java-util:3.21.7' - - // Pinned jetty for WireMock - implementation 'org.eclipse.jetty:jetty-http:9.4.46.v20220331' - implementation 'org.eclipse.jetty:jetty-io:9.4.46.v20220331' - implementation 'org.eclipse.jetty:jetty-server:9.4.46.v20220331' - implementation 'org.eclipse.jetty:jetty-util:9.4.46.v20220331' - - // JUnit annotations - implementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' - - // Test Containers - implementation "org.testcontainers:testcontainers:1.17.5" - - // Excel - implementation "org.apache.poi:poi:5.2.0" - implementation "org.apache.poi:poi-ooxml:5.2.0" - implementation "org.jxls:jxls-jexcel:1.0.9" - implementation "org.dhatim:fastexcel:0.15.3" - implementation "org.dhatim:fastexcel-reader:0.15.3" - - // Logging runtimeOnly 'ch.qos.logback:logback-classic:1.2.3' runtimeOnly 'org.slf4j:log4j-over-slf4j:1.7.30' - // Test dependencies are used for testing Filibuster. Any jUnit, etc. have to be main dependencies - // with the assumption that Filibuster is only pulled in as a test dependency in the application that - // uses it. testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' - testImplementation 'io.opentelemetry:opentelemetry-api:1.6.0' testImplementation 'io.opentelemetry:opentelemetry-extension-annotations:1.6.0' - testImplementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:1.6.0-alpha' - testImplementation 'com.github.tomakehurst:wiremock-standalone:2.27.2' testImplementation 'io.netty:netty-tcnative-boringssl-static:2.0.61.Final' } From 7ddea46467644776d432a63d00c14afcafe2fa14 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 04:15:13 -0500 Subject: [PATCH 23/41] Update build task to publish standalone jar. --- build.gradle | 116 ++++++++++++++++----------------------------------- 1 file changed, 36 insertions(+), 80 deletions(-) diff --git a/build.gradle b/build.gradle index 6c087f22c..bf87ccf1a 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ plugins { id 'maven-publish' id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' id 'com.adarshr.test-logger' version '3.2.0' - id 'com.github.johnrengelman.shadow' version '8.1.0' + id 'com.github.johnrengelman.shadow' version '8.1.1' } apply plugin: 'java' @@ -21,6 +21,8 @@ apply plugin: 'eclipse' apply plugin: 'application' apply plugin: 'com.diffplug.spotless' apply plugin: 'com.google.protobuf' +apply plugin: 'maven-publish' +apply plugin: 'com.github.johnrengelman.shadow' compileJava { sourceCompatibility = '1.8' @@ -169,40 +171,6 @@ nexusPublishing { publishing { publications { - standaloneJar(MavenPublication) { publication -> - artifact sourcesJar - artifact javadocJar - - pom { - name = 'Filibuster instrumentation for the JVM' - artifactId = 'instrumentation-standalone' - packaging = 'jar' - description = 'Instrumtation for the JVM to enable the Filibuster testing utility.' - url = 'https://github.com/filibuster-testing/filibuster-java-instrumentation' - - scm { - connection = 'scm:git:git://github.com/filibuster-testing/filibuster-java-instrumentation.git' - developerConnection = 'scm:git:ssh://github.com/filibuster-testing/filibuster-java-instrumentation.git' - url = 'https://github.com/filibuster-testing/filibuster-java-instrumentation' - } - - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - - developers { - developer { - id = 'cmeiklejohn' - name = 'Christopher S. Meiklejohn' - email = 'christopher.meiklejohn@gmail.com' - } - } - } - } - mavenJava(MavenPublication) { from components.java @@ -356,53 +324,41 @@ task testWithFaultInjectionDocker(type: Test) { } } -assemble.dependsOn jar, shadowJar - project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") -allprojects { - shadowJar.dependsOn jar -} - -jar { - manifest { - attributes("Main-Class": "cloud.filibuster.instrumentation.Main") - attributes("Add-Exports": "java.base/sun.security.x509") - attributes("Implementation-Version": project.version) - attributes("Implementation-Title": "Filibuster") +tasks { + shadowJar { + archiveClassifier = "standalone" + + configurations = [ + project.configurations.runtimeClasspath + ] + + zip64 = true + + relocate "com.linecorp", "filibuster.com.linecorp" + relocate "io.lettuce", "filibuster.io.lettuce" + relocate "org.postgresql", "filibuster.org.postgresql" + relocate "com.datastax", "filibuster.com.datastax" + relocate "software.amazon", "filibuster.software.amazon" + relocate 'com.datastax', "filibuster.com.datastax" + relocate "com.github", "filibuster.com.github" + relocate "org.json", "filibuster.org.json" + relocate "org.jetbrains", "filibuster.org.jetbrains" + relocate "io.grpc", "filibuster.io.grpc" + relocate 'com.google', "filibuster.com.google" + relocate 'org.grpcmock', "filibuster.org.grpcmock" + relocate 'org.eclipse', "filibuster.org.eclipse" + relocate 'org.junit', "filibuster.org.junit" + relocate "org.testcontainers", "filibuster.org.testcontainers" + relocate "org.apache", "filibuster.org.apache" + relocate "org.jxls", "filibuster.org.jxls" + relocate "org.dhatim", "filibuster.org.dhatim" + + mergeServiceFiles() + + exclude 'META-INF/maven/**' + exclude 'module-info.class' } } -shadowJar { - archiveBaseName.set('instrumentation-standalone') - archiveClassifier.set('') - configurations = [ - project.configurations.runtimeClasspath - ] - - zip64 = true - - relocate "com.linecorp", "filibuster.com.linecorp" - relocate "io.lettuce", "filibuster.io.lettuce" - relocate "org.postgresql", "filibuster.org.postgresql" - relocate "com.datastax", "filibuster.com.datastax" - relocate "software.amazon", "filibuster.software.amazon" - relocate 'com.datastax', "filibuster.com.datastax" - relocate "com.github", "filibuster.com.github" - relocate "org.json", "filibuster.org.json" - relocate "org.jetbrains", "filibuster.org.jetbrains" - relocate "io.grpc", "filibuster.io.grpc" - relocate 'com.google', "filibuster.com.google" - relocate 'org.grpcmock', "filibuster.org.grpcmock" - relocate 'org.eclipse', "filibuster.org.eclipse" - relocate 'org.junit', "filibuster.org.junit" - relocate "org.testcontainers", "filibuster.org.testcontainers" - relocate "org.apache", "filibuster.org.apache" - relocate "org.jxls", "filibuster.org.jxls" - relocate "org.dhatim", "filibuster.org.dhatim" - - mergeServiceFiles() - - exclude 'META-INF/maven/**' - exclude 'module-info.class' -} From b2c4954f9e432789c06b220930dd3207df2c1e11 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 04:55:54 -0500 Subject: [PATCH 24/41] Relocate only netty and jetty. --- build.gradle | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index bf87ccf1a..eb9880486 100644 --- a/build.gradle +++ b/build.gradle @@ -153,7 +153,7 @@ javadoc { group = "cloud.filibuster" archivesBaseName = "instrumentation" -version = "3.0.0" +version = "3.0.1" java { withJavadocJar() @@ -336,24 +336,8 @@ tasks { zip64 = true - relocate "com.linecorp", "filibuster.com.linecorp" - relocate "io.lettuce", "filibuster.io.lettuce" - relocate "org.postgresql", "filibuster.org.postgresql" - relocate "com.datastax", "filibuster.com.datastax" - relocate "software.amazon", "filibuster.software.amazon" - relocate 'com.datastax', "filibuster.com.datastax" - relocate "com.github", "filibuster.com.github" - relocate "org.json", "filibuster.org.json" - relocate "org.jetbrains", "filibuster.org.jetbrains" - relocate "io.grpc", "filibuster.io.grpc" - relocate 'com.google', "filibuster.com.google" - relocate 'org.grpcmock', "filibuster.org.grpcmock" relocate 'org.eclipse', "filibuster.org.eclipse" - relocate 'org.junit', "filibuster.org.junit" - relocate "org.testcontainers", "filibuster.org.testcontainers" - relocate "org.apache", "filibuster.org.apache" - relocate "org.jxls", "filibuster.org.jxls" - relocate "org.dhatim", "filibuster.org.dhatim" + relocate 'io.netty', "filibuster.io.netty" mergeServiceFiles() From a57f8b0a30830c1470d2105cf3688edb568f739a Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 05:31:16 -0500 Subject: [PATCH 25/41] noop --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 2cc04ba80..e31a3e00e 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,3 @@ Filibuster instrumentation for the JVM. - - - From 8565bd228eeb4651bcdc37b3710c124f9c03430d Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 05:46:17 -0500 Subject: [PATCH 26/41] Add short-circuit for the local backend. --- .../FilibusterServerInstrumentor.java | 117 ++++++++++-------- 1 file changed, 64 insertions(+), 53 deletions(-) diff --git a/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java b/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java index 33591670d..ea5ce79cc 100644 --- a/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java +++ b/src/main/java/cloud/filibuster/instrumentation/instrumentors/FilibusterServerInstrumentor.java @@ -1,11 +1,13 @@ package cloud.filibuster.instrumentation.instrumentors; +import cloud.filibuster.exceptions.filibuster.FilibusterRuntimeException; import cloud.filibuster.instrumentation.datatypes.FilibusterExecutor; import cloud.filibuster.instrumentation.datatypes.VectorClock; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.instrumentation.helpers.Response; import cloud.filibuster.instrumentation.storage.ContextStorage; import cloud.filibuster.exceptions.filibuster.FilibusterServerBadResponseException; +import cloud.filibuster.junit.server.core.FilibusterCore; import com.linecorp.armeria.client.WebClient; import com.linecorp.armeria.common.AggregatedHttpResponse; import com.linecorp.armeria.common.HttpHeaderNames; @@ -24,6 +26,7 @@ import static cloud.filibuster.instrumentation.helpers.Counterexample.canLoadCounterexample; import static cloud.filibuster.instrumentation.helpers.Counterexample.loadCounterexampleAsJsonObjectFromEnvironment; import static cloud.filibuster.instrumentation.helpers.Counterexample.loadTestExecutionFromCounterexample; +import static cloud.filibuster.instrumentation.helpers.Property.getServerBackendCanInvokeDirectlyProperty; /** * Server instrumentor for Filibuster. @@ -139,67 +142,75 @@ public void beforeInvocation() { logger.log(Level.INFO, "beforeInvocation [server]: about to make call."); if (getDistributedExecutionIndex() != null) { - JSONObject payload = new JSONObject(); - payload.put("instrumentation_type", "request_received"); - payload.put("generated_id", getGeneratedId()); - payload.put("target_service_name", serviceName); - payload.put("execution_index", getDistributedExecutionIndex()); + JSONObject requestReceivedPayload = new JSONObject(); + requestReceivedPayload.put("instrumentation_type", "request_received"); + requestReceivedPayload.put("generated_id", getGeneratedId()); + requestReceivedPayload.put("target_service_name", serviceName); + requestReceivedPayload.put("execution_index", getDistributedExecutionIndex()); - logger.log(Level.INFO, "payload: " + payload); + logger.log(Level.INFO, "requestReceivedPayload: " + requestReceivedPayload); if (shouldCommunicateWithServer && counterexampleNotProvided()) { - CompletableFuture updateFuture = CompletableFuture.supplyAsync(() -> { - String uri = "http://" + Networking.getFilibusterHost() + ":" + Networking.getFilibusterPort() + "/"; - logger.log(Level.INFO, "making call to filibuster server, update with body: " + payload); - logger.log(Level.INFO, "URI: " + uri); - WebClient webClient = FilibusterExecutor.getWebClient("http://" + Networking.getFilibusterHost() + ":" + Networking.getFilibusterPort() + "/"); - - RequestHeaders postJson = RequestHeaders.of( - HttpMethod.POST, - "/filibuster/update", - HttpHeaderNames.CONTENT_TYPE, - "application/json", - "X-Filibuster-Instrumentation", - "true", - "X-Filibuster-Is-Update", - String.valueOf(false)); - AggregatedHttpResponse response = webClient.execute(postJson, payload.toString()).aggregate().join(); - - ResponseHeaders headers = response.headers(); - String statusCode = headers.get(HttpHeaderNames.STATUS); - - if (statusCode == null) { - FilibusterServerBadResponseException.logAndThrow("beforeInvocation, statusCode: null"); + if (getServerBackendCanInvokeDirectlyProperty()) { + if (FilibusterCore.hasCurrentInstance()) { + FilibusterCore.getCurrentInstance().endInvocation(requestReceivedPayload, false); + } else { + throw new FilibusterRuntimeException("No current filibuster core instance, this could indicate a problem."); } - - if (!Objects.equals(statusCode, "200")) { - FilibusterServerBadResponseException.logAndThrow("beforeInvocation, statusCode: " + statusCode); - } - - JSONObject jsonObject = Response.aggregatedHttpResponseToJsonObject(response); - - if (jsonObject.has("execution_index")) { - distributedExecutionIndex = jsonObject.getString("execution_index"); - return distributedExecutionIndex; + } else { + CompletableFuture updateFuture = CompletableFuture.supplyAsync(() -> { + String uri = "http://" + Networking.getFilibusterHost() + ":" + Networking.getFilibusterPort() + "/"; + logger.log(Level.INFO, "making call to filibuster server, update with body: " + requestReceivedPayload); + logger.log(Level.INFO, "URI: " + uri); + WebClient webClient = FilibusterExecutor.getWebClient("http://" + Networking.getFilibusterHost() + ":" + Networking.getFilibusterPort() + "/"); + + RequestHeaders postJson = RequestHeaders.of( + HttpMethod.POST, + "/filibuster/update", + HttpHeaderNames.CONTENT_TYPE, + "application/json", + "X-Filibuster-Instrumentation", + "true", + "X-Filibuster-Is-Update", + String.valueOf(false)); + AggregatedHttpResponse response = webClient.execute(postJson, requestReceivedPayload.toString()).aggregate().join(); + + ResponseHeaders headers = response.headers(); + String statusCode = headers.get(HttpHeaderNames.STATUS); + + if (statusCode == null) { + FilibusterServerBadResponseException.logAndThrow("beforeInvocation, statusCode: null"); + } + + if (!Objects.equals(statusCode, "200")) { + FilibusterServerBadResponseException.logAndThrow("beforeInvocation, statusCode: " + statusCode); + } + + JSONObject jsonObject = Response.aggregatedHttpResponseToJsonObject(response); + + if (jsonObject.has("execution_index")) { + distributedExecutionIndex = jsonObject.getString("execution_index"); + return distributedExecutionIndex; + } + + return null; + }, FilibusterExecutor.getExecutorService()); + + try { + String newDistributedExecutionIndex = updateFuture.get(); + + if (newDistributedExecutionIndex != null) { + logger.log(Level.INFO, "rewriting EI from: " + contextStorage.getDistributedExecutionIndex() + " to " + distributedExecutionIndex); + contextStorage.setDistributedExecutionIndex(distributedExecutionIndex); + } + } catch (InterruptedException | ExecutionException e) { + logger.log(Level.SEVERE, "cannot get information from Filibuster server: " + e); } - return null; - }, FilibusterExecutor.getExecutorService()); + logger.log(Level.INFO, "beforeInvocation [server]: finished."); - try { - String newDistributedExecutionIndex = updateFuture.get(); - - if (newDistributedExecutionIndex != null) { - logger.log(Level.INFO, "rewriting EI from: " + contextStorage.getDistributedExecutionIndex() + " to " + distributedExecutionIndex); - contextStorage.setDistributedExecutionIndex(distributedExecutionIndex); - } - } catch (InterruptedException | ExecutionException e) { - logger.log(Level.SEVERE, "cannot get information from Filibuster server: " + e); + logger.log(Level.INFO, "call complete."); } - - logger.log(Level.INFO, "beforeInvocation [server]: finished."); - - logger.log(Level.INFO, "call complete."); } else { logger.log(Level.INFO, "skipping!"); } From 20a259b23080fcced1a335f3a1e3d9cd94268605 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 05:56:19 -0500 Subject: [PATCH 27/41] Avoid starts for the local server. --- .../junit/server/FilibusterServerLifecycle.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/cloud/filibuster/junit/server/FilibusterServerLifecycle.java b/src/main/java/cloud/filibuster/junit/server/FilibusterServerLifecycle.java index f8df312c8..edcfa6d0b 100644 --- a/src/main/java/cloud/filibuster/junit/server/FilibusterServerLifecycle.java +++ b/src/main/java/cloud/filibuster/junit/server/FilibusterServerLifecycle.java @@ -1,9 +1,11 @@ package cloud.filibuster.junit.server; +import cloud.filibuster.exceptions.filibuster.FilibusterRuntimeException; import cloud.filibuster.instrumentation.datatypes.FilibusterExecutor; import cloud.filibuster.instrumentation.exceptions.FilibusterServerUnavailabilityException; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.configuration.FilibusterConfiguration; +import cloud.filibuster.junit.server.backends.FilibusterLocalServerBackend; import com.linecorp.armeria.client.WebClient; import org.jetbrains.annotations.Nullable; @@ -49,6 +51,16 @@ public static synchronized WebClient startServer(FilibusterConfiguration filibus if (!started) { FilibusterServerBackend filibusterServerBackend = filibusterConfiguration.getServerBackend(); + if (filibusterServerBackend instanceof FilibusterLocalServerBackend) { + try { + filibusterServerBackend.start(filibusterConfiguration); + } catch (Throwable e) { + throw new FilibusterRuntimeException("we should never hit here, since the local server should always start."); + } + + return getNewWebClient(); + } + try { filibusterServerBackend.start(filibusterConfiguration); From f66347fdd665968153b397537aef92fa6889d931 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:04:06 -0500 Subject: [PATCH 28/41] No longer start the local server HTTP server. --- .../server/backends/FilibusterLocalServerBackend.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java b/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java index 88bae63e8..60f571f69 100644 --- a/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java +++ b/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java @@ -28,15 +28,6 @@ public synchronized boolean start(FilibusterConfiguration filibusterConfiguratio // object can be accessed via FilibusterCore.getCurrentInstance new FilibusterCore(filibusterConfiguration); - if (filibusterServer == null) { - filibusterServer = FilibusterServer.serve(); - } - if(filibusterServer == null) - { - throw new FilibusterServerNullException("The Filibuster Server should not be null at this point."); - } - filibusterServer.start(); - setServerBackendCanInvokeDirectlyProperty(true); return true; From 24a7295c332a3e1ba625ab5079d8f057b5ac275b Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:07:03 -0500 Subject: [PATCH 29/41] Remove property with no setter. --- .../server/backends/FilibusterLocalServerBackend.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java b/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java index 60f571f69..a3046024f 100644 --- a/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java +++ b/src/main/java/cloud/filibuster/junit/server/backends/FilibusterLocalServerBackend.java @@ -19,9 +19,6 @@ public class FilibusterLocalServerBackend implements FilibusterServerBackend { private static final Logger logger = Logger.getLogger(FilibusterLocalServerBackend.class.getName()); - @Nullable - private static Server filibusterServer; - @Override public synchronized boolean start(FilibusterConfiguration filibusterConfiguration) throws InterruptedException { // Even though the value of the new appears unused. It is necessary since this FilibusterCore @@ -35,10 +32,6 @@ public synchronized boolean start(FilibusterConfiguration filibusterConfiguratio @Override public synchronized boolean stop(FilibusterConfiguration filibusterConfiguration) { - if (filibusterServer != null) { - filibusterServer.stop(); - } - FilibusterCore.removeCurrentInstance(); // Poke the GC once we dereference the FilibusterCore object (via FilibusterServer.) From 3d6e9283427cf70180d1bb4e522b18cd83083fa0 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:09:10 -0500 Subject: [PATCH 30/41] bump to 3.0.2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eb9880486..9925795b6 100644 --- a/build.gradle +++ b/build.gradle @@ -153,7 +153,7 @@ javadoc { group = "cloud.filibuster" archivesBaseName = "instrumentation" -version = "3.0.1" +version = "3.0.2" java { withJavadocJar() From 53d2689e32da6a0c21575cff7533ed03c09ef6a6 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:18:38 -0500 Subject: [PATCH 31/41] Revert "Disable docker integration." This reverts commit 6ced28b292aaa113a7fe58309780ebe580bf0d9b. --- .../workflows/99-junit-functional-docker.yaml | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/99-junit-functional-docker.yaml diff --git a/.github/workflows/99-junit-functional-docker.yaml b/.github/workflows/99-junit-functional-docker.yaml new file mode 100644 index 000000000..0cbacb8d7 --- /dev/null +++ b/.github/workflows/99-junit-functional-docker.yaml @@ -0,0 +1,25 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java (Functional Tests, Docker Integration) + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 25 + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b + - name: Test with Gradle + run: ./gradlew testWithFaultInjectionDocker From e1afb3908b825e9d5db556ecbf04347b9bc288ab Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:19:39 -0500 Subject: [PATCH 32/41] Revert "Disable python integration tests." This reverts commit ca3c94f65651b852e69e51fe3ec0c99548dd2ac1. --- .../workflows/98-junit-functional-python.yaml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/98-junit-functional-python.yaml diff --git a/.github/workflows/98-junit-functional-python.yaml b/.github/workflows/98-junit-functional-python.yaml new file mode 100644 index 000000000..b1c1ff3bb --- /dev/null +++ b/.github/workflows/98-junit-functional-python.yaml @@ -0,0 +1,31 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java (Functional Tests, Python Integration) + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 25 + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b + - name: Clone Filibuster (Python) + run: cd /tmp && git clone http://github.com/filibuster-testing/filibuster -b improvements-2 + - name: Build Filibuster (Python) + run: cd /tmp/filibuster && sudo make + - name: Install Filibuster (Python) + run: cd /tmp/filibuster && sudo make install + - name: Test with Gradle + run: ./gradlew testWithFaultInjectionPython From d0bb7cc2af4084ea7dbeb52ac78e3f5e4aad65d5 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:36:45 -0500 Subject: [PATCH 33/41] Refactor python tests. --- .../workflows/98-junit-functional-python.yaml | 31 ------------------- ...libusterDockerBackendTestCorrectImage.java | 2 +- ...itFilibusterTestWithFailFastException.java | 7 +++-- .../JUnitFilibusterExternalHttpTest.java | 5 +-- .../basic/JUnitFilibusterFailingTest.java | 5 +-- .../basic/JUnitFilibusterHttpTest.java | 5 +-- .../basic/JUnitFilibusterTest.java | 5 +-- .../JUnitFilibusterUnimplementedTest.java | 5 +-- ...tFilibusterTestWithCustomAnalysisFile.java | 5 +-- ...stWithCustomAnalysisFileAndGrpcClient.java | 5 +-- ...ibusterTestWithExhaustiveAnalysisFile.java | 5 +-- ...ithExhaustiveAnalysisFileByAnnotation.java | 5 +-- ...iveAnalysisFileMaxIterationsNotEnough.java | 5 +-- ...TestWithBasicAnalysisFileByAnnotation.java | 5 +-- ...busterTestWithNoBeforeEachOrAfterEach.java | 5 +-- .../JUnitFilibusterWorldExtendedHttpTest.java | 5 +-- ...tFilibusterTestExtendedMacroAssertion.java | 5 +-- .../JUnitFilibusterTestMacroAssertion.java | 5 +-- 18 files changed, 51 insertions(+), 64 deletions(-) delete mode 100644 .github/workflows/98-junit-functional-python.yaml rename src/test/java/cloud/filibuster/functional/{python => docker}/armeria/JUnitFilibusterTestWithFailFastException.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/basic/JUnitFilibusterExternalHttpTest.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/basic/JUnitFilibusterFailingTest.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/basic/JUnitFilibusterHttpTest.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/basic/JUnitFilibusterTest.java (95%) rename src/test/java/cloud/filibuster/functional/{python => docker}/basic/JUnitFilibusterUnimplementedTest.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/custom/JUnitFilibusterTestWithCustomAnalysisFile.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java (97%) rename src/test/java/cloud/filibuster/functional/{python => docker}/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java (95%) rename src/test/java/cloud/filibuster/functional/{python => docker}/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/extended/JUnitFilibusterWorldExtendedHttpTest.java (94%) rename src/test/java/cloud/filibuster/functional/{python => docker}/macros/JUnitFilibusterTestExtendedMacroAssertion.java (96%) rename src/test/java/cloud/filibuster/functional/{python => docker}/macros/JUnitFilibusterTestMacroAssertion.java (94%) diff --git a/.github/workflows/98-junit-functional-python.yaml b/.github/workflows/98-junit-functional-python.yaml deleted file mode 100644 index b1c1ff3bb..000000000 --- a/.github/workflows/98-junit-functional-python.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: Java (Functional Tests, Python Integration) - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 25 - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: '11' - distribution: 'adopt' - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - name: Clone Filibuster (Python) - run: cd /tmp && git clone http://github.com/filibuster-testing/filibuster -b improvements-2 - - name: Build Filibuster (Python) - run: cd /tmp/filibuster && sudo make - - name: Install Filibuster (Python) - run: cd /tmp/filibuster && sudo make install - - name: Test with Gradle - run: ./gradlew testWithFaultInjectionPython diff --git a/src/test/java/cloud/filibuster/functional/docker/JUnitFilibusterDockerBackendTestCorrectImage.java b/src/test/java/cloud/filibuster/functional/docker/JUnitFilibusterDockerBackendTestCorrectImage.java index 0cfb7605d..a79ac49d9 100644 --- a/src/test/java/cloud/filibuster/functional/docker/JUnitFilibusterDockerBackendTestCorrectImage.java +++ b/src/test/java/cloud/filibuster/functional/docker/JUnitFilibusterDockerBackendTestCorrectImage.java @@ -39,7 +39,7 @@ public class JUnitFilibusterDockerBackendTestCorrectImage extends JUnitBaseTest * @throws InterruptedException if teardown of gRPC channel fails. */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") - @TestWithFilibuster(serverBackend = FilibusterDockerServerBackend.class) + @TestWithFilibuster(serverBackend=FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/armeria/JUnitFilibusterTestWithFailFastException.java b/src/test/java/cloud/filibuster/functional/docker/armeria/JUnitFilibusterTestWithFailFastException.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/armeria/JUnitFilibusterTestWithFailFastException.java rename to src/test/java/cloud/filibuster/functional/docker/armeria/JUnitFilibusterTestWithFailFastException.java index 47b60159e..45813f228 100644 --- a/src/test/java/cloud/filibuster/functional/python/armeria/JUnitFilibusterTestWithFailFastException.java +++ b/src/test/java/cloud/filibuster/functional/docker/armeria/JUnitFilibusterTestWithFailFastException.java @@ -1,5 +1,6 @@ -package cloud.filibuster.functional.python.armeria; +package cloud.filibuster.functional.docker.armeria; +import cloud.filibuster.RpcType; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; import cloud.filibuster.instrumentation.helpers.Networking; @@ -7,6 +8,7 @@ import cloud.filibuster.junit.configuration.FilibusterAnalysisConfiguration; import cloud.filibuster.junit.configuration.FilibusterCustomAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -41,6 +43,7 @@ public static void writeCustomAnalysisFile() { FilibusterAnalysisConfiguration filibusterAnalysisConfiguration = new FilibusterAnalysisConfiguration.Builder() .name("java.grpc") .pattern("(.*/.*)") + .rpcType(RpcType.GRPC) // Base exceptions. .exception("io.grpc.StatusRuntimeException", Map.of( @@ -86,7 +89,7 @@ public static void writeCustomAnalysisFile() { * @throws InterruptedException thrown if the gRPC channel fails to terminate. */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") - @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend=FilibusterDockerServerBackend.class) @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { diff --git a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterExternalHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterExternalHttpTest.java rename to src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java index c590ea9ab..235e8af98 100644 --- a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterExternalHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java @@ -1,9 +1,10 @@ -package cloud.filibuster.functional.python.basic; +package cloud.filibuster.functional.docker.basic; import cloud.filibuster.integration.instrumentation.TestHelper; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import com.linecorp.armeria.client.WebClient; @@ -42,7 +43,7 @@ public class JUnitFilibusterExternalHttpTest extends JUnitBaseTest { */ @DisplayName("Test world route with Filibuster.") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testHelloAndExternalServiceWithFilibuster() { numberOfTestsExecuted++; diff --git a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterFailingTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterFailingTest.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterFailingTest.java rename to src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterFailingTest.java index d84bfcfc0..6bc073543 100644 --- a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterFailingTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterFailingTest.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.basic; +package cloud.filibuster.functional.docker.basic; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -6,6 +6,7 @@ import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -43,7 +44,7 @@ public class JUnitFilibusterFailingTest extends JUnitBaseTest { */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class, expected=StatusRuntimeException.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class, expected=StatusRuntimeException.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { // Intentionally use a bad port. diff --git a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterHttpTest.java rename to src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java index 16d413ffb..ce1f88cd4 100644 --- a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java @@ -1,9 +1,10 @@ -package cloud.filibuster.functional.python.basic; +package cloud.filibuster.functional.docker.basic; import cloud.filibuster.integration.instrumentation.TestHelper; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import com.linecorp.armeria.client.WebClient; @@ -43,7 +44,7 @@ public class JUnitFilibusterHttpTest extends JUnitBaseTest { */ @DisplayName("Test world route with Filibuster.") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testHelloAndWorldServiceWithFilibuster() { numberOfTestsExecuted++; diff --git a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java similarity index 95% rename from src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterTest.java rename to src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java index 1f4d4cafe..32a0749e6 100644 --- a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java @@ -1,10 +1,11 @@ -package cloud.filibuster.functional.python.basic; +package cloud.filibuster.functional.docker.basic; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; import cloud.filibuster.examples.WorldServiceGrpc; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -39,7 +40,7 @@ public class JUnitFilibusterTest extends JUnitBaseTest { * @throws InterruptedException if teardown of gRPC channel fails. */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterUnimplementedTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterUnimplementedTest.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterUnimplementedTest.java rename to src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterUnimplementedTest.java index c8236b817..75cb08368 100644 --- a/src/test/java/cloud/filibuster/functional/python/basic/JUnitFilibusterUnimplementedTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterUnimplementedTest.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.basic; +package cloud.filibuster.functional.docker.basic; import cloud.filibuster.examples.Hello.HelloRequest; import cloud.filibuster.examples.HelloServiceGrpc; @@ -6,6 +6,7 @@ import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -34,7 +35,7 @@ public class JUnitFilibusterUnimplementedTest extends JUnitBaseTest { @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFile.java b/src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFile.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFile.java rename to src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFile.java index 2ffd8a427..681b53d32 100644 --- a/src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFile.java +++ b/src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFile.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.custom; +package cloud.filibuster.functional.docker.custom; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -7,6 +7,7 @@ import cloud.filibuster.junit.configuration.FilibusterAnalysisConfiguration; import cloud.filibuster.junit.configuration.FilibusterCustomAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -70,7 +71,7 @@ public class JUnitFilibusterTestWithCustomAnalysisFile extends JUnitBaseTest { * @throws InterruptedException thrown if the gRPC channel fails to terminate. */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") - @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend= FilibusterDockerServerBackend.class) @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { diff --git a/src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java b/src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java similarity index 97% rename from src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java rename to src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java index 95cc10227..f4eab8b46 100644 --- a/src/test/java/cloud/filibuster/functional/python/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java +++ b/src/test/java/cloud/filibuster/functional/docker/custom/JUnitFilibusterTestWithCustomAnalysisFileAndGrpcClient.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.custom; +package cloud.filibuster.functional.docker.custom; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -8,6 +8,7 @@ import cloud.filibuster.junit.configuration.FilibusterAnalysisConfiguration; import cloud.filibuster.junit.configuration.FilibusterCustomAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import com.linecorp.armeria.client.grpc.GrpcClientBuilder; @@ -81,7 +82,7 @@ protected void setupGrpcClientBuilder() { * @throws InterruptedException thrown when the gRPC channel fails to terminate. */ @DisplayName("Test partial hello server grpc route with Filibuster with instrumented test client. (MyHelloService, MyWorldService)") - @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend= FilibusterDockerServerBackend.class) @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { diff --git a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java rename to src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java index 878e2c69f..a57c74033 100644 --- a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java +++ b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFile.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.exhaustive; +package cloud.filibuster.functional.docker.exhaustive; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -7,6 +7,7 @@ import cloud.filibuster.junit.configuration.FilibusterAnalysisConfiguration; import cloud.filibuster.junit.configuration.FilibusterCustomAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -74,7 +75,7 @@ public class JUnitFilibusterTestWithExhaustiveAnalysisFile extends JUnitBaseTest @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisFile=analysisFilePath, serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java similarity index 95% rename from src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java rename to src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java index 46c2ecf9c..6e86edc0c 100644 --- a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java +++ b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.exhaustive; +package cloud.filibuster.functional.docker.exhaustive; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -6,6 +6,7 @@ import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.configuration.examples.FilibusterGrpcExhaustiveAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -55,7 +56,7 @@ public class JUnitFilibusterTestWithExhaustiveAnalysisFileByAnnotation extends J @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(analysisConfigurationFile=FilibusterGrpcExhaustiveAnalysisConfigurationFile.class, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisConfigurationFile=FilibusterGrpcExhaustiveAnalysisConfigurationFile.class, serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java rename to src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java index de77c1819..d9d73c13c 100644 --- a/src/test/java/cloud/filibuster/functional/python/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java +++ b/src/test/java/cloud/filibuster/functional/docker/exhaustive/JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.exhaustive; +package cloud.filibuster.functional.docker.exhaustive; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -7,6 +7,7 @@ import cloud.filibuster.junit.configuration.FilibusterAnalysisConfiguration; import cloud.filibuster.junit.configuration.FilibusterCustomAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -74,7 +75,7 @@ public class JUnitFilibusterTestWithExhaustiveAnalysisFileMaxIterationsNotEnough @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(analysisFile=analysisFilePath, maxIterations=3, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisFile=analysisFilePath, maxIterations=3, serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java rename to src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java index 37c52ba09..16b3e37d4 100644 --- a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java +++ b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithBasicAnalysisFileByAnnotation.java @@ -1,10 +1,11 @@ -package cloud.filibuster.functional.python.extended; +package cloud.filibuster.functional.docker.extended; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -42,7 +43,7 @@ public class JUnitFilibusterTestWithBasicAnalysisFileByAnnotation extends JUnitB @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder diff --git a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java rename to src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java index d3ae5e7df..980368735 100644 --- a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java +++ b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterTestWithNoBeforeEachOrAfterEach.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.extended; +package cloud.filibuster.functional.docker.extended; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -9,6 +9,7 @@ import cloud.filibuster.instrumentation.libraries.grpc.FilibusterServerInterceptor; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; @@ -48,7 +49,7 @@ public class JUnitFilibusterTestWithNoBeforeEachOrAfterEach { */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException, IOException { MyHelloService.shouldReturnRuntimeExceptionWithCause = false; diff --git a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterWorldExtendedHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterWorldExtendedHttpTest.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterWorldExtendedHttpTest.java rename to src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterWorldExtendedHttpTest.java index a6cb2a378..829314283 100644 --- a/src/test/java/cloud/filibuster/functional/python/extended/JUnitFilibusterWorldExtendedHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/extended/JUnitFilibusterWorldExtendedHttpTest.java @@ -1,10 +1,11 @@ -package cloud.filibuster.functional.python.extended; +package cloud.filibuster.functional.docker.extended; import cloud.filibuster.integration.instrumentation.TestHelper; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.configuration.examples.FilibusterWorldExtendedDefaultAnalysisConfigurationFile; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import com.linecorp.armeria.client.WebClient; @@ -43,7 +44,7 @@ public class JUnitFilibusterWorldExtendedHttpTest extends JUnitBaseTest { * Inject faults between Hello and World using Filibuster and assert proper faults are injected. */ @DisplayName("Test world route with Filibuster.") - @TestWithFilibuster(analysisConfigurationFile=FilibusterWorldExtendedDefaultAnalysisConfigurationFile.class, serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(analysisConfigurationFile=FilibusterWorldExtendedDefaultAnalysisConfigurationFile.class, serverBackend= FilibusterDockerServerBackend.class) @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) @Order(1) public void testHelloAndWorldServiceWithFilibuster() { diff --git a/src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestExtendedMacroAssertion.java b/src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestExtendedMacroAssertion.java similarity index 96% rename from src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestExtendedMacroAssertion.java rename to src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestExtendedMacroAssertion.java index 3b431ad82..27e8adb8c 100644 --- a/src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestExtendedMacroAssertion.java +++ b/src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestExtendedMacroAssertion.java @@ -1,4 +1,4 @@ -package cloud.filibuster.functional.python.macros; +package cloud.filibuster.functional.docker.macros; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; @@ -6,6 +6,7 @@ import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -33,7 +34,7 @@ public class JUnitFilibusterTestExtendedMacroAssertion extends JUnitBaseTest { @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) public void testMyHelloAndMyWorldServiceWithFilibusterWithMacro() throws Throwable { ManagedChannel helloChannel = ManagedChannelBuilder .forAddress(Networking.getHost("hello"), Networking.getPort("hello")) diff --git a/src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestMacroAssertion.java b/src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestMacroAssertion.java similarity index 94% rename from src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestMacroAssertion.java rename to src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestMacroAssertion.java index d3a7a5a6a..01e890993 100644 --- a/src/test/java/cloud/filibuster/functional/python/macros/JUnitFilibusterTestMacroAssertion.java +++ b/src/test/java/cloud/filibuster/functional/docker/macros/JUnitFilibusterTestMacroAssertion.java @@ -1,10 +1,11 @@ -package cloud.filibuster.functional.python.macros; +package cloud.filibuster.functional.docker.macros; import cloud.filibuster.examples.Hello; import cloud.filibuster.examples.HelloServiceGrpc; import cloud.filibuster.instrumentation.helpers.Networking; import cloud.filibuster.junit.TestWithFilibuster; import cloud.filibuster.junit.interceptors.GitHubActionsSkipInvocationInterceptor; +import cloud.filibuster.junit.server.backends.FilibusterDockerServerBackend; import cloud.filibuster.junit.server.backends.FilibusterLocalProcessServerBackend; import cloud.filibuster.functional.JUnitBaseTest; import io.grpc.ManagedChannel; @@ -29,7 +30,7 @@ public class JUnitFilibusterTestMacroAssertion extends JUnitBaseTest { @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend=FilibusterLocalProcessServerBackend.class) + @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) public void testMyHelloAndMyWorldServiceWithFilibusterWithMacro() throws Throwable { ManagedChannel helloChannel = ManagedChannelBuilder .forAddress(Networking.getHost("hello"), Networking.getPort("hello")) From 4bf4bb593f1e2716e671565e12385144d84b20cc Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:46:58 -0500 Subject: [PATCH 34/41] Change number of expected assertions. --- .../docker/basic/JUnitFilibusterExternalHttpTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java index 235e8af98..abfbaf0ad 100644 --- a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java @@ -82,6 +82,6 @@ public void testNumAssertions() { @Test @Order(3) public void testNumberOfTestsExecuted() { - assertEquals(5, numberOfTestsExecuted); + assertEquals(6, numberOfTestsExecuted); } } From 2a64ce9008327fca1fe89a4a6a4a52412f0e72cc Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 06:52:33 -0500 Subject: [PATCH 35/41] Fix number of expected tests. --- .../functional/docker/basic/JUnitFilibusterHttpTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java index ce1f88cd4..88044cfce 100644 --- a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java @@ -82,6 +82,6 @@ public void testNumAssertions() { @Test @Order(3) public void testNumberOfTestsExecuted() { - assertEquals(5, numberOfTestsExecuted); + assertEquals(6, numberOfTestsExecuted); } } From 2028b2dfb77a976c2db96d3c3f5aff875e50d0f7 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Sun, 12 Nov 2023 07:04:06 -0500 Subject: [PATCH 36/41] Minor. --- .../docker/basic/JUnitFilibusterExternalHttpTest.java | 2 +- .../functional/docker/basic/JUnitFilibusterHttpTest.java | 2 +- .../filibuster/functional/docker/basic/JUnitFilibusterTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java index abfbaf0ad..309c89c43 100644 --- a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterExternalHttpTest.java @@ -43,7 +43,7 @@ public class JUnitFilibusterExternalHttpTest extends JUnitBaseTest { */ @DisplayName("Test world route with Filibuster.") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) + @TestWithFilibuster(serverBackend=FilibusterDockerServerBackend.class) @Order(1) public void testHelloAndExternalServiceWithFilibuster() { numberOfTestsExecuted++; diff --git a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java index 88044cfce..85a5026be 100644 --- a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterHttpTest.java @@ -44,7 +44,7 @@ public class JUnitFilibusterHttpTest extends JUnitBaseTest { */ @DisplayName("Test world route with Filibuster.") @ExtendWith(GitHubActionsSkipInvocationInterceptor.class) - @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) + @TestWithFilibuster(serverBackend=FilibusterDockerServerBackend.class) @Order(1) public void testHelloAndWorldServiceWithFilibuster() { numberOfTestsExecuted++; diff --git a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java index 32a0749e6..cb4d5c29c 100644 --- a/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java +++ b/src/test/java/cloud/filibuster/functional/docker/basic/JUnitFilibusterTest.java @@ -40,7 +40,7 @@ public class JUnitFilibusterTest extends JUnitBaseTest { * @throws InterruptedException if teardown of gRPC channel fails. */ @DisplayName("Test partial hello server grpc route with Filibuster. (MyHelloService, MyWorldService)") - @TestWithFilibuster(serverBackend= FilibusterDockerServerBackend.class) + @TestWithFilibuster(serverBackend=FilibusterDockerServerBackend.class) @Order(1) public void testMyHelloAndMyWorldServiceWithFilibuster() throws InterruptedException { ManagedChannel helloChannel = ManagedChannelBuilder From 536805e300f769397a3d6857d54e9481b1862dc1 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Mon, 13 Nov 2023 12:25:00 -0500 Subject: [PATCH 37/41] Bump version of Armeria --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 9925795b6..e9d7db697 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ dependencies { 'armeria-thrift0.13', 'armeria-tomcat9', 'armeria-zookeeper3'].each { - api "com.linecorp.armeria:${it}:1.14.0" + api "com.linecorp.armeria:${it}:1.22.1" } api "io.lettuce:lettuce-core:6.2.2.RELEASE" api 'org.postgresql:postgresql:42.3.3' From 91c57c5cae8421684ae3ac13f4750ccbddcfef90 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 31 Jan 2024 02:31:11 -0500 Subject: [PATCH 38/41] Remove shadowjar construction. --- build.gradle | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/build.gradle b/build.gradle index e9d7db697..6bfd7b1e6 100644 --- a/build.gradle +++ b/build.gradle @@ -6,13 +6,11 @@ buildscript { plugins { id 'java' - id 'java-library' id "com.diffplug.spotless" version "5.0.0" id 'signing' id 'maven-publish' id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' id 'com.adarshr.test-logger' version '3.2.0' - id 'com.github.johnrengelman.shadow' version '8.1.1' } apply plugin: 'java' @@ -21,8 +19,6 @@ apply plugin: 'eclipse' apply plugin: 'application' apply plugin: 'com.diffplug.spotless' apply plugin: 'com.google.protobuf' -apply plugin: 'maven-publish' -apply plugin: 'com.github.johnrengelman.shadow' compileJava { sourceCompatibility = '1.8' @@ -326,23 +322,3 @@ task testWithFaultInjectionDocker(type: Test) { project.setProperty("mainClassName", "cloud.filibuster.instrumentation.Main") -tasks { - shadowJar { - archiveClassifier = "standalone" - - configurations = [ - project.configurations.runtimeClasspath - ] - - zip64 = true - - relocate 'org.eclipse', "filibuster.org.eclipse" - relocate 'io.netty', "filibuster.io.netty" - - mergeServiceFiles() - - exclude 'META-INF/maven/**' - exclude 'module-info.class' - } -} - From 0f4f6ccf8d8232e2c75330d956d0cc640076cac2 Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 31 Jan 2024 02:32:52 -0500 Subject: [PATCH 39/41] changelog. --- CHANGELOG | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index bca683466..466e242c4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ 3.0.2: - (cmeiklejohn) Minor UX refactoring. + - (cmeiklejohn) Remove jacoco. + - (cmeiklejohn) Bump gradle. + - (cmeiklejohn) Remove support for Python backend, streamline Docker backend, switch Py tests to Docker. + - (cmeiklejohn) Address possibly flaky test. 3.0.1: - (cmeiklejohn) Failed release. 3.0.0: From 7a07afd25b63fabf82aa59ed56f6dbb4fe33f18d Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 31 Jan 2024 02:35:22 -0500 Subject: [PATCH 40/41] Fix API/implementation. --- build.gradle | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index 6bfd7b1e6..959351f6c 100644 --- a/build.gradle +++ b/build.gradle @@ -43,31 +43,31 @@ dependencies { 'armeria-thrift0.13', 'armeria-tomcat9', 'armeria-zookeeper3'].each { - api "com.linecorp.armeria:${it}:1.22.1" + implementation "com.linecorp.armeria:${it}:1.22.1" } - api "io.lettuce:lettuce-core:6.2.2.RELEASE" - api 'org.postgresql:postgresql:42.3.3' - api 'com.datastax.cassandra:cassandra-driver-core:4.0.0' - api 'software.amazon.awssdk:dynamodb:2.20.74' - api 'com.datastax.cassandra:cassandra-driver-core:4.0.0' - api "com.github.cliftonlabs:json-simple:2.1.2" - api "org.json:json:20220924" - api 'org.jetbrains:annotations:16.0.2' - api "io.grpc:grpc-netty-shaded:1.40.1" - api 'com.google.code.gson:gson:2.8.9' - api 'org.grpcmock:grpcmock-junit5:0.9.3' - api 'com.google.protobuf:protobuf-java-util:3.21.7' - api 'org.eclipse.jetty:jetty-http:9.4.46.v20220331' - api 'org.eclipse.jetty:jetty-io:9.4.46.v20220331' - api 'org.eclipse.jetty:jetty-server:9.4.46.v20220331' - api 'org.eclipse.jetty:jetty-util:9.4.46.v20220331' - api 'org.junit.jupiter:junit-jupiter-api:5.7.0' - api "org.testcontainers:testcontainers:1.17.5" - api "org.apache.poi:poi:5.2.0" - api "org.apache.poi:poi-ooxml:5.2.0" - api "org.jxls:jxls-jexcel:1.0.9" - api "org.dhatim:fastexcel:0.15.3" - api "org.dhatim:fastexcel-reader:0.15.3" + implementation "io.lettuce:lettuce-core:6.2.2.RELEASE" + implementation 'org.postgresql:postgresql:42.3.3' + implementation 'com.datastax.cassandra:cassandra-driver-core:4.0.0' + implementation 'software.amazon.awssdk:dynamodb:2.20.74' + implementation 'com.datastax.cassandra:cassandra-driver-core:4.0.0' + implementation "com.github.cliftonlabs:json-simple:2.1.2" + implementation "org.json:json:20220924" + implementation 'org.jetbrains:annotations:16.0.2' + implementation "io.grpc:grpc-netty-shaded:1.40.1" + implementation 'com.google.code.gson:gson:2.8.9' + implementation 'org.grpcmock:grpcmock-junit5:0.9.3' + implementation 'com.google.protobuf:protobuf-java-util:3.21.7' + implementation 'org.eclipse.jetty:jetty-http:9.4.46.v20220331' + implementation 'org.eclipse.jetty:jetty-io:9.4.46.v20220331' + implementation 'org.eclipse.jetty:jetty-server:9.4.46.v20220331' + implementation 'org.eclipse.jetty:jetty-util:9.4.46.v20220331' + implementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' + implementation "org.testcontainers:testcontainers:1.17.5" + implementation "org.apache.poi:poi:5.2.0" + implementation "org.apache.poi:poi-ooxml:5.2.0" + implementation "org.jxls:jxls-jexcel:1.0.9" + implementation "org.dhatim:fastexcel:0.15.3" + implementation "org.dhatim:fastexcel-reader:0.15.3" runtimeOnly 'ch.qos.logback:logback-classic:1.2.3' runtimeOnly 'org.slf4j:log4j-over-slf4j:1.7.30' @@ -149,7 +149,7 @@ javadoc { group = "cloud.filibuster" archivesBaseName = "instrumentation" -version = "3.0.2" +version = "3.0.3" java { withJavadocJar() From 20bb6ee0b252bc9e45128974f95c5bdfdfab7b4f Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Wed, 31 Jan 2024 02:35:28 -0500 Subject: [PATCH 41/41] fix changelog. --- CHANGELOG | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 466e242c4..facaf7647 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,9 +1,11 @@ -3.0.2: - - (cmeiklejohn) Minor UX refactoring. +3.0.3: - (cmeiklejohn) Remove jacoco. - (cmeiklejohn) Bump gradle. - (cmeiklejohn) Remove support for Python backend, streamline Docker backend, switch Py tests to Docker. - (cmeiklejohn) Address possibly flaky test. + - (cmeiklejohn) Bump armeria version. +3.0.2: + - (cmeiklejohn) Minor UX refactoring. 3.0.1: - (cmeiklejohn) Failed release. 3.0.0: