Commit Diff


commit - b346a19f9bf94df36ac6f33b0ac32e802adbe67d
commit + 03fcc26854c53b9a200e2f532905f4e10c7f82e5
blob - 0ee66fb2084bb206ad49d2fbf23e42e75f8d59dc
blob + 3540160a1a9d5215fe856adfecb542addf230f43
--- .gitlab-ci.yml
+++ .gitlab-ci.yml
@@ -96,7 +96,7 @@ my-build-job:
   stage: my-build-stage
   variables:
     MY_CACHE_POLICY: pull-push
-  script: gradle --build-cache assemble
+  script: gradle assemble
 
 my-test-job:
   extends:
blob - 7be0c30e098c29b3d6a09319e50bdb25de2b9afb
blob + dd55f1470d8bb4bbce2604f463900b1c65a6e39d
--- build.gradle
+++ build.gradle
@@ -37,6 +37,7 @@ subprojects {
   // Run 'createKeyAndTruststore' first and/or customize as needed
   //apply from: rootProject.file('gradle/signjar.gradle')
   apply from: rootProject.file('gradle/spotbugs.gradle')
+  //apply from: rootProject.file('gradle/spotless.gradle')
 }
 
 apply from: rootProject.file('gradle/build-dashboard.gradle')
blob - 908e708d3e09b2c222b8e759a0fd2a60abe811a6
blob + ff660072c852ab16dce2ae9b193e6b0068ec6353
--- gradle/docker.gradle
+++ gradle/docker.gradle
@@ -29,8 +29,8 @@ import com.bmuschko.gradle.docker.tasks.image.Dockerfi
 import com.bmuschko.gradle.docker.tasks.image.Dockerfile.Healthcheck
 
 tasks.register('createDockerfile', Dockerfile) {
-  group 'docker'
-  description 'Creates Dockerfile for Karaf-based applications'
+  group = 'docker'
+  description = 'Creates Dockerfile for Karaf-based applications'
   from(docker_fromImage)
   exposePort(1099, 8101, 8181, 44444)
   instruction("COPY --chown=${docker_copyChownUid}:${docker_copyChownUid} build/install/* /app/")
blob - bac98e15e0ac82b6cd638b4b9664ff3834c4c165
blob + 7ce4a1647f19541233ab3bcac79cf2cd141c817d
--- gradle/jib.gradle
+++ gradle/jib.gradle
@@ -34,18 +34,18 @@ def jibDist = project.hasProperty('jibDist') ? project
 
 jib {
   from {
-    image docker_fromImage
+    image = docker_fromImage
   }
   def gitlabCi = System.getenv('GITLAB_CI')
   def registryImage
+  def appName = jibDist.empty ? name : "${name}-" + jibDist.toLowerCase()
   if (gitlabCi) {
     registryImage = System.getenv('CI_REGISTRY_IMAGE')
-    def appName = jibDist.empty ? name : "${name}-" + jibDist.toLowerCase()
     registryImage = "${registryImage}/${appName}"
     def ciRegistryPassword = System.getenv('CI_REGISTRY_PASSWORD')
     def ciRegistryUser = System.getenv('CI_REGISTRY_USER')
     to {
-      image "${registryImage}:${version}"
+      image = "${registryImage}:${version}"
       auth {
         username = ciRegistryUser
         password = ciRegistryPassword
@@ -53,12 +53,15 @@ jib {
     }
   } else {
     registryImage = docker_toBaseImage
-    def appName = jibDist.empty ? name : "${name}-" + jibDist.toLowerCase()
     registryImage = "${registryImage}/${appName}"
     to {
-      image "${registryImage}:${version}"
+      image = "${registryImage}:${version}"
     }
   }
+  outputPaths {
+    def baseOutputPath = project.layout.buildDirectory.dir('jib').get().file("${appName}-${version}").toString()
+    tar = "${baseOutputPath}.tar"
+  }
   // Hack for empty configuration
   configurationName = "dummy"
   container {
@@ -86,4 +89,5 @@ jib {
 }
 
 tasks.jib.dependsOn "install${jibDist}Dist"
+tasks.jibBuildTar.dependsOn "install${jibDist}Dist"
 tasks.jibDockerBuild.dependsOn "install${jibDist}Dist"
blob - 991d8f00d3c1f1b026eb50e441cd1ea3abc1e89a
blob + a140f61cc681ac51b052eed6a3aa2f941f1f98c7
--- gradle/libs.versions.toml
+++ gradle/libs.versions.toml
@@ -26,40 +26,45 @@ apache-felix-gogo-runtime = '1.1.4'
 apache-felix-metatype = '1.2.4'
 apache-felix-scr = '2.2.12'
 apache-karaf = '4.4.7'
-checkstyle = '10.21.2'
+checkstyle = '10.21.4'
 commons-io = '2.18.0'
-cxf = '3.6.5'
+cxf = '3.6.6'
 findsecbugs = '1.13.0'
-gradle-axion-release = '1.17.2'
-gradle-biz-aqute-bnd = '7.0.0'
+gradle-axion-release = '1.18.8'
+gradle-biz-aqute-bnd = '7.1.0'
 gradle-commitlint = '1.4.3'
-gradle-cyclonedx = '1.8.2'
+gradle-cyclonedx = '2.2.0'
 gradle-editorconfig = '0.1.0'
 gradle-githook = '1.2.1'
-gradle-git-changelog = '2.1.2'
-gradle-openapi-generator = '7.11.0'
-gradle-owasp-check = '9.1.0'
-gradle-docker-compose = '0.17.6'
+gradle-git-changelog = '3.0.6'
+gradle-docker-compose = '0.17.12'
 gradle-docker-plugin = '9.4.0'
-gradle-jib = '3.4.4'
+gradle-jib = '3.4.5'
 gradle-jib-ownership-extension = '0.1.0'
 gradle-karaf = '0.5.6'
 gradle-license = '0.16.1'
-gradle-lombok = '8.6'
+gradle-lombok = '8.13'
+gradle-openapi-generator = '7.12.0'
+gradle-owasp-check = '12.1.0'
 gradle-proguard = '7.4.0'
-gradle-spotbugs = '6.1.2'
-gradle-versions-deps = '0.51.0'
+gradle-spotbugs = '6.1.7'
+gradle-spotless = '7.0.2'
+gradle-versions-deps = '0.52.0'
+gson-fire = '1.9.0'
 hawtio = '2.17.7'
 jacoco = '0.8.12'
-jackson = '2.18.2'
+jackson = '2.18.3'
 jline = '3.21.0'
 jansi = '2.4.1'
-jakarta-validation-api = '3.1.0'
+jakarta-annotation-api = '3.0.0'
+jakarta-validation-api = '3.1.1'
 javax-inject = '1'
 javax-servlet-api = '4.0.1'
 javax-ws-rs-api = '2.1.1'
 jfiglet = '0.0.9'
+jsr305 = '3.0.2'
 junit-jupiter = '5.11.4'
+okhttp3 = '4.12.0'
 lombok = '1.18.36'
 maven-exec = '4.0.0'
 osgi-annotation = '2.0.0'
@@ -71,12 +76,12 @@ osgi-util-function = '1.2.0'
 osgi-util-promise = '1.3.0'
 pax-exam = '4.14.0'
 pax-logging-api = '2.2.8'
-pmd = '7.9.0'
+pmd = '7.12.0'
 shadow = '8.1.1'
 shiro = '1.10.1'
 slf4j-api = '2.0.13'
-spotbugs = '4.9.0'
-swagger = '2.2.28'
+spotbugs = '4.9.3'
+swagger = '2.2.29'
 swagger-ui = '4.1.2'
 
 [libraries]
@@ -107,7 +112,6 @@ gradle-cyclonedx = { module = 'org.cyclonedx:cyclonedx
 gradle-editorconfig = { module = 'org.ec4j.editorconfig:org.ec4j.editorconfig.gradle.plugin', version.ref = 'gradle-editorconfig' }
 gradle-githook = { module = 'com.star-zero.gradle:githook', version.ref = 'gradle-githook' }
 gradle-git-changelog = { module = 'se.bjurr.gitchangelog:git-changelog-gradle-plugin', version.ref = 'gradle-git-changelog' }
-gradle-owasp-check = { module = 'org.owasp:dependency-check-gradle', version.ref = 'gradle-owasp-check' }
 gradle-docker-compose = { module = 'com.avast.gradle:gradle-docker-compose-plugin', version.ref = 'gradle-docker-compose' }
 gradle-docker-plugin = { module = 'com.bmuschko:gradle-docker-plugin', version.ref = 'gradle-docker-plugin' }
 gradle-jib = { module = 'com.google.cloud.tools:jib-gradle-plugin', version.ref = 'gradle-jib' }
@@ -116,23 +120,29 @@ gradle-karaf = { module = 'gradle.plugin.com.github.lb
 gradle-license = { module = 'gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin', version.ref = 'gradle-license' }
 gradle-lombok = { module = 'io.freefair.gradle:lombok-plugin', version.ref = 'gradle-lombok' }
 gradle-openapi-generator = { module = 'org.openapi.generator:org.openapi.generator.gradle.plugin', version.ref = 'gradle-openapi-generator' }
+gradle-owasp-check = { module = 'org.owasp:dependency-check-gradle', version.ref = 'gradle-owasp-check' }
 gradle-proguard = { module = 'com.guardsquare:proguard-gradle', version.ref = 'gradle-proguard' }
 gradle-spotbugs = { module = 'com.github.spotbugs.snom:spotbugs-gradle-plugin', version.ref = 'gradle-spotbugs' }
+gradle-spotless = { module = 'com.diffplug.gradle.spotless:com.diffplug.gradle.spotless.gradle.plugin', version.ref = 'gradle-spotless' }
 gradle-swagger = { module = 'io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin', version.ref = 'swagger' }
 gradle-versions-deps = { module = 'com.github.ben-manes:gradle-versions-plugin', version.ref = 'gradle-versions-deps' }
+gson-fire = { module = 'io.gsonfire:gson-fire', version.ref = 'gson-fire' }
 hawtio-plugin-mbean = { module = 'io.hawt:hawtio-plugin-mbean', version.ref = 'hawtio' }
 jackson-annotations = { module = 'com.fasterxml.jackson.core:jackson-annotations', version.ref = 'jackson' }
 jackson-databind = { module = 'com.fasterxml.jackson.core:jackson-databind', version.ref = 'jackson' }
 jackson-jaxrs-json-provider = { module = 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider', version.ref = 'jackson' }
 jansi = { module = 'org.fusesource.jansi:jansi', version.ref = 'jansi' }
+jakarta-annotation-api = { module = 'jakarta.annotation:jakarta.annotation-api', version.ref = 'jakarta-annotation-api' }
 jakarta-validation-api = { module = 'jakarta.validation:jakarta.validation-api', version.ref = 'jakarta-validation-api' }
 jline = { module = 'org.jline:jline', version.ref = 'jline' }
 javax-inject = { module = 'javax.inject:javax.inject', version.ref = 'javax-inject' }
 javax-servlet-api = { module = 'javax.servlet:javax.servlet-api', version.ref = 'javax-servlet-api' }
 javax-ws-rs-api = { module = 'javax.ws.rs:javax.ws.rs-api', version.ref = 'javax-ws-rs-api' }
 jfiglet = { module = 'com.github.lalyos:jfiglet', version.ref = 'jfiglet' }
+jsr305 = { module = 'com.google.code.findbugs:jsr305', version.ref = 'jsr305' }
 junit-jupiter-api = { module = 'org.junit.jupiter:junit-jupiter-api', version.ref = 'junit-jupiter' }
 junit-jupiter-engine = { module = 'org.junit.jupiter:junit-jupiter-engine', version.ref = 'junit-jupiter' }
+logging-interceptor = { module = 'com.squareup.okhttp3:logging-interceptor', version.ref = 'okhttp3' }
 maven-exec = { module = 'com.github.dkorotych.gradle-maven-exec:com.github.dkorotych.gradle-maven-exec.gradle.plugin', version.ref = 'maven-exec' }
 pax-exam = { module = 'org.ops4j.pax.exam:pax-exam', version.ref = 'pax-exam' }
 pax-exam-container-karaf = { module = 'org.ops4j.pax.exam:pax-exam-container-karaf', version.ref = 'pax-exam' }
blob - 9aff3c12e93b14e87dfd8b3e978531077e36dc59
blob + d43b6f78a8684589337eeacf62b2ac74ecd4a108
--- gradle/license.gradle
+++ gradle/license.gradle
@@ -31,9 +31,9 @@ license {
   ext.email = license_email
   def licenseFile = project.file('LICENSE')
   if (!licenseFile.exists()) {
-    header rootProject.file('LICENSE')
+    header = rootProject.file('LICENSE')
   }
-  strictCheck true
+  strictCheck = true
   include '**/*.java'
   include '**/*.perm'
   include '**/*.properties'
@@ -52,7 +52,7 @@ if (project == rootProject) {
     ext.copyrightHolder = license_copyrightHolder
     ext.email = license_email
     source = fileTree(rootDir)
-    strictCheck true
+    strictCheck = true
     include '**/*'
     exclude '**/*.json'
     exclude 'LICENSE'
blob - /dev/null
blob + d0c2ffe7adba1a589f472cedfd993712bd810e9d (mode 644)
--- /dev/null
+++ gradle/spotless.gradle
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2024 by Chaz Kettleson <chaz@pyr3x.com>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+buildscript {
+  repositories {
+    gradlePluginPortal()
+  }
+  dependencies {
+    classpath libs.gradle.spotless
+  }
+}
+
+apply plugin: com.diffplug.gradle.spotless.SpotlessPlugin
+
+spotless {
+  java {
+    googleJavaFormat()
+    formatAnnotations()
+  }
+}
blob - e18bc253b857cc9614e63c8975b677f496755957
blob + 37f853b1c84d2e2dd1c88441fcc755d7f6643668
--- gradle/wrapper/gradle-wrapper.properties
+++ gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
blob - 9a8a0e09059c2b05b44193d1ccb06e80c07c894e
blob + 375ee89e182bc733cf6380d95fb36350e5ff517c
--- gradle.properties
+++ gradle.properties
@@ -41,7 +41,7 @@ cyclonedx_license_name=0BSD
 cyclonedx_license_url=https://opensource.org/license/0bsd
 
 # Docker properties
-docker_copyChownUid=185
+docker_copyChownUid=0
 docker_fromImage=eclipse-temurin:17-jdk-ubi9-minimal@sha256:7915d89f4f4fd4f5bb83aeecbb84a28a740eef29d028f071f3270916912daafd
 docker_toBaseImage=registry.gitlab.pyr3x.com/projects/template
 
blob - 71251a3cbb5c6b82c9d45791f3f4e3185bba47f6
blob + 6ae3e1c949a26ac4f2eb1c763429cc76158268d7
--- settings.gradle
+++ settings.gradle
@@ -20,7 +20,7 @@ dependencyResolutionManagement {
   // Use our local repository and Maven Central only
   repositories {
     maven {
-      url new File(rootDir, 'gradle/repository')
+      url = new File(rootDir, 'gradle/repository')
     }
     mavenCentral()
   }