build.gradle.ktsprojectforge-wicket module — the Wicket-based web presentation layer that handles server-rendered HTML pages, LESS-to-CSS compilation, and the FullCalendar integration. This Kotlin DSL build script declares the module's dependency graph (linking to the common, business, and REST submodules), Kotlin compilation settings targeting JVM 17, and resource processing rules that copy templates, JavaScript, and CSS from Java source directories into the build output alongside webapp static assets.The wicket module depends on three core ProjectForge submodules: projectforge-common (utilities and shared infrastructure), projectforge-business (domain logic and data access), and projectforge-rest (REST API layer). External dependencies include Wicket's extensions, Spring integration, and test harness (all accessed via Gradle version catalog libs.* aliases), Jakarta Servlet API, Kotlin stdlib, WicketStuff add-ons (HTML5 support, Select2 dropdown component), Gson for JSON serialization, and Mozilla Rhino (server-side JavaScript execution).
Targets JVM 17 — matching the monorepo's standard. Kotlin source coexists with legacy Java source in src/main/kotlin and src/main/java respectively.
The custom ProcessResources task configuration merges web resources from two source roots: src/main/java (containing Wicket HTML templates, CSS, JS files, and .tpl templates alongside Java sources) and src/main/webapp (static assets placed in a static/ output directory). The DuplicatesStrategy.EXCLUDE handles conflicts when both directories contain identically-named resources.
The dependency references were simplified from verbose Maven-style coordinates (libs.org.apache.wicket.wicket.myextensions) to shorter catalog entries (libs.org.apache.wicket.myextensions) during the Gradle modernization effort — the redundant wicket. segment was removed from catalog keys.
| Commit | What changed |
|---|---|
e21feaa61 through 09b16bc25 | A series of five Gradle build refinement commits that established, tested, and progressively fixed the module's build configuration. The most significant functional change (in 84a5eb6ae) was the simplification of dependency version catalog keys: removing the redundant wicket. namespace segment from Wicket and WicketStuff library aliases (e.g., libs.org.apache.wicket.wicket.myextensions → libs.org.apache.wicket.myextensions). Other commits stabilized the module conventions plugin, Kotlin compilation settings, and resource processing strategy. |