- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__jacocoTestCoverageVerification_.xml b/.idea/runConfigurations/throwable__jacocoTestCoverageVerification_.xml
index 0919f91..880db34 100644
--- a/.idea/runConfigurations/throwable__jacocoTestCoverageVerification_.xml
+++ b/.idea/runConfigurations/throwable__jacocoTestCoverageVerification_.xml
@@ -15,9 +15,7 @@
- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__jacocoTestReport_.xml b/.idea/runConfigurations/throwable__jacocoTestReport_.xml
index 1d3ab97..bb7d5e4 100644
--- a/.idea/runConfigurations/throwable__jacocoTestReport_.xml
+++ b/.idea/runConfigurations/throwable__jacocoTestReport_.xml
@@ -15,9 +15,7 @@
- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__javadoc_.xml b/.idea/runConfigurations/throwable__javadoc_.xml
index 89bb6ef..184a9da 100644
--- a/.idea/runConfigurations/throwable__javadoc_.xml
+++ b/.idea/runConfigurations/throwable__javadoc_.xml
@@ -15,9 +15,7 @@
- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__licenseFormat_.xml b/.idea/runConfigurations/throwable__licenseFormat_.xml
index 9b2e442..faa1500 100644
--- a/.idea/runConfigurations/throwable__licenseFormat_.xml
+++ b/.idea/runConfigurations/throwable__licenseFormat_.xml
@@ -15,9 +15,7 @@
- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__publishMavenJavaPublicationToMavenLocal_.xml b/.idea/runConfigurations/throwable__publishMavenJavaPublicationToMavenLocal_.xml
index c3e3e17..c8e3c90 100644
--- a/.idea/runConfigurations/throwable__publishMavenJavaPublicationToMavenLocal_.xml
+++ b/.idea/runConfigurations/throwable__publishMavenJavaPublicationToMavenLocal_.xml
@@ -13,11 +13,11 @@
-
+
truetruefalse
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__publish_.xml b/.idea/runConfigurations/throwable__publish_.xml
index 4cfc514..5ade21c 100644
--- a/.idea/runConfigurations/throwable__publish_.xml
+++ b/.idea/runConfigurations/throwable__publish_.xml
@@ -15,9 +15,7 @@
- true
- true
- false
+ true
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__spotlessJavaApply_.xml b/.idea/runConfigurations/throwable__spotlessJavaApply_.xml
index 077f76e..fd0584f 100644
--- a/.idea/runConfigurations/throwable__spotlessJavaApply_.xml
+++ b/.idea/runConfigurations/throwable__spotlessJavaApply_.xml
@@ -20,4 +20,4 @@
false
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__spotlessMiscApply_.xml b/.idea/runConfigurations/throwable__spotlessMiscApply_.xml
index 14d71e5..dcaf049 100644
--- a/.idea/runConfigurations/throwable__spotlessMiscApply_.xml
+++ b/.idea/runConfigurations/throwable__spotlessMiscApply_.xml
@@ -17,7 +17,17 @@
truetrue
+
+
+
+
+
+ 5.0
+
+
+ false
+ false
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__tagRelease_.xml b/.idea/runConfigurations/throwable__tagRelease_.xml
index 18201d1..1e59a9e 100644
--- a/.idea/runConfigurations/throwable__tagRelease_.xml
+++ b/.idea/runConfigurations/throwable__tagRelease_.xml
@@ -20,4 +20,4 @@
false
-
\ No newline at end of file
+
diff --git a/.idea/runConfigurations/throwable__versionCatalogFormat_.xml b/.idea/runConfigurations/throwable__versionCatalogFormat_.xml
new file mode 100644
index 0000000..98d8b50
--- /dev/null
+++ b/.idea/runConfigurations/throwable__versionCatalogFormat_.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+ 5.0
+
+
+
+ false
+ false
+
+
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7b46fb2..54219b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@
Version 2.4-SNAPSHOT
-------------
+ADDED:
+
+- new libs.versions.toml file for new automatic catalog versions update
+
+CHANGED:
+
+- update of gradle to new version 8.8
Version 2.3
-------------
diff --git a/build.gradle b/build.gradle
index 7dae25d..39b8e75 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,30 +1,28 @@
-group = "$groupPackage" as Object
-version = "$projectVersion" as Object
-description = "$rootProject.name"
-
buildscript {
repositories {
maven {
- url "https://plugins.gradle.org/m2/"
+ url projectRepositoriesMavenUrl
}
}
- dependencies {
- classpath "com.github.ben-manes:gradle-versions-plugin:$gradlePluginVersionsVersion"
- classpath "gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin:$licenseGradlePluginVersion"
- classpath "org.ajoberstar.grgit:grgit-gradle:$grgitGradlePluginVersion"
- classpath "com.diffplug.spotless:spotless-plugin-gradle:$spotlessGradlePluginVersion"
- }
}
-apply plugin: "java"
-apply plugin: "java-library"
-apply plugin: "maven-publish"
-apply plugin: "signing"
-apply plugin: "com.github.ben-manes.versions"
-apply plugin: "com.github.hierynomus.license"
-apply plugin: "jacoco"
-apply plugin: "org.ajoberstar.grgit"
-apply plugin: "com.diffplug.spotless"
+plugins {
+ id 'java'
+ id 'java-library'
+ id 'maven-publish'
+ id 'signing'
+ id 'jacoco'
+ alias(libs.plugins.gradle.versions.plugin)
+ alias(libs.plugins.license.gradle.plugin)
+ alias(libs.plugins.grgit.gradle)
+ alias(libs.plugins.spotless.plugin.gradle)
+ alias(libs.plugins.versionCatalogUpdate)
+}
+
+group = "$groupPackage" as Object
+version = "$projectVersion" as Object
+description = "$rootProject.name"
+
// import gradle files
apply from: "gradle/dependencies.gradle"
apply from: "gradle/formatting.gradle"
@@ -34,17 +32,23 @@ apply from: "gradle/packaging.gradle"
apply from: "gradle/publishing.gradle"
apply from: "gradle/repositories.gradle"
apply from: "gradle/testing.gradle"
+apply from: "gradle/version-catalog-update.gradle"
+
+java {
+ sourceCompatibility = "$projectSourceCompatibility" as Object
+ toolchain {
+ languageVersion = JavaLanguageVersion.of("$projectSourceCompatibility")
+ }
+}
-sourceCompatibility = "$projectSourceCompatibility" as Object
+tasks.named("test") {
+ it.mustRunAfter(tasks.named("jar"))
+}
-tasks.withType(JavaCompile) {
+tasks.withType(JavaCompile).configureEach { javaCompiler ->
options.encoding = "UTF-8"
// uncomment the next line for build with compiler argument -Xlint:deprecation
// options.compilerArgs << "-Xlint:deprecation"
// uncomment the next line for build with compiler argument -Xlint:unchecked
// options.compilerArgs << "-Xlint:unchecked"
}
-
-tasks.withType(GenerateModuleMetadata) {
- enabled = true
-}
diff --git a/gradle.properties b/gradle.properties
index 2005704..c1bb98f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -23,24 +23,11 @@ projectLicenseDistribution=repo
projectIssueManagementSystem=GitHub
projectRepositoriesReleasesRepoUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/
projectRepositoriesSnapshotsRepoUrl=https://oss.sonatype.org/content/repositories/snapshots/
+projectRepositoriesReleasesName=Sonatype Nexus Releases
+projectRepositoriesSnapshotsName=Sonatype Nexus Snapshots
projectRepositoriesUserNameKey=ossrhUsername
projectRepositoriesPasswordKey=ossrhPassword
-###########################
-# gradle-plugins versions #
-###########################
-gradlePluginVersionsVersion=0.42.0
-licenseGradlePluginVersion=0.16.1
-grgitGradlePluginVersion=5.0.0
-spotlessGradlePluginVersion=6.7.2
-#########################
-# dependencies versions #
-#########################
-##############################
-# test dependencies versions #
-##############################
-fileWorkerVersion=8.2
-meanbeanVersion=2.0.3
-junitJupiterVersion=5.9.0-M1
+projectRepositoriesMavenUrl=https://plugins.gradle.org/m2/
##########################
# for deploy on sonatype #
##########################
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 4ceea26..a18e627 100644
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -1,7 +1,6 @@
-
dependencies {
- testImplementation("io.github.astrapi69:file-worker:$fileWorkerVersion")
- testImplementation("org.meanbean:meanbean:$meanbeanVersion")
- testImplementation("org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion")
- testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion")
+ testImplementation libs.file.worker
+ // Note: use of bundles...
+ testImplementation libs.bundles.unit.testing
+ testRuntimeOnly libs.junit.platform.launcher
}
diff --git a/gradle/formatting.gradle b/gradle/formatting.gradle
index e0a5ae9..853e80c 100644
--- a/gradle/formatting.gradle
+++ b/gradle/formatting.gradle
@@ -11,6 +11,8 @@ spotless {
endWithNewline()
}
java {
- eclipse("4.19.0").configFile("src/test/resources/alpharo-formatter.xml")
+ // export config file: https://github.com/diffplug/spotless/blob/main/ECLIPSE_SCREENSHOTS.md#creating-spotlessimportorder
+ importOrderFile('src/test/resources/spotless/importorder.properties') // import order file as exported from eclipse
+ eclipse("4.21").configFile("src/test/resources/spotless/alpharo-formatter.xml")
}
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
new file mode 100644
index 0000000..b8bb4a4
--- /dev/null
+++ b/gradle/libs.versions.toml
@@ -0,0 +1,29 @@
+[versions]
+file-worker-version = "8.2"
+gradle-plugin-grgit-version = "5.2.2"
+gradle-plugin-license-version = "0.16.1"
+gradle-plugin-spotless-version = "7.0.0.BETA1"
+gradle-plugin-version-catalog-update-version = "0.8.4"
+gradle-plugin-versions-version = "0.51.0"
+junit-jupiter-version = "5.11.0-M2"
+junit-platform-launcher-version = "1.11.0-M2"
+meanbean-version = "2.0.3"
+
+[libraries]
+file-worker = { module = "io.github.astrapi69:file-worker", version.ref = "file-worker-version" }
+junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter-version" }
+junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform-launcher-version" }
+meanbean = { module = "org.meanbean:meanbean", version.ref = "meanbean-version" }
+
+[bundles]
+unit-testing = [
+ "junit-jupiter",
+ "meanbean",
+]
+
+[plugins]
+gradle-versions-plugin = { id = "com.github.ben-manes.versions", version.ref = "gradle-plugin-versions-version" }
+grgit-gradle = { id = "org.ajoberstar.grgit", version.ref = "gradle-plugin-grgit-version" }
+license-gradle-plugin = { id = "com.github.hierynomus.license", version.ref = "gradle-plugin-license-version" }
+spotless-plugin-gradle = { id = "com.diffplug.spotless", version.ref = "gradle-plugin-spotless-version" }
+versionCatalogUpdate = { id = "nl.littlerobots.version-catalog-update", version.ref = "gradle-plugin-version-catalog-update-version" }
diff --git a/gradle/testing.gradle b/gradle/testing.gradle
index d58e5a8..a1d164b 100644
--- a/gradle/testing.gradle
+++ b/gradle/testing.gradle
@@ -5,8 +5,8 @@ test {
jacocoTestReport {
reports {
- xml.enabled true
- html.enabled true
+ xml.required.set(true)
+ html.required.set(true)
}
}
diff --git a/gradle/version-catalog-update.gradle b/gradle/version-catalog-update.gradle
new file mode 100644
index 0000000..2e370bf
--- /dev/null
+++ b/gradle/version-catalog-update.gradle
@@ -0,0 +1,32 @@
+versionCatalogUpdate {
+ // sort the catalog by key (default is true)
+ sortByKey = true
+ // Referenced that are pinned are not automatically updated.
+ // They are also not automatically kept however (use keep for that).
+ pin {
+ // pins all libraries and plugins using the given versions
+ // versions = ["my-version-name", "other-version"]
+ // pins specific libraries that are in the version catalog
+ // libraries = [libs.my.library.reference, libs.my.other.library.reference]
+ // pins specific plugins that are in the version catalog
+ // plugins = [libs.plugins.my.plugin, libs.plugins.my.other.plugin]
+ // pins all libraries (not plugins) for the given groups
+ // groups = ["com.somegroup", "com.someothergroup"]
+ }
+ keep {
+ // keep has the same options as pin to keep specific entries
+ // note that for versions it will ONLY keep the specified version, not all
+ // entries that reference it.
+ // versions = ["my-version-name", "other-version"]
+ // libraries = [libs.my.library.reference, libs.my.other.library.reference]
+ // plugins = [libs.plugins.my.plugin, libs.plugins.my.other.plugin]
+ // groups = ["com.somegroup", "com.someothergroup"]
+
+ // keep versions without any library or plugin reference
+ keepUnusedVersions = true
+ // keep all libraries that aren't used in the project
+ keepUnusedLibraries = true
+ // keep all plugins that aren't used in the project
+ keepUnusedPlugins = true
+ }
+}
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index c1225c1..67c9293 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
#Fri Jan 17 13:58:43 CET 2020
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-rc-2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index ac439e3..6a2299e 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -3,26 +3,23 @@
*
* Copyright (C) 2015 Asterios Raptis
*
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
*
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-module throwable {
+module throwable
+{
exports io.github.astrapi69.throwable;
exports io.github.astrapi69.throwable.api;
}
diff --git a/src/test/resources/alpharo-formatter.xml b/src/test/resources/spotless/alpharo-formatter.xml
similarity index 100%
rename from src/test/resources/alpharo-formatter.xml
rename to src/test/resources/spotless/alpharo-formatter.xml
diff --git a/src/test/resources/spotless/importorder.properties b/src/test/resources/spotless/importorder.properties
new file mode 100644
index 0000000..3f8b21e
--- /dev/null
+++ b/src/test/resources/spotless/importorder.properties
@@ -0,0 +1,6 @@
+#Organize Import Order
+#Fri Dec 02 17:15:08 CET 2022
+0=java
+1=javax
+2=org
+3=com