Java Quiz #33

La classe ci-dessous part d'une bonne intention, mais où est le problème ?

  1. /**
  2.  * Garantit que les éventuelles exceptions levées par la méthode dangereuse
  3.  * seront loggées.
  4.  * @param <R> Le type de retour de la méthode
  5.  * @param <E> Le type d'exception levé
  6.  */
  7. public abstract class ExceptionLoggingExecutor<R, E extends Throwable> {
  8.  
  9. private final Logger logger = Logger.getLogger(ExceptionLoggingExecutor.class.getName());
  10.  
  11. public final R execute(Object... args) throws E {
  12. try {
  13. return dangerousOperation(args);
  14. } catch (E e) {
  15. logger.error(e);
  16. throw e;
  17. }
  18. }
  19.  
  20. /** La méthode contenant le code dangereux */
  21. protected abstract R dangerousOperation(Object... args) throws E;
  22. }
Lire la suite...

Les Waves des conférences enfin au format texte !

Suite à une remarque judicieuse d'un lecteur qui se plaignait de ne pouvoir consulter les Waves de conférences faute de compte, j'ai le plaisir de vous annoncer que toutes les Waves ont été retranscrites au format texte dans les billets.

Vous pouvez donc dès à présent lire les compte-rendus suivants :

Bien évidemment, les prochaines conférences seront également retranscrites de la même façon.

Bonne lecture !

Java Quiz #32

Voici un quiz spécial saint-Valentin ! Comme d'habitude, il s'agit de trouver ce qui cloche avec ce code, sans le coller dans un IDE.

Comme le code est un peu plus long que d'habitude, il est exceptionnellement dans le corps du billet.
Bon quiz !

Lire la suite...

Conférence "Les secrets de la programmation concurrente"

Voici le compte-rendu de la conférence organisée par Zenika : "Les secrets de la programmation concurrente", animée par le Champion Java Heinz Kabutz.

Vous pouvez suivre la wave sur ce billet, ou directement depuis votre compte Wave à l'adresse suivante :
https://wave.google.com/wave/#restored:wave:googlewave.com!w%252Bgjndw-7qA

Note : pour les lecteurs ne possédant pas de compte Wave, une retranscription textuelle de la conférence est disponible en bas de ce billet.

Lire la suite...

Suivez le Paris JUG anniversaire en live !

Le prochain Paris JUG, qui célèbre son deuxième anniversaire, s'annonce "epic".
Malheureusement, tout le monde ne pourra pas y assister, car les places sont limitées, et certains d'entre vous habitent ces contrées mystérieuses et exotiques qui, paraît-il, existent au-delà du Périphérique.

Heureusement, votre reporter favori a pensé à tout : afin que vous puissiez suivre l'événement en temps réel et même poser des questions aux intervenants, je décrirai le déroulement de la soirée et des conférences dans la Google Wave intégrée ci-dessous !

L'expérience s'est avérée positive pour le dernier JUG (soirée Performances avec Kirk Pepperdine), même si elle était restée relativement confidentielle sur le moment. Je vous encourage d'ailleurs à aller lire cette Wave et à me faire des remarques en termes de format et de contenu, afin que la prochaine réponde au mieux à vos attentes.

Je compte sur vous pour vous connecter mardi 09 février à partir de 19h15 sur cette Wave (sur ce billet, ou depuis votre compte Wave en ligne) et mettre le feu à ce Paris JUG anniversaire et interactif !

Note : pour les lecteurs ne possédant pas de compte Wave, une retranscription textuelle de la conférence est disponible en bas de ce billet.

Lire la suite...

Conférence Clojure chez Zenika : le compte-rendu

Je rentre à l'instant de la conférence Clojure organisée par Zenika, et présentée par Howard Lewis Ship, l'inventeur du framework web par composant Tapestry. Voici la Wave que j'ai alimentée tout au cours de la conférence.

A ce propos, je suis désolé de ne pas l'avoir annoncée plus tôt (ici ou sur Twitter), mais je n'étais pas sûr de capter un point d'accès wifi... Vous n'avez donc pas été très nombreux à suivre l'événement en temps réel ; mais sachez que je compte désormais renouveler l'expérience à chaque conférence à laquelle je participerai (si les moyens techniques le permettent), à commencer par la soirée anniversaire du Paris Jug demain soir. Restez à l'écoute !

Note : pour les lecteurs ne possédant pas de compte Wave, une retranscription textuelle est disponible en bas de ce billet.

Lire la suite...

Terracotta, ou le clustering de session pour les nuls

Dans un récent article intitulé "Terracotta, un an après", je vous décrivais la volonté de Terracotta de simplifier la mise en oeuvre du framework sur ses principaux cas d'utilisation : clustering de sessions HTTP, clustering de cache EHCache ou Hibernate, intégration avec Spring et Quartz...
Peu à peu apparaissent donc des solutions packagées et pré-configurées, reconnaissables à leur suffixe "Express".

Si vous suivez ce blog, vous savez déjà clusteriser des sessions HTTP avec Terracotta et TCServer, en configurant manuellement la plateforme ; aujourd'hui, je vous parlerai du module "HTTP Session Clustering Express", introduit avec Terracotta 3.2.1-beta, qui simplifie nettement le processus.

Lire la suite...