diff --git a/.github/workflows/functional-tests.yml b/.github/workflows/functional-tests.yml index 85a38471e8..1dad97b338 100644 --- a/.github/workflows/functional-tests.yml +++ b/.github/workflows/functional-tests.yml @@ -26,7 +26,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -63,7 +63,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -125,7 +125,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -195,7 +195,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -236,7 +236,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -275,7 +275,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: @@ -339,7 +339,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index d218d75ad1..1226326e0b 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -12,7 +12,7 @@ jobs: - name: Install JDK uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index c49c8d4104..ed1378c907 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -5,9 +5,9 @@ - \ No newline at end of file diff --git a/build.gradle b/build.gradle index c6370d9b12..c33346e690 100644 --- a/build.gradle +++ b/build.gradle @@ -23,9 +23,9 @@ buildscript { mavenCentral() } dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21" - classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.13.0" - classpath "com.diffplug.spotless:spotless-plugin-gradle:5.10.2" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20" + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0" + classpath "com.diffplug.spotless:spotless-plugin-gradle:6.22.0" modules { module("org.jetbrains.trove4j:trove4j") { @@ -35,7 +35,7 @@ buildscript { } } plugins { - id 'nebula.lint' version '16.9.0' + id 'nebula.lint' version '18.1.0' } allprojects { @@ -61,12 +61,12 @@ allprojects { } compileKotlin { kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } } compileTestKotlin { kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } } diff --git a/cmake/modules/gluecodium/gluecodium/details/gradle/wrapper/gradle-wrapper.properties b/cmake/modules/gluecodium/gluecodium/details/gradle/wrapper/gradle-wrapper.properties index 41dfb87909..15de90249f 100644 --- a/cmake/modules/gluecodium/gluecodium/details/gradle/wrapper/gradle-wrapper.properties +++ b/cmake/modules/gluecodium/gluecodium/details/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-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/functional-tests/build.gradle b/functional-tests/build.gradle index ff0a2d5fb3..052aac0392 100644 --- a/functional-tests/build.gradle +++ b/functional-tests/build.gradle @@ -74,14 +74,14 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21" + classpath 'com.android.tools.build:gradle:8.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20" def gluecodiumVersion = project.hasProperty('gluecodiumVersion') ? project.property('gluecodiumVersion').toString().trim() : '+' classpath "com.here.gluecodium:gluecodium-gradle:${gluecodiumVersion}" - classpath 'com.diffplug.spotless:spotless-plugin-gradle:5.10.2' + classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.22.0' modules { module("org.jetbrains.trove4j:trove4j") { diff --git a/functional-tests/functional/build.gradle b/functional-tests/functional/build.gradle index 1f94ead5c7..82d6760b91 100644 --- a/functional-tests/functional/build.gradle +++ b/functional-tests/functional/build.gradle @@ -32,6 +32,8 @@ android { ndkVersion rootProject.ndkVersion compileSdkVersion rootProject.compileSdkVersion + namespace 'com.here.gluecodium.test.functional' + defaultConfig { minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion diff --git a/functional-tests/gradle/wrapper/gradle-wrapper.properties b/functional-tests/gradle/wrapper/gradle-wrapper.properties index 41dfb87909..15de90249f 100644 --- a/functional-tests/gradle/wrapper/gradle-wrapper.properties +++ b/functional-tests/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-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/functional-tests/namerules/build.gradle b/functional-tests/namerules/build.gradle index 36e4a8a92e..5c66159796 100644 --- a/functional-tests/namerules/build.gradle +++ b/functional-tests/namerules/build.gradle @@ -33,6 +33,7 @@ def getCMakeCommonParameters() { android { ndkVersion rootProject.ndkVersion compileSdkVersion rootProject.compileSdkVersion + namespace 'com.here.gluecodium.test.namerules' defaultConfig { minSdkVersion rootProject.minSdkVersion diff --git a/gluecodium/build.gradle b/gluecodium/build.gradle index 89138f23cb..d01dc9276c 100644 --- a/gluecodium/build.gradle +++ b/gluecodium/build.gradle @@ -72,9 +72,9 @@ jacocoTestCoverageVerification { } jacocoTestReport { reports { - csv.enabled true - html.enabled true - xml.enabled true + csv.required = true + html.required = true + xml.required = true csv.destination file("${buildDir}/reports/coverage/coverageReport.csv") html.destination file("${buildDir}/reports/coverage/html") diff --git a/gluecodium/src/main/java/com/here/gluecodium/generator/common/CommentsProcessor.kt b/gluecodium/src/main/java/com/here/gluecodium/generator/common/CommentsProcessor.kt index 3ea6624d51..ce790b9d02 100644 --- a/gluecodium/src/main/java/com/here/gluecodium/generator/common/CommentsProcessor.kt +++ b/gluecodium/src/main/java/com/here/gluecodium/generator/common/CommentsProcessor.kt @@ -77,7 +77,7 @@ abstract class CommentsProcessor( hasErrorFlag = true } val codeBlockHandler = VisitHandler(Code::class.java) { - if (it.text.toString() == standardNullReference) { + if (it.text.toString() == STANDART_NULL_REFERENCE) { it.text = CharSubSequence.of(nullReference) } } @@ -105,9 +105,9 @@ abstract class CommentsProcessor( open fun processAutoLink(linkNode: AutoLink) {} open fun postRenderDocument(renderedDocument: String): String = renderedDocument - open val nullReference = standardNullReference + open val nullReference = STANDART_NULL_REFERENCE companion object { - private const val standardNullReference = "null" + private const val STANDART_NULL_REFERENCE = "null" } } diff --git a/gluecodium/src/main/java/com/here/gluecodium/generator/common/templates/CapitalizeHelper.kt b/gluecodium/src/main/java/com/here/gluecodium/generator/common/templates/CapitalizeHelper.kt index 1c0054ef04..6ebdfb550e 100644 --- a/gluecodium/src/main/java/com/here/gluecodium/generator/common/templates/CapitalizeHelper.kt +++ b/gluecodium/src/main/java/com/here/gluecodium/generator/common/templates/CapitalizeHelper.kt @@ -29,7 +29,7 @@ import org.trimou.handlebars.Options internal class CapitalizeHelper : BasicHelper() { override fun execute(options: Options) { if (options.parameters.isNotEmpty()) { - options.append((options.parameters[0].toString()).capitalize()) + options.append((options.parameters[0].toString()).replaceFirstChar(Char::titlecase)) } } } diff --git a/gluecodium/src/main/resources/version.properties b/gluecodium/src/main/resources/version.properties index e1c1fc93c5..12a8db1633 100644 --- a/gluecodium/src/main/resources/version.properties +++ b/gluecodium/src/main/resources/version.properties @@ -1 +1 @@ -version = 13.7.2 +version = 13.7.3 diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index d6e574c1a5..0ac2fd8a2a 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -7,12 +7,12 @@ group = 'com.here.gluecodium' task sourcesJar(type: Jar) { from sourceSets.main.allJava - classifier = 'sources' + archiveClassifier = 'sources' } task javadocJar(type: Jar) { from javadoc - classifier = 'javadoc' + archiveClassifier = 'javadoc' } publishing.publications { diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle index 42a86aa733..f8bd5c7671 100644 --- a/gradle/spotless.gradle +++ b/gradle/spotless.gradle @@ -30,7 +30,7 @@ spotless { endWithNewline() } kotlin { - ktlint("0.40.0") + ktlint("1.1.0") licenseHeaderFile rootProject.file('config/spotless/here_java.license') } format 'misc', { @@ -44,6 +44,7 @@ spotless { format 'mustache', { target project.fileTree(project.projectDir) { include '**/*.mustache' + exclude '**/build*' } licenseHeaderFile rootProject.file('config/spotless/here_mustache.license'), /(?!\{\{!!$| !).*/ } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 41dfb87909..15de90249f 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-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/lime-loader/build.gradle b/lime-loader/build.gradle index 4cd03a7dff..0efbb3a1e4 100644 --- a/lime-loader/build.gradle +++ b/lime-loader/build.gradle @@ -3,14 +3,19 @@ plugins { } dependencies { + //antlr "org.antlr:antlr4:4.13.1" antlr "org.antlr:antlr4:4.9.1" api project(":lime-runtime") - implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.21' - implementation "org.antlr:antlr4-runtime:4.9.1" + implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.21' + implementation "org.antlr:antlr4-runtime:4.9.1" + // implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.20' + // implementation "org.antlr:antlr4-runtime:4.13.1" testImplementation files({ project(":lime-runtime").sourceSets.test.output }) - testImplementation 'io.mockk:mockk-dsl-jvm:1.12.5' - testImplementation 'io.mockk:mockk:1.12.5' + testImplementation 'io.mockk:mockk-dsl-jvm:1.12.5' + testImplementation 'io.mockk:mockk:1.12.5' + // testImplementation 'io.mockk:mockk-dsl-jvm:1.13.8' + // testImplementation 'io.mockk:mockk:1.13.8' testImplementation 'junit:junit:4.13.2' } @@ -43,6 +48,21 @@ javadoc { exclude 'com/here/gluecodium/antlr/**' } +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { + dependsOn(tasks.withType(AntlrTask)) +} + +// tasks.configureEach { task -> +// if (task.name == 'generateAntlrGeneratedGrammarSource') { +// task.dependsOn('compileAntlrGeneratedKotlin') +// } +// if (task.name == 'generateGrammarSource') { +// task.dependsOn('compileAntlrGeneratedKotlin') +// task.dependsOn('compileAntlrGeneratedJava') +// task.dependsOn('sourcesJar') +// } +// } + apply from: "$rootDir/gradle/spotless.gradle" spotless { diff --git a/lime-runtime/src/main/java/com/here/gluecodium/common/CaseInsensitiveMap.kt b/lime-runtime/src/main/java/com/here/gluecodium/common/CaseInsensitiveMap.kt index cd979b2df6..bda2fbc8b2 100644 --- a/lime-runtime/src/main/java/com/here/gluecodium/common/CaseInsensitiveMap.kt +++ b/lime-runtime/src/main/java/com/here/gluecodium/common/CaseInsensitiveMap.kt @@ -23,7 +23,8 @@ import java.util.Locale import java.util.function.BiFunction import java.util.function.Function -class CaseInsensitiveMap : HashMap() { +// Mark `Any` as non-nullable +class CaseInsensitiveMap : HashMap() { override fun compute(key: String, remappingFunction: BiFunction) = super.compute(key.lowercase(Locale.getDefault()), remappingFunction)