Eclipse TPTP

Le plugin TPTP (Test & Performance Tools Platform Project) d’Eclipse permet de faire du monitoring, de tester et de mesurer les performances de ses applications. Voici un article explicatif : article

Installation :

Le plugin est installé d’office dans Eclipse Europa. Sinon voici l’url de son update Site : http://eclipse.org/tptp/updates/site.xml

Utilisation :

Pour profiler son application, on clique sur le bouton suivant :tptp1

A partir duquel on peut faire ‘open run dialog’

tptp2

Mettons que l’on veuille tester un programme java :

tptp3

On indique la classe ‘main’ à exécuter puis les éléments à ‘profiler’ dans l’onglet monitor :

tptp4

Puis on lance l’analyse en cliquant sur ‘Profile’

La perspective ‘Profiling and Logging perspective’ s’ouvre. Une fois l’execution terminée, on peut faire un clic-droit sur le type du profile effectué (Execution Time Analysis par exemple) pour demander l’affichage du résultat sous différentes formes : graphique, statistiques, diagramme de séquence, etc.

tptp5

pour obtenir par exemple un diagramme de séquence ou les statistiques

RedHat Developer Studio

Red Hat a annonçait d’ici la fin 2007 la commercialisation de Red Hat Developer Studio, un environnement de développement Open Source intégrant des outils basés sur Eclipse et les solutions JBoss et Red Hat Enterprise. Il est le résultat du partenariat de Red Hat et d’Exadel annoncé en mars 2007.

Si la version finale ne sortira qu’a la fin de l’année, les versions ‘nightly builds’ sont d’ors et déjà accessibles ici:

http://download.jboss.org/jbosstools/builds/nightly/

 

Installation :

-Télécharger une des versions : ‘JBossTools-version-nightly-ALL-win32.zip’ depuis le lien ci-dessus. Attention à télécharger la version la plus récente contenant TOUS les plugins. A l’heure actuelle il s’agit de la version 200707210217 disponible ici :

http://download.jboss.org/jbosstools/builds/nightly/200707210217-nightly/

-Dézipper l’archive et copier, comme d’habitude, les fichiers dans les répertoires features et plugins d’eclipse.

-Démarrer votre Eclipse. Vous devriez avoir une suite d’écran vous remerciant d’utiliser RedHatDevelopperStudio et vous invitant à configurer votre server Jboss. Cette dernière étape peut évidemment être sautée si vous n’avez aucun serveur de ce type à configurer dans Eclipse.

 

Voila, RedHatDevelopperStudio est installé. Nous allons maintenant voir comment utiliser le ‘Red Hat HTML Editor’ pour développer nos facelets (ou jsp) avec une interface visuelle.

 

-Il suffit pour cela d’ouvrir un fichier .xhtml avec le ‘Red Hat HTML Editor’. Maintenant que le plugin est installé cela doit se faire automatiquement. Vous obtenez votre éditeur. Pour pouvoir travailler avec les templates (tout l’interet des facelets) et les images dans la visualisation, il faut que les chemins soient relatifs ou absolus. On ne peut pas avoir de visualisation avec des liens du type :

${facesContext.externalContext.request.contextPath}/

media/images/home.gif

Il faut par exemple des chemins du type :

../../media/images/home.gif ou ./media/images/home.gif

Vous pouvez, pour cela configurer les chemins en cliquant sur le bouton suivant (à gauche de la visualisation) :

redhatbouton

 

Et en configurant ‘Actuel Run-time Absolute Folder’ et ‘Actuel Run-time Relative Folder’

Voici un exemple :

<img

src=“./media/images/CMonDossierWeb/info.gif” (relatif)

border=“0″ />

<img

src=“../../media/images/CMonDossierWeb/home.gif” (absolue)

border=“0″ />

<img

src=“${facesContext.externalContext.request.contextPath}/media/images/CMonDossierWeb/modify.gif”

border=“0″ />

 

Donne :

redhatView

 

Avec les chemins suivants :

redhatpath

Pour finir sur un exemple, cette visualisation est le résultat de 3 templates imbriqués:

visualisation templates

Remarque : A noter que j’ai testé ce plugin sous la version Europa d’Eclipse.

 

Compatibilité IE – Firefox

Ayant jusqu’ici travaillé quasi exclusivement sur Firefox, j’ai tenté la compatibilité sous IE. J’ai donc bien sur rencontré plusieurs problèmes:

Problèmes :

1- j’ai un formulaire avec un champ inputText. Quand je fais ‘Enter’ sur ce champ sous Firefox cela lance direct l’action de mon bouton au type ’submit’ MAIS sous IE : rien, j’ai l’impression qu’il recharge la page.

<h:inputText id="annee" value ="#{rechercheController.annee}" size='4' 
maxlength='4' onkeyup="javascript:verifAnnee();"/>
<FONT COLOR="RED"><h:outputText id="anneeAlert" value=""/></FONT>
...
<h:commandButton id="validButton" action="#{rechercheController.chercher}"
 type="submit" value="Rechercher" />

...

<script language='javascript'>
function verifAnnee() {
        if(document.getElementById("formRecherche:annee").value=='') {
        document.getElementById("formRecherche:anneeAlert").innerHTML=
                            "Veuillez entrer une année";
        }else{
        document.getElementById("formRecherche:anneeAlert").innerHTML='';
        }
}

</script>

 

2-Je fais du transfert de fichiers pdf générés à la volée. Je passe par une servlet qui met l’objet (Document itext) en session. Sous Firefox, tout se passe bien, il me demande si je veux l’enregistrer ou l’ouvrir: parfait. Sous IE soit (suivant la page de création du pdf : j’ai deux pages qui propose une création de pdf) il me dit ‘le fichier ne peut être ouvert voulez vous l’enregistrer’ soit il l’ouvre direct sous Acrobat reader qui plante.

 

3-Sur une de mes pages qui génère un pdf, au moment du clic sur le lien j’affiche un gif (permettant à l’utilisateur de comprendre qu’il se passe quelque chose), puis je lance l’action de création du fichier. Sous Firefox, bien sur, tout marche. Sous IE, le gif s’affiche mais n’est pas animé; le fait qu’une action soit déclenchée après bloque l’animation. Voici le javascript qui affiche le gif puis qui lance l’action :

 

document.getElementById("waitbar").style.visibility = 'visible';
document.getElementById('formliengeneration:linkpdf').onclick();

 

 

Solutions :

1- J’ajoute le javascript suivant à ma page xhtml:

document.forms['maform'].onkeypress =
new Function("{var keycode;if (window.event) keycode = 
window.event.keyCode;else if (event) keycode = 
event.which;else return true;if (keycode == 13) { 
document.getElementById('maform:validButton').click();
return false; } 
else  return true; 
}");

et ça marche.

Le problème venait du fait que JSF ne gère pas la validation automatique des formulaires par la pression de la touche ENTER. Cela marche avec Firefox, car celui-ci, depuis une mise à jour, s’en charge à la place du code javascript ci-dessous, qui résout le problème.

 

2- Il faut mettre ‘application/force-download’ en ‘type MIME’
et ‘attachment’ en ‘Content-disposition’
du coup; et Firefox et IE demandent ce que l’on veut faire du fichier

 

 

3-En fait, le gif n’est plus animé sous IE, car celui-ci considère qu’après le clic, on a changé de page, donc il arrête l’animation du gif en attendant la réponse.

Aucune solution pour les gif ; j’ai donc remplacé le gif par une animation flash faite avec un petit logiciel libre: e-anim
et voila, le tour est joué