Skip to content

Commit ce53678

Browse files
committed
chore: upgrade to Jetty 12.1 EE11, Spring 7, and Jackson 3
- Jetty 12.0.x EE10 → 12.1.0 EE11 across core, server, and dashboard - Spring MVC 6.2.6 → 7.0.6 in jgit-proxy-dashboard - Jackson 2.x (com.fasterxml.jackson) → 3.1.1 (tools.jackson) in core and dashboard - Update SpringWebConfig to use HttpMessageConverters.ServerBuilder and JacksonJsonHttpMessageConverter - Replace addXForwardedHeaders override with addProxyHeaders (Jetty 12.1 API change)
1 parent d57850e commit ce53678

5 files changed

Lines changed: 17 additions & 29 deletions

File tree

jgit-proxy-core/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ dependencies {
6262

6363

6464
// Jackson for JSON — BOM pins all jackson-* modules to the same version
65-
api platform("com.fasterxml.jackson:jackson-bom:2.18.6")
66-
api "com.fasterxml.jackson.core:jackson-annotations"
67-
implementation "com.fasterxml.jackson.core:jackson-databind"
65+
api platform('tools.jackson:jackson-bom:3.1.1')
66+
api "tools.jackson.core:jackson-databind"
6867

6968
// Logging
7069
implementation "ch.qos.logback:logback-core:${logbackVersion}"

jgit-proxy-core/src/main/java/org/finos/gitproxy/git/GitleaksRunner.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
66
import com.fasterxml.jackson.annotation.JsonProperty;
7-
import com.fasterxml.jackson.core.type.TypeReference;
8-
import com.fasterxml.jackson.databind.ObjectMapper;
97
import java.io.IOException;
108
import java.io.InputStream;
119
import java.io.OutputStream;
@@ -24,6 +22,8 @@
2422
import lombok.Data;
2523
import lombok.extern.slf4j.Slf4j;
2624
import org.finos.gitproxy.config.CommitConfig;
25+
import tools.jackson.core.type.TypeReference;
26+
import tools.jackson.databind.ObjectMapper;
2727

2828
/**
2929
* Runs the gitleaks secret scanner against a unified diff and returns structured findings.
@@ -476,7 +476,7 @@ private static List<Finding> readFindings(Path reportFile) {
476476
if (json.isBlank() || json.trim().equals("null")) {
477477
return Collections.emptyList();
478478
}
479-
return OBJECT_MAPPER.readValue(json, new TypeReference<List<Finding>>() {});
479+
return OBJECT_MAPPER.readValue(json, new TypeReference<>() {});
480480
} catch (Exception e) {
481481
log.warn("Failed to parse gitleaks JSON report: {}", e.getMessage());
482482
return Collections.emptyList();

jgit-proxy-core/src/main/java/org/finos/gitproxy/servlet/GitProxyServlet.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ protected void addViaHeader(HttpServletRequest clientRequest, Request proxyReque
4343
// TODO: Allow X-Forwarded-* headers to be sent if configured (enabled via opt-in)
4444
// TODO: Allow X-Forwarded-* headers to be customized
4545
@Override
46-
protected void addXForwardedHeaders(HttpServletRequest clientRequest, Request proxyRequest) {
47-
// no-op - don't send "X-Forwarded-*" headers to upstream
46+
protected void addProxyHeaders(HttpServletRequest clientRequest, Request proxyRequest) {
47+
// no-op - don't send proxy headers (X-Forwarded-*, Forwarded) to upstream
4848
}
4949

5050
@Override

jgit-proxy-dashboard/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,8 @@ dependencies {
5151
// Spring MVC for the REST API and dashboard
5252
implementation 'org.springframework:spring-webmvc:7.0.6'
5353

54-
// Jackson JSR310 module for Instant serialisation
55-
implementation platform('com.fasterxml.jackson:jackson-bom:2.18.6')
56-
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
54+
// Jackson JSON processing
55+
implementation "tools.jackson.core:jackson-databind"
5756

5857
// Database drivers at runtime (whichever store is configured)
5958
runtimeOnly 'com.h2database:h2:2.4.240'

jgit-proxy-dashboard/src/main/java/org/finos/gitproxy/dashboard/SpringWebConfig.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,27 @@
11
package org.finos.gitproxy.dashboard;
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.fasterxml.jackson.databind.SerializationFeature;
5-
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
6-
import java.util.List;
7-
import org.springframework.context.annotation.Bean;
84
import org.springframework.context.annotation.ComponentScan;
95
import org.springframework.context.annotation.Configuration;
10-
import org.springframework.http.converter.HttpMessageConverter;
11-
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
12-
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
6+
import org.springframework.http.converter.HttpMessageConverters;
7+
import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter;
138
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
149
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
1510
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
1611
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
12+
import tools.jackson.databind.json.JsonMapper;
1713

1814
@Configuration
1915
@EnableWebMvc
2016
@ComponentScan("org.finos.gitproxy.dashboard.controller")
2117
public class SpringWebConfig implements WebMvcConfigurer {
2218

2319
@Override
24-
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
25-
converters.add(new MappingJackson2HttpMessageConverter(
26-
jackson2ObjectMapperBuilder().build()));
27-
}
28-
29-
@Bean
30-
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
31-
return new Jackson2ObjectMapperBuilder()
32-
.serializationInclusion(JsonInclude.Include.NON_NULL)
33-
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
34-
.modules(new JavaTimeModule());
20+
public void configureMessageConverters(HttpMessageConverters.ServerBuilder builder) {
21+
builder.withJsonConverter(new JacksonJsonHttpMessageConverter(JsonMapper.builder()
22+
.changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL))
23+
.changeDefaultPropertyInclusion(incl -> incl.withContentInclusion(JsonInclude.Include.NON_NULL))
24+
.build()));
3525
}
3626

3727
@Override

0 commit comments

Comments
 (0)