Développement

Vagrant – JDK Oracle sur Ubuntu

Récemment, j'ai voulu créer une box Vagrant contenant un environnement de développement Java prêt à l'usage. Sur GNU/Linux, il existe deux possibilités pour le JDK : OpenJDK Oracle JDK Souhaitant rester au plus proche de la version de production, j'ai décidé d'installer la version d'Oracle. Cette version n'est pas disponible sur les dépôts officiels d'Ubuntu. Il faut passer par les dépôts PPA. Création de la VM Déclaration La déclaration de la box est assez simple avec le fichier VagrantFile :…
Lire d'avantage

Spring MVC Test – tester vos MessageConverter personnalisés

Précédemment, nous avons vu comment ajouter le support du format CSV dans Spring MVC au moyen des MessageConverter. Il est maintenant temps d'automatiser les tests de ce composant. Pour cela, il faut utiliser Spring MVC Test framework. Dans un premier temps, il faut déclarer un context Spring simplifié pour le test dans un fichier : <?xml version="; encoding="UTF-8"?> <beans:beans xmlns:mvc="; xmlns:xsi="; xmlns:beans="; xmlns:context="; xsi:schemaLocation=" ;> <context:component-scan base-package="; /> </beans:beans> Ensuite, il faut écrire un test unitaire qui va : configurer…
Lire d'avantage

Spring MVC – support du CSV

S'il y a quelque chose que j'apprécie particulièrement dans Spring MVC, c'est bien la facilité et la rapidité à mettre en place des API REST. Par défaut, Spring MVC propose le support du XML, JSON, RSS, Atom et images. L'ajout du support d'un nouveau format est extrêmement simple. Pour cela, il suffi d'implémenter l'interface AbstractHttpMessageConverter. Voici ci-dessous l'implémentation pour le support des messages HTTP au format CSV : @Component public class CsvMessageConverter extends AbstractHttpMessageConverter<List<?>> { public static final MediaType MEDIA_TYPE…
Lire d'avantage

Validation XML avec des schémas inclus/importés

La validation d'un fichier XML avec un fichier de schéma XML indépendant est assez simple en Java. En revanche, dès que le schéma XML importe ou inclut d'autres schémas, la validation échoue car ces fichiers se sont pas chargés automatiquement. Après investigation, l'API de validation XML ne peut pas charger les schémas inclus. Heureusement, cette API permet d'enregistrer son propre résolveur afin de fournir le contenu des XSD incluses/importées. Pour celà, il faut implémenter l'interface "LSInput" qui se charge de…
Lire d'avantage

NormandyJUG – annotations

Mardi dernier, j'ai assisté lors de la session du NormandyJUG à la présentation d'Olivier Croisier sur les annotations. Autant le dire tout de suite : je ne suis pas fan des annotations. J'ai beaucoup de mal avec cette mode de mettre des éléments de configuration dans du code source. On nous rabâche depuis des années que le code source doit être réutilisable et donc générique. Or que depuis l'apparition des annotations, je vois beaucoup de code contenant du paramétrage. On…
Lire d'avantage

NormandyJUG – Hibernate vs Cloud Computing & NoSQL

Après plus d'un an et demi de pause forcée, j'ai pu enfin retourner au NormandyJUG ! Cette soirée était consacrée à un seul et unique thème :  l'accès aux données face à la montée en charge. La session était animée par Julien Dubois qui est entre autre l'auteur de Spring par la pratique. Le sujet ou l'intervenant devaient intéresser puisque nous étions une 50aine. En partant du principe que la scalabilité d'une application Java est limitée par la base de données,…
Lire d'avantage

Java – impossible de supprimer des éléments dans une liste

Parfois, le Java peut nous rendre quelque peu perplexe. Prenons par exemple le code suivant : String s = {"1","2","3","4"}; List<String>; l = (s); ("1"); Ces lignes de code Java semblent correctes. Pourtant, à l'exécution, elles vont lever l'exception suivante : (Unknown Source) $(Unknown Source) (Unknown Source) Mais pourquoi la classe List propose une méthode remove() qui n'est pas supportée ? Rappelons que List est une interface. En fait, la faute revient à la méthode () qui retourne une liste liée…
Lire d'avantage

JAXB – ignorer les espaces inutiles dans les fichiers XML

JAXB permet de générer des classes Java à partir de XSD pour manipuler du XML plus facilement. En clair, il permet de générer un parseur et un générateur de flux XML en Java. Ce qui fait gagner énormément de temps en développement. En revanche, par défaut, le parseur JAXB n'ignore pas les espaces inutiles (appelés whitespaces). Pas de panique, l'API JAXB permet de le faire assez simplement. Il faut seulement créer un filtre et l'appliquer lors de la lecture du…
Lire d'avantage

DZone RefCardz – aide mémoire Java

Vous ai-je déjà parlé de la carte de référence Debian GNU/Linux ? Si ce n'était pas le cas, cet oubli est réparé. :-)En écoutant l'épisode 5 des Cast Codeurs, j'ai appris qu'il existait à peu près la même chose (essentiellement mais pas ) pour le monde Java. Ces pense-bêtes porte le doux nom de DZone RefCardz. Ce sont des cartes de référence sur un thème donné de 6 pages environ au format A4. Les sujets semblent issus de livres. A…
Lire d'avantage

Les Cast Codeurs – le podcast Java en français

Suite à la première réunion du NormandyJUG, j'ai découvert l'existence du podcast Les Cast Codeurs - En français dans le Code. Je ne suis pas un très grand fan des podcasts et pourtant je trouve cette initiative excellente. Pour le moment, je n'ai écouté que le numéro 5 spécial JavaOne. L'ambiance est très bon enfant. :-) Le podcast se décompose ainsi : Les nouvelles du monde Java Les outils de la semaine Une discussion détaillée sur un sujet peu connu…
Lire d'avantage