diff --git a/README.md b/README.md
index bfe11b59..5e72f084 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ This library is mostly based on
* SLF4J 2
* Logback + Logback logstash
* GRPC
- * [Ecosystem](https://github.com/grpc-ecosystem/grpc-spring)
+ * Spring GRPC
* [Logbook](https://github.com/zalando/logbook)
Supported web technologies are:
diff --git a/azure/README.md b/azure/README.md
index 47ca9b85..11ad0770 100644
--- a/azure/README.md
+++ b/azure/README.md
@@ -208,24 +208,24 @@ and
```xml
no.entur.logging.cloud
- spring-boot-starter-azure-grpc-ecosystem
+ spring-boot-starter-azure-grpc-spring
${cloud-logging.version}
no.entur.logging.cloud
- spring-boot-starter-azure-grpc-ecosystem-test
+ spring-boot-starter-azure-grpc-spring-test
${cloud-logging.version}
test
no.entur.logging.cloud
- request-response-spring-boot-starter-azure-grpc-ecosystem
+ request-response-spring-boot-starter-azure-grpc-spring
${cloud-logging.version}
no.entur.logging.cloud
- request-response-spring-boot-starter-azure-grpc-ecosystem-test
+ request-response-spring-boot-starter-azure-grpc-spring-test
${cloud-logging.version}
test
@@ -285,11 +285,11 @@ ext {
add
```groovy
-implementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-ecosystem:${cloudLoggingVersion}")
-testImplementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-ecosystem-test:${cloudLoggingVersion}")
+implementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-spring:${cloudLoggingVersion}")
+testImplementation("no.entur.logging.cloud:spring-boot-starter-azure-grpc-spring-test:${cloudLoggingVersion}")
// requst-response logging
-implementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-ecosystem:${cloudLoggingVersion}")
-testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-ecosystem-test:${cloudLoggingVersion}")
+implementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-spring:${cloudLoggingVersion}")
+testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-azure-grpc-spring-test:${cloudLoggingVersion}")
// on-demand logging support
implementation("no.entur.logging.cloud:on-demand-spring-boot-starter-grpc:${cloudLoggingVersion}")
// metrics
diff --git a/azure/logback-logstash-encoder-azure/build.gradle b/azure/logback-logstash-encoder-azure/build.gradle
index 135179b7..7f4e5b78 100644
--- a/azure/logback-logstash-encoder-azure/build.gradle
+++ b/azure/logback-logstash-encoder-azure/build.gradle
@@ -7,7 +7,7 @@ dependencies {
api ("ch.qos.logback:logback-core")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api("com.fasterxml.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-core")
}
diff --git a/azure/logback-logstash-encoder-azure/src/main/java/no/entur/logging/cloud/azure/logback/logstash/AzureServiceContextJsonProvider.java b/azure/logback-logstash-encoder-azure/src/main/java/no/entur/logging/cloud/azure/logback/logstash/AzureServiceContextJsonProvider.java
index e223c086..d973005c 100644
--- a/azure/logback-logstash-encoder-azure/src/main/java/no/entur/logging/cloud/azure/logback/logstash/AzureServiceContextJsonProvider.java
+++ b/azure/logback-logstash-encoder-azure/src/main/java/no/entur/logging/cloud/azure/logback/logstash/AzureServiceContextJsonProvider.java
@@ -1,7 +1,7 @@
package no.entur.logging.cloud.azure.logback.logstash;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractFieldJsonProvider;
import net.logstash.logback.composite.FieldNamesAware;
import net.logstash.logback.composite.JsonWritingUtils;
@@ -76,9 +76,9 @@ public static String parseServiceNameFromHostname(String host) {
}
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
if(service != null) {
- generator.writeObjectFieldStart(getFieldName());
+ generator.writeObjectPropertyStart(getFieldName());
JsonWritingUtils.writeStringField(generator, "service", service);
diff --git a/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureLogbackMetrics.java b/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureLogbackMetrics.java
index 02b0062a..35a46ca6 100644
--- a/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureLogbackMetrics.java
+++ b/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureLogbackMetrics.java
@@ -2,8 +2,6 @@
import ch.qos.logback.classic.LoggerContext;
import io.micrometer.core.instrument.MeterRegistry;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import org.slf4j.LoggerFactory;
import java.util.Map;
@@ -15,8 +13,6 @@
* Logback driver with extra log levels. Originally copied from LogbackMetrics class in micrometer-core.
*
*/
-@NonNullApi
-@NonNullFields
public class AzureLogbackMetrics extends io.micrometer.core.instrument.binder.logging.LogbackMetrics { // extend since there is not interface type
private final LoggerContext loggerContext;
private final Map metricsTurboFilters = new ConcurrentHashMap<>();
diff --git a/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureMetricsTurboFilter.java b/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureMetricsTurboFilter.java
index 23754818..4e99a946 100644
--- a/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureMetricsTurboFilter.java
+++ b/azure/micrometer-azure/src/main/java/no/entur/logging/cloud/azure/micrometer/AzureMetricsTurboFilter.java
@@ -8,8 +8,6 @@
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import no.entur.logging.cloud.api.DevOpsLevel;
import no.entur.logging.cloud.api.DevOpsMarker;
import org.slf4j.Marker;
@@ -18,8 +16,6 @@
import java.util.List;
-@NonNullApi
-@NonNullFields
public class AzureMetricsTurboFilter extends TurboFilter implements LoggingEventMetrics {
private final Counter alertCounter;
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 7f3a8e4f..00000000
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.azure.spring.grpc.ecosystem.test.RequestResponseAzureGrpcEcosystemTestAutoConfiguration
\ No newline at end of file
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/README.md b/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/README.md
deleted file mode 100644
index f56a700b..00000000
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# request-response-logging for GCP + Ecosystem
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index af355280..00000000
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.azure.spring.grpc.ecosystem.RequestResponseAzureGrpcEcosystemAutoConfiguration
\ No newline at end of file
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/build.gradle b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/build.gradle
similarity index 78%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/build.gradle
rename to azure/request-response-spring-boot-starter-azure-grpc-spring-test/build.gradle
index 3bf783b8..94b7e3f6 100644
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/build.gradle
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/build.gradle
@@ -1,14 +1,14 @@
dependencies {
api project(":azure:spring-boot-autoconfigure-azure-test")
- api project(':azure:request-response-spring-boot-starter-azure-grpc-ecosystem')
- api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ api project(':azure:request-response-spring-boot-starter-azure-grpc-spring')
+ api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api ("com.fasterxml.jackson.core:jackson-core")
+ api ("tools.jackson.core:jackson-core")
api("org.slf4j:slf4j-api")
api("org.springframework.boot:spring-boot-autoconfigure")
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/test/RequestResponseGcpGrpcEcosystemTestAutoConfiguration.java b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/test/RequestResponseAzureGrpcSpringTestAutoConfiguration.java
similarity index 81%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/test/RequestResponseGcpGrpcEcosystemTestAutoConfiguration.java
rename to azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/test/RequestResponseAzureGrpcSpringTestAutoConfiguration.java
index cc179b39..4bcf9b29 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/test/RequestResponseGcpGrpcEcosystemTestAutoConfiguration.java
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/test/RequestResponseAzureGrpcSpringTestAutoConfiguration.java
@@ -1,13 +1,13 @@
-package no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.test;
+package no.entur.logging.cloud.azure.spring.grpc.spring.test;
-import no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.RequestResponseGcpGrpcEcosystemAutoConfiguration;
+import no.entur.logging.cloud.azure.spring.grpc.spring.RequestResponseAzureGrpcSpringAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
import no.entur.logging.cloud.rr.grpc.GrpcSink;
import no.entur.logging.cloud.rr.grpc.test.CompositeSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingLogLevelLogstashLogbackGrpcSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingGrpcSink;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
@@ -17,11 +17,11 @@
import org.springframework.context.annotation.Configuration;
@AutoConfigureBefore(value = {
- RequestResponseGcpGrpcEcosystemAutoConfiguration.class,
+ RequestResponseAzureGrpcSpringAutoConfiguration.class,
})
@Configuration
-public class RequestResponseGcpGrpcEcosystemTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {
+public class RequestResponseAzureGrpcSpringTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {
@Bean
@ConditionalOnMissingBean(GrpcSink.class)
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..350ee99f
--- /dev/null
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.azure.spring.grpc.spring.test.RequestResponseAzureGrpcSpringTestAutoConfiguration
\ No newline at end of file
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java
similarity index 100%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java
rename to azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java b/azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java
similarity index 100%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java
rename to azure/request-response-spring-boot-starter-azure-grpc-spring-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-spring/README.md b/azure/request-response-spring-boot-starter-azure-grpc-spring/README.md
new file mode 100644
index 00000000..7ce08656
--- /dev/null
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring/README.md
@@ -0,0 +1 @@
+# request-response-logging for GCP + Spring GRPC
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/build.gradle b/azure/request-response-spring-boot-starter-azure-grpc-spring/build.gradle
similarity index 80%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem/build.gradle
rename to azure/request-response-spring-boot-starter-azure-grpc-spring/build.gradle
index e09c649f..b49c29ba 100644
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/build.gradle
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring/build.gradle
@@ -4,14 +4,14 @@ dependencies {
api project(':api')
api project(':azure:logback-logstash-encoder-azure')
api project(':request-response:netty-grpc')
- api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
api ("org.slf4j:slf4j-api")
api ("org.springframework.boot:spring-boot-starter")
api ("org.springframework.boot:spring-boot-autoconfigure")
api ("org.springframework.boot:spring-boot-starter-logging")
- api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
+ api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/RequestResponseAzureGrpcEcosystemAutoConfiguration.java b/azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/RequestResponseAzureGrpcSpringAutoConfiguration.java
similarity index 65%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/RequestResponseAzureGrpcEcosystemAutoConfiguration.java
rename to azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/RequestResponseAzureGrpcSpringAutoConfiguration.java
index 1e961e57..8ddd4a63 100644
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/RequestResponseAzureGrpcEcosystemAutoConfiguration.java
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/RequestResponseAzureGrpcSpringAutoConfiguration.java
@@ -1,17 +1,14 @@
-package no.entur.logging.cloud.azure.spring.grpc.ecosystem;
+package no.entur.logging.cloud.azure.spring.grpc.spring;
-import no.entur.logging.cloud.spring.grpc.ecosystem.RequestResponseGrpcEcosystemAutoConfiguration;
-import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.GrpcLoggingCloudProperties;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
@Configuration
@AutoConfigureBefore(RequestResponseGrpcAutoConfiguration.class)
-public class RequestResponseAzureGrpcEcosystemAutoConfiguration {
+public class RequestResponseAzureGrpcSpringAutoConfiguration {
@Bean
public GrpcLoggingCloudProperties grpcLoggingCloudProperties() {
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..d24dd5d6
--- /dev/null
+++ b/azure/request-response-spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.azure.spring.grpc.spring.RequestResponseAzureGrpcSpringAutoConfiguration
\ No newline at end of file
diff --git a/azure/spring-boot-autoconfigure-azure-test/build.gradle b/azure/spring-boot-autoconfigure-azure-test/build.gradle
index 18406e31..9181cfab 100644
--- a/azure/spring-boot-autoconfigure-azure-test/build.gradle
+++ b/azure/spring-boot-autoconfigure-azure-test/build.gradle
@@ -15,7 +15,7 @@ dependencies {
api("org.springframework.boot:spring-boot-starter-logging")
api("org.springframework.boot:spring-boot-autoconfigure")
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}"
diff --git a/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighter.java b/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighter.java
index f11ad834..0e8d6667 100644
--- a/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighter.java
+++ b/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighter.java
@@ -1,8 +1,8 @@
package no.entur.logging.cloud.azure.spring.test;
import org.entur.decorators.syntaxhighlight.DelegateSyntaxHighlighter;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.SyntaxHighlighter;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
public class LogSeveritySyntaxHighlighter extends DelegateSyntaxHighlighter {
diff --git a/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighterFactory.java b/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighterFactory.java
index 288ee94c..88f5542c 100644
--- a/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighterFactory.java
+++ b/azure/spring-boot-autoconfigure-azure-test/src/main/java/no/entur/logging/cloud/azure/spring/test/LogSeveritySyntaxHighlighterFactory.java
@@ -1,10 +1,10 @@
package no.entur.logging.cloud.azure.spring.test;
-import com.fasterxml.jackson.core.JsonGenerator;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
+import tools.jackson.core.JsonGenerator;
import org.entur.decorators.factory.ConfigurableSyntaxHighlighterFactory;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
-import org.entur.jackson.jsh.SyntaxHighlighter;
public class LogSeveritySyntaxHighlighterFactory extends ConfigurableSyntaxHighlighterFactory {
@@ -50,9 +50,9 @@ public LogSeveritySyntaxHighlighterFactory() {
}
@Override
- public SyntaxHighlighter createSyntaxHighlighter(JsonGenerator generator) {
+ public SyntaxHighlighter createSyntaxHighlighter() {
if(cachedSyntaxHighlighter == null) {
- cachedSyntaxHighlighter = super.createSyntaxHighlighter(generator);
+ cachedSyntaxHighlighter = super.createSyntaxHighlighter();
}
return new LogSeveritySyntaxHighlighter(cachedSyntaxHighlighter, severity.defaultValue, severity.debug, severity.info, severity.warning, severity.error, loggerName, message);
}
diff --git a/azure/spring-boot-autoconfigure-azure-test/src/main/resources/logback/logback-spring-test.xml b/azure/spring-boot-autoconfigure-azure-test/src/main/resources/logback/logback-spring-test.xml
index 195a00a3..18e1aab6 100644
--- a/azure/spring-boot-autoconfigure-azure-test/src/main/resources/logback/logback-spring-test.xml
+++ b/azure/spring-boot-autoconfigure-azure-test/src/main/resources/logback/logback-spring-test.xml
@@ -55,7 +55,7 @@
TODO this seems to add an extract space after the last newline,
but as this is just the human readable format, this is not important.
-->
-
+
green
@@ -63,7 +63,8 @@
blue
magenta
-
+
+
diff --git a/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java b/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java
deleted file mode 100644
index 82bd3937..00000000
--- a/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package no.entur.logging.cloud.azure.spring.grpc.ecosystem;
-
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class EcosystemGrpcLoggingAutoConfiguration {
-
- // error handlers
-
-}
diff --git a/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 406825cc..00000000
--- a/azure/spring-boot-starter-azure-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.azure.spring.grpc.ecosystem.EcosystemGrpcLoggingAutoConfiguration
\ No newline at end of file
diff --git a/azure/spring-boot-starter-azure-grpc-ecosystem-test/build.gradle b/azure/spring-boot-starter-azure-grpc-spring-test/build.gradle
similarity index 100%
rename from azure/spring-boot-starter-azure-grpc-ecosystem-test/build.gradle
rename to azure/spring-boot-starter-azure-grpc-spring-test/build.gradle
diff --git a/azure/spring-boot-starter-azure-grpc-ecosystem/build.gradle b/azure/spring-boot-starter-azure-grpc-spring/build.gradle
similarity index 89%
rename from azure/spring-boot-starter-azure-grpc-ecosystem/build.gradle
rename to azure/spring-boot-starter-azure-grpc-spring/build.gradle
index a0602534..1a3a8ca4 100644
--- a/azure/spring-boot-starter-azure-grpc-ecosystem/build.gradle
+++ b/azure/spring-boot-starter-azure-grpc-spring/build.gradle
@@ -17,7 +17,7 @@ dependencies {
api("org.springframework.boot:spring-boot-autoconfigure")
api("org.springframework.boot:spring-boot-starter-logging")
- api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
+ api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")
api "io.grpc:grpc-netty:${grpcNettyVersion}"
diff --git a/azure/spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java b/azure/spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java
new file mode 100644
index 00000000..52e6cf2d
--- /dev/null
+++ b/azure/spring-boot-starter-azure-grpc-spring/src/main/java/no/entur/logging/cloud/azure/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java
@@ -0,0 +1,10 @@
+package no.entur.logging.cloud.azure.spring.grpc.spring;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SpringGrpcLoggingAutoConfiguration {
+
+ // error handlers
+
+}
diff --git a/azure/spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/azure/spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..f112fc89
--- /dev/null
+++ b/azure/spring-boot-starter-azure-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.azure.spring.grpc.spring.SpringGrpcLoggingAutoConfiguration
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 1d27b209..d0626ffa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,19 +7,19 @@ plugins {
// Define version variables at root level so they're available everywhere
ext {
- springBootVersion = '3.5.9' // https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/
+ springBootVersion = '4.0.2' // https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/
// The following versions are managed by Spring Boot BOM (no need to define here):
// junitJupiterVersion, mockitoVersion, slf4jVersion, logbackVersion,
// jacksonVersion, jacksonDatabindVersion, micrometerVersion, janinoVersion,
// servletVersion (jakarta-servlet), annotationApiVersion (jakarta-annotation),
// nettyVersion, jsonPathVersion
-
+
// Versions NOT in Spring Boot BOM - we manage these ourselves:
googleTruthVersion = '1.4.5'
- logbackLogstashVersion = '8.1'
- logbookVersion = '3.12.3'
- jacksonSyntaxHighlightVersion = '1.1.1'
- logbackLogstashSyntaxHighlightingDecoratorsVersion = '1.1.1'
+ logbackLogstashVersion = '9.0'
+ logbookVersion = '4.0.0-RC.1'
+ jacksonSyntaxHighlightVersion = '2.0.0'
+ logbackLogstashSyntaxHighlightingDecoratorsVersion = '2.0.0'
commonsIoVersion = '2.21.0'
commonsTextVersion = '1.15.0'
nettyTcnativeBoringsslStaticVersion = '2.0.74.Final'
@@ -28,7 +28,7 @@ ext {
grpcVersion = '1.78.0'
grpcCommonsVersion = '2.65.0'
grpcProtobufVersion = '4.33.4'
- ecosystemGrpcVersion = '3.1.0.RELEASE'
+ springGrpcVersion = '1.0.2'
jsonAssertVersion = '0.8.0'
}
@@ -61,7 +61,7 @@ configure(exampleProjects()) {
java {
toolchain {
- languageVersion = JavaLanguageVersion.of(17) // Specify desired Java version (e.g., Java 17)
+ languageVersion = JavaLanguageVersion.of(25) // Specify desired Java version (e.g., Java 17)
}
}
@@ -92,7 +92,7 @@ configure(jvmProjects()) {
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
diff --git a/examples/README.md b/examples/README.md
index ef618a5e..539ba5b1 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -12,7 +12,7 @@ Please note:
* For local development, a shortened 'classic' one-line is the default
* To examine log statements in more details use `CompositeConsoleOutputControl.useHumanReadableJsonEncoder()` for JSON output
-# Ecosystem gRPC interceptors
+# Spring gRPC interceptors
The gRPC interceptor order overview:
## Service configuration
@@ -30,7 +30,7 @@ The gRPC interceptor order overview:
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
```
## Interceptor order
diff --git a/examples/gcp-grpc-ecosystem-example/README.md b/examples/azure-grpc-spring-example/README.md
similarity index 64%
rename from examples/gcp-grpc-ecosystem-example/README.md
rename to examples/azure-grpc-spring-example/README.md
index 39ab8c06..86c822be 100644
--- a/examples/gcp-grpc-ecosystem-example/README.md
+++ b/examples/azure-grpc-spring-example/README.md
@@ -1,4 +1,4 @@
-# gcp-grpc-ecosystem-example
+# azure-grpc-spring-example
Simple gRPC server example with a few unit tests.
diff --git a/examples/azure-grpc-ecosystem-example/build.gradle b/examples/azure-grpc-spring-example/build.gradle
similarity index 89%
rename from examples/azure-grpc-ecosystem-example/build.gradle
rename to examples/azure-grpc-spring-example/build.gradle
index 3e139466..5f896509 100644
--- a/examples/azure-grpc-ecosystem-example/build.gradle
+++ b/examples/azure-grpc-spring-example/build.gradle
@@ -1,21 +1,21 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
id "com.google.protobuf" version "0.9.6"
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
dependencies {
implementation project(':on-demand:on-demand-spring-boot-starter-grpc')
- implementation project(':azure:spring-boot-starter-azure-grpc-ecosystem')
- implementation project(':azure:request-response-spring-boot-starter-azure-grpc-ecosystem')
+ implementation project(':azure:spring-boot-starter-azure-grpc-spring')
+ implementation project(':azure:request-response-spring-boot-starter-azure-grpc-spring')
implementation project(':trace:server:correlation-id-trace-grpc-netty')
implementation project(':trace:mdc-context-grpc-netty')
- implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
implementation("io.grpc:grpc-api:$grpcVersion")
implementation("io.grpc:grpc-core:$grpcVersion")
@@ -31,8 +31,8 @@ dependencies {
// added due to grpc plugin dependency resolution problem
testImplementation "org.junit.platform:junit-platform-launcher"
- testImplementation project(":azure:spring-boot-starter-azure-grpc-ecosystem-test")
- testImplementation project(':azure:request-response-spring-boot-starter-azure-grpc-ecosystem-test')
+ testImplementation project(":azure:spring-boot-starter-azure-grpc-spring-test")
+ testImplementation project(':azure:request-response-spring-boot-starter-azure-grpc-spring-test')
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation project(":test:test-logback-junit")
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/AbstractGreetingController.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/AbstractGreetingController.java
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/AbstractGreetingController.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/AbstractGreetingController.java
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/DemoApplication.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/DemoApplication.java
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/DemoApplication.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/DemoApplication.java
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java
similarity index 91%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java
index 43c5d868..e87cd60a 100644
--- a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java
+++ b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingController.java
@@ -1,11 +1,11 @@
package no.entur.grpc.azure.example;
-import net.devh.boot.grpc.server.service.GrpcService;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
// note: order is reversed compared to lognet
@GrpcService(interceptors = {
@@ -19,7 +19,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
@Profile("!ondemand")
public class GreetingController extends AbstractGreetingController {
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java
similarity index 92%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java
index 8bb2b429..497b0ade 100644
--- a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java
+++ b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/GreetingControllerWithOnDemandLogging.java
@@ -1,12 +1,13 @@
package no.entur.grpc.azure.example;
-import net.devh.boot.grpc.server.service.GrpcService;
+
import no.entur.logging.cloud.spring.ondemand.grpc.scope.GrpcLoggingScopeContextInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
@Profile("ondemand")
@GrpcService(interceptors = {
@@ -20,7 +21,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
public class GreetingControllerWithOnDemandLogging extends AbstractGreetingController {
}
\ No newline at end of file
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/MyGrpcConfig.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/MyGrpcConfig.java
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/MyGrpcConfig.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/MyGrpcConfig.java
diff --git a/examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/MyValidationServerInterceptor.java b/examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/MyValidationServerInterceptor.java
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/java/no/entur/grpc/azure/example/MyValidationServerInterceptor.java
rename to examples/azure-grpc-spring-example/src/main/java/no/entur/grpc/azure/example/MyValidationServerInterceptor.java
diff --git a/examples/azure-grpc-ecosystem-example/src/main/proto/greeting_message.proto b/examples/azure-grpc-spring-example/src/main/proto/greeting_message.proto
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/proto/greeting_message.proto
rename to examples/azure-grpc-spring-example/src/main/proto/greeting_message.proto
diff --git a/examples/azure-grpc-ecosystem-example/src/main/proto/greeting_service.proto b/examples/azure-grpc-spring-example/src/main/proto/greeting_service.proto
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/proto/greeting_service.proto
rename to examples/azure-grpc-spring-example/src/main/proto/greeting_service.proto
diff --git a/examples/azure-grpc-ecosystem-example/src/main/resources/application.properties b/examples/azure-grpc-spring-example/src/main/resources/application.properties
similarity index 100%
rename from examples/azure-grpc-ecosystem-example/src/main/resources/application.properties
rename to examples/azure-grpc-spring-example/src/main/resources/application.properties
diff --git a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemAbstractGrpcTest.java b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringAbstractGrpcTest.java
similarity index 93%
rename from examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemAbstractGrpcTest.java
rename to examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringAbstractGrpcTest.java
index 7b99944e..f8373446 100644
--- a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemAbstractGrpcTest.java
+++ b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringAbstractGrpcTest.java
@@ -9,7 +9,7 @@
import java.util.concurrent.TimeUnit;
-public class EcosystemAbstractGrpcTest {
+public class SpringAbstractGrpcTest {
// https://github.com/olivere/grpc-demo/blob/master/java-client/src/main/java/com/altf4/grpc/client/ExampleClient.java
public static final int MAX_INBOUND_MESSAGE_SIZE = 1 << 20;
@@ -23,11 +23,11 @@ public class EcosystemAbstractGrpcTest {
protected final int maxOutboundMessageSize;
protected final int maxInboundMessageSize;
- public EcosystemAbstractGrpcTest() {
+ public SpringAbstractGrpcTest() {
this(MAX_INBOUND_MESSAGE_SIZE, MAX_OUTBOUND_MESSAGE_SIZE);
}
- public EcosystemAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
+ public SpringAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
this.maxInboundMessageSize = maxInboundMessageSize;
this.maxOutboundMessageSize = maxOutboundMessageSize;
}
diff --git a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGreetingTest.java b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGreetingTest.java
similarity index 99%
rename from examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGreetingTest.java
rename to examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGreetingTest.java
index 26f0947e..2e72a964 100644
--- a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGreetingTest.java
+++ b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGreetingTest.java
@@ -40,7 +40,7 @@
@SpringBootTest
@DirtiesContext
@CaptureLogStatements(level = DevOpsLevel.DEBUG, value = {"no.entur", "org.entur"})
-public class EcosystemGreetingTest extends EcosystemAbstractGrpcTest {
+public class SpringGreetingTest extends SpringAbstractGrpcTest {
@Test
public void testBlockingRequestsOnSameStub() throws InterruptedException {
diff --git a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGrpcLoggingFormatTest.java b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGrpcLoggingFormatTest.java
similarity index 95%
rename from examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGrpcLoggingFormatTest.java
rename to examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGrpcLoggingFormatTest.java
index 7b739a2a..31280b40 100644
--- a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemGrpcLoggingFormatTest.java
+++ b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringGrpcLoggingFormatTest.java
@@ -12,7 +12,7 @@
@SpringBootTest
@DirtiesContext
-public class EcosystemGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderTest() throws InterruptedException {
diff --git a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingFormatTest.java b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingFormatTest.java
similarity index 94%
rename from examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingFormatTest.java
rename to examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingFormatTest.java
index 1bb59f11..463c34bd 100644
--- a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingFormatTest.java
+++ b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingFormatTest.java
@@ -16,9 +16,12 @@
@SpringBootTest
@ActiveProfiles("ondemand")
-@TestPropertySource(properties = {"entur.logging.grpc.ondemand.enabled=true"})
+@TestPropertySource(properties = {
+ "entur.logging.grpc.ondemand.enabled=true",
+ "entur.logging.grpc.ondemand.failure.logger.enabled=false",
+})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderExpectFullLogging() {
diff --git a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
similarity index 95%
rename from examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
rename to examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
index 82b92c36..02dbc652 100644
--- a/examples/azure-grpc-ecosystem-example/src/test/java/no/entur/grpc/azure/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
+++ b/examples/azure-grpc-spring-example/src/test/java/no/entur/grpc/azure/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
@@ -26,7 +26,7 @@
"entur.logging.http.ondemand.failure.logger.level=error",
})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingHighLogLevelTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingHighLogLevelTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderExpectFullLogging() throws InterruptedException {
diff --git a/examples/azure-web-example/build.gradle b/examples/azure-web-example/build.gradle
index 0c56158c..4e45bf91 100644
--- a/examples/azure-web-example/build.gradle
+++ b/examples/azure-web-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -20,6 +20,8 @@ dependencies {
testImplementation project(":azure:request-response-spring-boot-starter-azure-web-test");
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/azure-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java b/examples/azure-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
index 04a96010..bed6c3b4 100644
--- a/examples/azure-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
+++ b/examples/azure-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
@@ -12,7 +12,7 @@ public class WebSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
- .csrf().disable()
+ .csrf( (c) -> c.disable())
.authorizeHttpRequests((authz) -> authz
.anyRequest().permitAll());
return http.build();
diff --git a/examples/azure-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java b/examples/azure-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
index afbe8461..4f52f61a 100644
--- a/examples/azure-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
+++ b/examples/azure-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
@@ -1,7 +1,6 @@
package org.entur.example.web.rest;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
@@ -12,6 +11,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import tools.jackson.core.json.JsonFactory;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayWriter;
@@ -69,9 +69,9 @@ ResponseEntity bigResponse() throws IOException {
JsonGenerator generator = factory.createGenerator(writer);
generator.writeStartObject();
- generator.writeStringField("start", "here");
- generator.writeStringField("longValue", generateLongString(64*1024));
- generator.writeStringField("end", "here");
+ generator.writeStringProperty("start", "here");
+ generator.writeStringProperty("longValue", generateLongString(192*1024));
+ generator.writeStringProperty("end", "here");
generator.writeEndObject();
generator.flush();
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
index 71fdc556..efd2b550 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.TestRestTemplate;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -27,6 +28,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpBadRequestTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
index 7ff37660..02a71c3b 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -23,6 +24,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound1Test {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
index bad86893..960caa58 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -24,6 +25,7 @@
*/
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound2Test {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
index 6a26c6a4..d7cf5677 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -26,6 +27,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.level=error",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkHighLogLevelTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
index 9b4d2753..08170873 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -18,6 +19,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
index e88a317d..92363f9e 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.*;
import org.springframework.test.context.TestPropertySource;
@@ -21,6 +22,7 @@
"entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400",
"entur.logging.http.ondemand.troubleshoot.http.headers[0].name=X-DEBUG"
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTroubleshootingTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
index 5aeef7f4..6b828ab9 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
@@ -7,14 +7,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
index 039197e6..554778f4 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
@@ -6,9 +6,10 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
@@ -24,6 +25,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("local")
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatViaProfileTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
index 59ff0859..b39e7704 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -17,6 +18,7 @@
@TestPropertySource(properties = {
"entur.logging.style=HumanReadableJson",
})
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatViaPropertyTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
index b8779881..5ca80c03 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatWithBigResponsesTest {
@LocalServerPort
diff --git a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
index 0e9d7d4f..26503314 100644
--- a/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
+++ b/examples/azure-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatWithNewlinesTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/build.gradle b/examples/gcp-async-web-example/build.gradle
index 6b27a7f7..7601e610 100644
--- a/examples/gcp-async-web-example/build.gradle
+++ b/examples/gcp-async-web-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -21,6 +21,8 @@ dependencies {
testImplementation project(":gcp:request-response-spring-boot-starter-gcp-web-test");
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/gcp-async-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java b/examples/gcp-async-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
index 04a96010..bed6c3b4 100644
--- a/examples/gcp-async-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
+++ b/examples/gcp-async-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
@@ -12,7 +12,7 @@ public class WebSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
- .csrf().disable()
+ .csrf( (c) -> c.disable())
.authorizeHttpRequests((authz) -> authz
.anyRequest().permitAll());
return http.build();
diff --git a/examples/gcp-async-web-example/src/main/java/org/entur/example/web/rest/AsyncDocumentEndpoint.java b/examples/gcp-async-web-example/src/main/java/org/entur/example/web/rest/AsyncDocumentEndpoint.java
index efa45f6a..0532ffc4 100644
--- a/examples/gcp-async-web-example/src/main/java/org/entur/example/web/rest/AsyncDocumentEndpoint.java
+++ b/examples/gcp-async-web-example/src/main/java/org/entur/example/web/rest/AsyncDocumentEndpoint.java
@@ -1,7 +1,6 @@
package org.entur.example.web.rest;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.spring.ondemand.web.scope.LoggingScopeThreadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -9,6 +8,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
+import tools.jackson.core.json.JsonFactory;
import java.io.CharArrayWriter;
import java.io.IOException;
@@ -120,9 +120,9 @@ public CompletableFuture> bigResponse() throws IOExceptio
JsonGenerator generator = factory.createGenerator(writer);
generator.writeStartObject();
- generator.writeStringField("start", "here");
- generator.writeStringField("longValue", generateLongString(64*1024));
- generator.writeStringField("end", "here");
+ generator.writeStringProperty("start", "here");
+ generator.writeStringProperty("longValue", generateLongString(192*1024));
+ generator.writeStringProperty("end", "here");
generator.writeEndObject();
generator.flush();
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/ActuatorTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
index bc23e7db..310cdac5 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
@@ -6,9 +6,10 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -16,6 +17,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class ActuatorTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandAllFeaturesTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandAllFeaturesTest.java
index eedc2b72..842f3ba6 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandAllFeaturesTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandAllFeaturesTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -29,6 +30,7 @@
"entur.logging.http.ondemand.troubleshoot.http.headers[0].name=entur-debug-request",
"entur.logging.http.ondemand.flush-mode=LAZY",
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandAllFeaturesTest {
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpBadRequestTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpBadRequestTest.java
index 4ed37dd1..2c4df288 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpBadRequestTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpBadRequestTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -30,6 +31,8 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false",
})
+@AutoConfigureTestRestTemplate
+
public class AsyncOndemandWebLoggingHttpBadRequestTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound1Test.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound1Test.java
index b738feef..76cc3501 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound1Test.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound1Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -26,6 +27,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false",
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingHttpNotFound1Test {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound2Test.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound2Test.java
index ff9360b0..08a42fe7 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound2Test.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpNotFound2Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -27,6 +28,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false",
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingHttpNotFound2Test {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkHighLogLevelTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkHighLogLevelTest.java
index 2b40fe46..2d03f1ad 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkHighLogLevelTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkHighLogLevelTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -27,6 +28,7 @@
"entur.logging.http.ondemand.failure.http.enabled=false",
"entur.logging.http.ondemand.failure.logger.level=error",
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingHttpOkHighLogLevelTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTest.java
index 39f47497..ad2f2a52 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -20,6 +21,7 @@
// Triggers by error log level or >= 400 status code by default
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true"})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingHttpOkTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTroubleshootingTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTroubleshootingTest.java
index 5e55d000..3d8455b0 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTroubleshootingTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingHttpOkTroubleshootingTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.*;
import org.springframework.test.context.TestPropertySource;
@@ -22,6 +23,7 @@
"entur.logging.http.ondemand.failure.logger.enabled=false",
"entur.logging.http.ondemand.troubleshoot.http.headers[0].name=X-DEBUG"
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingHttpOkTroubleshootingTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingSlowResponseTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingSlowResponseTest.java
index 25b0f34c..2dedc579 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingSlowResponseTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncOndemandWebLoggingSlowResponseTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -29,6 +30,7 @@
"entur.logging.http.ondemand.failure.duration.enabled=true",
"entur.logging.http.ondemand.failure.duration.after=500ms",
})
+@AutoConfigureTestRestTemplate
public class AsyncOndemandWebLoggingSlowResponseTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatTest.java
index 0522d23f..442768d8 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatTest.java
@@ -7,14 +7,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class AsyncWebLoggingFormatTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatViaProfileTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatViaProfileTest.java
index 154086f0..5ea2b2c4 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatViaProfileTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatViaProfileTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("local")
+@AutoConfigureTestRestTemplate
public class AsyncWebLoggingFormatViaProfileTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithBigResponsesTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithBigResponsesTest.java
index ddb872dd..738217a6 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithBigResponsesTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithBigResponsesTest.java
@@ -4,9 +4,10 @@
import no.entur.logging.cloud.logback.logstash.test.CompositeConsoleOutputControlClosable;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -14,6 +15,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class AsyncWebLoggingFormatWithBigResponsesTest {
@LocalServerPort
diff --git a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithNewlinesTest.java b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithNewlinesTest.java
index bc68cb19..7668a813 100644
--- a/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithNewlinesTest.java
+++ b/examples/gcp-async-web-example/src/test/java/org/entur/example/web/AsyncWebLoggingFormatWithNewlinesTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class AsyncWebLoggingFormatWithNewlinesTest {
@LocalServerPort
diff --git a/examples/azure-grpc-ecosystem-example/README.md b/examples/gcp-grpc-spring-example/README.md
similarity index 62%
rename from examples/azure-grpc-ecosystem-example/README.md
rename to examples/gcp-grpc-spring-example/README.md
index 87077ce1..27b35ed5 100644
--- a/examples/azure-grpc-ecosystem-example/README.md
+++ b/examples/gcp-grpc-spring-example/README.md
@@ -1,4 +1,4 @@
-# azure-grpc-ecosystem-example
+# gcp-grpc-spring-example
Simple gRPC server example with a few unit tests.
diff --git a/examples/gcp-grpc-ecosystem-example/build.gradle b/examples/gcp-grpc-spring-example/build.gradle
similarity index 87%
rename from examples/gcp-grpc-ecosystem-example/build.gradle
rename to examples/gcp-grpc-spring-example/build.gradle
index 5a471f30..873cd14d 100644
--- a/examples/gcp-grpc-ecosystem-example/build.gradle
+++ b/examples/gcp-grpc-spring-example/build.gradle
@@ -1,21 +1,21 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
id "com.google.protobuf" version "0.9.6"
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
dependencies {
implementation project(':on-demand:on-demand-spring-boot-starter-grpc')
- implementation project(':gcp:spring-boot-starter-gcp-grpc-ecosystem')
- implementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-ecosystem')
+ implementation project(':gcp:spring-boot-starter-gcp-grpc-spring')
+ implementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-spring')
implementation project(':trace:server:correlation-id-trace-grpc-netty')
implementation project(':trace:mdc-context-grpc-netty')
- implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
implementation("io.grpc:grpc-api:$grpcVersion")
implementation("io.grpc:grpc-core:$grpcVersion")
@@ -29,8 +29,8 @@ dependencies {
implementation("javax.annotation:javax.annotation-api:1.3.2")
- testImplementation project(":gcp:spring-boot-starter-gcp-grpc-ecosystem-test")
- testImplementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-ecosystem-test')
+ testImplementation project(":gcp:spring-boot-starter-gcp-grpc-spring-test")
+ testImplementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-spring-test')
testImplementation("org.springframework.boot:spring-boot-starter-test")
// added due to grpc plugin dependency resolution problem
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/DemoApplication.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/DemoApplication.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/DemoApplication.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/DemoApplication.java
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingController.java
similarity index 92%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingController.java
index 044bb3d0..6dea440c 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java
+++ b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingController.java
@@ -1,12 +1,12 @@
package no.entur.grpc.example;
-import net.devh.boot.grpc.server.service.GrpcService;
import no.entur.logging.cloud.gcp.trace.spring.grpc.interceptor.OrderedTraceIdGrpcMdcContextServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
// note: order is reversed compared to lognet
@GrpcService(interceptors = {
@@ -21,7 +21,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
@Profile("!ondemand")
public class GreetingController extends AbstractGreetingController {
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
similarity index 93%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
index 7570840f..4e3404ff 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
+++ b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
@@ -1,13 +1,13 @@
package no.entur.grpc.example;
-import net.devh.boot.grpc.server.service.GrpcService;
import no.entur.logging.cloud.gcp.trace.spring.grpc.interceptor.OrderedTraceIdGrpcMdcContextServerInterceptor;
import no.entur.logging.cloud.spring.ondemand.grpc.scope.GrpcLoggingScopeContextInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
@Profile("ondemand")
@GrpcService(interceptors = {
@@ -22,7 +22,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
public class GreetingControllerWithOnDemandLogging extends AbstractGreetingController {
}
\ No newline at end of file
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java b/examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
rename to examples/gcp-grpc-spring-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/proto/greeting_message.proto b/examples/gcp-grpc-spring-example/src/main/proto/greeting_message.proto
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/proto/greeting_message.proto
rename to examples/gcp-grpc-spring-example/src/main/proto/greeting_message.proto
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/proto/greeting_service.proto b/examples/gcp-grpc-spring-example/src/main/proto/greeting_service.proto
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/proto/greeting_service.proto
rename to examples/gcp-grpc-spring-example/src/main/proto/greeting_service.proto
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/resources/application.properties b/examples/gcp-grpc-spring-example/src/main/resources/application.properties
similarity index 57%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/resources/application.properties
rename to examples/gcp-grpc-spring-example/src/main/resources/application.properties
index 28667eaa..63fcf66f 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/resources/application.properties
+++ b/examples/gcp-grpc-spring-example/src/main/resources/application.properties
@@ -11,6 +11,7 @@ logging.level.root=debug
entur.jwt.mdc.enabled=true
-entur.logging.grpc.trace.mdc.interceptor-order=50
-entur.logging.request-response.grpc.server.interceptor-order=5170
-entur.logging.request-response.grpc.server.exception-handler.interceptor-order=5175
+# Optional:
+# entur.logging.grpc.trace.mdc.interceptor-order=1000
+# entur.logging.request-response.grpc.server.interceptor-order=2000
+# entur.logging.request-response.grpc.server.exception-handler.interceptor-order=3000
diff --git a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringAbstractGrpcTest.java
similarity index 93%
rename from examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java
rename to examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringAbstractGrpcTest.java
index 041e2039..2a115c02 100644
--- a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java
+++ b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringAbstractGrpcTest.java
@@ -9,7 +9,7 @@
import java.util.concurrent.TimeUnit;
-public class EcosystemAbstractGrpcTest {
+public class SpringAbstractGrpcTest {
// https://github.com/olivere/grpc-demo/blob/master/java-client/src/main/java/com/altf4/grpc/client/ExampleClient.java
public static final int MAX_INBOUND_MESSAGE_SIZE = 1 << 20;
@@ -23,11 +23,11 @@ public class EcosystemAbstractGrpcTest {
protected final int maxOutboundMessageSize;
protected final int maxInboundMessageSize;
- public EcosystemAbstractGrpcTest() {
+ public SpringAbstractGrpcTest() {
this(MAX_INBOUND_MESSAGE_SIZE, MAX_OUTBOUND_MESSAGE_SIZE);
}
- public EcosystemAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
+ public SpringAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
this.maxInboundMessageSize = maxInboundMessageSize;
this.maxOutboundMessageSize = maxOutboundMessageSize;
}
diff --git a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGreetingTest.java
similarity index 98%
rename from examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java
rename to examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGreetingTest.java
index 9378bc68..f3ff284b 100644
--- a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java
+++ b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGreetingTest.java
@@ -7,8 +7,6 @@
import no.entur.logging.cloud.api.DevOpsLevel;
import no.entur.logging.cloud.grpc.trace.CorrelationIdGrpcMdcContext;
-import no.entur.logging.cloud.logback.logstash.test.CompositeConsoleOutputControl;
-import no.entur.logging.cloud.logback.logstash.test.CompositeConsoleOutputControlClosable;
import no.entur.logging.cloud.logback.logstash.test.junit.CaptureLogStatements;
import no.entur.logging.cloud.logback.logstash.test.junit.LogStatement;
import no.entur.logging.cloud.logback.logstash.test.junit.LogStatements;
@@ -42,7 +40,7 @@
@SpringBootTest
@DirtiesContext
@CaptureLogStatements(level = DevOpsLevel.DEBUG, value = {"no.entur", "org.entur"})
-public class EcosystemGreetingTest extends EcosystemAbstractGrpcTest {
+public class SpringGreetingTest extends SpringAbstractGrpcTest {
@Test
public void testBlockingRequestsOnSameStub() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGrpcLoggingFormatTest.java
similarity index 95%
rename from examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java
rename to examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGrpcLoggingFormatTest.java
index e59d3f80..1165509d 100644
--- a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java
+++ b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringGrpcLoggingFormatTest.java
@@ -12,7 +12,7 @@
@SpringBootTest
@DirtiesContext
-public class EcosystemGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderTest() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingFormatTest.java
similarity index 94%
rename from examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java
rename to examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingFormatTest.java
index f2fb4297..b88745eb 100644
--- a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java
+++ b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingFormatTest.java
@@ -16,9 +16,12 @@
@SpringBootTest
@ActiveProfiles("ondemand")
-@TestPropertySource(properties = {"entur.logging.grpc.ondemand.enabled=true"})
+@TestPropertySource(properties = {
+ "entur.logging.grpc.ondemand.enabled=true",
+ "entur.logging.grpc.ondemand.failure.logger.enabled=false",
+})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderExpectFullLogging() {
diff --git a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
similarity index 95%
rename from examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
rename to examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
index 5eee1b84..1a9059f9 100644
--- a/examples/gcp-grpc-ecosystem-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
+++ b/examples/gcp-grpc-spring-example/src/test/java/no/entur/grpc/example/SpringOndemandGrpcLoggingHighLogLevelTest.java
@@ -26,7 +26,7 @@
"entur.logging.http.ondemand.failure.logger.level=error",
})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingHighLogLevelTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingHighLogLevelTest extends SpringAbstractGrpcTest {
@Test
public void useHumanReadablePlainEncoderExpectFullLogging() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/README.md b/examples/gcp-grpc-spring-without-test-artifacts-example/README.md
similarity index 73%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/README.md
rename to examples/gcp-grpc-spring-without-test-artifacts-example/README.md
index cd627513..1ef325b7 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/README.md
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/README.md
@@ -1,4 +1,4 @@
-# gcp-grpc-ecosystem-without-test-artifacts-example
+# gcp-grpc-spring-without-test-artifacts-example
Simple GRPC service example without test dependencies from this project.
This emulates the deployed application (i.e. machine-readable JSON).
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/build.gradle b/examples/gcp-grpc-spring-without-test-artifacts-example/build.gradle
similarity index 88%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/build.gradle
rename to examples/gcp-grpc-spring-without-test-artifacts-example/build.gradle
index 49f46454..7d431ea0 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/build.gradle
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/build.gradle
@@ -1,20 +1,20 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
id "com.google.protobuf" version "0.9.6"
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
dependencies {
implementation project(':on-demand:on-demand-spring-boot-starter-grpc')
- implementation project(':gcp:spring-boot-starter-gcp-grpc-ecosystem')
- implementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-ecosystem')
+ implementation project(':gcp:spring-boot-starter-gcp-grpc-spring')
+ implementation project(':gcp:request-response-spring-boot-starter-gcp-grpc-spring')
implementation project(':trace:server:correlation-id-trace-grpc-netty')
- implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ implementation project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
implementation project(':trace:mdc-context-grpc-netty')
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/AbstractGreetingController.java
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/DemoApplication.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/DemoApplication.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/DemoApplication.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/DemoApplication.java
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingController.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java
similarity index 92%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingController.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java
index 044bb3d0..6dea440c 100644
--- a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingController.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingController.java
@@ -1,12 +1,12 @@
package no.entur.grpc.example;
-import net.devh.boot.grpc.server.service.GrpcService;
import no.entur.logging.cloud.gcp.trace.spring.grpc.interceptor.OrderedTraceIdGrpcMdcContextServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
// note: order is reversed compared to lognet
@GrpcService(interceptors = {
@@ -21,7 +21,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
@Profile("!ondemand")
public class GreetingController extends AbstractGreetingController {
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
similarity index 93%
rename from examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
index 7570840f..4e3404ff 100644
--- a/examples/gcp-grpc-ecosystem-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/GreetingControllerWithOnDemandLogging.java
@@ -1,13 +1,13 @@
package no.entur.grpc.example;
-import net.devh.boot.grpc.server.service.GrpcService;
import no.entur.logging.cloud.gcp.trace.spring.grpc.interceptor.OrderedTraceIdGrpcMdcContextServerInterceptor;
import no.entur.logging.cloud.spring.ondemand.grpc.scope.GrpcLoggingScopeContextInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.OrderedGrpcLoggingServerInterceptor;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcExceptionHandlerInterceptor;
import no.entur.logging.cloud.trace.spring.grpc.interceptor.OrderedCorrelationIdGrpcMdcContextServerInterceptor;
import org.springframework.context.annotation.Profile;
+import org.springframework.grpc.server.service.GrpcService;
@Profile("ondemand")
@GrpcService(interceptors = {
@@ -22,7 +22,7 @@
// Validation
MyValidationServerInterceptor.class,
-}, sortInterceptors = true)
+})
public class GreetingControllerWithOnDemandLogging extends AbstractGreetingController {
}
\ No newline at end of file
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyGrpcConfig.java
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/java/no/entur/grpc/example/MyValidationServerInterceptor.java
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/proto/greeting_message.proto b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/proto/greeting_message.proto
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/proto/greeting_message.proto
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/proto/greeting_message.proto
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/proto/greeting_service.proto b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/proto/greeting_service.proto
similarity index 100%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/main/proto/greeting_service.proto
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/proto/greeting_service.proto
diff --git a/examples/gcp-grpc-ecosystem-example/src/main/resources/application.properties b/examples/gcp-grpc-spring-without-test-artifacts-example/src/main/resources/application.properties
similarity index 100%
rename from examples/gcp-grpc-ecosystem-example/src/main/resources/application.properties
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/main/resources/application.properties
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringAbstractGrpcTest.java
similarity index 92%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringAbstractGrpcTest.java
index 041e2039..055e9deb 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemAbstractGrpcTest.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringAbstractGrpcTest.java
@@ -1,4 +1,4 @@
-package no.entur.grpc.example;
+package no.entur.grpc.example.without.test.artifacts;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
@@ -9,7 +9,7 @@
import java.util.concurrent.TimeUnit;
-public class EcosystemAbstractGrpcTest {
+public class SpringAbstractGrpcTest {
// https://github.com/olivere/grpc-demo/blob/master/java-client/src/main/java/com/altf4/grpc/client/ExampleClient.java
public static final int MAX_INBOUND_MESSAGE_SIZE = 1 << 20;
@@ -23,11 +23,11 @@ public class EcosystemAbstractGrpcTest {
protected final int maxOutboundMessageSize;
protected final int maxInboundMessageSize;
- public EcosystemAbstractGrpcTest() {
+ public SpringAbstractGrpcTest() {
this(MAX_INBOUND_MESSAGE_SIZE, MAX_OUTBOUND_MESSAGE_SIZE);
}
- public EcosystemAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
+ public SpringAbstractGrpcTest(int maxInboundMessageSize, int maxOutboundMessageSize) {
this.maxInboundMessageSize = maxInboundMessageSize;
this.maxOutboundMessageSize = maxOutboundMessageSize;
}
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGreetingTest.java
similarity index 98%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGreetingTest.java
index 1b4209cf..0f3e8f7b 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGreetingTest.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGreetingTest.java
@@ -1,4 +1,4 @@
-package no.entur.grpc.example;
+package no.entur.grpc.example.without.test.artifacts;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.protobuf.Timestamp;
@@ -33,7 +33,7 @@
*/
@SpringBootTest
@DirtiesContext
-public class EcosystemGreetingTest extends EcosystemAbstractGrpcTest {
+public class SpringGreetingTest extends SpringAbstractGrpcTest {
@Test
public void testBlockingRequestsOnSameStub() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGrpcLoggingFormatTest.java
similarity index 83%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGrpcLoggingFormatTest.java
index 562fcef6..e9570c2d 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemGrpcLoggingFormatTest.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringGrpcLoggingFormatTest.java
@@ -1,4 +1,4 @@
-package no.entur.grpc.example;
+package no.entur.grpc.example.without.test.artifacts;
import org.entur.grpc.example.GreetingResponse;
import org.entur.grpc.example.GreetingServiceGrpc;
@@ -10,7 +10,7 @@
@SpringBootTest
@DirtiesContext
-public class EcosystemGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useMachineReadableJsonEncoder() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingFormatTest.java
similarity index 91%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingFormatTest.java
index c3ac0e50..8f5fa78a 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingFormatTest.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingFormatTest.java
@@ -1,4 +1,4 @@
-package no.entur.grpc.example;
+package no.entur.grpc.example.without.test.artifacts;
import io.grpc.StatusRuntimeException;
import org.entur.grpc.example.GreetingResponse;
@@ -16,7 +16,7 @@
@ActiveProfiles("ondemand")
@TestPropertySource(properties = {"entur.logging.grpc.ondemand.enabled=true"})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingFormatTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingFormatTest extends SpringAbstractGrpcTest {
@Test
public void useMachineReadableJsonEncoderExpectFullLogging() throws InterruptedException {
diff --git a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingHighLogLevelTest.java
similarity index 87%
rename from examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
rename to examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingHighLogLevelTest.java
index b87dfdcc..c9ed6f30 100644
--- a/examples/gcp-grpc-ecosystem-without-test-artifacts-example/src/test/java/no/entur/grpc/example/EcosystemOndemandGrpcLoggingHighLogLevelTest.java
+++ b/examples/gcp-grpc-spring-without-test-artifacts-example/src/test/java/no/entur/grpc/example/without/test/artifacts/SpringOndemandGrpcLoggingHighLogLevelTest.java
@@ -1,6 +1,5 @@
-package no.entur.grpc.example;
+package no.entur.grpc.example.without.test.artifacts;
-import io.grpc.StatusRuntimeException;
import org.entur.grpc.example.GreetingResponse;
import org.entur.grpc.example.GreetingServiceGrpc;
import org.junit.jupiter.api.Test;
@@ -25,7 +24,7 @@
"entur.logging.http.ondemand.failure.logger.level=error",
})
@DirtiesContext
-public class EcosystemOndemandGrpcLoggingHighLogLevelTest extends EcosystemAbstractGrpcTest {
+public class SpringOndemandGrpcLoggingHighLogLevelTest extends SpringAbstractGrpcTest {
@Test
public void useMachineReadableJsonEncoderExpectFullLogging() throws InterruptedException {
diff --git a/examples/gcp-web-apache-client-example/build.gradle b/examples/gcp-web-apache-client-example/build.gradle
index 663c3a10..4c490a2d 100644
--- a/examples/gcp-web-apache-client-example/build.gradle
+++ b/examples/gcp-web-apache-client-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -23,6 +23,8 @@ dependencies {
testImplementation project(":gcp:request-response-spring-boot-starter-gcp-web-test");
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java b/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
index b063d3bd..00c4609c 100644
--- a/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
+++ b/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
@@ -1,9 +1,5 @@
package org.entur.example.web.rest;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.hc.client5.http.classic.methods.HttpPost;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
@@ -14,21 +10,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.env.Environment;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-
-import java.io.ByteArrayOutputStream;
-import java.io.CharArrayWriter;
-import java.io.IOException;
-import java.util.concurrent.CompletableFuture;
+import tools.jackson.databind.json.JsonMapper;
@RestController
@RequestMapping("/api/document")
@@ -39,7 +25,7 @@ public class DocumentEndpoint {
@Autowired
private CloseableHttpClient httpclient;
- private ObjectMapper mapper = new ObjectMapper();
+ private JsonMapper mapper = JsonMapper.builder().build();
@PostMapping("/some/method")
public MyEntity someMessage(@RequestBody MyEntity entity, HttpServletRequest request) throws Exception {
diff --git a/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DummyEndpoint.java b/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DummyEndpoint.java
index 96588af3..790a193d 100644
--- a/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DummyEndpoint.java
+++ b/examples/gcp-web-apache-client-example/src/main/java/org/entur/example/web/rest/DummyEndpoint.java
@@ -1,18 +1,9 @@
package org.entur.example.web.rest;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import java.io.CharArrayWriter;
-import java.io.IOException;
-
/**
*
* Simulation of downstream service
diff --git a/examples/gcp-web-apache-client-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java b/examples/gcp-web-apache-client-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
index 5aeef7f4..6b828ab9 100644
--- a/examples/gcp-web-apache-client-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
+++ b/examples/gcp-web-apache-client-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
@@ -7,14 +7,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/build.gradle b/examples/gcp-web-example/build.gradle
index 6b27a7f7..7601e610 100644
--- a/examples/gcp-web-example/build.gradle
+++ b/examples/gcp-web-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -21,6 +21,8 @@ dependencies {
testImplementation project(":gcp:request-response-spring-boot-starter-gcp-web-test");
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/gcp-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java b/examples/gcp-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
index c315dd7e..a5423a02 100644
--- a/examples/gcp-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
+++ b/examples/gcp-web-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
@@ -16,7 +16,6 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.csrf( c -> c.disable() )
.authorizeHttpRequests((authorize) -> {
authorize.requestMatchers("/api/secured/endpoint").fullyAuthenticated();
-
authorize.anyRequest().permitAll();
}
);
diff --git a/examples/gcp-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java b/examples/gcp-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
index e98f74e5..34d6ba89 100644
--- a/examples/gcp-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
+++ b/examples/gcp-web-example/src/main/java/org/entur/example/web/rest/DocumentEndpoint.java
@@ -1,7 +1,6 @@
package org.entur.example.web.rest;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
@@ -13,6 +12,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import tools.jackson.core.json.JsonFactory;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayWriter;
@@ -86,9 +86,9 @@ ResponseEntity bigResponse() throws IOException {
JsonGenerator generator = factory.createGenerator(writer);
generator.writeStartObject();
- generator.writeStringField("start", "here");
- generator.writeStringField("longValue", generateLongString(64*1024));
- generator.writeStringField("end", "here");
+ generator.writeStringProperty("start", "here");
+ generator.writeStringProperty("longValue", generateLongString(192*1024));
+ generator.writeStringProperty("end", "here");
generator.writeEndObject();
generator.flush();
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
index a9b7baef..3d325402 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorTest.java
@@ -6,9 +6,10 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -16,6 +17,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class ActuatorTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorWithoutExcludesTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorWithoutExcludesTest.java
index eadfb3d7..1cbe9888 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorWithoutExcludesTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/ActuatorWithoutExcludesTest.java
@@ -4,9 +4,10 @@
import no.entur.logging.cloud.logback.logstash.test.CompositeConsoleOutputControlClosable;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -18,6 +19,7 @@
@TestPropertySource(properties = {
"entur.logging.request-response.logbook.default-excludes=false"
})
+@AutoConfigureTestRestTemplate
public class ActuatorWithoutExcludesTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
index 89499596..4d7854d2 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -30,6 +31,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpBadRequestTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1AsyncTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1AsyncTest.java
index a2b6d220..4ed55268 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1AsyncTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1AsyncTest.java
@@ -7,9 +7,10 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -27,6 +28,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("async")
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400", "entur.logging.http.ondemand.failure.logger.level=error", "entur.logging.http.ondemand.failure.level=info"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound1AsyncTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
index b1e7934f..105be14f 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -26,6 +27,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound1Test {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
index 563f0f84..aa04e47f 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -27,6 +28,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.enabled=false"
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound2Test {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelLazyTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelLazyTest.java
index 047a2d1a..31271645 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelLazyTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelLazyTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -28,6 +29,7 @@
"entur.logging.http.ondemand.failure.logger.level=error",
"entur.logging.http.ondemand.flushMode=lazy",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkHighLogLevelLazyTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
index a5480078..f6a1d260 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -27,6 +28,7 @@
"entur.logging.http.ondemand.failure.http.enabled=false",
"entur.logging.http.ondemand.failure.logger.level=error",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkHighLogLevelTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
index a5158063..d9b8a97f 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -20,6 +21,7 @@
// Triggers by error log level or >= 400 status code by default
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
index a3e6d842..2a73a0f9 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.*;
import org.springframework.test.context.TestPropertySource;
@@ -22,6 +23,7 @@
"entur.logging.http.ondemand.failure.logger.enabled=false",
"entur.logging.http.ondemand.troubleshoot.http.headers[0].name=X-DEBUG"
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTroubleshootingTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingSlowResponseTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingSlowResponseTest.java
index a99e7998..b68e05ee 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingSlowResponseTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/OndemandWebLoggingSlowResponseTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -29,6 +30,7 @@
"entur.logging.http.ondemand.failure.duration.enabled=true",
"entur.logging.http.ondemand.failure.duration.after=500ms",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingSlowResponseTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp401Test.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp401Test.java
index c518b234..19639e8c 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp401Test.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp401Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -28,8 +29,7 @@
"logbook.secure-filter.enabled=false"
})
-
-
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatHttp401Test {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403Test.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403Test.java
index 39a0471a..b652cd06 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403Test.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403Test.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -21,6 +22,7 @@
@TestPropertySource(properties = {
"logbook.secure-filter.enabled=false"
})
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatHttp403Test {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403ViaAuthorizationDeniedExceptionTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403ViaAuthorizationDeniedExceptionTest.java
index 2024103b..95c9321b 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403ViaAuthorizationDeniedExceptionTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp403ViaAuthorizationDeniedExceptionTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -20,6 +21,7 @@
"logbook.secure-filter.enabled=false", // 401 and 403 is logged twice via Sink.writeBoth(..)
"entur.logging.request-response.http.server.controller-advice.enabled=true"
})
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatHttp403ViaAuthorizationDeniedExceptionTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp500ViaNullpointerExceptionTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp500ViaNullpointerExceptionTest.java
index 663eb58f..604e2afd 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp500ViaNullpointerExceptionTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatHttp500ViaNullpointerExceptionTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -19,6 +20,7 @@
@TestPropertySource(properties = {
"entur.logging.request-response.http.server.controller-advice.enabled=true"
})
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatHttp500ViaNullpointerExceptionTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
index 5aeef7f4..6b828ab9 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
@@ -7,14 +7,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
index 039197e6..554778f4 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaProfileTest.java
@@ -6,9 +6,10 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
@@ -24,6 +25,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("local")
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatViaProfileTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
index 26edb1d3..b36f4754 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatViaPropertyTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -18,6 +19,7 @@
@TestPropertySource(properties = {
"entur.logging.style=HumanReadableJson",
})
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatViaPropertyTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
index b8779881..5ca80c03 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithBigResponsesTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatWithBigResponsesTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
index 0e9d7d4f..26503314 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingFormatWithNewlinesTest.java
@@ -5,9 +5,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -15,6 +16,7 @@
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatWithNewlinesTest {
@LocalServerPort
diff --git a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
index 729eb1b2..a245a240 100644
--- a/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
+++ b/examples/gcp-web-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
@@ -7,9 +7,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -21,6 +22,7 @@
"entur.logging.request-response.format.server.message.host=false",
"entur.logging.request-response.format.server.message.port=false"
})
+@AutoConfigureTestRestTemplate
public class WebLoggingMessageFormatTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/build.gradle b/examples/gcp-web-without-test-artifacts-example/build.gradle
index 8def6231..f7008437 100644
--- a/examples/gcp-web-without-test-artifacts-example/build.gradle
+++ b/examples/gcp-web-without-test-artifacts-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -17,6 +17,8 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/gcp-web-without-test-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java b/examples/gcp-web-without-test-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
index 04a96010..bed6c3b4 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
@@ -12,7 +12,7 @@ public class WebSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
- .csrf().disable()
+ .csrf( (c) -> c.disable())
.authorizeHttpRequests((authz) -> authz
.anyRequest().permitAll());
return http.build();
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
index 7d2f8be3..769647d4 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpBadRequestTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -25,6 +26,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpBadRequestTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
index 9c4614fa..a5d22758 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound1Test.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -21,6 +22,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound1Test {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
index 348deda9..15a796b3 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpNotFound2Test.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -22,6 +23,7 @@
*/
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpNotFound2Test {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
index cefcc947..4a8ede64 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkHighLogLevelTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -24,6 +25,7 @@
"entur.logging.http.ondemand.enabled=true",
"entur.logging.http.ondemand.failure.logger.level=error",
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkHighLogLevelTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
index d4c04aa7..8cb05668 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -16,6 +17,7 @@
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"entur.logging.http.ondemand.enabled=true", "entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400"})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
index 27dc3ca0..e36c3414 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/OndemandWebLoggingHttpOkTroubleshootingTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.*;
import org.springframework.test.context.TestPropertySource;
@@ -19,6 +20,7 @@
"entur.logging.http.ondemand.failure.http.statusCode.equalOrHigherThan=400",
"entur.logging.http.ondemand.troubleshoot.http.headers[0].name=X-DEBUG"
})
+@AutoConfigureTestRestTemplate
public class OndemandWebLoggingHttpOkTroubleshootingTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
index 56ce801c..0839b853 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
@@ -5,14 +5,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
index a804db29..4ce02ec8 100644
--- a/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
+++ b/examples/gcp-web-without-test-artifacts-example/src/test/java/org/entur/example/web/WebLoggingMessageFormatTest.java
@@ -3,9 +3,10 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -19,6 +20,7 @@
"entur.logging.request-response.format.server.message.host=false",
"entur.logging.request-response.format.server.message.port=false"
})
+@AutoConfigureTestRestTemplate
public class WebLoggingMessageFormatTest {
@LocalServerPort
diff --git a/examples/gcp-web-without-test-or-ondemand-artifacts-example/build.gradle b/examples/gcp-web-without-test-or-ondemand-artifacts-example/build.gradle
index 1ca24142..f1fdf86c 100644
--- a/examples/gcp-web-without-test-or-ondemand-artifacts-example/build.gradle
+++ b/examples/gcp-web-without-test-or-ondemand-artifacts-example/build.gradle
@@ -1,10 +1,10 @@
plugins {
- id 'org.springframework.boot' version '3.5.7'
+ id 'org.springframework.boot' version '4.0.1'
}
test {
useJUnitPlatform {
- includeEngines 'junit-jupiter', 'junit-vintage'
+ includeEngines 'junit-jupiter'
}
}
@@ -16,6 +16,8 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
+ testImplementation("org.springframework.boot:spring-boot-restclient")
+ testImplementation("org.springframework.boot:spring-boot-resttestclient")
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api")
diff --git a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
index 04a96010..bed6c3b4 100644
--- a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
+++ b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/main/java/org/entur/example/web/config/WebSecurityConfig.java
@@ -12,7 +12,7 @@ public class WebSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
- .csrf().disable()
+ .csrf( (c) -> c.disable())
.authorizeHttpRequests((authz) -> authz
.anyRequest().permitAll());
return http.build();
diff --git a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/ErrorWebLoggingFormatTest.java b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/ErrorWebLoggingFormatTest.java
index ed1b57e7..9195bd53 100644
--- a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/ErrorWebLoggingFormatTest.java
+++ b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/ErrorWebLoggingFormatTest.java
@@ -3,15 +3,17 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class ErrorWebLoggingFormatTest {
@Autowired
diff --git a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
index 45e4b0be..fbe7ae1b 100644
--- a/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
+++ b/examples/gcp-web-without-test-or-ondemand-artifacts-example/src/test/java/org/entur/example/web/WebLoggingFormatTest.java
@@ -5,14 +5,16 @@
import org.entur.example.web.rest.MyEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@AutoConfigureTestRestTemplate
public class WebLoggingFormatTest {
@Autowired
diff --git a/gcp/README.md b/gcp/README.md
index be62a5af..06b79f23 100644
--- a/gcp/README.md
+++ b/gcp/README.md
@@ -208,24 +208,24 @@ and
```xml
no.entur.logging.cloud
- spring-boot-starter-gcp-grpc-ecosystem
+ spring-boot-starter-gcp-grpc-spring
${cloud-logging.version}
no.entur.logging.cloud
- spring-boot-starter-gcp-grpc-ecosystem-test
+ spring-boot-starter-gcp-grpc-spring-test
${cloud-logging.version}
test
no.entur.logging.cloud
- request-response-spring-boot-starter-gcp-grpc-ecosystem
+ request-response-spring-boot-starter-gcp-grpc-spring
${cloud-logging.version}
no.entur.logging.cloud
- request-response-spring-boot-starter-gcp-grpc-ecosystem-test
+ request-response-spring-boot-starter-gcp-grpc-spring-test
${cloud-logging.version}
test
@@ -285,11 +285,11 @@ ext {
add
```groovy
-implementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-ecosystem:${cloudLoggingVersion}")
-testImplementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-ecosystem-test:${cloudLoggingVersion}")
+implementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-spring:${cloudLoggingVersion}")
+testImplementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-spring-test:${cloudLoggingVersion}")
// request-response logging
-implementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-ecosystem:${cloudLoggingVersion}")
-testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-ecosystem-test:${cloudLoggingVersion}")
+implementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-spring:${cloudLoggingVersion}")
+testImplementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-spring-test:${cloudLoggingVersion}")
// on-demand logging support
implementation("no.entur.logging.cloud:on-demand-spring-boot-starter-grpc:${cloudLoggingVersion}")
// metrics
diff --git a/gcp/logback-logstash-encoder-gcp/build.gradle b/gcp/logback-logstash-encoder-gcp/build.gradle
index 135179b7..7f4e5b78 100644
--- a/gcp/logback-logstash-encoder-gcp/build.gradle
+++ b/gcp/logback-logstash-encoder-gcp/build.gradle
@@ -7,7 +7,7 @@ dependencies {
api ("ch.qos.logback:logback-core")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api("com.fasterxml.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-core")
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/SimpleMdcJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/SimpleMdcJsonProvider.java
index 9555bf89..fd339072 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/SimpleMdcJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/SimpleMdcJsonProvider.java
@@ -1,7 +1,7 @@
package no.entur.logging.cloud.gcp.logback.logstash;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractJsonProvider;
import java.io.IOException;
@@ -16,7 +16,7 @@
public class SimpleMdcJsonProvider extends AbstractJsonProvider {
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
Map mdcProperties = event.getMDCPropertyMap();
if (mdcProperties != null && !mdcProperties.isEmpty()) {
for (Map.Entry entry : mdcProperties.entrySet()) {
@@ -25,7 +25,7 @@ public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOExcep
if(key == null || value == null) {
continue;
}
- generator.writeStringField(key, value);
+ generator.writeStringProperty(key, value);
}
}
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogSeverityJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogSeverityJsonProvider.java
index 2e7df4bd..79d53a16 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogSeverityJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogSeverityJsonProvider.java
@@ -2,7 +2,7 @@
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractFieldJsonProvider;
import net.logstash.logback.composite.FieldNamesAware;
import net.logstash.logback.composite.JsonWritingUtils;
@@ -77,7 +77,7 @@ public StackdriverLogSeverityJsonProvider() {
}
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
JsonWritingUtils.writeStringField(generator, getFieldName(), getSeverity(event).toString());
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogstashEncoder.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogstashEncoder.java
index bb3f1afb..f1f8f83b 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogstashEncoder.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverLogstashEncoder.java
@@ -57,7 +57,7 @@ protected AbstractCompositeJsonFormatter createFormatter() {
}
loggingEventJsonProviders.addProvider(new StackdriverLogSeverityJsonProvider());
- loggingEventJsonProviders.addProvider(new StackdriverMessageJsonProvider());
+ loggingEventJsonProviders.addProvider(new StackdriverMessageJsonProvider(formatter));
return formatter;
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverMessageJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverMessageJsonProvider.java
index e00fdbac..ec91ed70 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverMessageJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverMessageJsonProvider.java
@@ -1,9 +1,11 @@
package no.entur.logging.cloud.gcp.logback.logstash;
+import ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter;
+import ch.qos.logback.classic.pattern.ThrowableHandlingConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
-import ch.qos.logback.classic.spi.StackTraceElementProxy;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
+import net.logstash.logback.LogstashFormatter;
import net.logstash.logback.composite.JsonWritingUtils;
import net.logstash.logback.composite.loggingevent.MessageJsonProvider;
@@ -11,69 +13,76 @@
public class StackdriverMessageJsonProvider extends MessageJsonProvider {
+ private final LogstashFormatter formatter;
+ private ThrowableHandlingConverter throwableConverter;
+
+ public StackdriverMessageJsonProvider(LogstashFormatter formatter) {
+ this.formatter = formatter;
+ }
+
+ @Override
+ public void start() {
+ super.start();
+ throwableConverter = formatter.getThrowableConverter();
+ if(throwableConverter == null) {
+ // this should never happen
+ throwableConverter = createThrowableConverter();
+ }
+
+ if(!throwableConverter.isStarted()) {
+ throwableConverter.start();
+ }
+ }
+
+ protected ThrowableHandlingConverter createThrowableConverter() {
+ ExtendedThrowableProxyConverter converter = new ExtendedThrowableProxyConverter();
+ converter.setContext(getContext());
+ return converter;
+ }
+
+ @Override
+ public void stop() {
+ super.stop();
+ if(throwableConverter != null) {
+ if(throwableConverter.isStarted()) {
+ throwableConverter.stop();
+ }
+ }
+ }
+
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
IThrowableProxy throwableProxy = event.getThrowableProxy();
if (throwableProxy != null) {
String formattedMessage = event.getFormattedMessage();
- String message = throwableProxy.getMessage();
- StringBuilder messageWithStackTrace = new StringBuilder();
- if(formattedMessage != null && !formattedMessage.isEmpty() && message != null && !message.isEmpty()) {
- messageWithStackTrace.append(formattedMessage);
-
- if(Character.isLetterOrDigit(formattedMessage.charAt(formattedMessage.length() - 1))) {
- messageWithStackTrace.append('.');
- }
-
- messageWithStackTrace.append(' ');
- messageWithStackTrace.append(message);
- messageWithStackTrace.append('\n');
- } else if(formattedMessage != null && !formattedMessage.isEmpty()) {
- messageWithStackTrace.append(formattedMessage);
- messageWithStackTrace.append('\n');
- } else if(message != null && !message.isEmpty()) {
- messageWithStackTrace.append(message);
- messageWithStackTrace.append('\n');
- }
- writeStack(throwableProxy, "", messageWithStackTrace);
+ String stacktrace = throwableConverter.convert(event);
- JsonWritingUtils.writeStringField(generator, getFieldName(), messageWithStackTrace.toString());
+ boolean writeFormattedMessage = formattedMessage != null && !formattedMessage.isEmpty();
+ boolean writeStacktrace = stacktrace != null && !stacktrace.isEmpty();
+
+ if(writeFormattedMessage && writeStacktrace) {
+ // stacktrace is on the form:
+ // "exception-name colon exception-message newline tab at x.y.z newline tab at a.b.c and so on"
+ // so add a space and potentially a dot between the log statement message and the first line of the
+ // formatted stacktrace
+ String message;
+ if (Character.isLetterOrDigit(formattedMessage.charAt(formattedMessage.length() - 1))) {
+ message = formattedMessage + ". " + stacktrace;
+ } else {
+ message = formattedMessage + ' ' + stacktrace;
+ }
+ JsonWritingUtils.writeStringField(generator, getFieldName(), message);
+ } else if (writeStacktrace) {
+ JsonWritingUtils.writeStringField(generator, getFieldName(), stacktrace);
+ } else if (writeFormattedMessage) {
+ JsonWritingUtils.writeStringField(generator, getFieldName(), formattedMessage);
+ } else {
+ super.writeTo(generator, event);
+ }
} else {
super.writeTo(generator, event);
}
}
-
- /**
- * Format stack-trace
- *
- * @see https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-contrib/google-cloud-logging-logback
- */
- static void writeStack(IThrowableProxy throwProxy, String prefix, StringBuilder payload) {
- if (throwProxy == null) {
- return;
- }
- payload
- .append(prefix)
- .append(throwProxy.getClassName())
- .append(": ")
- .append(throwProxy.getMessage())
- .append('\n');
- StackTraceElementProxy[] trace = throwProxy.getStackTraceElementProxyArray();
- if (trace == null) {
- trace = new StackTraceElementProxy[0];
- }
-
- int commonFrames = throwProxy.getCommonFrames();
- int printFrames = trace.length - commonFrames;
- for (int i = 0; i < printFrames; i++) {
- payload.append(" ").append(trace[i]).append('\n');
- }
- if (commonFrames != 0) {
- payload.append(" ... ").append(commonFrames).append(" common frames elided\n");
- }
-
- writeStack(throwProxy.getCause(), "caused by: ", payload);
- }
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverOpenTelemetryTraceMdcJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverOpenTelemetryTraceMdcJsonProvider.java
index e27dd2a6..101fdf81 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverOpenTelemetryTraceMdcJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverOpenTelemetryTraceMdcJsonProvider.java
@@ -1,12 +1,8 @@
package no.entur.logging.cloud.gcp.logback.logstash;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.spi.DeferredProcessingAware;
-import com.fasterxml.jackson.core.JsonGenerator;
-import net.logstash.logback.composite.AbstractFieldJsonProvider;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractJsonProvider;
-import net.logstash.logback.composite.FieldNamesAware;
-import net.logstash.logback.fieldnames.LogstashFieldNames;
import java.io.IOException;
import java.util.Map;
@@ -20,12 +16,12 @@
public class StackdriverOpenTelemetryTraceMdcJsonProvider extends AbstractJsonProvider {
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
Map mdcProperties = event.getMDCPropertyMap();
if (mdcProperties != null && !mdcProperties.isEmpty()) {
String traceId = mdcProperties.get("traceId");
if(traceId != null) {
- generator.writeStringField("trace", traceId);
+ generator.writeStringProperty("trace", traceId);
}
for (Map.Entry entry : mdcProperties.entrySet()) {
String key = entry.getKey();
@@ -33,7 +29,7 @@ public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOExcep
if(key == null || value == null) {
continue;
}
- generator.writeStringField(key, value);
+ generator.writeStringProperty(key, value);
}
}
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverServiceContextJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverServiceContextJsonProvider.java
index 8a5d6017..65d439c5 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverServiceContextJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverServiceContextJsonProvider.java
@@ -1,7 +1,7 @@
package no.entur.logging.cloud.gcp.logback.logstash;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractFieldJsonProvider;
import net.logstash.logback.composite.FieldNamesAware;
import net.logstash.logback.composite.JsonWritingUtils;
@@ -72,9 +72,9 @@ public static String parseServiceNameFromHostname(String host) {
}
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
if(service != null) {
- generator.writeObjectFieldStart(getFieldName());
+ generator.writeObjectPropertyStart(getFieldName());
JsonWritingUtils.writeStringField(generator, "service", service);
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverTimestampJsonProvider.java b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverTimestampJsonProvider.java
index 3ddae3e8..335bbdf8 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverTimestampJsonProvider.java
+++ b/gcp/logback-logstash-encoder-gcp/src/main/java/no/entur/logging/cloud/gcp/logback/logstash/StackdriverTimestampJsonProvider.java
@@ -1,7 +1,7 @@
package no.entur.logging.cloud.gcp.logback.logstash;
import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.composite.AbstractJsonProvider;
import net.logstash.logback.composite.JsonWritingUtils;
@@ -20,10 +20,10 @@
public class StackdriverTimestampJsonProvider extends AbstractJsonProvider {
@Override
- public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
- generator.writeObjectFieldStart("timestamp");
- generator.writeNumberField("seconds", event.getTimeStamp() / 1000);
- generator.writeNumberField("nanos", event.getNanoseconds());
+ public void writeTo(JsonGenerator generator, ILoggingEvent event) {
+ generator.writeObjectPropertyStart("timestamp");
+ generator.writeNumberProperty("seconds", event.getTimeStamp() / 1000);
+ generator.writeNumberProperty("nanos", event.getNanoseconds());
generator.writeEndObject();
}
diff --git a/gcp/logback-logstash-encoder-gcp/src/main/resources/logback/logback-default-server.xml b/gcp/logback-logstash-encoder-gcp/src/main/resources/logback/logback-default-server.xml
index 477fa121..a42d17fa 100644
--- a/gcp/logback-logstash-encoder-gcp/src/main/resources/logback/logback-default-server.xml
+++ b/gcp/logback-logstash-encoder-gcp/src/main/resources/logback/logback-default-server.xml
@@ -5,9 +5,13 @@
[ignore]
[ignore]
-
-
+
+
+
+ 24576
+ 192
+
\ No newline at end of file
diff --git a/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverLogbackMetrics.java b/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverLogbackMetrics.java
index 6edef34f..0260702a 100644
--- a/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverLogbackMetrics.java
+++ b/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverLogbackMetrics.java
@@ -2,8 +2,6 @@
import ch.qos.logback.classic.LoggerContext;
import io.micrometer.core.instrument.MeterRegistry;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import org.slf4j.LoggerFactory;
import java.util.Map;
@@ -15,8 +13,6 @@
* Logback driver with extra log levels. Originally copied from LogbackMetrics class in micrometer-core.
*
*/
-@NonNullApi
-@NonNullFields
public class StackdriverLogbackMetrics extends io.micrometer.core.instrument.binder.logging.LogbackMetrics { // extend since there is not interface type
protected final LoggerContext loggerContext;
diff --git a/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverMetricsTurboFilter.java b/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverMetricsTurboFilter.java
index 4fe6b56e..dc1b2d16 100644
--- a/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverMetricsTurboFilter.java
+++ b/gcp/micrometer-gcp/src/main/java/no/entur/logging/cloud/gcp/micrometer/StackdriverMetricsTurboFilter.java
@@ -8,8 +8,6 @@
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import no.entur.logging.cloud.api.DevOpsLevel;
import no.entur.logging.cloud.api.DevOpsMarker;
import no.entur.logging.cloud.micrometer.LoggingEventMetrics;
@@ -17,8 +15,6 @@
import java.util.List;
-@NonNullApi
-@NonNullFields
public class StackdriverMetricsTurboFilter extends TurboFilter implements LoggingEventMetrics {
protected final Counter alertCounter;
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 5a80f128..00000000
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.test.RequestResponseGcpGrpcEcosystemTestAutoConfiguration
\ No newline at end of file
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/README.md b/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/README.md
deleted file mode 100644
index f56a700b..00000000
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# request-response-logging for GCP + Ecosystem
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 7be9f525..00000000
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem.RequestResponseGcpGrpcEcosystemAutoConfiguration
\ No newline at end of file
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/build.gradle b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/build.gradle
similarity index 71%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/build.gradle
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/build.gradle
index 8ea3508e..8b22ef47 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/build.gradle
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/build.gradle
@@ -1,14 +1,16 @@
dependencies {
api project(":gcp:spring-boot-autoconfigure-gcp-test")
- api project(':gcp:request-response-spring-boot-starter-gcp-grpc-ecosystem')
- api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ api project(':gcp:request-response-spring-boot-starter-gcp-grpc-spring')
+ api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")
+
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api ("com.fasterxml.jackson.core:jackson-core")
+ api ("tools.jackson.core:jackson-core")
api("org.slf4j:slf4j-api")
api("org.springframework.boot:spring-boot-autoconfigure")
diff --git a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/test/RequestResponseAzureGrpcEcosystemTestAutoConfiguration.java b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/RequestResponseGcpGrpcSpringTestAutoConfiguration.java
similarity index 81%
rename from azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/test/RequestResponseAzureGrpcEcosystemTestAutoConfiguration.java
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/RequestResponseGcpGrpcSpringTestAutoConfiguration.java
index e613c04e..9d98cf47 100644
--- a/azure/request-response-spring-boot-starter-azure-grpc-ecosystem-test/src/main/java/no/entur/logging/cloud/azure/spring/grpc/ecosystem/test/RequestResponseAzureGrpcEcosystemTestAutoConfiguration.java
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/RequestResponseGcpGrpcSpringTestAutoConfiguration.java
@@ -1,12 +1,13 @@
-package no.entur.logging.cloud.azure.spring.grpc.ecosystem.test;
+package no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.test;
+import no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.RequestResponseGcpGrpcSpringAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
import no.entur.logging.cloud.rr.grpc.GrpcSink;
import no.entur.logging.cloud.rr.grpc.test.CompositeSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingLogLevelLogstashLogbackGrpcSink;
import no.entur.logging.cloud.rr.grpc.test.PrettyPrintingGrpcSink;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
@@ -16,11 +17,11 @@
import org.springframework.context.annotation.Configuration;
@AutoConfigureBefore(value = {
- no.entur.logging.cloud.azure.spring.grpc.ecosystem.RequestResponseAzureGrpcEcosystemAutoConfiguration.class,
+ RequestResponseGcpGrpcSpringAutoConfiguration.class,
})
@Configuration
-public class RequestResponseAzureGrpcEcosystemTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {
+public class RequestResponseGcpGrpcSpringTestAutoConfiguration extends AbstractRequestResponseGrpcSinkAutoConfiguration {
@Bean
@ConditionalOnMissingBean(GrpcSink.class)
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..1676f02d
--- /dev/null
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.test.RequestResponseGcpGrpcSpringTestAutoConfiguration
\ No newline at end of file
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/DemoApplication.java
similarity index 81%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/DemoApplication.java
index 5ad9589d..7df4033b 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/DemoApplication.java
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/DemoApplication.java
@@ -1,4 +1,4 @@
-package no.entur.logging.cloud.spring.logbook.web.test;
+package no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/LoadContextLoggingTest.java
similarity index 98%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/LoadContextLoggingTest.java
index 100a870e..98b7d28a 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem-test/src/test/java/no/entur/logging/cloud/spring/logbook/web/test/LoadContextLoggingTest.java
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring-test/src/test/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/test/LoadContextLoggingTest.java
@@ -1,4 +1,4 @@
-package no.entur.logging.cloud.spring.logbook.web.test;
+package no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.test;
import no.entur.logging.cloud.api.DevOpsLogger;
import no.entur.logging.cloud.api.DevOpsLoggerFactory;
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-spring/README.md b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/README.md
new file mode 100644
index 00000000..7ce08656
--- /dev/null
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/README.md
@@ -0,0 +1 @@
+# request-response-logging for GCP + Spring GRPC
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/build.gradle b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/build.gradle
similarity index 80%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/build.gradle
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring/build.gradle
index 3b33f6bc..da707120 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/build.gradle
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/build.gradle
@@ -4,14 +4,14 @@ dependencies {
api project(':api')
api project(':gcp:logback-logstash-encoder-gcp')
api project(':request-response:netty-grpc')
- api project(':request-response:request-response-spring-boot-autoconfigure-grpc-ecosystem')
+ api project(':request-response:request-response-spring-boot-autoconfigure-grpc-spring')
api ("org.slf4j:slf4j-api")
api ("org.springframework.boot:spring-boot-starter")
api ("org.springframework.boot:spring-boot-autoconfigure")
api ("org.springframework.boot:spring-boot-starter-logging")
- api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
+ api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/RequestResponseGcpGrpcEcosystemAutoConfiguration.java b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/RequestResponseGcpGrpcSpringAutoConfiguration.java
similarity index 65%
rename from gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/RequestResponseGcpGrpcEcosystemAutoConfiguration.java
rename to gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/RequestResponseGcpGrpcSpringAutoConfiguration.java
index 90470849..1bb8003b 100644
--- a/gcp/request-response-spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/ecosystem/RequestResponseGcpGrpcEcosystemAutoConfiguration.java
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/gcp/grpc/spring/RequestResponseGcpGrpcSpringAutoConfiguration.java
@@ -1,17 +1,14 @@
-package no.entur.logging.cloud.gcp.spring.gcp.grpc.ecosystem;
+package no.entur.logging.cloud.gcp.spring.gcp.grpc.spring;
-import no.entur.logging.cloud.spring.grpc.ecosystem.RequestResponseGrpcEcosystemAutoConfiguration;
-import no.entur.logging.cloud.spring.rr.grpc.AbstractRequestResponseGrpcSinkAutoConfiguration;
import no.entur.logging.cloud.spring.rr.grpc.GrpcLoggingCloudProperties;
import no.entur.logging.cloud.spring.rr.grpc.RequestResponseGrpcAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
@Configuration
@AutoConfigureBefore(RequestResponseGrpcAutoConfiguration.class)
-public class RequestResponseGcpGrpcEcosystemAutoConfiguration {
+public class RequestResponseGcpGrpcSpringAutoConfiguration {
@Bean
public GrpcLoggingCloudProperties grpcLoggingCloudProperties() {
diff --git a/gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..9c07902b
--- /dev/null
+++ b/gcp/request-response-spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.gcp.spring.gcp.grpc.spring.RequestResponseGcpGrpcSpringAutoConfiguration
\ No newline at end of file
diff --git a/gcp/spring-boot-autoconfigure-gcp-test/build.gradle b/gcp/spring-boot-autoconfigure-gcp-test/build.gradle
index e63feb39..498d1407 100644
--- a/gcp/spring-boot-autoconfigure-gcp-test/build.gradle
+++ b/gcp/spring-boot-autoconfigure-gcp-test/build.gradle
@@ -15,7 +15,7 @@ dependencies {
api("org.springframework.boot:spring-boot-starter-logging")
api("org.springframework.boot:spring-boot-autoconfigure")
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}"
diff --git a/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighter.java b/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighter.java
index 3cadfb79..55d0b6ac 100644
--- a/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighter.java
+++ b/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighter.java
@@ -1,8 +1,8 @@
package no.entur.logging.cloud.gcp.spring.test;
import org.entur.decorators.syntaxhighlight.DelegateSyntaxHighlighter;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.SyntaxHighlighter;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
public class LogSeveritySyntaxHighlighter extends DelegateSyntaxHighlighter {
diff --git a/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighterFactory.java b/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighterFactory.java
index d38360c6..a2ef2ca4 100644
--- a/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighterFactory.java
+++ b/gcp/spring-boot-autoconfigure-gcp-test/src/main/java/no/entur/logging/cloud/gcp/spring/test/LogSeveritySyntaxHighlighterFactory.java
@@ -1,10 +1,10 @@
package no.entur.logging.cloud.gcp.spring.test;
-import com.fasterxml.jackson.core.JsonGenerator;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
+import tools.jackson.core.JsonGenerator;
import org.entur.decorators.factory.ConfigurableSyntaxHighlighterFactory;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
-import org.entur.jackson.jsh.SyntaxHighlighter;
public class LogSeveritySyntaxHighlighterFactory extends ConfigurableSyntaxHighlighterFactory {
@@ -74,9 +74,9 @@ public LogSeveritySyntaxHighlighterFactory() {
}
@Override
- public SyntaxHighlighter createSyntaxHighlighter(JsonGenerator generator) {
+ public SyntaxHighlighter createSyntaxHighlighter() {
if(cachedSyntaxHighlighter == null) {
- cachedSyntaxHighlighter = super.createSyntaxHighlighter(generator);
+ cachedSyntaxHighlighter = super.createSyntaxHighlighter();
}
return new LogSeveritySyntaxHighlighter(cachedSyntaxHighlighter, severity.defaultValue, severity.debug, severity.info, severity.warning, severity.error, severity.critical, severity.alert, severity.emergency, loggerName, message);
}
diff --git a/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/logback-spring-test.xml b/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/logback-spring-test.xml
index 359bb798..4331decc 100644
--- a/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/logback-spring-test.xml
+++ b/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/logback-spring-test.xml
@@ -3,7 +3,7 @@
-
+
${CONSOLE_LOG_THRESHOLD}
@@ -22,7 +22,7 @@
TODO this seems to add an extract space after the last newline,
but as this is just the human readable format, this is not important.
-->
-
+
green
@@ -30,7 +30,8 @@
blue
magenta
-
+
+
@@ -40,6 +41,11 @@
+
+
+ 24576
+ 192
+
diff --git a/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/spring-defaults-test.xml b/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/spring-defaults-test.xml
index 6e8ca452..a02133d6 100644
--- a/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/spring-defaults-test.xml
+++ b/gcp/spring-boot-autoconfigure-gcp-test/src/main/resources/logback/spring-defaults-test.xml
@@ -6,13 +6,19 @@ Default logback configuration provided for import by spring, modified to give me
- date and time zone
- pid
- application name
+ - stacktrace coloring of selected packages
-->
+
+
+
+
+
-
+
diff --git a/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java b/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java
deleted file mode 100644
index fba26387..00000000
--- a/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/ecosystem/EcosystemGrpcLoggingAutoConfiguration.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package no.entur.logging.cloud.gcp.spring.grpc.ecosystem;
-
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class EcosystemGrpcLoggingAutoConfiguration {
-
- // error handlers
-
-}
diff --git a/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index feb60d67..00000000
--- a/gcp/spring-boot-starter-gcp-grpc-ecosystem/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-no.entur.logging.cloud.gcp.spring.grpc.ecosystem.EcosystemGrpcLoggingAutoConfiguration
\ No newline at end of file
diff --git a/gcp/spring-boot-starter-gcp-grpc-ecosystem-test/build.gradle b/gcp/spring-boot-starter-gcp-grpc-spring-test/build.gradle
similarity index 100%
rename from gcp/spring-boot-starter-gcp-grpc-ecosystem-test/build.gradle
rename to gcp/spring-boot-starter-gcp-grpc-spring-test/build.gradle
diff --git a/gcp/spring-boot-starter-gcp-grpc-ecosystem/build.gradle b/gcp/spring-boot-starter-gcp-grpc-spring/build.gradle
similarity index 90%
rename from gcp/spring-boot-starter-gcp-grpc-ecosystem/build.gradle
rename to gcp/spring-boot-starter-gcp-grpc-spring/build.gradle
index 10b1c66d..8f368792 100644
--- a/gcp/spring-boot-starter-gcp-grpc-ecosystem/build.gradle
+++ b/gcp/spring-boot-starter-gcp-grpc-spring/build.gradle
@@ -18,7 +18,7 @@ dependencies {
api("org.springframework.boot:spring-boot-autoconfigure")
api("org.springframework.boot:spring-boot-starter-logging")
- api("net.devh:grpc-server-spring-boot-starter:${ecosystemGrpcVersion}")
+ api("org.springframework.grpc:spring-grpc-server-spring-boot-starter:${springGrpcVersion}")
api "io.grpc:grpc-netty:${grpcNettyVersion}"
diff --git a/gcp/spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java b/gcp/spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java
new file mode 100644
index 00000000..ed835e0b
--- /dev/null
+++ b/gcp/spring-boot-starter-gcp-grpc-spring/src/main/java/no/entur/logging/cloud/gcp/spring/grpc/spring/SpringGrpcLoggingAutoConfiguration.java
@@ -0,0 +1,10 @@
+package no.entur.logging.cloud.gcp.spring.grpc.spring;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SpringGrpcLoggingAutoConfiguration {
+
+ // error handlers
+
+}
diff --git a/gcp/spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/gcp/spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..980cb44e
--- /dev/null
+++ b/gcp/spring-boot-starter-gcp-grpc-spring/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+no.entur.logging.cloud.gcp.spring.grpc.spring.SpringGrpcLoggingAutoConfiguration
\ No newline at end of file
diff --git a/gcp/spring-boot-starter-gcp-web-test/src/test/java/no/entur/logging/cloud/gcp/spring/web/test/LoadContextLoggingTest.java b/gcp/spring-boot-starter-gcp-web-test/src/test/java/no/entur/logging/cloud/gcp/spring/web/test/LoadContextLoggingTest.java
index 146e14bc..c5b9acc6 100644
--- a/gcp/spring-boot-starter-gcp-web-test/src/test/java/no/entur/logging/cloud/gcp/spring/web/test/LoadContextLoggingTest.java
+++ b/gcp/spring-boot-starter-gcp-web-test/src/test/java/no/entur/logging/cloud/gcp/spring/web/test/LoadContextLoggingTest.java
@@ -11,6 +11,7 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.io.IOException;
@@ -18,7 +19,9 @@
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = WebEnvironment.NONE)
@DirtiesContext
-
+@TestPropertySource(properties = {
+ "entur.logging.test.format.stacktrace.highlight=no.entur,org.entur",
+})
@EnableAutoConfiguration
public class LoadContextLoggingTest {
@@ -28,9 +31,9 @@ public class LoadContextLoggingTest {
public void testHumanReadablePlain() {
CompositeConsoleOutputControl.useHumanReadablePlainEncoder();
- LOGGER.trace("Test trace message");
- LOGGER.debug("Test debug message");
- LOGGER.info("Test info message");
+ LOGGER.trace("Test trace message", new IOException("Trace exception"));
+ LOGGER.debug("Test debug message", new IOException("Trace exception"));
+ LOGGER.info("Test info message", new IOException("Trace exception"));
LOGGER.warn("Test warn message");
LOGGER.error("Test error message");
diff --git a/gcp/spring-boot-starter-gcp-web/src/test/java/no/entur/logging/cloud/gcp/spring/web/LoadContextLoggingTest.java b/gcp/spring-boot-starter-gcp-web/src/test/java/no/entur/logging/cloud/gcp/spring/web/LoadContextLoggingTest.java
index 7a25f53b..09d45df9 100644
--- a/gcp/spring-boot-starter-gcp-web/src/test/java/no/entur/logging/cloud/gcp/spring/web/LoadContextLoggingTest.java
+++ b/gcp/spring-boot-starter-gcp-web/src/test/java/no/entur/logging/cloud/gcp/spring/web/LoadContextLoggingTest.java
@@ -30,4 +30,19 @@ public void testMachineReadableJson() throws IOException {
LOGGER.errorWakeMeUpRightNow("Test error wake me up right now message");
}
+ @Test
+ public void testMachineReadableJsonWithException() throws IOException {
+ IOException e = new IOException("Something went wrong");
+
+ LOGGER.trace("Test trace message with exception", e);
+ LOGGER.debug("Test debug message with exception", e);
+ LOGGER.info("Test info message with exception", e);
+ LOGGER.warn("Test warn message with exception", e);
+ LOGGER.error("Test error message with exception", e);
+
+ LOGGER.errorTellMeTomorrow("Test error tell me tomorrow message with exception", e);
+ LOGGER.errorInterruptMyDinner("Test error interrupt my dinner message with exception", e);
+ LOGGER.errorWakeMeUpRightNow("Test error wake me up right now message with exception", e);
+ }
+
}
diff --git a/guides/gRPC.md b/guides/gRPC.md
index 5030dd39..0e8bdb4f 100644
--- a/guides/gRPC.md
+++ b/guides/gRPC.md
@@ -56,11 +56,11 @@ Add the spring-boot-starter artifact coordinates to your project.
```xml
no.entur.logging.cloud
- spring-boot-starter-gcp-grpc-ecosystem
+ spring-boot-starter-gcp-grpc-spring
no.entur.logging.cloud
- spring-boot-starter-gcp-grpc-ecosystem-test
+ spring-boot-starter-gcp-grpc-spring-test
test
```
@@ -73,8 +73,8 @@ or
Gradle Spring Boot Starter coordinates
```groovy
-implementation ("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-ecosystem")
-testImplementation ("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-ecosystem-test")
+implementation ("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-spring")
+testImplementation ("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-spring-test")
```
@@ -114,11 +114,11 @@ Import the request-response Spring Boot starters:
```xml
no.entur.logging.cloud
- request-response-spring-boot-starter-gcp-grpc-ecosystem
+ request-response-spring-boot-starter-gcp-grpc-spring
no.entur.logging.cloud
- request-response-spring-boot-starter-gcp-grpc-ecosystem-test
+ request-response-spring-boot-starter-gcp-grpc-spring-test
test
```
@@ -131,8 +131,8 @@ or
Gradle Spring Boot Starter coordinates
```groovy
-implementation ("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-ecosystem")
-testImplementation ("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-ecosystem-test")
+implementation ("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-spring")
+testImplementation ("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-spring-test")
```
@@ -227,8 +227,8 @@ For 'classic' one-line log output when running a server locally, additionally ad
```groovy
tasks.register("logPlainly") {
dependencies {
- implementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-ecosystem-test")
- implementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-ecosystem-test")
+ implementation("no.entur.logging.cloud:request-response-spring-boot-starter-gcp-grpc-spring-test")
+ implementation("no.entur.logging.cloud:spring-boot-starter-gcp-grpc-spring-test")
}
}
diff --git a/guides/web.md b/guides/web.md
index 023e96c1..e26b2379 100644
--- a/guides/web.md
+++ b/guides/web.md
@@ -122,6 +122,13 @@ testImplementation ("no.entur.logging.cloud:request-response-spring-boot-starter
```
+Please note:
+
+ * Logging invalid JSON or making too long log statements might have unexpected consequences for fluentbit handling in GCP kubernetes.
+ * For request-response-logging, this library assumes that locally produced JSON has valid syntax and is without pretty-printing.
+ * This assumption is made so to avoid the processing overhead of unnecessarily parsing JSON documents known to be valid.
+ * If this assumption for some reason does not hold, use a BodyFilter to compensate.
+
Some Logbook excludes ([actuator, openapi](https://github.com/entur/cloud-logging/blob/main/request-response/logbook-spring-boot-autoconfigure/src/main/java/no/entur/logging/cloud/spring/logbook/LogbookLoggingAutoConfiguration.java)) are included by default. Add more using
```yml
@@ -288,7 +295,7 @@ entur.logging.http.ondemand.troubleshoot.level=debug
entur.logging.http.ondemand.troubleshoot.http.headers[0].name=x-debug-this-request
```
-which allows for additional logging in the precense of certain HTTP headers.
+which allows for additional logging in the presence of certain HTTP headers.
### Toggle log output-format during testing
Toggling between output modes in a unit test:
diff --git a/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsLogbackMetrics.java b/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsLogbackMetrics.java
index 88de678f..5c9647a8 100644
--- a/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsLogbackMetrics.java
+++ b/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsLogbackMetrics.java
@@ -2,8 +2,6 @@
import ch.qos.logback.classic.LoggerContext;
import io.micrometer.core.instrument.MeterRegistry;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import org.slf4j.LoggerFactory;
import java.util.Map;
@@ -15,8 +13,6 @@
* Logback driver with extra log levels. Originally copied from LogbackMetrics class in micrometer-core.
*
*/
-@NonNullApi
-@NonNullFields
public class DevOpsLogbackMetrics extends io.micrometer.core.instrument.binder.logging.LogbackMetrics { // extend since there is no interface type
private final LoggerContext loggerContext;
private final Map metricsTurboFilters = new ConcurrentHashMap<>();
diff --git a/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsMetricsTurboFilter.java b/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsMetricsTurboFilter.java
index 577184c2..eac24328 100644
--- a/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsMetricsTurboFilter.java
+++ b/micrometer/src/main/java/no/entur/logging/cloud/micrometer/DevOpsMetricsTurboFilter.java
@@ -8,16 +8,12 @@
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
-import io.micrometer.core.lang.NonNullApi;
-import io.micrometer.core.lang.NonNullFields;
import no.entur.logging.cloud.api.DevOpsLevel;
import no.entur.logging.cloud.api.DevOpsMarker;
import org.slf4j.Marker;
import java.util.List;
-@NonNullApi
-@NonNullFields
public class DevOpsMetricsTurboFilter extends TurboFilter implements LoggingEventMetrics {
protected final Counter errorWakeMeUpRightNowCounter;
diff --git a/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/properties/OndemandProperties.java b/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/properties/OndemandProperties.java
index 7d08e0df..bd375167 100644
--- a/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/properties/OndemandProperties.java
+++ b/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/properties/OndemandProperties.java
@@ -7,12 +7,12 @@
import java.util.ArrayList;
import java.util.List;
-@ConfigurationProperties(prefix = "no.entur.logging.grpc.ondemand")
+@ConfigurationProperties(prefix = "entur.logging.grpc.ondemand")
public class OndemandProperties {
private boolean enabled;
- private int interceptorOrder = Ordered.HIGHEST_PRECEDENCE;
+ private int interceptorOrder = 100;
private OndemandSuccess success = new OndemandSuccess();
diff --git a/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/scope/GrpcLoggingScopeContextInterceptor.java b/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/scope/GrpcLoggingScopeContextInterceptor.java
index c9f531fd..c84bc90f 100644
--- a/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/scope/GrpcLoggingScopeContextInterceptor.java
+++ b/on-demand/on-demand-spring-boot-starter-grpc/src/main/java/no/entur/logging/cloud/spring/ondemand/grpc/scope/GrpcLoggingScopeContextInterceptor.java
@@ -30,7 +30,7 @@ public static Builder newBuilder() {
public static class Builder {
- private int order = Ordered.HIGHEST_PRECEDENCE;
+ private int order = 100;
private GrpcLoggingScopeFilters filters;
diff --git a/on-demand/on-demand-spring-boot-starter-web/src/main/java/no/entur/logging/cloud/spring/ondemand/web/GcpWebOndemandLoggingAutoConfiguration.java b/on-demand/on-demand-spring-boot-starter-web/src/main/java/no/entur/logging/cloud/spring/ondemand/web/GcpWebOndemandLoggingAutoConfiguration.java
index a675e01d..5834f2d2 100644
--- a/on-demand/on-demand-spring-boot-starter-web/src/main/java/no/entur/logging/cloud/spring/ondemand/web/GcpWebOndemandLoggingAutoConfiguration.java
+++ b/on-demand/on-demand-spring-boot-starter-web/src/main/java/no/entur/logging/cloud/spring/ondemand/web/GcpWebOndemandLoggingAutoConfiguration.java
@@ -23,7 +23,7 @@
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+import org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher;
import org.springframework.security.web.util.matcher.RequestMatcher;
import java.time.Duration;
@@ -86,7 +86,7 @@ public FilterRegistrationBean ondemandFilter() {
continue;
}
HttpLoggingScopeFilter filter = toFilter(path.getMatcher(), path.getSuccess(), path.getFailure(), path.getTroubleshoot());
- RequestMatcher requestMatcher = AntPathRequestMatcher.antMatcher(path.getMatcher());
+ RequestMatcher requestMatcher = PathPatternRequestMatcher.pathPattern(path.getMatcher());
filters.addFilter(requestMatcher, filter);
}
diff --git a/request-response/logbook-filter/build.gradle b/request-response/logbook-filter/build.gradle
index c67351c8..9b21417e 100644
--- a/request-response/logbook-filter/build.gradle
+++ b/request-response/logbook-filter/build.gradle
@@ -4,8 +4,8 @@ dependencies {
api("org.zalando:logbook-api:${logbookVersion}")
api("org.zalando:logbook-api:${logbookVersion}")
- api("com.fasterxml.jackson.core:jackson-core")
- api("com.fasterxml.jackson.core:jackson-databind")
+ api("tools.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-databind")
api "commons-io:commons-io:${commonsIoVersion}"
// JUnit Jupiter API and TestEngine implementation
diff --git a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxBodySizeFilter.java b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxBodySizeFilter.java
index 2fcf68a8..6cdf7318 100644
--- a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxBodySizeFilter.java
+++ b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxBodySizeFilter.java
@@ -1,15 +1,13 @@
package no.entur.logging.cloud.logbook.filter;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonStreamContext;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.MappingJsonFactory;
-import no.entur.logging.cloud.logbook.util.MaxSizeJsonFilter;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
+import tools.jackson.databind.json.JsonMapper;
import org.apache.commons.io.output.StringBuilderWriter;
import org.zalando.logbook.BodyFilter;
import org.zalando.logbook.ContentType;
+import no.entur.logging.cloud.logbook.util.MaxSizeJsonFilter;
import java.io.IOException;
import java.util.function.LongSupplier;
@@ -34,7 +32,9 @@ public static JsonMaxBodySizeFilter newInstance(int maxBodySize) {
public JsonMaxBodySizeFilter(int maxBodySize) {
this.maxBodySize = maxBodySize;
- this.maxBodyFilter = new MaxSizeJsonFilter(maxBodySize, new MappingJsonFactory());
+
+ JsonMapper mapper = JsonMapper.builder().build();
+ this.maxBodyFilter = new MaxSizeJsonFilter(maxBodySize, mapper);
}
@Override
diff --git a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxValueLengthBodyFilter.java b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxValueLengthBodyFilter.java
index 32a5b3a7..9ec69d9f 100644
--- a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxValueLengthBodyFilter.java
+++ b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/filter/JsonMaxValueLengthBodyFilter.java
@@ -1,13 +1,11 @@
package no.entur.logging.cloud.logbook.filter;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.MappingJsonFactory;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.core.JsonGenerator;
import org.zalando.logbook.BodyFilter;
import org.zalando.logbook.ContentType;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
+import tools.jackson.databind.json.JsonMapper;
import java.io.StringWriter;
import java.util.function.Predicate;
@@ -26,11 +24,11 @@ public static JsonMaxValueLengthBodyFilter newInstance(int maxFieldLength) {
return new JsonMaxValueLengthBodyFilter(maxFieldLength);
}
- private JsonFactory factory;
+ private JsonMapper mapper;
public JsonMaxValueLengthBodyFilter(int maxFieldLength) {
this.maxFieldLength = maxFieldLength;
- this.factory = new MappingJsonFactory();
+ this.mapper = JsonMapper.builder().build();
}
@Override
@@ -40,9 +38,9 @@ public String filter(String contentType, String body) {
public String filter(final String body) {
try (
- final JsonParser parser = factory.createParser(body);
+ final JsonParser parser = mapper.createParser(body);
StringWriter writer = new StringWriter(body.length());
- JsonGenerator generator = factory.createGenerator(writer);
+ JsonGenerator generator = mapper.createGenerator(writer);
) {
JsonToken nextToken;
@@ -50,9 +48,9 @@ public String filter(final String body) {
if (nextToken == JsonToken.VALUE_STRING) {
String valueAsString = parser.getValueAsString();
if(valueAsString.length() > maxFieldLength) {
- generator.writeObject(valueAsString.substring(0, maxFieldLength)+"[filtered by logger]");
+ generator.writePOJO(valueAsString.substring(0, maxFieldLength)+"[filtered by logger]");
} else {
- generator.writeObject(valueAsString);
+ generator.writePOJO(valueAsString);
}
}
else {
diff --git a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/JsonValidator.java b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/JsonValidator.java
index 70ebac73..b6c100bd 100644
--- a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/JsonValidator.java
+++ b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/JsonValidator.java
@@ -1,20 +1,20 @@
package no.entur.logging.cloud.logbook.util;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonParser;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.json.JsonMapper;
import java.io.StringReader;
public class JsonValidator {
- private final JsonFactory jsonFactory;
+ private final JsonMapper jsonMapper;
- public JsonValidator(JsonFactory jsonFactory) {
- this.jsonFactory = jsonFactory;
+ public JsonValidator(JsonMapper jsonMapper) {
+ this.jsonMapper = jsonMapper;
}
public boolean isWellformedJson(String input) {
- try (JsonParser parser = jsonFactory.createParser(new StringReader(input))) {
+ try (JsonParser parser = jsonMapper.createParser(new StringReader(input))) {
while(parser.nextToken() != null);
} catch(Exception e) {
return false;
diff --git a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilter.java b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilter.java
index 4f4be0d2..861c152b 100644
--- a/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilter.java
+++ b/request-response/logbook-filter/src/main/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilter.java
@@ -1,7 +1,11 @@
package no.entur.logging.cloud.logbook.util;
-import com.fasterxml.jackson.core.*;
import org.apache.commons.io.output.StringBuilderWriter;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
+import tools.jackson.core.TokenStreamContext;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.util.function.LongSupplier;
@@ -15,26 +19,26 @@
public class MaxSizeJsonFilter {
- public static MaxSizeJsonFilter newInstance(int maxBodySize, JsonFactory jsonFactory) {
- return new MaxSizeJsonFilter(maxBodySize, jsonFactory);
+ public static MaxSizeJsonFilter newInstance(int maxBodySize, JsonMapper jsonMapper) {
+ return new MaxSizeJsonFilter(maxBodySize, jsonMapper);
}
- private JsonFactory factory;
+ private JsonMapper jsonMapper;
private final int maxSize;
- public MaxSizeJsonFilter(int maxSize, JsonFactory jsonFactory) {
+ public MaxSizeJsonFilter(int maxSize, JsonMapper jsonMapper) {
this.maxSize = maxSize;
- this.factory = jsonFactory;
+ this.jsonMapper = jsonMapper;
}
public String transform(String body) throws IOException {
StringBuilder output = new StringBuilder(maxSize + 128);
try (
- final JsonParser parser = factory.createParser(body);
+ final JsonParser parser = jsonMapper.createParser(body);
StringBuilderWriter writer = new StringBuilderWriter(output);
- JsonGenerator generator = factory.createGenerator(writer);
+ JsonGenerator generator = jsonMapper.createGenerator(writer);
) {
- process(parser, generator, () -> generator.getOutputBuffered() + output.length());
+ process(parser, generator, () -> generator.streamWriteOutputBuffered() + output.length());
generator.close();
return writer.toString();
@@ -46,11 +50,11 @@ public String transform(String body) throws IOException {
public String transform(byte[] body) throws IOException {
StringBuilder output = new StringBuilder(maxSize + 128);
try (
- final JsonParser parser = factory.createParser(body);
+ final JsonParser parser = jsonMapper.createParser(body);
StringBuilderWriter writer = new StringBuilderWriter(output);
- JsonGenerator generator = factory.createGenerator(writer);
+ JsonGenerator generator = jsonMapper.createGenerator(writer);
) {
- process(parser, generator, () -> generator.getOutputBuffered() + output.length());
+ process(parser, generator, () -> generator.streamWriteOutputBuffered() + output.length());
generator.close();
return writer.toString();
@@ -74,7 +78,7 @@ public void process(final JsonParser parser, JsonGenerator generator, LongSuppli
if(nextToken == null) {
break;
}
- if(nextToken == JsonToken.FIELD_NAME) {
+ if(nextToken == JsonToken.PROPERTY_NAME) {
fieldName = parser.currentName();
continue;
@@ -100,18 +104,18 @@ public void process(final JsonParser parser, JsonGenerator generator, LongSuppli
if(outputSize + size >= maxSize) {
// write notification
- JsonStreamContext ctxt = generator.getOutputContext();
+ TokenStreamContext ctxt = generator.streamWriteContext();
if (ctxt.inArray()) {
generator.writeString("Logger: " + message);
} else if (ctxt.inObject()) {
- generator.writeStringField("Logger", message);
+ generator.writeStringProperty("Logger", message);
}
break;
}
if(fieldName != null) {
- generator.writeFieldName(fieldName);
+ generator.writeName(fieldName);
fieldName = null;
}
diff --git a/request-response/logbook-filter/src/test/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilterTest.java b/request-response/logbook-filter/src/test/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilterTest.java
index 6aaa6c53..31141709 100644
--- a/request-response/logbook-filter/src/test/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilterTest.java
+++ b/request-response/logbook-filter/src/test/java/no/entur/logging/cloud/logbook/util/MaxSizeJsonFilterTest.java
@@ -1,9 +1,11 @@
package no.entur.logging.cloud.logbook.util;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
import org.junit.jupiter.api.Assertions;
+import tools.jackson.core.JsonGenerator;
+import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
+import tools.jackson.core.json.JsonFactory;
+import tools.jackson.databind.json.JsonMapper;
import java.io.CharArrayWriter;
import java.io.IOException;
@@ -15,7 +17,7 @@
public class MaxSizeJsonFilterTest {
private static final int MAX_BODY_SIZE = 14 * 1024;
- private final MaxSizeJsonFilter filter = new MaxSizeJsonFilter(MAX_BODY_SIZE, new JsonFactory());
+ private final MaxSizeJsonFilter filter = new MaxSizeJsonFilter(MAX_BODY_SIZE, JsonMapper.builder().build());
@Test
public void testFilterTooBig() throws IOException {
@@ -42,7 +44,7 @@ public void testFilterNotTooBig() throws IOException {
@Test
public void testFilterTooBigInvalidJson() throws IOException {
- JsonValidator jsonValidator = new JsonValidator(new JsonFactory());
+ JsonValidator jsonValidator = new JsonValidator(JsonMapper.builder().build());
String s = generateLongJson(2 * MAX_BODY_SIZE);
@@ -68,11 +70,11 @@ private String generateLongJson(int size) throws IOException {
JsonGenerator generator = factory.createGenerator(writer);
generator.writeStartObject();
- generator.writeStringField("start", "here");
+ generator.writeStringProperty("start", "here");
for(int i = 0; i < size; i += chunkSize) {
- generator.writeStringField("longValue", generateLongString(chunkSize));
+ generator.writeStringProperty("longValue", generateLongString(chunkSize));
}
- generator.writeStringField("end", "here");
+ generator.writeStringProperty("end", "here");
generator.writeEndObject();
generator.flush();
diff --git a/request-response/logbook-spring-boot-autoconfigure-test/src/main/java/no/entur/logging/cloud/spring/logbook/test/LogbookLoggingTestAutoConfiguration.java b/request-response/logbook-spring-boot-autoconfigure-test/src/main/java/no/entur/logging/cloud/spring/logbook/test/LogbookLoggingTestAutoConfiguration.java
index ede22c88..05844513 100644
--- a/request-response/logbook-spring-boot-autoconfigure-test/src/main/java/no/entur/logging/cloud/spring/logbook/test/LogbookLoggingTestAutoConfiguration.java
+++ b/request-response/logbook-spring-boot-autoconfigure-test/src/main/java/no/entur/logging/cloud/spring/logbook/test/LogbookLoggingTestAutoConfiguration.java
@@ -1,7 +1,5 @@
package no.entur.logging.cloud.spring.logbook.test;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.DefaultSyntaxHighlighter;
import no.entur.logging.cloud.logbook.RemoteHttpMessageContextSupplier;
import no.entur.logging.cloud.logbook.ondemand.state.RequestHttpMessageStateSupplierSource;
import no.entur.logging.cloud.logbook.ondemand.state.ResponseHttpMessageStateSupplierSource;
@@ -11,6 +9,8 @@
import no.entur.logging.cloud.logbook.logbook.test.ondemand.PrettyPrintingOndemandLogLevelLogstashLogbackSink;
import no.entur.logging.cloud.spring.logbook.AbstractLogbookLoggingAutoConfiguration;
import no.entur.logging.cloud.spring.logbook.LogbookLoggingAutoConfiguration;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.DefaultSyntaxHighlighter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
diff --git a/request-response/logbook-test/build.gradle b/request-response/logbook-test/build.gradle
index 88a02d02..6d47aa19 100644
--- a/request-response/logbook-test/build.gradle
+++ b/request-response/logbook-test/build.gradle
@@ -6,11 +6,11 @@ dependencies {
api("org.zalando:logbook-api:${logbookVersion}")
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api ("com.fasterxml.jackson.core:jackson-core")
+ api ("tools.jackson.core:jackson-core")
api("org.apache.commons:commons-text:${commonsTextVersion}")
}
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingLogLevelLogstashLogbackSink.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingLogLevelLogstashLogbackSink.java
index 4416a059..e933c924 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingLogLevelLogstashLogbackSink.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingLogLevelLogstashLogbackSink.java
@@ -1,6 +1,5 @@
package no.entur.logging.cloud.logbook.logbook.test;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.AbstractLogLevelLogstashLogbackSink;
import no.entur.logging.cloud.logbook.AbstractSinkBuilder;
import no.entur.logging.cloud.logbook.DefaultRemoteHttpMessageContextSupplier;
@@ -9,6 +8,7 @@
import org.slf4j.Marker;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
+import tools.jackson.databind.json.JsonMapper;
import java.time.Duration;
import java.util.function.BiConsumer;
@@ -41,22 +41,22 @@ public PrettyPrintingLogLevelLogstashLogbackSink build() {
if (server == null) {
throw new IllegalStateException("Expected server message composer");
}
- if (jsonFactory == null) {
- jsonFactory = new JsonFactory();
+ if (jsonMapper == null) {
+ jsonMapper = JsonMapper.builder().build();
}
if (remoteHttpMessageContextSupplier == null) {
remoteHttpMessageContextSupplier = new DefaultRemoteHttpMessageContextSupplier();
}
return new PrettyPrintingLogLevelLogstashLogbackSink(loggerToBiConsumer(), logEnabledToBooleanSupplier(),
- jsonFactory, Math.min(maxBodySize, maxSize), remoteHttpMessageContextSupplier, server, client);
+ jsonMapper, Math.min(maxBodySize, maxSize), remoteHttpMessageContextSupplier, server, client);
}
}
public PrettyPrintingLogLevelLogstashLogbackSink(BiConsumer logConsumer,
- BooleanSupplier logLevelEnabled, JsonFactory jsonFactory, int maxSize,
+ BooleanSupplier logLevelEnabled, JsonMapper jsonMapper, int maxSize,
RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server,
MessageComposer client) {
- super(logConsumer, logLevelEnabled, jsonFactory, maxSize, remoteHttpMessageContextSupplier, server, client);
+ super(logConsumer, logLevelEnabled, jsonMapper, maxSize, remoteHttpMessageContextSupplier, server, client);
}
@Override
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingRequestSingleFieldAppendingMarker.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
index 6856d286..bbcb8788 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
@@ -1,15 +1,11 @@
package no.entur.logging.cloud.logbook.logbook.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.logbook.RequestSingleFieldAppendingMarker;
import org.zalando.logbook.HttpRequest;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.function.BooleanSupplier;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
public class PrettyPrintingRequestSingleFieldAppendingMarker extends RequestSingleFieldAppendingMarker {
@@ -18,13 +14,13 @@ public PrettyPrintingRequestSingleFieldAppendingMarker(HttpRequest request, Stri
}
@Override
- protected void writeWellformedBody(JsonGenerator generator) throws IOException {
+ protected void writeWellformedBody(JsonGenerator generator) {
final PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
- generator.writeFieldName("body");
+ generator.writeName("body");
if (prettyPrinter == null) {
generator.writeRawValue(body);
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(body)) {
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingResponseSingleFieldAppendingMarker.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
index f5b961c6..a7e13f24 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
@@ -1,11 +1,12 @@
package no.entur.logging.cloud.logbook.logbook.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.logbook.ResponseSingleFieldAppendingMarker;
import org.zalando.logbook.HttpResponse;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
+import tools.jackson.core.json.JsonFactory;
import java.io.IOException;
import java.time.Duration;
@@ -18,13 +19,13 @@ public PrettyPrintingResponseSingleFieldAppendingMarker(HttpResponse response, D
}
@Override
- protected void writeWellformedBody(JsonGenerator generator) throws IOException {
+ protected void writeWellformedBody(JsonGenerator generator) {
final PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
- generator.writeFieldName("body");
+ generator.writeName("body");
if (prettyPrinter == null) {
generator.writeRawValue(body);
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(body)) {
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingSink.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingSink.java
index 34fea8c3..033fce02 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingSink.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/PrettyPrintingSink.java
@@ -1,12 +1,10 @@
package no.entur.logging.cloud.logbook.logbook.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import no.entur.logging.cloud.logbook.AbstractLogLevelLogstashLogbackSink;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.SyntaxHighlighter;
-import org.entur.jackson.jsh.SyntaxHighlightingJsonGenerator;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
+import org.entur.jackson.tools.jsh.SyntaxHighlightingJsonGenerator;
+import org.entur.jackson.tools.jsh.SyntaxHighlightingPrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.logbook.AbstractLogLevelSink;
import no.entur.logging.cloud.logbook.AbstractSinkBuilder;
import no.entur.logging.cloud.logbook.MessageComposer;
@@ -16,6 +14,9 @@
import org.zalando.logbook.Correlation;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.SerializationFeature;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.io.StringWriter;
@@ -47,8 +48,11 @@ public PrettyPrintingSink build() {
if (syntaxHighlighter == null) {
throw new IllegalStateException("Expected Json syntax highlighter level");
}
- if (jsonFactory == null) {
- jsonFactory = new JsonFactory();
+ if (jsonMapper == null) {
+ jsonMapper = JsonMapper.builder()
+ .defaultPrettyPrinter(new SyntaxHighlightingPrettyPrinter(syntaxHighlighter))
+ .configure(SerializationFeature.INDENT_OUTPUT, true)
+ .build();
}
if (client == null) {
throw new IllegalStateException("Expected client message composer");
@@ -61,21 +65,21 @@ public PrettyPrintingSink build() {
// backend, but getting the same during testing as in production makes most
// sense
- return new PrettyPrintingSink(logEnabledToBooleanSupplier(), loggerToBiConsumer(), jsonFactory,
+ return new PrettyPrintingSink(logEnabledToBooleanSupplier(), loggerToBiConsumer(), jsonMapper,
syntaxHighlighter, server, client);
}
}
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper jsonMapper;
protected final SyntaxHighlighter syntaxHighlighter;
public PrettyPrintingSink(BooleanSupplier logLevelEnabled, BiConsumer logConsumer,
- JsonFactory jsonFactory, SyntaxHighlighter syntaxHighlighter, MessageComposer server,
+ JsonMapper jsonMapper, SyntaxHighlighter syntaxHighlighter, MessageComposer server,
MessageComposer client) {
super(logLevelEnabled, logConsumer, server, client);
- this.jsonFactory = jsonFactory;
+ this.jsonMapper = jsonMapper;
this.syntaxHighlighter = syntaxHighlighter;
}
@@ -160,16 +164,19 @@ public String prettyPrint(String body) {
if (body != null && body.length() > 0) {
try (
- JsonParser parser = jsonFactory.createParser(body);
+ JsonParser parser = jsonMapper.createParser(body);
StringWriter writer = new StringWriter(body.length() * 2);
- JsonGenerator generator = jsonFactory.createGenerator(writer);) {
- JsonGenerator jsonGenerator = new SyntaxHighlightingJsonGenerator(generator, syntaxHighlighter, true);
+ JsonGenerator generator = jsonMapper.createGenerator(writer);) {
+
+ SyntaxHighlightingPrettyPrinter prettyPrinter = (SyntaxHighlightingPrettyPrinter)generator.getPrettyPrinter();
+
+ JsonGenerator jsonGenerator = new SyntaxHighlightingJsonGenerator(generator, prettyPrinter, prettyPrinter.getObjectIndenter(), prettyPrinter.getArrayIndenter(), prettyPrinter.getSyntaxHighlighter());
while (parser.nextToken() != null) {
jsonGenerator.copyCurrentEvent(parser);
}
jsonGenerator.flush();
return writer.toString();
- } catch (IOException e) {
+ } catch (Exception e) {
// ignore, keep payload as-is
}
}
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalHttpMessageBodyWriter.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalHttpMessageBodyWriter.java
index 0d3b3b9c..2fa231d9 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalHttpMessageBodyWriter.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalHttpMessageBodyWriter.java
@@ -1,10 +1,11 @@
package no.entur.logging.cloud.logbook.logbook.test.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
import no.entur.logging.cloud.logbook.ondemand.HttpMessageBodyWriter;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
+import tools.jackson.core.json.JsonFactory;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -24,13 +25,13 @@ public void prepareResult() {
@Override
public void writeBody(JsonGenerator generator) throws IOException {
- generator.writeFieldName("body");
+ generator.writeName("body");
PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
if (prettyPrinter == null) {
generator.writeRawValue(new String(input, StandardCharsets.UTF_8));
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(input)) {
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalMaxSizeHttpMessageBodyWriter.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalMaxSizeHttpMessageBodyWriter.java
index 66cd4c5d..2a887761 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalMaxSizeHttpMessageBodyWriter.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingLocalMaxSizeHttpMessageBodyWriter.java
@@ -1,9 +1,13 @@
package no.entur.logging.cloud.logbook.logbook.test.ondemand;
-import com.fasterxml.jackson.core.*;
import no.entur.logging.cloud.logbook.ondemand.HttpMessageBodyWriter;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.util.MaxSizeJsonFilter;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.json.JsonFactory;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -12,12 +16,12 @@ public class PrettyPrintingLocalMaxSizeHttpMessageBodyWriter implements HttpMess
protected final byte[] input;
protected final int maxSize;
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper jsonMapper;
protected HttpMessageStateResult output;
- public PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, int maxSize) {
- this.jsonFactory = jsonFactory;
+ public PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(JsonMapper jsonMapper, byte[] input, int maxSize) {
+ this.jsonMapper = jsonMapper;
this.input = input;
this.maxSize = maxSize;
}
@@ -47,13 +51,13 @@ public void writeBody(JsonGenerator generator) throws IOException {
HttpMessageStateResult output = this.output;
if(output.isWellformed()) {
- generator.writeFieldName("body");
+ generator.writeName("body");
PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
if (prettyPrinter == null) {
generator.writeRawValue(new String(input, StandardCharsets.UTF_8));
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ JsonFactory factory = jsonMapper.tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(input)) {
@@ -63,12 +67,12 @@ public void writeBody(JsonGenerator generator) throws IOException {
}
}
} else {
- generator.writeStringField("body", output.getBody());
+ generator.writeStringProperty("body", output.getBody());
}
}
protected String filterMaxSize(byte[] body) {
- MaxSizeJsonFilter filter = new MaxSizeJsonFilter(maxSize, jsonFactory);
+ MaxSizeJsonFilter filter = new MaxSizeJsonFilter(maxSize, jsonMapper);
try {
return filter.transform(body);
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingOndemandLogLevelLogstashLogbackSink.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingOndemandLogLevelLogstashLogbackSink.java
index cdce4af3..8c5057b2 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingOndemandLogLevelLogstashLogbackSink.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingOndemandLogLevelLogstashLogbackSink.java
@@ -1,6 +1,5 @@
package no.entur.logging.cloud.logbook.logbook.test.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.AbstractLogLevelLogstashLogbackSink;
import no.entur.logging.cloud.logbook.DefaultRemoteHttpMessageContextSupplier;
import no.entur.logging.cloud.logbook.MessageComposer;
@@ -15,9 +14,8 @@
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
import org.zalando.logbook.Origin;
+import tools.jackson.databind.json.JsonMapper;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.util.function.BiConsumer;
import java.util.function.BooleanSupplier;
@@ -55,26 +53,26 @@ public PrettyPrintingOndemandLogLevelLogstashLogbackSink build() {
if (server == null) {
throw new IllegalStateException("Expected server message composer");
}
- if (jsonFactory == null) {
- jsonFactory = new JsonFactory();
+ if (jsonMapper == null) {
+ jsonMapper = JsonMapper.builder().build();
}
if (remoteHttpMessageContextSupplier == null) {
remoteHttpMessageContextSupplier = new DefaultRemoteHttpMessageContextSupplier();
}
return new PrettyPrintingOndemandLogLevelLogstashLogbackSink(loggerToBiConsumer(),
- logEnabledToBooleanSupplier(), jsonFactory, requestBodyWellformedDecisionSupplier,
+ logEnabledToBooleanSupplier(), jsonMapper, requestBodyWellformedDecisionSupplier,
responseBodyWellformedDecisionSupplier, maxBodySize, maxSize, remoteHttpMessageContextSupplier,
server, client);
}
}
public PrettyPrintingOndemandLogLevelLogstashLogbackSink(BiConsumer logConsumer,
- BooleanSupplier logLevelEnabled, JsonFactory jsonFactory,
+ BooleanSupplier logLevelEnabled, JsonMapper jsonMapper,
RequestHttpMessageStateSupplierSource requestHttpMessageStateSupplierSource,
ResponseHttpMessageStateSupplierSource responseHttpMessageStateSupplierSource, int maxBodySize, int maxSize,
RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server,
MessageComposer client) {
- super(logConsumer, logLevelEnabled, jsonFactory, requestHttpMessageStateSupplierSource,
+ super(logConsumer, logLevelEnabled, jsonMapper, requestHttpMessageStateSupplierSource,
responseHttpMessageStateSupplierSource, maxBodySize, maxSize, remoteHttpMessageContextSupplier, server,
client);
}
@@ -91,21 +89,21 @@ public Marker createRequestMarker(HttpRequest request) {
if (body.length > maxBodySize) {
writer = new PrettyPrintingLocalHttpMessageBodyWriter(body);
} else {
- writer = new PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(jsonFactory, body,
+ writer = new PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(jsonMapper, body,
maxBodySize);
}
} else {
HttpMessageStateSupplier httpMessageStateSupplier = requestHttpMessageStateSupplierSource.get();
if (body.length > maxBodySize) {
- writer = new PrettyPrintingRemoteHttpMessageBodyWriter(jsonFactory, body,
+ writer = new PrettyPrintingRemoteHttpMessageBodyWriter(jsonMapper, body,
httpMessageStateSupplier);
} else {
- writer = new PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(jsonFactory, body, maxSize,
+ writer = new PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(jsonMapper, body, maxSize,
httpMessageStateSupplier);
}
}
}
- } catch (IOException e) {
+ } catch (Exception e) {
// ignore
}
} else if (AbstractLogLevelLogstashLogbackSink.isXmlMediaType(request.getContentType())) {
@@ -120,7 +118,7 @@ public Marker createRequestMarker(HttpRequest request) {
writer = new StringHttpMessageBodyWriter(bodyAsString);
}
}
- } catch (IOException e) {
+ } catch (Exception e) {
// ignore
}
}
@@ -141,22 +139,22 @@ public Marker createResponseMarker(Correlation correlation, HttpResponse respons
if (body.length > maxBodySize) {
writer = new PrettyPrintingLocalHttpMessageBodyWriter(body);
} else {
- writer = new PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(jsonFactory, body,
+ writer = new PrettyPrintingLocalMaxSizeHttpMessageBodyWriter(jsonMapper, body,
maxBodySize);
}
} else {
HttpMessageStateSupplier httpMessageStateSupplier = responseHttpMessageStateSupplierSource
.get();
if (body.length > maxBodySize) {
- writer = new PrettyPrintingRemoteHttpMessageBodyWriter(jsonFactory, body,
+ writer = new PrettyPrintingRemoteHttpMessageBodyWriter(jsonMapper, body,
httpMessageStateSupplier);
} else {
- writer = new PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(jsonFactory, body, maxSize,
+ writer = new PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(jsonMapper, body, maxSize,
httpMessageStateSupplier);
}
}
}
- } catch (IOException e) {
+ } catch (Exception e) {
// ignore
}
} else if (AbstractLogLevelLogstashLogbackSink.isXmlMediaType(response.getContentType())) {
@@ -171,7 +169,7 @@ public Marker createResponseMarker(Correlation correlation, HttpResponse respons
writer = new StringHttpMessageBodyWriter(bodyAsString);
}
}
- } catch (IOException e) {
+ } catch (Exception e) {
// ignore
}
}
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteHttpMessageBodyWriter.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteHttpMessageBodyWriter.java
index 31e14995..674fa91c 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteHttpMessageBodyWriter.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteHttpMessageBodyWriter.java
@@ -1,12 +1,13 @@
package no.entur.logging.cloud.logbook.logbook.test.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageState;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateSupplier;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
+import tools.jackson.databind.json.JsonMapper;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -17,12 +18,12 @@ public class PrettyPrintingRemoteHttpMessageBodyWriter extends PrettyPrintingLoc
protected final HttpMessageStateSupplier httpMessageStateSupplier;
protected volatile HttpMessageStateResult output;
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper jsonMapper;
- public PrettyPrintingRemoteHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, HttpMessageStateSupplier httpMessageStateSupplier) {
+ public PrettyPrintingRemoteHttpMessageBodyWriter(JsonMapper jsonMapper, byte[] input, HttpMessageStateSupplier httpMessageStateSupplier) {
super(input);
- this.jsonFactory = jsonFactory;
+ this.jsonMapper = jsonMapper;
this.httpMessageStateSupplier = httpMessageStateSupplier;
}
@@ -50,28 +51,28 @@ public void writeBody(JsonGenerator generator) throws IOException {
this.output = output = createResult();
}
if(output.isWellformed()) {
- generator.writeFieldName("body");
+ generator.writeName("body");
PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
if (prettyPrinter == null) {
generator.writeRawValue(output.getBody());
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
- try (final JsonParser parser = factory.createParser(output.getBody())) {
+ try (final JsonParser parser = jsonMapper.createParser(output.getBody())) {
while (parser.nextToken() != null) {
generator.copyCurrentEvent(parser);
}
}
}
} else {
- generator.writeStringField("body", output.getBody());
+ generator.writeStringProperty("body", output.getBody());
}
}
protected boolean isWellformedJson() {
- try (JsonParser parser = jsonFactory.createParser(new ByteArrayInputStream(input))) {
+ try (JsonParser parser = jsonMapper.createParser(new ByteArrayInputStream(input))) {
while(parser.nextToken() != null);
} catch(Exception e) {
return false;
diff --git a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter.java b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter.java
index 61bfd340..51ba7765 100644
--- a/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter.java
+++ b/request-response/logbook-test/src/main/java/no/entur/logging/cloud/logbook/logbook/test/ondemand/PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter.java
@@ -1,9 +1,9 @@
package no.entur.logging.cloud.logbook.logbook.test.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageState;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateSupplier;
+import tools.jackson.databind.json.JsonMapper;
import java.nio.charset.StandardCharsets;
@@ -11,8 +11,8 @@ public class PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter extends PrettyPrin
protected final HttpMessageStateSupplier httpMessageStateSupplier;
- public PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, int maxSize, HttpMessageStateSupplier httpMessageStateSupplier) {
- super(jsonFactory, input, maxSize);
+ public PrettyPrintingRemoteMaxSizeHttpMessageBodyWriter(JsonMapper mapper, byte[] input, int maxSize, HttpMessageStateSupplier httpMessageStateSupplier) {
+ super(mapper, input, maxSize);
this.httpMessageStateSupplier = httpMessageStateSupplier;
}
diff --git a/request-response/logbook/build.gradle b/request-response/logbook/build.gradle
index 5faac32c..18482d09 100644
--- a/request-response/logbook/build.gradle
+++ b/request-response/logbook/build.gradle
@@ -9,7 +9,7 @@ dependencies {
api "commons-io:commons-io:${commonsIoVersion}"
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api("com.fasterxml.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-core")
api("org.apache.commons:commons-text:${commonsTextVersion}")
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSink.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSink.java
index 5ec308b5..17db022a 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSink.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSink.java
@@ -1,6 +1,5 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.util.JsonValidator;
import no.entur.logging.cloud.logbook.util.MaxSizeJsonFilter;
import org.slf4j.Marker;
@@ -9,6 +8,7 @@
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
import org.zalando.logbook.Origin;
+import tools.jackson.databind.json.JsonMapper;
import javax.annotation.Nullable;
@@ -26,13 +26,13 @@ public abstract class AbstractLogLevelLogstashLogbackSink extends AbstractLogLev
protected final RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier;
public AbstractLogLevelLogstashLogbackSink(BiConsumer logConsumer, BooleanSupplier logLevelEnabled,
- JsonFactory jsonFactory, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier,
- MessageComposer server, MessageComposer client) {
+ JsonMapper jsonMapper, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier,
+ MessageComposer server, MessageComposer client) {
super(logLevelEnabled, logConsumer, server, client);
this.maxSize = maxSize;
- this.maxSizeJsonFilter = new MaxSizeJsonFilter(maxSize, jsonFactory);
- this.jsonValidator = new JsonValidator(jsonFactory);
+ this.maxSizeJsonFilter = new MaxSizeJsonFilter(maxSize, jsonMapper);
+ this.jsonValidator = new JsonValidator(jsonMapper);
this.remoteHttpMessageContextSupplier = remoteHttpMessageContextSupplier;
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSingleFieldAppendingMarker.java
index c0e5b0cb..9e3a1338 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.marker.SingleFieldAppendingMarker;
import org.zalando.logbook.ContentType;
import org.zalando.logbook.HttpMessage;
@@ -40,14 +40,14 @@ protected void writeBody(JsonGenerator generator) {
if (wellformed) {
writeWellformedBody(generator);
} else {
- generator.writeStringField("body", body);
+ generator.writeStringProperty("body", body);
}
} catch (Exception e) {
// should never happen, this is probably going to blow up somewhere else
}
} else {
try {
- generator.writeStringField("body", body);
+ generator.writeStringProperty("body", body);
} catch (Exception e) {
// should never happen, this is probably going to blow up somewhere else
}
@@ -55,20 +55,20 @@ protected void writeBody(JsonGenerator generator) {
}
}
- protected void writeWellformedBody(JsonGenerator generator) throws IOException {
- generator.writeFieldName("body");
+ protected void writeWellformedBody(JsonGenerator generator) {
+ generator.writeName("body");
generator.writeRawValue(body);
}
- protected void writeHeaders(JsonGenerator generator) throws IOException {
- generator.writeFieldName("headers");
+ protected void writeHeaders(JsonGenerator generator) {
+ generator.writeName("headers");
generator.writeStartObject();
if(headers != null) {
for (Map.Entry> stringListEntry : headers.entrySet()) {
String key = stringListEntry.getKey();
if(key != null && !key.isEmpty()) {
- generator.writeFieldName(key.toLowerCase());
+ generator.writeName(key.toLowerCase());
generator.writeStartArray();
List values = stringListEntry.getValue();
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSinkBuilder.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSinkBuilder.java
index 1812b37c..2f2f3c9b 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSinkBuilder.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/AbstractSinkBuilder.java
@@ -1,10 +1,9 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonFactory;
-
import org.slf4j.Logger;
import org.slf4j.Marker;
import org.slf4j.event.Level;
+import tools.jackson.databind.json.JsonMapper;
import java.util.function.BiConsumer;
import java.util.function.BooleanSupplier;
@@ -17,7 +16,7 @@ public abstract class AbstractSinkBuilder
protected Level level;
- protected JsonFactory jsonFactory;
+ protected JsonMapper jsonMapper;
protected int maxSize = -1;
protected int maxBodySize = -1;
@@ -32,8 +31,8 @@ public B withLogger(Logger logger) {
return (B) this;
}
- public B withJsonFactory(JsonFactory jsonFactory) {
- this.jsonFactory = jsonFactory;
+ public B withJsonFactory(JsonMapper jsonMapper) {
+ this.jsonMapper = jsonMapper;
return (B) this;
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/LogLevelLogstashLogbackSink.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/LogLevelLogstashLogbackSink.java
index fbf864a9..aa351806 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/LogLevelLogstashLogbackSink.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/LogLevelLogstashLogbackSink.java
@@ -1,9 +1,9 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonFactory;
import org.slf4j.Marker;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
+import tools.jackson.databind.json.JsonMapper;
import java.time.Duration;
import java.util.function.BiConsumer;
@@ -19,9 +19,9 @@
public class LogLevelLogstashLogbackSink extends AbstractLogLevelLogstashLogbackSink {
public LogLevelLogstashLogbackSink(BiConsumer logConsumer, BooleanSupplier logLevelEnabled,
- JsonFactory jsonFactory, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier,
- MessageComposer server, MessageComposer client) {
- super(logConsumer, logLevelEnabled, jsonFactory, maxSize, remoteHttpMessageContextSupplier, server, client);
+ JsonMapper jsonMapper, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier,
+ MessageComposer server, MessageComposer client) {
+ super(logConsumer, logLevelEnabled, jsonMapper, maxSize, remoteHttpMessageContextSupplier, server, client);
}
public static Builder newBuilder() {
@@ -49,13 +49,13 @@ public LogLevelLogstashLogbackSink build() {
if (server == null) {
throw new IllegalStateException("Expected server message composer");
}
- if (jsonFactory == null) {
- jsonFactory = new JsonFactory();
+ if (jsonMapper == null) {
+ jsonMapper = JsonMapper.builder().build();
}
if (remoteHttpMessageContextSupplier == null) {
remoteHttpMessageContextSupplier = new DefaultRemoteHttpMessageContextSupplier();
}
- return new LogLevelLogstashLogbackSink(loggerToBiConsumer(), logEnabledToBooleanSupplier(), jsonFactory,
+ return new LogLevelLogstashLogbackSink(loggerToBiConsumer(), logEnabledToBooleanSupplier(), jsonMapper,
Math.min(maxBodySize, maxSize), remoteHttpMessageContextSupplier, server, client);
}
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/RequestSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/RequestSingleFieldAppendingMarker.java
index 23100dd6..5b3c5548 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/RequestSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/RequestSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.Origin;
@@ -45,38 +45,38 @@ protected void prepareForDeferredProcessing(HttpRequest message) {
}
@Override
- protected void writeFieldValue(JsonGenerator generator) throws IOException {
+ protected void writeFieldValue(JsonGenerator generator) {
generator.writeStartObject();
if(origin != null) {
- generator.writeStringField("origin", origin);
+ generator.writeStringProperty("origin", origin);
}
- generator.writeStringField("type", "request");
+ generator.writeStringProperty("type", "request");
if(protocol != null) {
- generator.writeStringField("protocol", protocol);
+ generator.writeStringProperty("protocol", protocol);
}
if(remote != null) {
- generator.writeStringField("remote", remote);
+ generator.writeStringProperty("remote", remote);
}
if(method != null) {
- generator.writeStringField("method", method);
+ generator.writeStringProperty("method", method);
}
if(uri != null) {
- generator.writeStringField("uri", uri);
+ generator.writeStringProperty("uri", uri);
}
if(host != null) {
- generator.writeStringField("host", host);
+ generator.writeStringProperty("host", host);
}
if(path != null) {
- generator.writeStringField("path", path);
+ generator.writeStringProperty("path", path);
}
if(scheme != null) {
- generator.writeStringField("scheme", scheme);
+ generator.writeStringProperty("scheme", scheme);
}
if(port.isEmpty()) {
- generator.writeNumberField("port", 80);
+ generator.writeNumberProperty("port", 80);
} else {
- generator.writeNumberField("port", port.get());
+ generator.writeNumberProperty("port", port.get());
}
writeHeaders(generator);
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ResponseSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ResponseSingleFieldAppendingMarker.java
index 0555b6f8..4f9ff5b6 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ResponseSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ResponseSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import org.zalando.logbook.HttpResponse;
import org.zalando.logbook.Origin;
@@ -36,20 +36,20 @@ protected void prepareForDeferredProcessing(HttpResponse message) {
}
@Override
- protected void writeFieldValue(JsonGenerator generator) throws IOException {
+ protected void writeFieldValue(JsonGenerator generator) {
generator.writeStartObject();
if(origin != null) {
- generator.writeStringField("origin", origin);
+ generator.writeStringProperty("origin", origin);
}
- generator.writeStringField("type", "response");
+ generator.writeStringProperty("type", "response");
if(duration != null) {
- generator.writeNumberField("duration", duration.toMillis());
+ generator.writeNumberProperty("duration", duration.toMillis());
}
if(protocol != null) {
- generator.writeStringField("protocol", protocol);
+ generator.writeStringProperty("protocol", protocol);
}
- generator.writeNumberField("status", status);
+ generator.writeNumberProperty("status", status);
writeHeaders(generator);
writeBody(generator);
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandLogLevelLogstashLogbackSink.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandLogLevelLogstashLogbackSink.java
index 02def91f..cfef2b88 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandLogLevelLogstashLogbackSink.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandLogLevelLogstashLogbackSink.java
@@ -1,12 +1,12 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.AbstractLogLevelSink;
import no.entur.logging.cloud.logbook.MessageComposer;
import no.entur.logging.cloud.logbook.RemoteHttpMessageContextSupplier;
import no.entur.logging.cloud.logbook.ondemand.state.RequestHttpMessageStateSupplierSource;
import no.entur.logging.cloud.logbook.ondemand.state.ResponseHttpMessageStateSupplierSource;
import org.slf4j.Marker;
+import tools.jackson.databind.json.JsonMapper;
import java.util.function.BiConsumer;
import java.util.function.BooleanSupplier;
@@ -18,18 +18,18 @@ public abstract class AbstractOndemandLogLevelLogstashLogbackSink extends Abstra
protected final RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier;
- protected JsonFactory jsonFactory;
+ protected JsonMapper jsonMapper;
protected final int maxBodySize;
protected final int maxSize;
public AbstractOndemandLogLevelLogstashLogbackSink(BiConsumer logConsumer,
- BooleanSupplier logLevelEnabled, JsonFactory jsonFactory,
+ BooleanSupplier logLevelEnabled, JsonMapper jsonMapper,
RequestHttpMessageStateSupplierSource requestHttpMessageStateSupplierSource,
ResponseHttpMessageStateSupplierSource responseHttpMessageStateSupplierSource, int maxBodySize, int maxSize,
RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server,
MessageComposer client) {
super(logLevelEnabled, logConsumer, server, client);
- this.jsonFactory = jsonFactory;
+ this.jsonMapper = jsonMapper;
this.requestHttpMessageStateSupplierSource = requestHttpMessageStateSupplierSource;
this.responseHttpMessageStateSupplierSource = responseHttpMessageStateSupplierSource;
this.maxBodySize = maxBodySize;
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandSingleFieldAppendingMarker.java
index 99206a4b..9fc77373 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/AbstractOndemandSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.marker.SingleFieldAppendingMarker;
import no.entur.logging.cloud.appender.scope.LoggingScopePostProcessing;
import org.zalando.logbook.ContentType;
@@ -60,15 +60,15 @@ protected void writeBody(JsonGenerator generator) {
}
- protected void writeHeaders(JsonGenerator generator) throws IOException {
- generator.writeFieldName("headers");
+ protected void writeHeaders(JsonGenerator generator) {
+ generator.writeName("headers");
generator.writeStartObject();
if(headers != null) {
for (Map.Entry> stringListEntry : headers.entrySet()) {
String key = stringListEntry.getKey();
if(key != null && !key.isEmpty()) {
- generator.writeFieldName(key.toLowerCase());
+ generator.writeName(key.toLowerCase());
generator.writeStartArray();
List values = stringListEntry.getValue();
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/EmptyHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/EmptyHttpMessageBodyWriter.java
index 9f48d6f7..821b6384 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/EmptyHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/EmptyHttpMessageBodyWriter.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import java.io.IOException;
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/HttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/HttpMessageBodyWriter.java
index 3effb7d0..d368c295 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/HttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/HttpMessageBodyWriter.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import java.io.IOException;
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/LocalHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/LocalHttpMessageBodyWriter.java
index 03f1b0ae..8da81c94 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/LocalHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/LocalHttpMessageBodyWriter.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -20,7 +20,7 @@ public void prepareResult() {
@Override
public void writeBody(JsonGenerator generator) throws IOException {
- generator.writeFieldName("body");
+ generator.writeName("body");
generator.writeRawValue(new String(input, StandardCharsets.UTF_8));
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeLocalHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeLocalHttpMessageBodyWriter.java
index de088b1f..61058836 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeLocalHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeLocalHttpMessageBodyWriter.java
@@ -1,8 +1,12 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.*;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.util.MaxSizeJsonFilter;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
+import tools.jackson.core.TokenStreamContext;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -11,17 +15,17 @@ public class MaxSizeLocalHttpMessageBodyWriter implements HttpMessageBodyWriter
protected final byte[] input;
protected final int maxSize;
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper jsonMapper;
protected final MaxSizeJsonFilter maxSizeFilter;
protected HttpMessageStateResult output;
- public MaxSizeLocalHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, int maxSize) {
- this.jsonFactory = jsonFactory;
+ public MaxSizeLocalHttpMessageBodyWriter(JsonMapper jsonMapper, byte[] input, int maxSize) {
+ this.jsonMapper = jsonMapper;
this.input = input;
this.maxSize = maxSize;
- this.maxSizeFilter = new MaxSizeJsonFilter(maxSize, jsonFactory);
+ this.maxSizeFilter = new MaxSizeJsonFilter(maxSize, jsonMapper);
}
public void prepareResult() {
@@ -47,10 +51,10 @@ public void writeBody(JsonGenerator generator) throws IOException {
HttpMessageStateResult output = this.output;
if(output.isWellformed()) {
- generator.writeFieldName("body");
+ generator.writeName("body");
generator.writeRawValue(output.getBody());
} else {
- generator.writeStringField("body", output.getBody());
+ generator.writeStringProperty("body", output.getBody());
}
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeRemoteHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeRemoteHttpMessageBodyWriter.java
index ff7b4064..3408d590 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeRemoteHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/MaxSizeRemoteHttpMessageBodyWriter.java
@@ -1,9 +1,9 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageState;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateSupplier;
+import tools.jackson.databind.json.JsonMapper;
import java.nio.charset.StandardCharsets;
@@ -11,8 +11,8 @@ public class MaxSizeRemoteHttpMessageBodyWriter extends MaxSizeLocalHttpMessageB
protected final HttpMessageStateSupplier httpMessageStateSupplier;
- public MaxSizeRemoteHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, int maxSize, HttpMessageStateSupplier httpMessageStateSupplier) {
- super(jsonFactory, input, maxSize);
+ public MaxSizeRemoteHttpMessageBodyWriter(JsonMapper jsonMapper, byte[] input, int maxSize, HttpMessageStateSupplier httpMessageStateSupplier) {
+ super(jsonMapper, input, maxSize);
this.httpMessageStateSupplier = httpMessageStateSupplier;
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/OndemandLogLevelLogstashLogbackSink.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/OndemandLogLevelLogstashLogbackSink.java
index 80a13a1c..18d5df9c 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/OndemandLogLevelLogstashLogbackSink.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/OndemandLogLevelLogstashLogbackSink.java
@@ -1,6 +1,5 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
import no.entur.logging.cloud.logbook.AbstractLogLevelLogstashLogbackSink;
import no.entur.logging.cloud.logbook.DefaultRemoteHttpMessageContextSupplier;
import no.entur.logging.cloud.logbook.MessageComposer;
@@ -10,6 +9,7 @@
import no.entur.logging.cloud.logbook.ondemand.state.ResponseHttpMessageStateSupplierSource;
import org.slf4j.Marker;
import org.zalando.logbook.*;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -44,24 +44,24 @@ public OndemandLogLevelLogstashLogbackSink build() {
if (level == null) {
throw new IllegalStateException("Expected log level");
}
- if (jsonFactory == null) {
- jsonFactory = new JsonFactory();
+ if (jsonMapper == null) {
+ jsonMapper = JsonMapper.builder().build();
}
if (remoteHttpMessageContextSupplier == null) {
remoteHttpMessageContextSupplier = new DefaultRemoteHttpMessageContextSupplier();
}
return new OndemandLogLevelLogstashLogbackSink(loggerToBiConsumer(), logEnabledToBooleanSupplier(),
- jsonFactory, requestBodyWellformedDecisionSupplier, responseBodyWellformedDecisionSupplier,
+ jsonMapper, requestBodyWellformedDecisionSupplier, responseBodyWellformedDecisionSupplier,
maxBodySize, maxSize, remoteHttpMessageContextSupplier, server, client);
}
}
public OndemandLogLevelLogstashLogbackSink(BiConsumer logConsumer, BooleanSupplier logLevelEnabled,
- JsonFactory jsonFactory, RequestHttpMessageStateSupplierSource requestHttpMessageStateSupplierSource,
+ JsonMapper jsonMapper, RequestHttpMessageStateSupplierSource requestHttpMessageStateSupplierSource,
ResponseHttpMessageStateSupplierSource responseHttpMessageStateSupplierSource, int maxBodySize, int maxSize,
RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server,
MessageComposer client) {
- super(logConsumer, logLevelEnabled, jsonFactory, requestHttpMessageStateSupplierSource,
+ super(logConsumer, logLevelEnabled, jsonMapper, requestHttpMessageStateSupplierSource,
responseHttpMessageStateSupplierSource, maxBodySize, maxSize, remoteHttpMessageContextSupplier, server,
client);
}
@@ -78,7 +78,7 @@ public Marker createRequestMarker(HttpRequest request) {
if (body.length < maxBodySize) {
writer = new LocalHttpMessageBodyWriter(body);
} else {
- writer = new MaxSizeLocalHttpMessageBodyWriter(jsonFactory, body, maxBodySize);
+ writer = new MaxSizeLocalHttpMessageBodyWriter(jsonMapper, body, maxBodySize);
}
} else {
boolean verify = remoteHttpMessageContextSupplier.verifyJsonSyntax(request);
@@ -86,9 +86,9 @@ public Marker createRequestMarker(HttpRequest request) {
HttpMessageStateSupplier httpMessageStateSupplier = requestHttpMessageStateSupplierSource
.get();
if (body.length < maxBodySize) {
- writer = new RemoteHttpMessageBodyWriter(jsonFactory, body, httpMessageStateSupplier);
+ writer = new RemoteHttpMessageBodyWriter(jsonMapper, body, httpMessageStateSupplier);
} else {
- writer = new MaxSizeRemoteHttpMessageBodyWriter(jsonFactory, body, maxSize,
+ writer = new MaxSizeRemoteHttpMessageBodyWriter(jsonMapper, body, maxSize,
httpMessageStateSupplier);
}
} else {
@@ -96,7 +96,7 @@ public Marker createRequestMarker(HttpRequest request) {
if (body.length < maxBodySize) {
writer = new LocalHttpMessageBodyWriter(body);
} else {
- writer = new MaxSizeLocalHttpMessageBodyWriter(jsonFactory, body, maxBodySize);
+ writer = new MaxSizeLocalHttpMessageBodyWriter(jsonMapper, body, maxBodySize);
}
}
}
@@ -136,7 +136,7 @@ public Marker createResponseMarker(Correlation correlation, HttpResponse respons
if (body.length < maxBodySize) {
writer = new LocalHttpMessageBodyWriter(body);
} else {
- writer = new MaxSizeLocalHttpMessageBodyWriter(jsonFactory, body, maxBodySize);
+ writer = new MaxSizeLocalHttpMessageBodyWriter(jsonMapper, body, maxBodySize);
}
} else {
boolean verify = remoteHttpMessageContextSupplier.verifyJsonSyntax(response);
@@ -144,9 +144,9 @@ public Marker createResponseMarker(Correlation correlation, HttpResponse respons
HttpMessageStateSupplier httpMessageStateSupplier = responseHttpMessageStateSupplierSource
.get();
if (body.length < maxBodySize) {
- writer = new RemoteHttpMessageBodyWriter(jsonFactory, body, httpMessageStateSupplier);
+ writer = new RemoteHttpMessageBodyWriter(jsonMapper, body, httpMessageStateSupplier);
} else {
- writer = new MaxSizeRemoteHttpMessageBodyWriter(jsonFactory, body, maxSize,
+ writer = new MaxSizeRemoteHttpMessageBodyWriter(jsonMapper, body, maxSize,
httpMessageStateSupplier);
}
} else {
@@ -154,7 +154,7 @@ public Marker createResponseMarker(Correlation correlation, HttpResponse respons
if (body.length < maxBodySize) {
writer = new LocalHttpMessageBodyWriter(body);
} else {
- writer = new MaxSizeLocalHttpMessageBodyWriter(jsonFactory, body, maxBodySize);
+ writer = new MaxSizeLocalHttpMessageBodyWriter(jsonMapper, body, maxBodySize);
}
}
}
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RemoteHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RemoteHttpMessageBodyWriter.java
index d8679e91..184d3fd2 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RemoteHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RemoteHttpMessageBodyWriter.java
@@ -1,11 +1,11 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageState;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateResult;
import no.entur.logging.cloud.logbook.ondemand.state.HttpMessageStateSupplier;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.json.JsonMapper;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -16,12 +16,12 @@ public class RemoteHttpMessageBodyWriter extends LocalHttpMessageBodyWriter {
protected final HttpMessageStateSupplier httpMessageStateSupplier;
protected volatile HttpMessageStateResult output;
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper jsonMapper;
- public RemoteHttpMessageBodyWriter(JsonFactory jsonFactory, byte[] input, HttpMessageStateSupplier httpMessageStateSupplier) {
+ public RemoteHttpMessageBodyWriter(JsonMapper jsonMapper, byte[] input, HttpMessageStateSupplier httpMessageStateSupplier) {
super(input);
- this.jsonFactory = jsonFactory;
+ this.jsonMapper = jsonMapper;
this.httpMessageStateSupplier = httpMessageStateSupplier;
}
@@ -49,15 +49,15 @@ public void writeBody(JsonGenerator generator) throws IOException {
this.output = output = createOutput();
}
if(output.isWellformed()) {
- generator.writeFieldName("body");
+ generator.writeName("body");
generator.writeRawValue(output.getBody());
} else {
- generator.writeStringField("body", output.getBody());
+ generator.writeStringProperty("body", output.getBody());
}
}
protected boolean isWellformedJson() {
- try (JsonParser parser = jsonFactory.createParser(new ByteArrayInputStream(input))) {
+ try (JsonParser parser = jsonMapper.createParser(new ByteArrayInputStream(input))) {
while(parser.nextToken() != null);
} catch(Exception e) {
return false;
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RequestOndemandSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RequestOndemandSingleFieldAppendingMarker.java
index 405661f8..5112cfb1 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RequestOndemandSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/RequestOndemandSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.marker.SingleFieldAppendingMarker;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.Origin;
@@ -46,22 +46,22 @@ protected void prepareForDeferredProcessing(HttpRequest message) {
}
@Override
- protected void writeFieldValue(JsonGenerator generator) throws IOException {
+ protected void writeFieldValue(JsonGenerator generator) {
generator.writeStartObject();
- generator.writeStringField("origin", origin);
- generator.writeStringField("type", "request");
- generator.writeStringField("protocol", protocol);
- generator.writeStringField("remote", remote);
- generator.writeStringField("method", method);
- generator.writeStringField("uri", uri);
- generator.writeStringField("host", host);
- generator.writeStringField("path", path);
- generator.writeStringField("scheme", scheme);
+ generator.writeStringProperty("origin", origin);
+ generator.writeStringProperty("type", "request");
+ generator.writeStringProperty("protocol", protocol);
+ generator.writeStringProperty("remote", remote);
+ generator.writeStringProperty("method", method);
+ generator.writeStringProperty("uri", uri);
+ generator.writeStringProperty("host", host);
+ generator.writeStringProperty("path", path);
+ generator.writeStringProperty("scheme", scheme);
if(port.isEmpty()) {
- generator.writeNumberField("port", 80);
+ generator.writeNumberProperty("port", 80);
} else {
- generator.writeNumberField("port", port.get());
+ generator.writeNumberProperty("port", port.get());
}
writeHeaders(generator);
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/ResponseOndemandSingleFieldAppendingMarker.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/ResponseOndemandSingleFieldAppendingMarker.java
index 00ae2e66..5e22ea5a 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/ResponseOndemandSingleFieldAppendingMarker.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/ResponseOndemandSingleFieldAppendingMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.marker.SingleFieldAppendingMarker;
import org.zalando.logbook.HttpResponse;
import org.zalando.logbook.Origin;
@@ -36,20 +36,20 @@ protected void prepareForDeferredProcessing(HttpResponse message) {
}
@Override
- protected void writeFieldValue(JsonGenerator generator) throws IOException {
+ protected void writeFieldValue(JsonGenerator generator) {
generator.writeStartObject();
if(origin != null) {
- generator.writeStringField("origin", origin);
+ generator.writeStringProperty("origin", origin);
}
- generator.writeStringField("type", "response");
+ generator.writeStringProperty("type", "response");
if(duration != null) {
- generator.writeNumberField("duration", duration.toMillis());
+ generator.writeNumberProperty("duration", duration.toMillis());
}
if(protocol != null) {
- generator.writeStringField("protocol", protocol);
+ generator.writeStringProperty("protocol", protocol);
}
- generator.writeNumberField("status", status);
+ generator.writeNumberProperty("status", status);
writeHeaders(generator);
writeBody(generator);
diff --git a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/StringHttpMessageBodyWriter.java b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/StringHttpMessageBodyWriter.java
index 586ac29b..90a5f9b4 100644
--- a/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/StringHttpMessageBodyWriter.java
+++ b/request-response/logbook/src/main/java/no/entur/logging/cloud/logbook/ondemand/StringHttpMessageBodyWriter.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.logbook.ondemand;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -20,7 +20,7 @@ public void prepareResult() {
@Override
public void writeBody(JsonGenerator generator) throws IOException {
- generator.writeStringField("body", input);
+ generator.writeStringProperty("body", input);
}
}
diff --git a/request-response/logbook/src/test/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSinkTest.java b/request-response/logbook/src/test/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSinkTest.java
index 322e8212..dbdd8b41 100644
--- a/request-response/logbook/src/test/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSinkTest.java
+++ b/request-response/logbook/src/test/java/no/entur/logging/cloud/logbook/AbstractLogLevelLogstashLogbackSinkTest.java
@@ -1,13 +1,12 @@
package no.entur.logging.cloud.logbook;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.databind.MappingJsonFactory;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.slf4j.Marker;
import org.zalando.logbook.HttpRequest;
import org.zalando.logbook.HttpResponse;
import org.zalando.logbook.Origin;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.time.Duration;
@@ -22,8 +21,8 @@ public class AbstractLogLevelLogstashLogbackSinkTest {
public static class MockLogLevelLogstashLogbackSink extends AbstractLogLevelLogstashLogbackSink {
- public MockLogLevelLogstashLogbackSink(BiConsumer logConsumer, BooleanSupplier logLevelEnabled, JsonFactory jsonFactory, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server, MessageComposer client) {
- super(logConsumer, logLevelEnabled, jsonFactory, maxSize, remoteHttpMessageContextSupplier, server, client);
+ public MockLogLevelLogstashLogbackSink(BiConsumer logConsumer, BooleanSupplier logLevelEnabled, JsonMapper jsonMapper, int maxSize, RemoteHttpMessageContextSupplier remoteHttpMessageContextSupplier, MessageComposer server, MessageComposer client) {
+ super(logConsumer, logLevelEnabled, jsonMapper, maxSize, remoteHttpMessageContextSupplier, server, client);
}
@Override
@@ -183,7 +182,8 @@ private MockLogLevelLogstashLogbackSink createSink() {
MessageComposer server = mock(MessageComposer.class);
MessageComposer client = mock(MessageComposer.class);
BooleanSupplier logLevelEnabled = () -> true;
- MockLogLevelLogstashLogbackSink sink = new MockLogLevelLogstashLogbackSink(logConsumer, logLevelEnabled, new MappingJsonFactory(), maxSize, remoteHttpMessageContextSupplier, server, client);
+
+ MockLogLevelLogstashLogbackSink sink = new MockLogLevelLogstashLogbackSink(logConsumer, logLevelEnabled, JsonMapper.builder().build(), maxSize, remoteHttpMessageContextSupplier, server, client);
return spy(sink);
}
diff --git a/request-response/netty-grpc-test/build.gradle b/request-response/netty-grpc-test/build.gradle
index 81e0a8ea..959c79d2 100644
--- a/request-response/netty-grpc-test/build.gradle
+++ b/request-response/netty-grpc-test/build.gradle
@@ -3,11 +3,11 @@ dependencies {
api project(':request-response:netty-grpc')
api project(":test:test-logback")
- api ("org.entur.jackson:jackson-syntax-highlight:${jacksonSyntaxHighlightVersion}")
+ api ("org.entur.jackson:jackson-tools-syntax-highlight:${jacksonSyntaxHighlightVersion}")
api ("org.entur.logback-logstash-syntax-highlighting-decorators:logback-logstash-syntax-highlighting-decorators:${logbackLogstashSyntaxHighlightingDecoratorsVersion}")
api ("net.logstash.logback:logstash-logback-encoder:${logbackLogstashVersion}")
- api("com.fasterxml.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-core")
api("org.apache.commons:commons-text:${commonsTextVersion}")
diff --git a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingGrpcSink.java b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingGrpcSink.java
index 9036c9d0..4a4ae15f 100644
--- a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingGrpcSink.java
+++ b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingGrpcSink.java
@@ -1,11 +1,10 @@
package no.entur.logging.cloud.rr.grpc.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import org.entur.jackson.jsh.AnsiSyntaxHighlight;
-import org.entur.jackson.jsh.SyntaxHighlighter;
-import org.entur.jackson.jsh.SyntaxHighlightingJsonGenerator;
+import org.entur.jackson.tools.jsh.AnsiSyntaxHighlight;
+import org.entur.jackson.tools.jsh.SyntaxHighlighter;
+import org.entur.jackson.tools.jsh.SyntaxHighlightingJsonGenerator;
+import org.entur.jackson.tools.jsh.SyntaxHighlightingPrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.rr.grpc.AbstractSinkBuilder;
import no.entur.logging.cloud.rr.grpc.LogbackLogstashGrpcSink;
import no.entur.logging.cloud.rr.grpc.message.GrpcConnect;
@@ -13,6 +12,11 @@
import no.entur.logging.cloud.rr.grpc.message.GrpcRequest;
import no.entur.logging.cloud.rr.grpc.message.GrpcResponse;
import org.slf4j.Marker;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.json.JsonFactory;
+import tools.jackson.databind.SerializationFeature;
+import tools.jackson.databind.json.JsonMapper;
import java.io.IOException;
import java.io.StringWriter;
@@ -44,19 +48,24 @@ public PrettyPrintingGrpcSink build() {
throw new IllegalStateException("Expected Json syntax highlighter level");
}
- return new PrettyPrintingGrpcSink(logEnabledToBooleanSupplier(), loggerToBiConsumer(), new JsonFactory(), syntaxHighlighter);
+ JsonMapper mapper = JsonMapper.builder().defaultPrettyPrinter(new SyntaxHighlightingPrettyPrinter(syntaxHighlighter))
+ .configure(SerializationFeature.INDENT_OUTPUT, true)
+ .build();
+
+ return new PrettyPrintingGrpcSink(logEnabledToBooleanSupplier(), loggerToBiConsumer(), mapper, syntaxHighlighter);
}
}
+
protected final BiConsumer logConsumer;
- protected final JsonFactory jsonFactory;
+ protected final JsonMapper mapper;
protected final SyntaxHighlighter syntaxHighlighter;
- public PrettyPrintingGrpcSink(BooleanSupplier logLevelEnabled, BiConsumer logConsumer, JsonFactory jsonFactory, SyntaxHighlighter syntaxHighlighter) {
+ public PrettyPrintingGrpcSink(BooleanSupplier logLevelEnabled, BiConsumer logConsumer, JsonMapper mapper, SyntaxHighlighter syntaxHighlighter) {
super(logConsumer, logLevelEnabled);
this.logConsumer = logConsumer;
- this.jsonFactory = jsonFactory;
+ this.mapper = mapper;
this.syntaxHighlighter = syntaxHighlighter;
}
@@ -167,11 +176,13 @@ public String prettyPrint(String body) {
if (body != null && body.length() > 0) {
try (
- JsonParser parser = jsonFactory.createParser(body);
- StringWriter writer = new StringWriter(body.length() * 2);
- JsonGenerator generator = jsonFactory.createGenerator(writer);
+ JsonParser parser = mapper.createParser(body);
+ StringWriter writer = new StringWriter(body.length() * 2);
+ JsonGenerator generator = mapper.createGenerator(writer);
) {
- JsonGenerator jsonGenerator = new SyntaxHighlightingJsonGenerator(generator, syntaxHighlighter,true);
+ SyntaxHighlightingPrettyPrinter prettyPrinter = (SyntaxHighlightingPrettyPrinter) generator.getPrettyPrinter();
+
+ JsonGenerator jsonGenerator = new SyntaxHighlightingJsonGenerator(generator, prettyPrinter, prettyPrinter.getObjectIndenter(), prettyPrinter.getArrayIndenter(), prettyPrinter.getSyntaxHighlighter());
while (parser.nextToken() != null) {
jsonGenerator.copyCurrentEvent(parser);
}
diff --git a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingRequestSingleFieldAppendingMarker.java b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
index 5f980d38..d75f2dde 100644
--- a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
+++ b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingRequestSingleFieldAppendingMarker.java
@@ -1,11 +1,12 @@
package no.entur.logging.cloud.rr.grpc.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.rr.grpc.marker.GrpcRequestMarker;
import no.entur.logging.cloud.rr.grpc.message.GrpcRequest;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
+import tools.jackson.core.json.JsonFactory;
import java.io.IOException;
@@ -17,14 +18,14 @@ public PrettyPrintingRequestSingleFieldAppendingMarker(GrpcRequest message) {
}
@Override
- protected void writeBodyField(JsonGenerator generator, String body) throws IOException {
- generator.writeFieldName("body");
+ protected void writeBodyField(JsonGenerator generator, String body) {
+ generator.writeName("body");
final PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
if (prettyPrinter == null || isRawStringValue(body)) {
generator.writeRawValue(body);
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(body)) {
diff --git a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingResponseSingleFieldAppendingMarker.java b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
index 73cfd7be..c77d68bf 100644
--- a/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
+++ b/request-response/netty-grpc-test/src/main/java/no/entur/logging/cloud/rr/grpc/test/PrettyPrintingResponseSingleFieldAppendingMarker.java
@@ -1,11 +1,13 @@
package no.entur.logging.cloud.rr.grpc.test;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.PrettyPrinter;
+import tools.jackson.core.JsonGenerator;
import no.entur.logging.cloud.rr.grpc.marker.GrpcResponseMarker;
import no.entur.logging.cloud.rr.grpc.message.GrpcResponse;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.PrettyPrinter;
+import tools.jackson.core.TokenStreamFactory;
+import tools.jackson.core.json.JsonFactory;
+
import java.io.IOException;
public class PrettyPrintingResponseSingleFieldAppendingMarker extends GrpcResponseMarker {
@@ -15,14 +17,14 @@ public PrettyPrintingResponseSingleFieldAppendingMarker(GrpcResponse message) {
}
@Override
- protected void writeBodyField(JsonGenerator generator, String body) throws IOException {
- generator.writeFieldName("body");
+ protected void writeBodyField(JsonGenerator generator, String body) {
+ generator.writeName("body");
final PrettyPrinter prettyPrinter = generator.getPrettyPrinter();
if (prettyPrinter == null || isRawStringValue(body)) {
generator.writeRawValue(body);
} else {
- final JsonFactory factory = generator.getCodec().getFactory();
+ final TokenStreamFactory factory = generator.objectWriteContext().tokenStreamFactory();
// append to existing tree event by event
try (final JsonParser parser = factory.createParser(body)) {
diff --git a/request-response/netty-grpc/build.gradle b/request-response/netty-grpc/build.gradle
index 31bf2d38..d30cb92b 100644
--- a/request-response/netty-grpc/build.gradle
+++ b/request-response/netty-grpc/build.gradle
@@ -8,7 +8,7 @@ dependencies {
api("com.fasterxml.jackson.core:jackson-databind")
api("com.fasterxml.jackson.core:jackson-annotations")
- api("com.fasterxml.jackson.core:jackson-core")
+ api("tools.jackson.core:jackson-core")
api("io.grpc:grpc-netty:${grpcNettyVersion}")
api("io.grpc:grpc-services:${grpcNettyVersion}")
diff --git a/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/mapper/DefaultMetadataJsonMapper.java b/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/mapper/DefaultMetadataJsonMapper.java
index 8eb86ff3..c41ab584 100644
--- a/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/mapper/DefaultMetadataJsonMapper.java
+++ b/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/mapper/DefaultMetadataJsonMapper.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.rr.grpc.mapper;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
@@ -72,7 +72,7 @@ protected RawSerializer() {
}
@Override
- public void serialize(RawString value, JsonGenerator gen, SerializerProvider provider) throws IOException {
+ public void serialize(RawString value, com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider) throws IOException {
gen.writeRaw(value.getString());
}
}
diff --git a/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/marker/GrpcConnectionMarker.java b/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/marker/GrpcConnectionMarker.java
index 85f2ca9d..ed0936f2 100644
--- a/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/marker/GrpcConnectionMarker.java
+++ b/request-response/netty-grpc/src/main/java/no/entur/logging/cloud/rr/grpc/marker/GrpcConnectionMarker.java
@@ -1,6 +1,6 @@
package no.entur.logging.cloud.rr.grpc.marker;
-import com.fasterxml.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonGenerator;
import net.logstash.logback.marker.LogstashMarker;
import no.entur.logging.cloud.rr.grpc.message.GrpcMessage;
@@ -21,8 +21,8 @@ protected GrpcConnectionMarker(String name, T message) {
}
@Override
- public void writeTo(JsonGenerator generator) throws IOException {
- generator.writeFieldName("http");
+ public void writeTo(JsonGenerator generator) {
+ generator.writeName("http");
generator.writeStartObject();
writeFields(generator);
@@ -30,34 +30,34 @@ public void writeTo(JsonGenerator generator) throws IOException {
generator.writeEndObject();
}
- protected void writeFields(JsonGenerator generator) throws IOException {
+ protected void writeFields(JsonGenerator generator) {
String uri = message.getUri();
if(uri != null) {
- generator.writeFieldName("uri");
+ generator.writeName("uri");
generator.writeString(uri);
}
String type = message.getType();
if(type != null) {
- generator.writeFieldName("type");
+ generator.writeName("type");
generator.writeString(type);
}
String remote = message.getRemote();
if(remote != null) {
- generator.writeFieldName("remote");
+ generator.writeName("remote");
generator.writeString(remote);
}
String origin = message.getOrigin();
if(origin != null) {
- generator.writeFieldName("origin");
+ generator.writeName("origin");
generator.writeString(origin);
}
Map headers = message.getHeaders();
- generator.writeFieldName("headers");
+ generator.writeName("headers");
generator.writeStartObject();
if(headers != null) {
@@ -65,7 +65,7 @@ protected void writeFields(JsonGenerator generator) throws IOException {
String key = entry.getKey();
if(key != null && !key.isEmpty()) {
- generator.writeFieldName(key.toLowerCase());
+ generator.writeName(key.toLowerCase());
generator.writeStartArray();
Object value = entry.getValue();
@@ -73,10 +73,10 @@ protected void writeFields(JsonGenerator generator) throws IOException {
if (value instanceof List) {
List