QuestDB removal and JDK 21 Minimum #800
Open
rschwietzke wants to merge 4 commits intojbake-org:masterfrom
Open
QuestDB removal and JDK 21 Minimum #800rschwietzke wants to merge 4 commits intojbake-org:masterfrom
rschwietzke wants to merge 4 commits intojbake-org:masterfrom
Conversation
- Replace OrientDB with in-memory ContentStore (ArrayList + Streams) - Upgrade Gradle 7.3.3 -> 9.4.0 - Set source/target compatibility to Java 21 - Upgrade dependencies: SLF4J 2.0, Logback 1.5, Mockito 5.22, JaCoCo 0.8.14, JUnit 5.11, and more - Remove nebula.optional-base plugin (Gradle 9 incompatible) - Replace maven-plugin-development with org.gradlex successor - Migrate commons-lang -> commons-lang3 (lost transitive dep) - Disable SecurityManager-dependent test (removed in Java 25) - Disable Groovy SimpleTemplate tests (Groovy 3.x ASM limitation)
- application.gradle: mainClassName -> application.mainClass.set(), applicationName -> application.applicationName, project.buildDir -> project.layout.buildDirectory - Disable JReleaser plugin (incompatible with Gradle 9, uses removed ConfigureUtil) - Comment out release.gradle import in jbake-dist
compileOnly excluded deps from the runtime classpath, breaking the distribution. implementation is the correct replacement for the old 'optional' marker - it keeps deps at runtime but doesn't expose them to consumers' compile classpath. Also fix clone tasks to skip if example repo dir already exists.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OrientDB Removal & Java 21 Migration
Disclaimer
That is an AI-created feature set but with human help and testing. Just to get rid of boring heavy lifting in one go. Opinions appreciated.
Overview
Two major changes in a single effort:
ArrayList<DocumentModel>+ Java StreamsOrientDB Removal
OrientDB was used as an embedded database for content caching, indexing, and template queries. It added ~38MB of JAR dependencies and complexity for what is essentially an in-memory data store during site generation.
What Changed
ContentStore— completely rewritten. 12 SQL queries replaced with Java Stream operations onArrayList<DocumentModel>. Lifecycle methods (startup,close,shutdown) are now no-ops.DBUtil— removed OrientDB-specific type handling (OResult,OTrackedList). Factory creates plainContentStoreinstances.DocumentList— simplified to a plainLinkedList<T>subclass, removingOResultSetwrapping.Crawler,Oven— removed OrientDB imports andupdateSchema()calls.JadeTemplateEngine,ThymeleafTemplateEngine— migratedcommons-lang→commons-lang3(was a transitive dependency of OrientDB).orientdb-coredependency,orientDbVersionproperty, OrientDB JVM args, JaCoCo exclusions, anddb.store/db.pathproperties.FakeDocumentBuilder,ContentStoreIntegrationTest,ContentStoreTest,CrawlerTest,PaginationTestto use the in-memory store.Java 21 Migration
Gradle
Dependency Upgrades
Plugin Changes
nebula.optional-base— incompatible with Gradle 9 (uses removedMavenPluginAPI). Replacedoptionalmarkers withcompileOnly+testImplementation.de.benediktritter.maven-plugin-development→org.gradlex.maven-plugin-development(deprecated plugin).Build Convention (
java-common.gradle)MaxDirectMemorySizeJVM arg--add-opens,-Dnet.bytebuddy.experimental=true)Disabled Tests
MainTest.shouldTellUserThatTemplateOptionRequiresInitOption— usesExitGuard/SecurityManagerwhich is removed in Java 25.GroovyTemplateEngineRenderingTest(9 tests) — Groovy 3.x ASM cannot handle Java 25 class files. Will be fixed by upgrading to Groovy 4.x.Breaking Changes