Skip to content

Commit 25697d4

Browse files
authored
Merge pull request #199 from hazendaz/master
Update github actions, maven wrapper, and fix jackson to use a bom
2 parents 0d4b815 + ff3f1ae commit 25697d4

File tree

10 files changed

+120
-48
lines changed

10 files changed

+120
-48
lines changed

.github/workflows/ci.yaml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,31 @@ on: [workflow_dispatch, push, pull_request]
44

55
permissions: read-all
66

7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.sha }}
9+
cancel-in-progress: true
10+
711
jobs:
812
test:
913
runs-on: ${{ matrix.os }}
14+
timeout-minutes: 30
1015
strategy:
1116
matrix:
1217
cache: [maven]
1318
distribution: [temurin]
14-
java: [11, 17, 21, 24, 25-ea]
15-
os: [ubuntu-latest, macos-latest, windows-latest]
19+
java: [17, 21, 24, 25-ea]
20+
os: [macos-latest, ubuntu-latest, windows-latest]
1621
fail-fast: false
17-
max-parallel: 4
22+
max-parallel: 6
1823
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}
1924

2025
steps:
2126
- uses: actions/checkout@v5
22-
- name: Set up JDK ${{ matrix.java }} ${{ matrix.distribution }}
27+
- name: Setup Java ${{ matrix.java }} ${{ matrix.distribution }}
2328
uses: actions/setup-java@v5
2429
with:
25-
java-version: ${{ matrix.java }}
26-
distribution: ${{ matrix.distribution }}
2730
cache: ${{ matrix.cache }}
31+
distribution: ${{ matrix.distribution }}
32+
java-version: ${{ matrix.java }}
2833
- name: Test with Maven
2934
run: ./mvnw test -B -V --no-transfer-progress -D"license.skip=true"

.github/workflows/codeql.yaml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
schedule:
9+
- cron: '43 10 * * 2'
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.sha }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
analyze:
17+
name: Analyze
18+
runs-on: 'ubuntu-latest'
19+
timeout-minutes: 30
20+
permissions:
21+
actions: read
22+
contents: read
23+
security-events: write
24+
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
language: [ javascript, java, kotlin ]
29+
30+
steps:
31+
- name: Checkout
32+
uses: actions/checkout@v5
33+
34+
- name: Setup Java
35+
uses: actions/setup-java@v5
36+
with:
37+
cache: maven
38+
distribution: 'temurin'
39+
java-version: 21
40+
41+
- name: Initialize CodeQL
42+
uses: github/codeql-action/init@v3
43+
with:
44+
languages: ${{ matrix.language }}
45+
queries: +security-and-quality
46+
47+
- name: Autobuild
48+
uses: github/codeql-action/autobuild@v3
49+
50+
- name: Perform CodeQL Analysis
51+
uses: github/codeql-action/analyze@v3
52+
with:
53+
category: "/language:${{ matrix.language }}"

.github/workflows/sonatype.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@ on:
77

88
permissions: read-all
99

10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.sha }}
12+
cancel-in-progress: true
13+
1014
jobs:
1115
build:
1216
if: github.repository_owner == 'tomcat-slf4j-logback' && ! contains(toJSON(github.event.head_commit.message), '[maven-release-plugin]')
1317
runs-on: ubuntu-latest
18+
timeout-minutes: 30
1419
steps:
1520
- uses: actions/checkout@v5
16-
- name: Set up JDK
21+
- name: Setup Java
1722
uses: actions/setup-java@v5
1823
with:
1924
cache: maven

.mvn/jvm.config

Whitespace-only changes.

.mvn/maven.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
-Daether.checksums.algorithms=SHA-512,SHA-256,SHA-1,MD5
22
-Daether.connector.smartChecksums=false
3+
--no-transfer-progress

.mvn/wrapper/MavenWrapperDownloader.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,11 @@
2525
import java.net.URL;
2626
import java.nio.file.Files;
2727
import java.nio.file.Path;
28-
import java.nio.file.Paths;
2928
import java.nio.file.StandardCopyOption;
3029
import java.util.concurrent.ThreadLocalRandom;
3130

3231
public final class MavenWrapperDownloader {
33-
private static final String WRAPPER_VERSION = "3.3.2";
32+
private static final String WRAPPER_VERSION = "3.3.3";
3433

3534
private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE"));
3635

@@ -45,8 +44,11 @@ public static void main(String[] args) {
4544
try {
4645
log(" - Downloader started");
4746
final URL wrapperUrl = URI.create(args[0]).toURL();
48-
final String jarPath = args[1].replace("..", ""); // Sanitize path
49-
final Path wrapperJarPath = Paths.get(jarPath).toAbsolutePath().normalize();
47+
final Path baseDir = Path.of(".").toAbsolutePath().normalize();
48+
final Path wrapperJarPath = baseDir.resolve(args[1]).normalize();
49+
if (!wrapperJarPath.startsWith(baseDir)) {
50+
throw new IOException("Invalid path: outside of allowed directory");
51+
}
5052
downloadFileFromURL(wrapperUrl, wrapperJarPath);
5153
log("Done");
5254
} catch (IOException e) {
Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
# Licensed to the Apache Software Foundation (ASF) under one
2-
# or more contributor license agreements. See the NOTICE file
3-
# distributed with this work for additional information
4-
# regarding copyright ownership. The ASF licenses this file
5-
# to you under the Apache License, Version 2.0 (the
6-
# "License"); you may not use this file except in compliance
7-
# with the License. You may obtain a copy of the License at
8-
#
9-
# https://www.apache.org/licenses/LICENSE-2.0
10-
#
11-
# Unless required by applicable law or agreed to in writing,
12-
# software distributed under the License is distributed on an
13-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14-
# KIND, either express or implied. See the License for the
15-
# specific language governing permissions and limitations
16-
# under the License.
17-
wrapperVersion=3.3.2
181
distributionType=source
192
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
20-
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar
3+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.3/maven-wrapper-3.3.3.jar
4+
wrapperVersion=3.3.3

mvnw

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
# ----------------------------------------------------------------------------
2020

2121
# ----------------------------------------------------------------------------
22-
# Apache Maven Wrapper startup batch script, version 3.3.2
22+
# Apache Maven Wrapper startup batch script, version 3.3.3
2323
#
2424
# Required ENV vars:
2525
# ------------------
@@ -201,6 +201,14 @@ MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
201201
export MAVEN_PROJECTBASEDIR
202202
log "$MAVEN_PROJECTBASEDIR"
203203

204+
trim() {
205+
# MWRAPPER-139:
206+
# Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
207+
# Needed for removing poorly interpreted newline sequences when running in more
208+
# exotic environments such as mingw bash on Windows.
209+
printf "%s" "${1}" | tr -d '[:space:]'
210+
}
211+
204212
##########################################################################################
205213
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
206214
# This allows using the maven wrapper in projects that prohibit checking in binary data.
@@ -212,15 +220,13 @@ else
212220
log "Couldn't find $wrapperJarPath, downloading it ..."
213221

214222
if [ -n "$MVNW_REPOURL" ]; then
215-
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
223+
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.3/maven-wrapper-3.3.3.jar"
216224
else
217-
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
225+
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.3/maven-wrapper-3.3.3.jar"
218226
fi
219227
while IFS="=" read -r key value; do
220-
# Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
221-
safeValue=$(echo "$value" | tr -d '\r')
222228
case "$key" in wrapperUrl)
223-
wrapperUrl="$safeValue"
229+
wrapperUrl=$(trim "${value-}")
224230
break
225231
;;
226232
esac
@@ -235,17 +241,17 @@ else
235241
log "Found wget ... using wget"
236242
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
237243
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
238-
wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
244+
wget ${QUIET:+"$QUIET"} "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
239245
else
240-
wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
246+
wget ${QUIET:+"$QUIET"} --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241247
fi
242248
elif command -v curl >/dev/null; then
243249
log "Found curl ... using curl"
244250
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
245251
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
246-
curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
252+
curl ${QUIET:+"$QUIET"} -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
247253
else
248-
curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
254+
curl ${QUIET:+"$QUIET"} --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
249255
fi
250256
else
251257
log "Falling back to using Java to download"
@@ -276,15 +282,15 @@ fi
276282
wrapperSha256Sum=""
277283
while IFS="=" read -r key value; do
278284
case "$key" in wrapperSha256Sum)
279-
wrapperSha256Sum=$value
285+
wrapperSha256Sum=$(trim "${value-}")
280286
break
281287
;;
282288
esac
283289
done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
284290
if [ -n "$wrapperSha256Sum" ]; then
285291
wrapperSha256Result=false
286292
if command -v sha256sum >/dev/null; then
287-
if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c >/dev/null 2>&1; then
293+
if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c - >/dev/null 2>&1; then
288294
wrapperSha256Result=true
289295
fi
290296
elif command -v shasum >/dev/null; then
@@ -321,6 +327,8 @@ fi
321327
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
322328
export MAVEN_CMD_LINE_ARGS
323329

330+
# Maven main class is here to fix maven 4.0.0-beta-5 through 4.0.0-rc-4
331+
MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling
324332
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
325333

326334
# shellcheck disable=SC2086 # safe args
@@ -329,4 +337,5 @@ exec "$JAVACMD" \
329337
$MAVEN_DEBUG_OPTS \
330338
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
331339
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
340+
"-Dmaven.mainClass=${MAVEN_MAIN_CLASS}" \
332341
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

mvnw.cmd

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@REM ----------------------------------------------------------------------------
1919

2020
@REM ----------------------------------------------------------------------------
21-
@REM Apache Maven Wrapper startup batch script, version 3.3.2
21+
@REM Apache Maven Wrapper startup batch script, version 3.3.3
2222
@REM
2323
@REM Required ENV vars:
2424
@REM JAVA_HOME - location of a JDK home dir
@@ -117,9 +117,12 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s
117117

118118
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
119119
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
120+
121+
@REM Maven main class is here to fix maven 4.0.0-beta-5 through 4.0.0-rc-4
122+
set MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling
120123
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
121124

122-
set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
125+
set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.3/maven-wrapper-3.3.3.jar"
123126

124127
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
125128
IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
@@ -133,7 +136,7 @@ if exist %WRAPPER_JAR% (
133136
)
134137
) else (
135138
if not "%MVNW_REPOURL%" == "" (
136-
SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
139+
SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.3/maven-wrapper-3.3.3.jar"
137140
)
138141
if "%MVNW_VERBOSE%" == "true" (
139142
echo Couldn't find %WRAPPER_JAR%, downloading it ...
@@ -182,6 +185,7 @@ set MAVEN_CMD_LINE_ARGS=%*
182185
%MAVEN_DEBUG_OPTS% ^
183186
-classpath %WRAPPER_JAR% ^
184187
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
188+
"-Dmaven.mainClass=%MAVEN_MAIN_CLASS%" ^
185189
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
186190
if ERRORLEVEL 1 goto error
187191
goto end

pom.xml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,25 @@
9393
<slf4j.version>2.0.17</slf4j.version>
9494

9595
<!-- Logstash Json Encoder -->
96-
<jackson.version>2.20</jackson.version>
96+
<jackson.version>2.20.0</jackson.version>
9797
<logstash.version>7.4</logstash.version>
9898

9999
<!-- Automatic Module Name -->
100100
<module.name>com.github.tomcat9.slf4j.logback</module.name>
101101
</properties>
102102

103+
<dependencyManagement>
104+
<dependencies>
105+
<dependency>
106+
<groupId>com.fasterxml.jackson</groupId>
107+
<artifactId>jackson-bom</artifactId>
108+
<version>${jackson.version}</version>
109+
<scope>import</scope>
110+
<type>pom</type>
111+
</dependency>
112+
</dependencies>
113+
</dependencyManagement>
114+
103115
<dependencies>
104116
<dependency>
105117
<groupId>org.apache.tomcat</groupId>
@@ -159,21 +171,18 @@
159171
<dependency>
160172
<groupId>com.fasterxml.jackson.core</groupId>
161173
<artifactId>jackson-annotations</artifactId>
162-
<version>${jackson.version}</version>
163174
<scope>compile</scope>
164175
<optional>true</optional>
165176
</dependency>
166177
<dependency>
167178
<groupId>com.fasterxml.jackson.core</groupId>
168179
<artifactId>jackson-core</artifactId>
169-
<version>${jackson.version}</version>
170180
<scope>compile</scope>
171181
<optional>true</optional>
172182
</dependency>
173183
<dependency>
174184
<groupId>com.fasterxml.jackson.core</groupId>
175185
<artifactId>jackson-databind</artifactId>
176-
<version>${jackson.version}</version>
177186
<scope>compile</scope>
178187
<optional>true</optional>
179188
</dependency>

0 commit comments

Comments
 (0)