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.