diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a088e4c..63dba0b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,27 +11,30 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 + - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - with: - gradle-version: 8.4 + uses: gradle/actions/setup-gradle@v3 + - name: Run tests and generate reports run: ./gradlew testAndReport + - name: Run Sonar analysis env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew sonar -x test --no-watch-fs + - name: Upload Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: report path: build/reports/** @@ -41,19 +44,21 @@ jobs: runs-on: ubuntu-latest needs: [test] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 + - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - with: - gradle-version: 8.4 + uses: gradle/actions/setup-gradle@v3 + - name: Run build with Gradle Wrapper run: ./gradlew build -x test + - name: Upload Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: jar path: build/libs/** diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 2558e2f..0000000 --- a/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM gradle:7.3-jdk11 - -WORKDIR /app -COPY . /app - -RUN gradle build -x test - -CMD ["gradle", "build"] diff --git a/README.md b/README.md index 51fe2ca..75cb050 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Library providing basic generic functionality required by any HTTP web service. ``` // https://mvnrepository.com/artifact/ee.bitweb/spring-core -implementation group: 'ee.bitweb', name: 'spring-core', version: '3.1.0' +implementation group: 'ee.bitweb', name: 'spring-core', version: '3.2.0' ``` Review available versions in [Maven Central](https://mvnrepository.com/artifact/ee.bitweb/spring-core). diff --git a/build.gradle b/build.gradle index bab56fe..832eb04 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ plugins { } group 'ee.bitweb' -version '3.1.0' +version '3.2.0' java { sourceCompatibility = '17' } @@ -79,6 +79,9 @@ dependencies { // https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor compileOnly group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: '4.12.0' + // https://mvnrepository.com/artifact/de.siegmar/logback-gelf + compileOnly group: 'de.siegmar', name: 'logback-gelf', version: '6.0.1' + // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: "${springBootVersion}" diff --git a/gradle.properties b/gradle.properties index b456f3c..3506f17 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true +org.gradle.welcome=never diff --git a/src/main/java/ee/bitweb/core/logging/SilencedGelfTcpAppender.java b/src/main/java/ee/bitweb/core/logging/SilencedGelfTcpAppender.java new file mode 100644 index 0000000..8636a03 --- /dev/null +++ b/src/main/java/ee/bitweb/core/logging/SilencedGelfTcpAppender.java @@ -0,0 +1,36 @@ +package ee.bitweb.core.logging; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import de.siegmar.logbackgelf.GelfTcpAppender; +import ee.bitweb.core.exception.CoreException; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class SilencedGelfTcpAppender extends GelfTcpAppender { + + @Override + protected void append(final ILoggingEvent event) { + final byte[] binMessage = getEncoder().encode(event); + + try { + appendMessage(binMessage); + } catch (CoreException ignored) { + // Catching and ignoring CoreException which will be thrown if application can't connect to Graylog, because we don't want the application + // to stop. + } + } + + @Override + protected void appendMessage(final byte[] messageToSend) { + try { + super.appendMessage(messageToSend); + } catch (CoreException e) { + throw new CoreException("Error sending GELF message", e); + } + } + + @Override + public void addError(String msg, Throwable ex) { + throw new CoreException(msg, ex); + } +}