Kirjoittaja: Stefan Roos, Product Technical Lead, Trivore Oy
Java 25 oli syksyn 2025 merkittävin julkaisu Java-kehittäjille. Se on ensimmäinen pitkään tuettu versio (LTS) Java 21:n jälkeen, mikä tarkoittaa, että tuotantosovellukset siirtyvät tähän versioon.
Trivoren IAM-alustan backend-komponentit rakentuvat Javan ja Quarkuksen päälle, joten jokainen LTS-julkaisu on meille paitsi tekninen myös strateginen päätös: mitä uutta voimme hyödyntää ja miten se näkyy asiakkaillemme?
Käyn tässä läpi kolme Java 25:n uudistusta, jotka ovat merkittäviä sekä Java-ekosysteemille laajemmin että identiteetinhallintaa rakentaville tiimeille.
Scoped Values tuo turvallisuutta rinnakkaisuuteen
Monisäikeisessä sovelluksessa kontekstitiedon, kuten käyttäjäsession tai pyyntökohtaisen datan turvallinen välittäminen on perustavanlaatuinen haaste. Perinteisesti tähän on käytetty ThreadLocal-muuttujia, jotka toimivat mutta tuovat mukanaan muistivuotoriskejä ja ennakoimatonta käyttäytymistä.
Java 25:n Scoped Values (JEP 506) ratkaisee nämä ongelmat: arvo asetetaan kerran, se on muuttumaton eikä vuoda muistia. Ominaisuus on suunniteltu toimimaan saumattomasti Javan virtuaalisäikeiden kanssa.
Trivoren IAM-komponenteissa käytämme pääosin asynkronista ohjelmointia Mutiny-kirjaston kanssa, joten Scoped Valuesin suora vaikutus arkkitehtuuriimme on rajallinen. Se on kuitenkin merkittävä parannus Java-ekosysteemille kokonaisuutena ja hyödyllinen tilanteissa, joissa säiepohjainen kontekstinhallinta on käytössä.
Key Derivation Function API: avaimenmuodostus vihdoin suoraan Javassa
Identiteetinhallinnassa kryptografiset operaatiot ovat arkipäivää: avainten johtaminen, tokenien allekirjoitus, salausmateriaalin hallinta. Tähän asti Javassa ei ole ollut standardoitua rajapintaa avaimenmuodostusfunktioille, joten kehittäjät ovat joutuneet turvautumaan kolmannen osapuolen kirjastoihin tai kiertoratkaisuihin.
JEP 510 tuo KDF-rajapinnan suoraan Javan standardikirjastoon. Tämä vähentää ulkoisia riippuvuuksia, parantaa yhteensopivuutta ja tekee kryptografisesta koodista helpommin auditoitavaa. Kun turvallisuuskriittinen koodi perustuu standardirajapintaan, sen laatu on helpompi todentaa – sekä meille että asiakkaillemme.
AOT-parannukset nopeuttavat Javan käynnistymistä pilviympäristössä
Pilviympäristössä palvelun käynnistymisnopeus vaikuttaa suoraan saatavuuteen ja kustannuksiin. Java 25 yksinkertaistaa Ahead-of-Time-välimuistin käyttöä (JEP 514) ja parantaa metodiprofilointia (JEP 515), mikä nopeuttaa JIT-kääntäjän toimintaa heti käynnistyksestä alkaen.
Trivoren Quarkus-pohjaisissa komponenteissa saavutamme vastaavan hyödyn jo natiivikäännöksillä, joten AOT-välimuisti ei ole meillä suoraan käytössä. Laajemmin Java-ekosysteemissä tämä on kuitenkin merkittävä uudistus – erityisesti sovelluksille, joissa natiivikäännös ei ole vaihtoehto.
Miksi tällä on väliä?
Ohjelmistokehityksessä alustavalinta ei ole vain tekninen yksityiskohta. Se vaikuttaa suoraan tuotteen turvallisuuteen, suorituskykyyn ja ylläpidettävyyteen. Kun IAM-järjestelmä käsittelee organisaation kriittisintä dataa – identiteettejä, käyttöoikeuksia, autentikaatiolokeja – jokainen parannus alustan turvallisuudessa ja tehokkuudessa näkyy asiakkaalle asti.
Kaikki LTS-version uudistukset eivät muuta omaa koodiamme suoraan. Mutta ne parantavat alustaa, jonka päälle rakennamme – ja sitä kautta tuotetta, johon asiakkaamme luottavat.
Olen kirjoittanut kattavamman katsauksen kaikkiin Java 25:n uudistuksiin. Jos haluat sukeltaa syvemmälle JEP-tasolle, löydät sen täältä (PDF).