Bonjour tout le monde,
je travaille sur une application qui pilote l'outils hudson.
dans une partie je dois lancer des build des projet a travers une interface.
ce que je veux faire c'est lancer un evenement lors de construction du build a partir d'un boutton.
j'ai fait :
pour modaPanel :
pour le bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <rich:modalPanel id="waitPanel" autosized="true"> <table border="0"> <tr> <td nowrap="nowrap"><h:graphicImage id="giWait" value="#{a4jSkin.nameSkin}/images/time.gif"/></td> <td nowrap="nowrap"><h:outputText id="otWait" value="Construction Of The Build In Progress" style="color:#C24B33; font: 15px; font-weight: bold; "/></td> </tr> </table> </rich:modalPanel>
et voici ma methode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <a4j:commandButton value="build" action="#{ProjectBean.buildhudson}" styleClass="submitButton" reRender="form" image="/images/clock.png" style="button" id ="jobbuild" onclick="#{rich:component('waitPanel')}.show()" oncomplete="#{rich:component('waitPanel')}.hide()" > <rich:toolTip> <span style="white-space: nowrap"><h:outputText value="Build" /></span> </rich:toolTip> </a4j:commandButton>
le problème c'est qu'il m'affiche bien le modelPanel avec le message et le .gif mais ca prend 2 ou 3 seconde comme si l'évènement se fait coté client et non pas coté serveur alors que le build réellement ça prend au minimum 20 seconde dans mon cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void buildhudson() { log.info("begin:buildHudson"); HttpClient client = new HttpClient(); HudsonJasforge hudson = new HudsonJasforge(); try { hudson.launchBuild(client, ConstantHudson.HudsonURL, selectedProject.getShortname()); } catch (Exception ex) { log.error("exception during hudson delete :" + ex); ex.getStackTrace(); } log.info("End:Buildhudson"); }
Merci pour votre aide d'avance.
Partager