diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c6ba33e..fe92fa0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,10 +14,10 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: '17' diff --git a/build.gradle.kts b/build.gradle.kts index c15ff61..629d949 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("com.android.application") version "7.1.3" apply false - kotlin("android") version "1.6.21" apply false - id("org.sonarqube") version "3.3" + id("com.android.application") version "8.4.0" apply false + kotlin("android") version "1.9.23" apply false + id("org.sonarqube") version "5.0.0.4638" } subprojects { @@ -11,7 +11,7 @@ subprojects { sonarqube.isSkipProject = true } else { sonarqube.properties { - property("sonar.coverage.jacoco.xmlReportPaths", "$buildDir/reports/jacoco/test/jacocoTestReport.xml") + property("sonar.coverage.jacoco.xmlReportPaths", layout.buildDirectory.dir("reports/jacoco/test/jacocoTestReport.xml")) } } } @@ -26,8 +26,4 @@ sonarqube { property("sonar.organization", "g00fy2") property("sonar.host.url", "https://sonarcloud.io") } -} - -tasks.register("clean") { - delete(buildDir) } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 8899172..868d7ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,3 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m - -# Use R8 in full mode instead of ProGuard compatibility mode. -android.enableR8.fullMode=true \ No newline at end of file +org.gradle.jvmargs=-Xmx1536m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index aa991fc..48c0a02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index a58591e..1b6c787 100755 --- a/gradlew +++ b/gradlew @@ -231,4 +231,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index bdec744..4529d9f 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -4,11 +4,12 @@ plugins { } android { - compileSdk = 32 + namespace = "io.github.g00fy2.versioncomparesample" + compileSdk = 34 defaultConfig { applicationId = "io.github.g00fy2.versioncomparesample" minSdk = 14 - targetSdk = 32 + targetSdk = 34 versionCode = 1 versionName = "1.0" } @@ -23,11 +24,11 @@ android { viewBinding = true } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() + jvmTarget = JavaVersion.VERSION_11.toString() } } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index e210507..8b3f2f8 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -1,18 +1,18 @@ + xmlns:tools="http://schemas.android.com/tools"> + android:allowBackup="false" + tools:ignore="DataExtractionRules"> + tools:ignore="DiscouragedApi,LockedOrientationActivity"> diff --git a/versioncompare/build.gradle.kts b/versioncompare/build.gradle.kts index f5068a6..6de1423 100644 --- a/versioncompare/build.gradle.kts +++ b/versioncompare/build.gradle.kts @@ -6,12 +6,12 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } jacoco { - toolVersion = "0.8.8" + toolVersion = "0.8.12" } tasks.test { @@ -21,8 +21,8 @@ tasks.test { tasks.jacocoTestReport { reports { - xml.required.set(true) - csv.required.set(false) + xml.required = true + csv.required = false } } @@ -31,24 +31,24 @@ repositories { } dependencies { - compileOnly("org.jetbrains:annotations:23.0.0") + compileOnly("org.jetbrains:annotations:24.1.0") testImplementation("junit:junit:4.13.2") - testImplementation("nl.jqno.equalsverifier:equalsverifier:3.10") + testImplementation("nl.jqno.equalsverifier:equalsverifier:3.16.1") } group = "io.github.g00fy2" -version = "1.5.0" -rootProject.version = "1.5.0" // set version for sonarcloud +version = "1.6.0" +rootProject.version = "1.6.0" // set version for sonarcloud tasks.register("javadocJar") { - archiveClassifier.set("javadoc") - from("$buildDir/docs/javadoc") + archiveClassifier = "javadoc" + from(layout.buildDirectory.dir("docs/javadoc")) dependsOn("javadoc") } tasks.register("sourcesJar") { - archiveClassifier.set("sources") + archiveClassifier = "sources" from(sourceSets.getByName("main").java.srcDirs) } @@ -65,26 +65,26 @@ publishing { artifact(tasks.named("javadocJar")) artifact(tasks.named("sourcesJar")) pom { - name.set(project.name) - description.set("Lightweight library to compare version strings.") - url.set("https://github.com/G00fY2/version-compare") + name = project.name + description = "Lightweight library to compare version strings." + url = "https://github.com/G00fY2/version-compare" licenses { license { - name.set("The Apache Software License, Version 2.0") - url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") + name = "The Apache Software License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" } } developers { developer { - id.set("g00fy2") - name.set("Thomas Wirth") - email.set("twirth.development@gmail.com") + id = "g00fy2" + name = "Thomas Wirth" + email = "twirth.development@gmail.com" } } scm { - connection.set("https://github.com/G00fY2/version-compare.git") - developerConnection.set("https://github.com/G00fY2/version-compare.git") - url.set("https://github.com/G00fY2/version-compare") + connection = "https://github.com/G00fY2/version-compare.git" + developerConnection = "https://github.com/G00fY2/version-compare.git" + url = "https://github.com/G00fY2/version-compare" } } } diff --git a/versioncompare/src/main/java/io/github/g00fy2/versioncompare/Version.java b/versioncompare/src/main/java/io/github/g00fy2/versioncompare/Version.java index 4e91cfb..f96e47c 100644 --- a/versioncompare/src/main/java/io/github/g00fy2/versioncompare/Version.java +++ b/versioncompare/src/main/java/io/github/g00fy2/versioncompare/Version.java @@ -97,7 +97,7 @@ public Version(@Nullable String versionString, boolean throwExceptions) { * @return the major version, default 0. */ public long getMajor() { - return trimmedSubversionNumbers.size() > 0 ? trimmedSubversionNumbers.get(0) : 0L; + return !trimmedSubversionNumbers.isEmpty() ? trimmedSubversionNumbers.get(0) : 0L; } /** diff --git a/versioncompare/src/main/java/io/github/g00fy2/versioncompare/VersionComparator.java b/versioncompare/src/main/java/io/github/g00fy2/versioncompare/VersionComparator.java index 978ff9a..37f079c 100644 --- a/versioncompare/src/main/java/io/github/g00fy2/versioncompare/VersionComparator.java +++ b/versioncompare/src/main/java/io/github/g00fy2/versioncompare/VersionComparator.java @@ -43,7 +43,7 @@ static int compareSubversionNumbers(@NotNull final List versionNumbersA, } static ReleaseType qualifierToReleaseType(@NotNull String suffix) { - if (suffix.length() > 0) { + if (!suffix.isEmpty()) { suffix = suffix.toLowerCase(); if (suffix.contains(RC_STRING)) return ReleaseType.RC; if (suffix.contains(BETA_STRING)) return ReleaseType.BETA; @@ -99,7 +99,7 @@ private static int indexOfQualifier(@NotNull String suffix, final ReleaseType re // helper methods static boolean startsNumeric(@NotNull String str) { str = str.trim(); - return str.length() > 0 && Character.isDigit(str.charAt(0)); + return !str.isEmpty() && Character.isDigit(str.charAt(0)); } static long safeParseLong(@NotNull String numbers) { diff --git a/versioncompare/src/main/java/module-info.java b/versioncompare/src/main/java/module-info.java new file mode 100644 index 0000000..d5c5126 --- /dev/null +++ b/versioncompare/src/main/java/module-info.java @@ -0,0 +1,4 @@ +module versioncompare { + requires static org.jetbrains.annotations; + exports io.github.g00fy2.versioncompare; +} \ No newline at end of file