Aquest how-to va dirigit principalment al personal tècnic (desenvolupadors i arquitectes) que vulguin actualitzar la versió de Java 7 a 8 en una aplicació Canigó 3.
Els canvis “grans” de versions de Java acostumen a implicar canvis en les aplicacions. L’objectiu d’aquesta guia és facilitar la migració a Java 8 de les aplicacions Canigó 3 que facin servir encara Java 7.
La versió de Canigó 3.1.0 publicada a finals de 2014 va introduir la versió 4 de Spring, la qual suporta out-of-the-box Java 8. Per aquest motiu, les aplicacions que funcionin amb una versió de Canigó igual o posterior a la 3.1.0 no patiran problemes amb Java 8.
Per aplicacions Canigó 3.0.x, es recomana actualitzar a Canigó 3.1 seguint aquesta guia.
A continuació s’especifica el canvi a realitzar al codi de l’aplicació Canigó 3.1 / 3.2 per forçar que les classes generades siguin Java 8 compatibles, impedint el desplegament en servidors d’aplicacions que corrin en versions anteriors de Java.
Per compilar el projecte amb Java 8, només cal modificar el fitxer pom.xml
i fer el següent canvi:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
per
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
A continuació es presenta un llistat de canvis introduïts a la versió 8 de Java que poden afectar a les aplicacions que funcionaven amb la versió 7, i en funció de les quals s’hauria de revisar el codi de l’aplicació.
En el cas que es faci ús del formatat de dates amb noms de mesos (p.e. gener, juny, etc.) poden patir problemes amb el canvi de versió de Java.
WWW-Authenticate
gestionades per la classe HttpURLConnection
.La selecció de LocaleServiceProvider
ha canviat, i pot donar problemes en la gestió dels idiomes.
Aquest mètode llençarà sempre un UnsupportedOperationException
.
Les claus RSA de menys de 1024 bits deixaran de funcionar per defecte.
La selecció en sistemes Windows del directori HOME de l’usuari ha canviat, i pot presentar problemes amb aquesta nova versió.
Els mètodes removeAll()
i retainAll()
llençaran un NullPointerException
quan es passi NULLs.
La selecció del proveïdor de XML pot donar problemes, seleccionant per defecte el que incorpora Java 8, i provocant inconsistències en el tractament de fitxers XML.