Partager une instance de singleton avec plusieurs applications web

Sans revenir sur les détails du modèle de conception appelé singleton, ce dernier permet de n'avoir qu'une seule instance de classe. Parfois, dans un contexte d'application d'entreprise possédant plusieurs applications web, il est nécessaire d'avoir une seule instance de classe pour l'ensemble de ces applications. Or cela n'est pas toujours aussi trivial. En effet, selon la stratégie de gestion des classloaders employée par les serveurs d'applications, les applications web au sein de la même application d'entreprise peuvent avoir un classloader…
Lire d'avantage

Google Web Toolkit – Ajax selon Google

Dans la bataille des géants du web, chacun essaie de promouvoir son framework Ajax. La société Google ne cesse de distribuer des applications de type clients riches. Leurs interfaces sont réalisées en Ajax. Et en connaissant les difficultés pour développer en Javascript, on est en droit de se demander quel est leur secret ? Surtout au regard de la qualité exceptionnelle des interfaces web réalisées telles que Google Mail ou Google Reader. La réponse à cette question a été donnée…
Lire d'avantage

Des attributs dynamiques dans les TagLibs

Comment procéder pour créer ses propres TagLibs acceptant des attributs dynamiques ? C'est à cette question que cet article tente de répondre par un simple exemple. Les TagLibs permettent aux développeurs de pages JSP d'implémenter leurs propres tags JSP qui exécutent du code Java plus ou moins complexe. Pour rendre ce code paramétrable, il est possible d'utiliser les attributs du tag. Exemple simple Voici un exemple d'implémentation de taglib avec la classe com/company/ : package ; import ; import ; import…
Lire d'avantage

Modèle d’anti-conception pour la gestion des exceptions

Les exceptions sont très utilisées. Pourtant, il n'est pas toujours évident de savoir comment les gérer correctement. Tim McCune a écrit un article intitulé Exception-Handling Antipatterns où il présente les modèles d'anti-conception sur le traitement des exceptions. Cet article donne les réponses aux questions : Faut-il créer ses propres exceptions ? Quand faut-il lever une exception ? Quand capturer une exception ? ... De son étude, on peut retenir qu'il existe deux types d'exception à créer soi-même : Quand un problème survient : elle est propre…
Lire d'avantage

Parcourir un objet Map

Plusieurs solutions existent pour parcourir une interface Map. Mais sont-elles toujours optimales ? En Java, l'interface Map permet de définir une liste d'association entre clés et valeurs. Ainsi à partir d'une clé, il est possible de retrouver la valeur correspondante. Une bonne démarche pour parcourir un objet implémentant l'interface Map, est d'utiliser les itérateurs définis par l'interface Iterator. L'interface Map propose trois méthodes qui retournent une Collection à partir de laquelle il est possible d'accéder à un itérateur : public Set entrySet();…
Lire d'avantage

String.equals() ou String.compareTo()

Plusieurs syntaxes existent pour comparer des objets String. Mais lequel faut-il utiliser ? Tout d'abord, mettons de côté l'opérateur == qui compare si les références des deux objets pour vérifier s'ils correspondent à la même instance. La méthode () vérifie l'égalité de deux chaînes de caractères. Alors que la méthode () calcule la différence entre deux chaînes de caractères. Il faut savoir que les deux test suivants sont équivalents : String str = "ma chaine";if ( ("mot magic")) {/*...*/} String str…
Lire d'avantage

Un perroquet en Java pour Pocket PC

Non, ce n'est pas le dernier animal virtuel japonais ! Bien que cette petite île ne soit pas étrangère à cette annonce. Depuis la version de MySaifu JVM, il est possible d'exploiter les capacités d'enregistrement et de lecture audio en Java sur la plate-forme Pocket PC. En m'inspirant du code source d'exemple fourni par l'auteur japonais, j'ai écrit Parrot. Ce programme, piloté avec une interface graphique en AWT permet d'enregistrer une séquence sonore comme avec un dictaphone puis de rejouer cette…
Lire d'avantage

Eclipse – génération des méthodes toString()

L'écriture des méthodes toString() est une tâche répétitive et peu gratifiante. Pourtant cette méthode est très pratique pour les traces applicatives. C'est pourquoi, il est recommandé de l'automatiser. Dans sa version sans extension, Eclipse ne permet pas de générer les méthodes toString() des JavaBeans. Heureusement, il existe de nombreux plugins qui permettent de le faire. Six projets sont présentés ci-dessous : ToString Generator génère les méthodes toString() JavaBean par JavaBean. Il est possible de choisir le séparateur et champ et si…
Lire d'avantage

JUnit – modèle d’anti-conception

De plus en plus présent. Mais cet outil est-il utilisé correctement ? JUnit est un framework de tests unitaires. Son utilité n'est plus à prouver. Beaucoup de personnes l'utilisent, mais pas toujours de la bonne façon. Ady nous fait découvrir deux articles sur les exemples à ne pas suivre lors de l'implémentation de tests unitaires. L'article de Joe Schmetzer intitulé JUnit Anti-pattern est très bien écrit et met en évidence les pièges à éviter. Selon l'auteur, il faut éviter d'écrire des…
Lire d'avantage

Java – documenter le code privé

Faut-il ou non documenter le code source privé en Java ? Cédric Beust s'interroge sur l'intérêt de documenter le code Java dont l'accès est privé. Car dans la majorité des cas, JavaDoc ignore ces commentaires. C. Beust documente ces champs ou ces méthodes qui ont un accès privé en autre parce qu'un IDE tel que Eclipse affiche une info-bulle avec le commentaire associé même si l'élément est privé. Même si les personnes qui utilisent une API n'ont besoin de connaître que…
Lire d'avantage