Non tutte le le feature promesse dai developer e attese dalla community sono state completate in tempo per la deadline inizialmente definita, tra di esse è possibile citare per esempio il client HTTP/2, concepito anche per l'implementazione di WebSocket e per sostituire l'APi legacy HttpURLConnection; tale funzionalità ha quindi subito un downgrade ed è stata classificata come feature in fase di incubazione.

Il declassamento del client HTTP/2 a livello di modulo in incubazione per Java 9 presenta alcune implicazioni tra cui la mancata risoluzione di default in compilazione o runtime e la certezza che l'API non farà parte di Java SE (Standard Edition). Più semplicemente, questo significa che anche se verrà incluso in Java 9, esso non sarà in ogni caso accessibile in modalità predefinita e sarà pacchettizzato tramite un modulo associato al namespace jdk.incubtor.

Per quanto riguarda gli sviluppatori, quelli che vorranno sfruttare comunque il client HTTP/2 dovranno utilizzare esplicitamente il flag --add-mod; si tenga comunque conto che non trattandosi di una feature che fa parte dell'API standard essa potrà subire delle modifiche in qualsiasi momento. Un vero peccato considerando che la URLConnection API supporta diversi protocolli molti dei quali ormai non in uso, presenta diversi comportamenti non documentati e lavora unicamente in modalità blocking prevedendo, ad esempio, un thread per ciascuna dinamica request/response.

Al di là delle assenze eccellenti, la road map di Java/JDK 9 prevede ora un lavoro di revisione del codice che, a meno di imprevisti, porterà in progetto alla fase di general availability entro il prossimo luglio.

Via Mark Reinhold

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *