From fc592c9ab499c5533a023b78fa12925dcbbc07db Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 20 Oct 2024 15:24:52 +0200 Subject: [PATCH] Bump Gradle to 8.10.2, require Java 11 Also bump various plugins, especially error prone, which required some changes to the code. --- .github/workflows/ci.yml | 32 ++++---- Makefile | 22 ++++++ build-logic/build.gradle | 10 +-- .../org.jxmpp.android-conventions.gradle | 3 +- .../org.jxmpp.common-conventions.gradle | 36 +++++++++ ...adle => org.jxmpp.java-conventions.gradle} | 74 +++--------------- .../org.jxmpp.javadoc-conventions.gradle | 24 ++++++ .../groovy/org.jxmpp.root-conventions.gradle | 3 - .../groovy/org/jxmpp/BuildConstants.groovy | 8 -- build.gradle | 55 ++++++++++++- gradle/wrapper/gradle-wrapper.jar | Bin 61574 -> 61624 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- jxmpp-core/build.gradle | 2 +- .../java/org/jxmpp/util/XmppStringUtils.java | 3 +- .../xml/splitter/Utf8ByteXmppXmlSplitter.java | 4 +- .../splitter/Utf8ByteXmppXmlSplitterTest.java | 7 +- jxmpp-jid/build.gradle | 2 +- .../java/org/jxmpp/jid/impl/AbstractJid.java | 4 +- .../main/java/org/jxmpp/jid/util/JidUtil.java | 6 +- jxmpp-repl/build.gradle | 6 +- jxmpp-stringprep-icu4j/build.gradle | 2 +- jxmpp-stringprep-libidn/build.gradle | 2 +- jxmpp-stringprep-rocksxmppprecis/build.gradle | 2 +- jxmpp-strings-testframework/build.gradle | 4 +- jxmpp-util-cache/build.gradle | 2 +- 25 files changed, 194 insertions(+), 121 deletions(-) create mode 100644 Makefile create mode 100644 build-logic/src/main/groovy/org.jxmpp.common-conventions.gradle rename build-logic/src/main/groovy/{org.jxmpp.java-common-conventions.gradle => org.jxmpp.java-conventions.gradle} (75%) create mode 100644 build-logic/src/main/groovy/org.jxmpp.javadoc-conventions.gradle delete mode 100644 build-logic/src/main/groovy/org.jxmpp.root-conventions.gradle delete mode 100644 build-logic/src/main/groovy/org/jxmpp/BuildConstants.groovy diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36e7b94..5db3afd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,14 +6,14 @@ jobs: build: name: Build JXMPP - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: matrix: java: - - 11 - - 15 + - 17 + - 21 env: - PRIMARY_JAVA_VERSION: 11 + PRIMARY_JAVA_VERSION: 21 steps: - name: Checkout @@ -65,23 +65,19 @@ jobs: # Javadoc - name: Javadoc if: ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} - run: ./gradlew aggregateJavadoc --stacktrace + run: ./gradlew javadocAll --stacktrace # Test Coverage Report - name: Jacoco Test Coverage - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - if: | - ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} && - ${{ env.COVERALLS_REPO_TOKEN != '' }} - run: | - if [[ -z ${COVERALLS_REPO_TOKEN} ]]; then - echo WARNING: COVERALLS_REPO_TOKEN is empty - else - echo COVERALLS_REPO_TOKEN is not empty - fi - ./gradlew testCodeCoverageReport - ./gradlew jxmpp-repl:coveralls + run: ./gradlew jxmpp-repl:testCodeCoverageReport + + # Coveralls + - name: Report coverage stats to Coveralls + if: ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} + uses: coverallsapp/github-action@v2 + with: + format: jacoco + file: jxmpp-repl/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml # Upload build artifacts - name: Upload build artifacts diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a716a6e --- /dev/null +++ b/Makefile @@ -0,0 +1,22 @@ +GRADLE ?= ./gradlew + +.PHONY: all +all: check codecov eclipse javadocAll + +.PHONY: codecov +codecov: + $(GRADLE) jxmpp-repl:testCodeCoverageReport + echo "Code coverage report available at file://$(PWD)/jxmpp-repl/build/reports/jacoco/testCodeCoverageReport/html/index.html" + +.PHONY: check +check: + $(GRADLE) $@ + +.PHONY: eclipse +eclipse: + $(GRADLE) $@ + +.PHONY: javadocAll +javadocAll: + $(GRADLE) $@ + echo "javadoc available at file://$(PWD)/build/javadoc/index.html" diff --git a/build-logic/build.gradle b/build-logic/build.gradle index 159dc41..7b02d03 100644 --- a/build-logic/build.gradle +++ b/build-logic/build.gradle @@ -7,10 +7,8 @@ repositories { } dependencies { - implementation "biz.aQute.bnd:biz.aQute.bnd.gradle:6.4.0" - implementation "io.freefair.gradle:maven-plugin:6.6.3" // for io.freefair.agregate-javadoc - implementation "me.champeau.jmh:jmh-gradle-plugin:0.6.8" - implementation "net.ltgt.gradle:gradle-errorprone-plugin:3.0.1" - implementation "gradle.plugin.org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.12.0" - implementation "ru.vyarus:gradle-animalsniffer-plugin:1.7.0" + implementation "biz.aQute.bnd:biz.aQute.bnd.gradle:7.0.0" + implementation "me.champeau.jmh:jmh-gradle-plugin:0.7.2" + implementation "net.ltgt.gradle:gradle-errorprone-plugin:4.0.1" + implementation "ru.vyarus:gradle-animalsniffer-plugin:1.7.1" } diff --git a/build-logic/src/main/groovy/org.jxmpp.android-conventions.gradle b/build-logic/src/main/groovy/org.jxmpp.android-conventions.gradle index e69d0a0..cf6f4a0 100644 --- a/build-logic/src/main/groovy/org.jxmpp.android-conventions.gradle +++ b/build-logic/src/main/groovy/org.jxmpp.android-conventions.gradle @@ -1,8 +1,9 @@ plugins { id 'ru.vyarus.animalsniffer' + id 'org.jxmpp.common-conventions' } dependencies { - signature "net.sf.androidscents.signature:android-api-level-${jxmppMinAndroidSdk}:4.4.2_r4@signature" + signature "net.sf.androidscents.signature:android-api-level-${minAndroidSdk}:4.4.2_r4@signature" } animalsniffer { sourceSets = [sourceSets.main] diff --git a/build-logic/src/main/groovy/org.jxmpp.common-conventions.gradle b/build-logic/src/main/groovy/org.jxmpp.common-conventions.gradle new file mode 100644 index 0000000..6e63cff --- /dev/null +++ b/build-logic/src/main/groovy/org.jxmpp.common-conventions.gradle @@ -0,0 +1,36 @@ +ext { + javaVersion = JavaVersion.VERSION_11 + javaMajor = javaVersion.getMajorVersion() + minAndroidSdk = 19 + + androidBootClasspath = getAndroidRuntimeJar(minAndroidSdk) + + // Export the function by turning it into a closure. + // https://stackoverflow.com/a/23290820/194894 + getAndroidRuntimeJar = this.&getAndroidRuntimeJar +} + +repositories { + mavenLocal() + mavenCentral() +} + +def getAndroidRuntimeJar(androidApiLevel) { + def androidHome = getAndroidHome() + def androidJar = new File("$androidHome/platforms/android-${androidApiLevel}/android.jar") + if (androidJar.isFile()) { + return androidJar + } else { + throw new Exception("Can't find android.jar for API level ${androidApiLevel}. Please install corresponding SDK platform package") + } +} + +def getAndroidHome() { + def androidHomeEnv = System.getenv("ANDROID_HOME") + if (androidHomeEnv == null) { + throw new Exception("ANDROID_HOME environment variable is not set") + } + def androidHome = new File(androidHomeEnv) + if (!androidHome.isDirectory()) throw new Exception("Environment variable ANDROID_HOME is not pointing to a directory") + return androidHome +} diff --git a/build-logic/src/main/groovy/org.jxmpp.java-common-conventions.gradle b/build-logic/src/main/groovy/org.jxmpp.java-conventions.gradle similarity index 75% rename from build-logic/src/main/groovy/org.jxmpp.java-common-conventions.gradle rename to build-logic/src/main/groovy/org.jxmpp.java-conventions.gradle index d29a82d..5eae1ac 100644 --- a/build-logic/src/main/groovy/org.jxmpp.java-common-conventions.gradle +++ b/build-logic/src/main/groovy/org.jxmpp.java-conventions.gradle @@ -1,7 +1,6 @@ plugins { id 'biz.aQute.bnd.builder' id 'checkstyle' - id 'com.github.kt3k.coveralls' id 'eclipse' id 'idea' id 'jacoco' @@ -13,11 +12,9 @@ plugins { id 'jacoco-report-aggregation' id 'test-report-aggregation' -} -repositories { - mavenLocal() - mavenCentral() + id 'org.jxmpp.common-conventions' + id 'org.jxmpp.javadoc-conventions' } version readVersionFile() @@ -37,14 +34,12 @@ ext { builtDate = (new java.text.SimpleDateFormat("yyyy-MM-dd")).format(new Date()) oneLineDesc = 'An Open Source XMPP (Jabber) library' junitVersion = '5.9.2' - jxmppMinAndroidSdk = 19 } group = 'org.jxmpp' -import org.jxmpp.BuildConstants java { - sourceCompatibility = BuildConstants.JAVA_COMPATIBILITY + sourceCompatibility = javaVersion targetCompatibility = sourceCompatibility } @@ -80,39 +75,11 @@ tasks.withType(JavaCompile) { '-Xlint:-options', '-Werror', ] -} -if (JavaVersion.current().isJava8Compatible()) { - tasks.withType(Javadoc) { - // The '-quiet' as second argument is actually a hack, - // since the one parameter addStringOption doesn't seem to - // work, we extra add '-quiet', which is added anyway by - // gradle. - // We disable 'missing' as we do most of javadoc checking via checkstyle. - options.addStringOption('Xdoclint:all,-missing', '-quiet') - // Abort on javadoc warnings. - // See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363) - // for information about the -Xwerror option. - options.addStringOption('Xwerror', '-quiet') - } -} - -if (JavaVersion.current().isJava9Compatible()) { - tasks.withType(Javadoc) { - options.addStringOption('-release', BuildConstants.JAVA_MAJOR_COMPATIBILITY) - } - tasks.withType(JavaCompile) { - options.compilerArgs.addAll([ - '--release', BuildConstants.JAVA_MAJOR_COMPATIBILITY, - ]) - } -} - -tasks.withType(Javadoc) { - options.charSet = "UTF-8" + options.release = Integer.valueOf(javaMajor) } jacoco { - toolVersion = "0.8.8" + toolVersion = "0.8.12" } jacocoTestReport { @@ -125,10 +92,15 @@ jacocoTestReport { dependencies { testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + + errorprone 'com.google.errorprone:error_prone_core:2.32.0' } test { useJUnitPlatform() + + maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 + // Enable full stacktraces of failed tests. Especially handy // for environments like Travis. testLogging { @@ -149,15 +121,15 @@ checkstyle { toolVersion = '10.8.0' } task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' + archiveClassifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' + archiveClassifier = 'javadoc' from javadoc.destinationDir } task testsJar(type: Jar) { - classifier = 'tests' + archiveClassifier = 'tests' from sourceSets.test.output } artifacts { @@ -257,11 +229,6 @@ tasks.withType(JavaCompile) { } } -dependencies { - errorprone 'com.google.errorprone:error_prone_core:2.9.0' - errorproneJavac('com.google.errorprone:javac:9+181-r4173-1') -} - // TODO: Note sure what this does (did). Was there prior the build-logic conversion. // dependencies { // androidProjects.each { project -> @@ -269,10 +236,6 @@ dependencies { // } // } -coveralls { - jacocoReportPath 'build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml' -} - def getGitCommit() { def projectDirFile = new File("$projectDir") def dotGit = new File(projectDirFile, ".git") @@ -285,17 +248,6 @@ def getGitCommit() { gitCommit } -def getAndroidRuntimeJar() { - def androidHome = new File("$System.env.ANDROID_HOME") - if (!androidHome.isDirectory()) throw new Exception("ANDROID_HOME not found or set") - def androidJar = new File("$androidHome/platforms/android-$jxmppMinAndroidSdk/android.jar") - if (androidJar.isFile()) { - return androidJar - } else { - throw new Exception("Can't find android.jar for $jxmppMinAndroidSdk API. Please install corresponding SDK platform package") - } -} - def readVersionFile() { def versionFile = new File(rootDir, 'version') if (!versionFile.isFile()) { diff --git a/build-logic/src/main/groovy/org.jxmpp.javadoc-conventions.gradle b/build-logic/src/main/groovy/org.jxmpp.javadoc-conventions.gradle new file mode 100644 index 0000000..082b92c --- /dev/null +++ b/build-logic/src/main/groovy/org.jxmpp.javadoc-conventions.gradle @@ -0,0 +1,24 @@ +plugins { + // Javadoc linking requires repositories to bet configured. And + // those are declared in common-conventions, hence we add it here. + id 'org.jxmpp.common-conventions' +} + + +tasks.withType(Javadoc) { + // The '-quiet' as second argument is actually a hack, + // since the one parameter addStringOption doesn't seem to + // work, we extra add '-quiet', which is added anyway by + // gradle. + // We disable 'missing' as we do most of javadoc checking via checkstyle. + options.addStringOption('Xdoclint:all,-missing', '-quiet') + // Abort on javadoc warnings. + // See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363) + // for information about the -Xwerror option. + options.addStringOption('Xwerror', '-quiet') + options.addStringOption('-release', javaMajor) +} + +tasks.withType(Javadoc) { + options.charSet = "UTF-8" +} diff --git a/build-logic/src/main/groovy/org.jxmpp.root-conventions.gradle b/build-logic/src/main/groovy/org.jxmpp.root-conventions.gradle deleted file mode 100644 index cd5b74e..0000000 --- a/build-logic/src/main/groovy/org.jxmpp.root-conventions.gradle +++ /dev/null @@ -1,3 +0,0 @@ -plugins { - id 'io.freefair.aggregate-javadoc' -} diff --git a/build-logic/src/main/groovy/org/jxmpp/BuildConstants.groovy b/build-logic/src/main/groovy/org/jxmpp/BuildConstants.groovy deleted file mode 100644 index 904228d..0000000 --- a/build-logic/src/main/groovy/org/jxmpp/BuildConstants.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package org.jxmpp - -import org.gradle.api.JavaVersion - -class BuildConstants { - static final JAVA_COMPATIBILITY = JavaVersion.VERSION_1_8 - static final JAVA_MAJOR_COMPATIBILITY = JAVA_COMPATIBILITY.getMajorVersion() -} diff --git a/build.gradle b/build.gradle index 833e203..ab38ba8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,56 @@ plugins { - id 'org.jxmpp.root-conventions' + // The scalastyle plugin of jxmpp-repl wants the root project to + // have a ideaProject task, so let's add one. + id 'idea' + + id 'org.jxmpp.javadoc-conventions' +} + +ext { + javadocAllDir = new File(buildDir, 'javadoc') + javadocAllProjects = subprojects +} + +evaluationDependsOnChildren() +task javadocAll(type: Javadoc) { + source javadocAllProjects.collect {project -> + project.sourceSets.main.allJava.findAll { + // Filter out symbolic links to avoid + // "warning: a package-info.java file has already been seen for package" + // javadoc warnings. + !java.nio.file.Files.isSymbolicLink(it.toPath()) + } + } + destinationDir = javadocAllDir + // Might need a classpath + classpath = files(subprojects.collect {project -> + project.sourceSets.main.compileClasspath}) + classpath += files(androidBootClasspath) + options { + linkSource = true + use = true + links = [ + "https://docs.oracle.com/en/java/javase/${javaMajor}/docs/api/", + ] as String[] + overview = "$projectDir/resources/javadoc-overview.html" + } + + // Finally copy the javadoc doc-files from the subprojects, which + // are potentially generated, to the javadocAll directory. Note + // that we use a copy *method* and not a *task* because the inputs + // of copy tasks is determined within the configuration phase. And + // since some of the inputs are generated, they will not get + // picked up if we used a copy method. See also + // https://stackoverflow.com/a/40518516/194894 + doLast { + copy { + javadocAllProjects.each { + from ("${it.projectDir}/src/javadoc") { + include '**/doc-files/*.*' + } + } + + into javadocAllDir + } + } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cbfa754578e88a3dae77fce6e3dea56edbf..afba109285af78dbd2a1d187e33ac4f87c76e392 100644 GIT binary patch delta 6679 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 Cn(^uY delta 6711 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 N0Rn>h&;K*$e*kC({~`bY diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b1624c4..5c40527 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/jxmpp-core/build.gradle b/jxmpp-core/build.gradle index 554fdae..aaaf0cb 100644 --- a/jxmpp-core/build.gradle +++ b/jxmpp-core/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.android-conventions' id 'org.jxmpp.junit4-conventions' } diff --git a/jxmpp-core/src/main/java/org/jxmpp/util/XmppStringUtils.java b/jxmpp-core/src/main/java/org/jxmpp/util/XmppStringUtils.java index 42ed9e5..41fc68b 100644 --- a/jxmpp-core/src/main/java/org/jxmpp/util/XmppStringUtils.java +++ b/jxmpp-core/src/main/java/org/jxmpp/util/XmppStringUtils.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2019 Florian Schmaus + * Copyright © 2014-2024 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -281,6 +281,7 @@ public static String escapeLocalpart(String localpart) { * @return the un-escaped version of the localpart. * @see XEP-106: JID Escaping */ + @SuppressWarnings("LabelledBreakTarget") public static String unescapeLocalpart(String localpart) { if (localpart == null) { return null; diff --git a/jxmpp-core/src/main/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitter.java b/jxmpp-core/src/main/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitter.java index 2c6de65..d90b185 100644 --- a/jxmpp-core/src/main/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitter.java +++ b/jxmpp-core/src/main/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitter.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2015-2018 Florian Schmaus + * Copyright © 2015-2024 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -137,7 +137,7 @@ private void writeByteBufferInternal(ByteBuffer byteBuffer) throws IOException { } } - byteBuffer.flip(); + ((java.nio.Buffer) byteBuffer).flip(); } @Override diff --git a/jxmpp-core/src/test/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitterTest.java b/jxmpp-core/src/test/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitterTest.java index a587776..f9a04cb 100644 --- a/jxmpp-core/src/test/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitterTest.java +++ b/jxmpp-core/src/test/java/org/jxmpp/xml/splitter/Utf8ByteXmppXmlSplitterTest.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2015-2018 Florian Schmaus + * Copyright © 2015-2024 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import java.io.IOException; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.List; @@ -62,7 +63,7 @@ private static void testUtf8ByteSplitter(String... elements) throws IOException List bytesArray = new ArrayList<>(); for (String element : elements) { queue.add(element); - byte[] utf8bytes = element.getBytes("UTF-8"); + byte[] utf8bytes = element.getBytes(StandardCharsets.UTF_8); for (byte b : utf8bytes) { bytesArray.add(b); } @@ -100,7 +101,7 @@ private static void testUtf8ByteSplitterByteBufferArray(String... elements) thro List byteBufferArray = new ArrayList<>(); for (String element : elements) { queue.add(element); - byte[] utf8bytes = element.getBytes("UTF-8"); + byte[] utf8bytes = element.getBytes(StandardCharsets.UTF_8); ByteBuffer byteBuffer = ByteBuffer.wrap(utf8bytes); byteBufferArray.add(byteBuffer); } diff --git a/jxmpp-jid/build.gradle b/jxmpp-jid/build.gradle index 866017f..3500a63 100644 --- a/jxmpp-jid/build.gradle +++ b/jxmpp-jid/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.android-conventions' id 'org.jxmpp.junit4-conventions' } diff --git a/jxmpp-jid/src/main/java/org/jxmpp/jid/impl/AbstractJid.java b/jxmpp-jid/src/main/java/org/jxmpp/jid/impl/AbstractJid.java index 824594f..74bf05b 100644 --- a/jxmpp-jid/src/main/java/org/jxmpp/jid/impl/AbstractJid.java +++ b/jxmpp-jid/src/main/java/org/jxmpp/jid/impl/AbstractJid.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2017 Florian Schmaus + * Copyright © 2014-2024 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -255,7 +255,7 @@ private void throwIse(String message) { throw new IllegalStateException(exceptionMessage); } - static O requireNonNull(O object, String message) { + static O requireNonNull(O object, String message) { if (object != null) { return object; } diff --git a/jxmpp-jid/src/main/java/org/jxmpp/jid/util/JidUtil.java b/jxmpp-jid/src/main/java/org/jxmpp/jid/util/JidUtil.java index 6c0c058..386bbfb 100644 --- a/jxmpp-jid/src/main/java/org/jxmpp/jid/util/JidUtil.java +++ b/jxmpp-jid/src/main/java/org/jxmpp/jid/util/JidUtil.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2015 Florian Schmaus + * Copyright © 2014-2024 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,7 +42,7 @@ public class JidUtil { *

* * @param jid the CharSequence to check. - * @return true if @{code jid} represents a valid entity bare JID, false otherwise + * @return true if {@code jid} represents a valid entity bare JID, false otherwise * @see #isValidEntityBareJid(CharSequence) * @see EntityBareJid */ @@ -91,7 +91,7 @@ public static EntityBareJid validateTypicalEntityBareJid(CharSequence jidcs) thr * * @param jid * the CharSequence to check. - * @return true if @{code jid} represents a valid entity bare JID, false otherwise + * @return true if {@code jid} represents a valid entity bare JID, false otherwise * @see EntityBareJid */ public static boolean isValidEntityBareJid(CharSequence jid) { diff --git a/jxmpp-repl/build.gradle b/jxmpp-repl/build.gradle index df3dad0..016ed21 100644 --- a/jxmpp-repl/build.gradle +++ b/jxmpp-repl/build.gradle @@ -1,10 +1,10 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.junit4-conventions' } ext { - scalaVersion = '2.11.7' + scalaVersion = '2.13.13' } description = """\ @@ -16,7 +16,7 @@ dependencies { api project(':jxmpp-stringprep-icu4j') api project(':jxmpp-stringprep-libidn') api project(':jxmpp-util-cache') - api "com.lihaoyi:ammonite_$scalaVersion:0.8.0" + api "com.lihaoyi:ammonite_$scalaVersion:3.0.0-M1" testImplementation project(":jxmpp-core") } diff --git a/jxmpp-stringprep-icu4j/build.gradle b/jxmpp-stringprep-icu4j/build.gradle index d5ba8c0..103169c 100644 --- a/jxmpp-stringprep-icu4j/build.gradle +++ b/jxmpp-stringprep-icu4j/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.junit4-conventions' } diff --git a/jxmpp-stringprep-libidn/build.gradle b/jxmpp-stringprep-libidn/build.gradle index 5a5670d..e14e418 100644 --- a/jxmpp-stringprep-libidn/build.gradle +++ b/jxmpp-stringprep-libidn/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.android-conventions' id 'org.jxmpp.junit4-conventions' } diff --git a/jxmpp-stringprep-rocksxmppprecis/build.gradle b/jxmpp-stringprep-rocksxmppprecis/build.gradle index ec33c61..619e6e7 100644 --- a/jxmpp-stringprep-rocksxmppprecis/build.gradle +++ b/jxmpp-stringprep-rocksxmppprecis/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.junit4-conventions' } diff --git a/jxmpp-strings-testframework/build.gradle b/jxmpp-strings-testframework/build.gradle index cc8ee86..80eb980 100644 --- a/jxmpp-strings-testframework/build.gradle +++ b/jxmpp-strings-testframework/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.junit4-conventions' } @@ -21,7 +21,7 @@ dependencies { api project(':jxmpp-stringprep-libidn') api project(':jxmpp-stringprep-rocksxmppprecis') - implementation 'org.parboiled:parboiled-java:1.3.1' + implementation 'org.parboiled:parboiled-java:1.4.1' implementation "info.picocli:picocli:${picocliVersion}" // Needed for org.apache.tools.ant.types.Commandline.translateCommandline(String) // See StringsTestframeworkMain.main() diff --git a/jxmpp-util-cache/build.gradle b/jxmpp-util-cache/build.gradle index ded42a0..3a96163 100644 --- a/jxmpp-util-cache/build.gradle +++ b/jxmpp-util-cache/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jxmpp.java-common-conventions' + id 'org.jxmpp.java-conventions' id 'org.jxmpp.android-conventions' id 'org.jxmpp.jmh-conventions' id 'org.jxmpp.junit4-conventions'