Tags

JAVA 8 – Map – ComputeIfPresent pour la gestion des caches

Nous avons vu dans l’article précédent que la méthode computeIfAbsent permettait de gérer facilement l’assignation d’une variable dans une Map si la valeur représentée par la clé n’était pas présente. Cette option est très pratique et permet de gagner énormément de temps lors de la création et de la gestion d’un cache applicatif. Un autre besoin récurrent est la mise à jour des données à l’intérieur du cache : on veut alors modifier une valeur pour une clé existant dans la Map.

Lire la suite…



JAVA 8 – Map – ComputeIfAbsent pour la gestion des caches

Nous allons dans cet article découvrir une nouveauté de JAVA 8 bien pratique pour l’interface Map : la méthode computeIfAbsent. Utilisation des maps Un exemple courant d’utilisation des maps est la création de caches applicatifs: on utilise généralement une HashMap dans laquelle on enregistre les éléments que l’on utilise souvent. Chaque élément est indexé par une clé qui permet de retrouver l’élément désiré. La majorité du temps, le fonctionnement d’un tel cas est le suivant : on cherche si l’objet est présent dans le cache, si oui, on le récupère, sinon on le construit et on le stocke dans la HashMap.

Lire la suite…



JAVA 8 – Parallel Stream – Performance: les types de données

L’utilisation des streams en mode parallèle est très simple d’utilisation. En revanche, il n’est pas forcément évident de savoir si un traitement particulier va bénéficier, ou non, d’une amélioration de performance lors du passage en parallèle. Pour savoir ce qui peut avoir un impact sur les performances, il est nécessaire de comprendre ce qui se passe lorsqu’on lance un traitement en parallèle avec les streams. C’est l’objet de cet article.

Lire la suite…



JAVA 8 – Stream et ParallelStream – Performance sur des String

Etude de la performance de l’utilisation de la nouvelle API JAVA 8 Stream pour le traitement de string (chaîne de caractère) But de l’article Nous allons essayer d’étudier les différences de performances pour réaliser des traitements sur des ensembles ordonnées ou non (list, hahset, treeset) avec l’utilisation des Stream et lambda JAVA 8. Puis nous comparerons l’utilisons classique des streams avec les parallelStream pour voir si la parallélisation permet de gros gain de performance.

Lire la suite…



JAVA 8 – API Stream – Introduction sur des collections

Introduction à l’utilisation des STREAM Java 8 arrive avec une toute nouvelle API Stream qui utilise les Lambda. Cette nouvelle API offre la possibilité de simplifier l’écriture, d’améliorer la performance ainsi d’augmenter la lisibilité d’un certain nombre de code. Nous allons essayer ici de voir comment les utiliser et dans de voir dans quels cas l’utilisation de cette API est utile. Dans un second article, nous nous interresserons aux performances des stream et mode « normal » et en mode « parallel ».

Lire la suite…



WildFly – Configuration email (mail-session)

Depuis WildFly (anciennement JBoss 7), la configuration des sessions d’email a un peu changé. Configuration des sessions de mails sous Jboss 7.x: < subsystem xmlns="urn:jboss:domain:mail:1.0"> < mail-session jndi-name="java:/Mail"> < smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp"> < login name="username" password="password"/> < /smtp-server> <span > < /mail-session></span> <span >< /subsystem></span> Configuration des sessions de mails sous WildFly 8: < subsystem xmlns="urn:jboss:domain:mail:2.0"> < mail-session name="default" jndi-name="java:/Mail"> < smtp-server outbound-socket-binding-ref="mail-smtp" ssl="true" username="username" password="password"/> < /mail-session> < /subsystem>  

Lire la suite…



Projet JEE 7 sans hibernate ni JPA

Dans cet article, nous allons étudier la possibilité de créer un projet JEE 7 classique mais en supprimant la partie JPA / Hibernate. Pourquoi se passer d’Hibernate? JPA / Hibernate vient avec la promesse d’une simplication drastique de l’utilisation des bases de données avec un modèle ORM et une API de criteria sensée faciliter la vie des développeurs ainsi que la maintenance des applications. A l’usage, les choses se révèlent moins magiques que prévues et de nombreux problèmes viennent compliquer l’utilisation de cette technologie.

Lire la suite…



Multithreading et BufferedImage – JAVA – Comparaison d’image

Multithread et bufferedImage Dans cet article nous allons voir comment réaliser une comparaison des pixels de deux BufferedImage en multithread pour accélérer la performance. L’utilisation du multithreading pour le traitement des images apporte une réelle amélioration des performances. L’exemple de la comparaison n’est pas l’exemple le plus percutant mais il permet de se rendre compte de l’amélioration subtentiel que peut amener le multithreading mais aussi sa simplicité de mise en oeuvre depuis JAVA 7.

Lire la suite…



Java EE – Faire une Servlet d&rsquo;upload
Java EE – Faire une Servlet d’upload


Certaines librairies de composants JSF comme Primefaces proposent des solutions faciles à implémenter pour réaliser vos uploads. En revanche, mettre en oeuvre cette opération soi-même peut sembler plus délicat. Mais nous allons voir que, comme souvent en Java, le standard JEE définit déjà tous les outils nécessaires. Tout d’abord, il faut déclarer une Servlet et l’annoter avec @MultipartConfig. Cette annotation va permettre de prendre en charge les formulaires encodés en multipart.

Lire la suite…



Accessibilité des applications web (Handicap) et HTML5

L’objectif de cet article est de faire un point sur les points de vigilance dans le développement d’applications et sites web pour les rendre le plus accessibles possible avec les différents profils de handicap. L’accessibilité dans les applications et sites web est très complexe à mettre en oeuvre. Cet article ne prétend pas faire un état des lieux exhaustif de ce qu’il est nécessaire de faire mais tente modestement de lister quelques points de vigilance à destination des développeurs web.

Lire la suite…