Qui n’a jamais mis des "alert" un peu partout dans son code javascript pour essayer de voir ce qu’il se passe et résoudre les tonnes d’erreurs qu’on arrive à introduire en si peu de lignes… Allez, je parie que tout le monde au moins une fois.

Je viens de tomber sur une alternative à ces alerts beaucoup plus puissante sous le nom de "Blackbird". C’est un projet opensource qui se trouve à l’adresse suivante : http://www.gscottolson.com/blackbirdjs/ et qui est super simple à mettre en place.

Voici à quoi ca ressemble :

imagebrowser image

 

Cette petite popup se place sur la page en cours et permet d’afficher les messages qu’on a simplement rajouté via "log.debug()", "log.info()","log.warn()" ou "log.error()".

Autre fonctionnalité sympa, la possibilité de profiler le temps d’execution d’un bloc javascript. Il suffit d’encadrer le bloc en question avec "log.profile()" et le tour est joué.

 Si la JSR 286 a ouvert la voie à l’introduction des mécanismes AJAX au sein des portlets via les ResourceURL, il existe finalement assez peu d’exemples disponibles à ce sujet sur le Web.

Cela s’explique essentiellement par la facilité de mise en oeuvre de cette solution. Preuve en est, ce petit exemple, vraiment pas bien méchant, qui mets à jour une date, après un appel serveur. Bien entendu, il est interdit de recharger entièrement la page du portail. Le développement est effectué à partir du template de portlet fournit par le Liferay Plugin SDK 5.2.2.

On commence par la partie la plus facile, l’implémentation de GenericPortlet :

 
@Override
public void serveResource(ResourceRequest request, ResourceResponse response)
   throws PortletException, IOException {
   Date date = new Date();
   request.setAttribute("now", date);

   include(viewJSP, request, response);
}

@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
   throws IOException, PortletException {

   renderRequest.setAttribute("now", "No yet set");
   include(viewJSP, renderRequest, renderResponse);
}

L’implémentation reste donc simplifiée à l’extrême :

Voici un outil qui va vous aider dans la compréhension d’un code et plus particulièrement du comportement dynamique de ce code.

Imaginez une nouvelle application dont vous êtes le nouveau responsable et qui n’est pas ou peu documentée (imaginez très fort 😉 ).

Cela peut être aussi une librairie externe dont vous voulez comprendre le fonctionnement ou mieux tracer l’exécution d’un bug.

Le constat est alors le suivant :

  • Il est relativement simple d’avoir une analyse statique du code (pour peu que l’on dispose du code source ou d’un bon décompilateur) et donc d’avoir un diagramme de classe d’une application.
  • Quid de l’analyse dynamique (diagramme de séquence) ?

Bien sûr on peut toujours lire le code et encore mieux l’executer en mode débug mais c’est extremement chronophage.

L’outil que je vous présente (jtracert http://code.google.com/p/jtracert/ ) va vous permettre de générer un diagramme de séquence à partir de l’exécution d’une application java SE ou EE.

S’il existait déjà quelques outils permettant de générer un diagramme de séquence à partir du code (Netbean UML permet de le faire mais uniquement pour une opération), il manquait l’outil capable de générer un diagramme de séquence (en respectant la notation UML) à partir de l’exécution d’un code.

L’outil est simple d’utilisation, il suffit de rajouter quelques paramètres à la JVM au lancement du serveur d’application

Par ex sous Tomcat, ajouter simplement la ligne suivante au fichier catalina.bat :

Ippon Technologies organise une session de formation "Développement Mule ESB" du 1er au 3 avril 2009 à Boulogne Billancourt.

Pour la première fois ce cours sera réalisé en francais sur support de cours en francais.

Il couvrira toutes les problématiques courantes : développement de services, routages, transformations, intégration Spring, sécurité, performances,….avec de nombreux TPs.

Pour plus d’informations : programme complet

Jérémie BALLAIS
Tel : 01 46 12 48 48
Mail : jballais@ippon.fr