Java 28 tuo uusia ominaisuuksia – myös GraalVM, Quarkus ja Maven saivat merkittäviä päivityksiä

Javan uudet ominaisuudet

Java-ekosysteemissä nähtiin jälleen vilkas kehitysviikko. Uusimmat uutiset sisältävät useita OpenJDK:n uusia JEP-ehdotuksia, Jakarta EE:n ja GraalVM:n päivityksiä sekä uusia julkaisuja muun muassa Micronautille, Quarkukselle, Mavenille ja JobRunrille.

Erityisesti JDK 28:n kehitys etenee vauhdilla, sillä useita uusia ominaisuuksia on siirtynyt virallisesti mukaan seuraavan Java-version tavoitteisiin.

OpenJDK 28 saa uusia merkittäviä JEP-ominaisuuksia

OpenJDK-projekti on hyväksynyt useita uusia JEP-ehdotuksia (JDK Enhancement Proposal), jotka tähtäävät JDK 28 -julkaisuun. Yksi merkittävimmistä on JEP 539, joka tuo JVM:ään tiukemman kenttien alustuksen (Strict Field Initialization). Muutoksen tavoitteena on estää tilanteet, joissa olion kenttä voisi sisältää oletusarvon, kuten nollan tai null-arvon, ennen varsinaista alustamista.

Toinen tärkeä uudistus on JEP 401, joka tuo Javaan niin sanotut Value Objects -oliot. Nämä objektit koostuvat ainoastaan muuttumattomista kentistä (final), niillä ei ole omaa identiteettiä ja ne eroavat toisistaan pelkästään sisältämiensä arvojen perusteella.

Shenandoah-roskienkeruu muuttuu oletusasetukseksi

OpenJDK:n kehittäjät suunnittelevat myös muutoksia Shenandoah Garbage Collectoriin. JEP 535 ehdottaa, että generatiivisesta Shenandoah GC -tilasta tulee oletusasetus JDK 28:ssa. Samalla nykyinen ei-generatiivinen tila aiotaan poistaa käytöstä tulevissa Java-versioissa.

Muutoksen tavoitteena on parantaa suorituskykyä ja muistinhallintaa erityisesti suurissa Java-sovelluksissa.

Kryptografia saa uuden PEM-rajapinnan

Myös kryptografisten objektien käsittelyä kehitetään. JEP 542 etenee ehdokasvaiheeseen ja tuo Javaan virallisen rajapinnan, jonka avulla salausavaimia, varmenteita sekä sertifikaattien peruutuslistoja voidaan lukea ja kirjoittaa yleisesti käytetyssä PEM-muodossa.

Ratkaisu tukee PKCS #8- ja X.509-standardeja sekä yksinkertaistaa PEM- ja binäärimuotoisten objektien välistä muunnosta.

JDK 27 ja JDK 28 saivat uudet testiversiot

Oracle julkaisi viikon aikana myös uudet Early Access -versiot tulevista Java-julkaisuista. JDK 27 sai Build 33 -version, joka sisältää useita virhekorjauksia edelliseen testiversioon verrattuna.

Samalla julkaistiin myös JDK 28 Build 9, jossa jatketaan seuraavan Java-version kehitystä ja korjataan aiemmin havaittuja ongelmia.

Jakarta EE 11 saa lisää työkaluja

Jakarta EE -ekosysteemissä julkaistiin ensimmäinen väliversio Jakarta Agentic AI 1.0 -projektista. Julkaisu tuo mukanaan uuden testausinfrastruktuurin sekä uusia annotaatioita, joiden avulla tekoälyyn liittyvien ominaisuuksien testaaminen helpottuu.

Lisäksi Eclipse Starter for Jakarta EE tukee nyt virallisesti Jakarta EE 11:tä. Tuettuja palvelinalustoja ovat muun muassa GlassFish, Open Liberty ja Payara.

GraalVM 25.2 tuo uusia tekoäly- ja suorituskykyominaisuuksia

Oracle julkaisi myös GraalVM 25.2 -version. Julkaisun suurimpiin uudistuksiin kuuluu uusi Graal Script Agent, jonka avulla luonnollisella kielellä annetut pyynnöt voidaan muuntaa paikallisesti suoritettaviksi sovelluslaajennuksiksi.

Lisäksi G1 Garbage Collector toimii nyt Native Image -sovelluksissa kaikilla alustoilla, myös Windowsissa. Myös Java Vector API on otettu käyttöön oletusarvoisesti.

TornadoVM nopeuttaa Llama 3 -tekoälymallien käyttöä

TornadoVM-projekti julkaisi GPULlama3.java 1.0:n. Kyseessä on avoimen lähdekoodin ratkaisu, jonka avulla Llama 3 -tekoälymallia voidaan suorittaa GPU-kiihdytettynä.

Julkaisussa on lisätty muun muassa CUDA-tuki, OpenAI-yhteensopiva HTTP-palvelin sekä uusia suorituskykymittareita.

Micronaut ja Quarkus jatkavat kehitystään

Micronaut Framework 5.1 sisältää uusia ominaisuuksia, kuten uuden @Property-annotaation sekä tuen OpenDI-toteutukselle, joka on Eclipse-yhteensopiva CDI Lite -ratkaisu.

Quarkus 3.38 puolestaan tuo kaksi merkittävää uutta ominaisuutta:

  • painotettuun muistinhallintaan perustuvan välimuistin Hibernate Second Level Cachelle
  • uuden HTTP Problem -laajennuksen, joka toteuttaa RFC 7807 -standardin virhevastauksille.

Lisäksi julkaisu sisältää runsaasti virhekorjauksia ja päivitettyjä riippuvuuksia.

JobRunr, Maven ja JDKUpdater saivat uudet versiot

JobRunr 8.8 sisältää muun muassa paremman lokituksen StorageException-virhetilanteisiin, tuen Kotlin 2.4:lle sekä helpotuksia Quarkus-kehittäjille. JDKUpdater 26.0.33 päivitettiin vastaamaan OpenJDK:n uutta tietoturvapäivitysten julkaisutahtia.

Maven 4.0:n kuudes Release Candidate sisältää useita bugikorjauksia sekä uusia ominaisuuksia, kuten paremman tuen monimoduuliprojekteille ja erillisen maven-executor-komponentin Maven 3- ja Maven 4 -projektien suorittamiseen.

Java 28:n kehitys kiihtyy

Viikon julkaisut osoittavat, että JDK 28:n kehitys etenee nopeasti samalla, kun Java-ekosysteemin keskeiset projektit saavat uusia ominaisuuksia ja suorituskykyparannuksia. Erityisesti Value Objects, uusi kenttien alustuksen malli sekä GraalVM:n ja Quarkuksen kehitys osoittavat, että Java-alusta panostaa samanaikaisesti suorituskykyyn, pilvikehitykseen ja nykyaikaisiin ohjelmisto kehityksen työkaluihin.