Groovy 4.0.0 voegt SQL-achtige query’s toe
Groovy 4.0.0 is aangekomen als productieversie. Hierin brengt de populaire JVM-taal nieuwe upgrade met SQL-achtige querymogelijkheden, sealed types, en switch expressions.
GINQ, ook bekend als Groovy-geïntegreerde Query of GQuery, is een incubatiefunctie in Groovy 4.0.0. Het ondersteunt het opvragen van collecties in een SQL-achtige stijl. Dit kan betrekking hebben op lijsten of kaarten, domeinobjecten of collecties die worden geretourneerd bij verwerking, zoals JSON, XML en andere gestructureerde gegevens. In een toekomstige versie van Groovy vragen plannen om GQuery-ondersteuning voor SQL-databases waar een geoptimaliseerde SQL-query wordt gegenereerd op basis van de GQuery-expressie.
Groovy 4.0.0 introduceert ook sealed types en wisselexpressies. Sealed types, die beperken welke andere klassen of interfaces ze kunnen uitbreiden of implementeren, kunnen worden gebruikt in instanties zoals het creëren van verbeterde enum-achtige hiërarchieën. Met switch-expressies krijgt Groovy een handig programmeeralternatief voor switch-statements, dat Groovy volgens de release-opmerkingen al heeft gehad .
Aangekondigd op 28 januari door het Apache Groovy-team, kan Groovy 4.0.0 worden gedownload van groovy.apache.org . Andere mogelijkheden in Groovy 4.0 zijn onder meer:
- Native records voor Java Development Kit (JDK) 16 en recordachtige klassen, ook wel geëmuleerde records genoemd, zijn incubatiefuncties. Recordachtige klassen hebben kenmerken van native records, maar hebben niet dezelfde informatie op bytecodeniveau als native records; daarom worden ze niet herkend als records door een Java-compiler in scenario’s voor kruisintegratie.
- Sommige geselecteerde typecontroles zijn gebundeld in de optionele groovy-typecheckersmodule om verder gebruik van het uitbreidbare typecontrolemechanisme aan te moedigen.
- Geselecteerde macromethoden zijn gebundeld in de optionele groovy-macro-librarymodule om verder gebruik van macro’s aan te moedigen.
- Een JavaShell-functie, ook in een incubatietoestand, stelt ontwikkelaars in staat om gemakkelijker met codefragmenten te werken. Deze mogelijkheid is het Java-equivalent van GroovyShell.
- POJO-annotatie is te zien in een incubatietoestand.
- Een optionele, incuberende Groovy-contractmodule ondersteunt een ontwerp-per-contract-programmeerstijl. Het biedt contractannotaties ter ondersteuning van de specificatie van klasse-invarianten, pre-condities en post-condities op Groovy-interfaces en klassen.
- TOML-bestanden (Tom’s Obvious Minimal Language) worden ondersteund, ook een incubatiefunctie.
- GString-prestaties zijn verbeterd.