Skip to content

Commit

Permalink
Upgrade spring boot to 2.7.3 and to java 17 (#66)
Browse files Browse the repository at this point in the history
- upgrade spring boot to 2.7.3
- upgrade tika to 2.4.2
- upgrade gradle to 7.5.1

Upgrade to java 17
  • Loading branch information
EugenMayer authored Sep 7, 2022
1 parent 53addfa commit 59aed42
Show file tree
Hide file tree
Showing 14 changed files with 71 additions and 54 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/docker-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:

env:
IMAGE_FQDN: ghcr.io/eugenmayer/kontextwork-converter
JODCONVERTER_VERSION: 4.4.2-2.0

jobs:
docker:
Expand All @@ -24,7 +25,6 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
# push only on main
- name: Build production
uses: docker/build-push-action@v3
with:
Expand All @@ -34,6 +34,9 @@ jobs:
push: false
tags: |
${{ env.IMAGE_FQDN }}:latest
build-args: |
VERSION=0.0.1-snapshot
JODCONVERTER_VERSION=${{ env.JODCONVERTER_VERSION }}
- name: Build dev
uses: docker/build-push-action@v3
with:
Expand All @@ -43,3 +46,6 @@ jobs:
push: false
tags: |
${{ env.IMAGE_FQDN }}:latest
build-args: |
VERSION=0.0.1-snapshot
JODCONVERTER_VERSION=${{ env.JODCONVERTER_VERSION }}
20 changes: 18 additions & 2 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:

env:
IMAGE_FQDN: ghcr.io/eugenmayer/kontextwork-converter
JODCONVERTER_VERSION: 4.4.2-2.0

jobs:
docker:
Expand All @@ -24,14 +25,29 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
# push only on main
- name: Build and publish
- name: Build and publish production
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
push: true
target: production
tags: |
${{ env.IMAGE_FQDN }}:${{ github.ref_name }}
${{ env.IMAGE_FQDN }}:latest
build-args: |
VERSION=${{ github.ref_name }}
JODCONVERTER_VERSION=${{ env.JODCONVERTER_VERSION }}
- name: Build and publish development
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
push: true
target: development
tags: |
${{ env.IMAGE_FQDN }}:dev-latest
${{ env.IMAGE_FQDN }}:dev-${{ github.ref_name }}
build-args: |
VERSION=${{ github.ref_name }}
JODCONVERTER_VERSION=${{ env.JODCONVERTER_VERSION }}
6 changes: 3 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
uses: actions/checkout@v3
- name: Install xmllint
run: sudo apt update && sudo apt-get install -y libreoffice
- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '11'
java-version: '17'
distribution: 'adopt'
- name: Build
uses: gradle/gradle-build-action@v2
Expand All @@ -38,7 +38,7 @@ jobs:
uses: dorny/[email protected]
if: always()
with:
name: Maven Tests
name: Tests Results
path: "**/test-results/**/TEST*.xml"
reporter: java-junit
fail-on-error: false
2 changes: 1 addition & 1 deletion .java-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11.0
17
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
ARG JODCONVERTER_VERSION=4.4.2-2.0
# ------------------------- builder
FROM bellsoft/liberica-openjdk-debian:11 as builder

ARG VERSION=0.0.1-snapshot

FROM bellsoft/liberica-openjdk-debian:17 as builder
RUN mkdir -p /src
COPY . /src
WORKDIR /src

ARG VERSION=0.0.1-snapshot

RUN ./gradlew --no-daemon -Pversion=$VERSION clean build \
&& mkdir -p /dist && cp /src/build/libs/officeconverter-$VERSION.jar /dist/production.jar


# --------------------------- production image
FROM eugenmayer/jodconverter:base as production
FROM ghcr.io/eugenmayer/jodconverter:base-$JODCONVERTER_VERSION as production
ENV JAR_FILE_NAME=officeconverter.jar
ENV JAR_FILE_BASEDIR=/opt/app
ENV LOG_BASE_DIR=/var/log
Expand Down
23 changes: 5 additions & 18 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,7 @@
release: build tag push

build: stop
docker pull eugenmayer/jodconverter:base
source ./VERSION && docker build --build-arg VERSION=$${VERSION} --target development . -t eugenmayer/kontextwork-converter:development
source ./VERSION && docker build --build-arg VERSION=$${VERSION} --target production . -t eugenmayer/kontextwork-converter:production

push: tag
docker push eugenmayer/kontextwork-converter:development
docker push eugenmayer/kontextwork-converter:production
source ./VERSION && docker push eugenmayer/kontextwork-converter:"$${VERSION}"
git push
git push --tags

tag:
source ./VERSION && git tag "v$${VERSION}"
source ./VERSION && docker tag eugenmayer/kontextwork-converter:production eugenmayer/kontextwork-converter:$${VERSION}
source ./VERSION && docker build --build-arg VERSION=$${VERSION} --target development . -t ghcr.io/eugenmayer/kontextwork-converter:development
source ./VERSION && docker build --build-arg VERSION=$${VERSION} --target production . -t ghcr.io/eugenmayer/kontextwork-converter:production

start-src: stop
./start.sh
Expand All @@ -24,13 +11,13 @@ watch:

start: stop
# 5001 is the remote debugger port, which we enable by default
docker run -m 2048m --name converter-dev --rm -p 5001:5001 -p 8080:8080 eugenmayer/kontextwork-converter:development
docker run -m 2048m --name converter-dev --rm -p 5001:5001 -p 8080:8080 ghcr.io/eugenmayer/kontextwork-converter:development

start-prod: stop
docker run -m 2048m --name converter-prod --rm -p 8080:8080 eugenmayer/kontextwork-converter:production
docker run -m 2048m --name converter-prod --rm -p 8080:8080 ghcr.io/eugenmayer/kontextwork-converter:production

test:
docker run -m 2048m --name converter-test --rm -v ${PWD}/.:/src --workdir /src eugenmayer/kontextwork-converter:development ./gradlew itTest
docker run -m 2048m --name converter-test --rm -v ${PWD}/.:/src --workdir /src ghcr.io/eugenmayer/kontextwork-converter:development ./gradlew itTest

stop:
docker stop --name converter-prod > /dev/null 2>&1 || true
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

[![tests](https://github.com/EugenMayer/officeconverter/actions/workflows/tests.yml/badge.svg)](https://github.com/EugenMayer/officeconverter/actions/workflows/tests.yml)
[![docker publish](https://github.com/EugenMayer/officeconverter/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/EugenMayer/officeconverter/actions/workflows/docker-publish.yml)
## WAT

Offers a (i think production ready) REST service to convert files like PDF, docx,xlx .. odt .. you get it.. to other formats like pdf, png, doc, pdt, html.
Expand Down Expand Up @@ -110,7 +111,7 @@ We already added support for dotx/xltx for example.

- state of the art springboot 2.5 application exposing a classic rest service to convert office document
- using [jodconverter-spring-boot-starter](https://github.com/sbraconnier/jodconverter/tree/master/jodconverter-spring-boot-starter) for wiring jodconverter-local services
- build on/for Java 11 for better Docker support
- build on/for Java 17 for better Docker support

## Credits

Expand Down
21 changes: 10 additions & 11 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ buildscript {
jodconverterVersion = '4.3.0'

// @see https://mvnrepository.com/artifact/org.mockito/mockito-core
mockitoVersion = '3.12.4'
mockitoVersion = '4.7.0'

// @see https://mvnrepository.com/artifact/org.apache.tika/tika-parsers
tikaVersion = '1.27'
tikaVersion = '2.4.1'

// @see https://mvnrepository.com/artifact/org.projectlombok/lombok
lombokVersion = '1.18.22'
lombokVersion = '1.18.24'

// @see https://mvnrepository.com/artifact/commons-io/commons-io
commonsIo = '2.11.0'
Expand All @@ -20,7 +20,7 @@ buildscript {
javaxAnnotations = '1.3.2'

// @see https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime
jaxb = "2.3.5"
jaxb = "4.0.0"
}
}

Expand All @@ -33,14 +33,14 @@ plugins {

// @see https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
// changing that will upgrade spring to the corresponding version
id 'org.springframework.boot' version '2.5.7'
id 'org.springframework.boot' version '2.7.3'

// much better output during running tests
// see https://github.com/radarsh/gradle-test-logger-plugin for configuration options
id "com.adarshr.test-logger" version "3.2.0"

// @see https://plugins.gradle.org/plugin/org.sonarqube
id "org.sonarqube" version "3.3"
id "org.sonarqube" version "3.4.0.2513"
}

apply plugin: 'io.spring.dependency-management'
Expand Down Expand Up @@ -69,16 +69,14 @@ configurations {
group = 'de.kontextwork'
// this lets us set the version during build using cli -Pversion=1.1.1
version = "${version}"
sourceCompatibility = 11
targetCompatibility = 11
sourceCompatibility = 17
targetCompatibility = 17

tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}

// Upgrade log4j due to https://nvd.nist.gov/vuln/detail/CVE-2021-44228
// can be remove with 2.5.8
ext['log4j2.version'] = '2.16.0'
ext['log4j2.version'] = '2.18.0'

// @see https://github.com/sbrannen/spring-events/blob/master/build.gradle#L38
// and @see https://stackoverflow.com/a/54605523/3625317
Expand All @@ -101,6 +99,7 @@ dependencies {
"org.junit.jupiter:junit-jupiter-params",
"org.mockito:mockito-core:$mockitoVersion",
"org.mockito:mockito-junit-jupiter:$mockitoVersion",
"org.apache.tika:tika-core:${tikaVersion}",
"org.apache.tika:tika-parsers:${tikaVersion}",
)

Expand Down
4 changes: 2 additions & 2 deletions docker-compose-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ version: "2"
services:
app:
container_name: converter-dev
image: eugenmayer/kontextwork-converter:production
image: ghcr.io/eugenmayer/kontextwork-converter:latest
volumes:
- ./:/src
ports:
- 5001:5001
- 8080:8080
mem_limit: 512M
mem_limit: 512M
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: "2"
services:
app:
container_name: converter-dev
image: eugenmayer/kontextwork-converter:development
image: ghcr.io/eugenmayer/kontextwork-converter:dev-latest
working_dir: /src
entrypoint: ./gradlew
command: -Pdev bootRun
Expand All @@ -12,4 +12,4 @@ services:
ports:
- 5001:5001
- 8080:8080
mem_limit: 1024M
mem_limit: 1024M
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
6 changes: 6 additions & 0 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"

# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi

# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
Expand Down
14 changes: 8 additions & 6 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@rem limitations under the License.
@rem

@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
Expand All @@ -25,7 +25,7 @@
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand All @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Expand Down Expand Up @@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal
Expand Down

0 comments on commit 59aed42

Please sign in to comment.