<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16301486</id><updated>2011-04-22T00:22:55.450+02:00</updated><category term='mapping O/R'/><category term='SaaS'/><category term='javascript'/><category term='application on demand'/><category term='jpa'/><category term='web 2.0'/><category term='RDA'/><category term='Spring Framework'/><category term='humours'/><category term='pl/sql'/><category term='Hibernate'/><category term='search engine'/><category term='flocking behavior'/><category term='AJAX'/><category term='essaim'/><category term='BPM'/><category term='framework'/><category term='SOA'/><category term='RIA'/><category term='loisirs'/><title type='text'>Moteur de recherche visuelle, classification de données, framework J2EE</title><subtitle type='html'>j'espère faire de ce blog un espace d'échange d'idées, de discutions sur des retours d'expériences. Les sujets peuvent concerner les framework J2EE, les architectures SOA et les webservices, les moteurs de recherches visuelles, la classification  et la visualisation de données, le datamining.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16301486.post-8568103052367540259</id><published>2008-12-10T15:40:00.004+01:00</published><updated>2008-12-10T16:35:33.040+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='RDA'/><title type='text'>TitaniumApp Appcelerator</title><content type='html'>Nouveau concurrent open source d’adobe AIR. Depuis le 09/12/2008 est sorti l’avant première de TitaniumApp, une plateforme open source de développement d’application RIA Rich-Internet-Application pour les Desktop et mobiles.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ça force par rapport à adobe AIR est :&lt;/li&gt;&lt;/ul&gt;&lt;span style="margin-left: 50px;"&gt;o Pas de langage propriétaire, elle permet de développer avec les standards du web : HTML, CSS et Javascript.&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-left: 50px;"&gt;o On peut employer tout Framework Javascript.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La plateforme permet via des lignes de commandes de :&lt;/li&gt;&lt;/ul&gt;&lt;span style="margin-left: 50px;"&gt;o créer les packages d’un projet&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-left: 50px;"&gt;o générer des exécutables pour Windows, Mac et bientôt Linux.&lt;/span&gt;&lt;br /&gt; &lt;ul&gt;&lt;li&gt;Elle permet d’accéder ou sauvegarder des fichiers sur la machine, de travailler en offline,&lt;/li&gt;&lt;li&gt;    Embarque une base de données.&lt;br /&gt; &lt;/li&gt;&lt;/ul&gt;Lien :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    http://titaniumapp.com/&lt;br /&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8568103052367540259?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8568103052367540259/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8568103052367540259' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8568103052367540259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8568103052367540259'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/12/titaniumapp-appcelerator.html' title='TitaniumApp Appcelerator'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-4939548195344151594</id><published>2008-08-07T08:17:00.003+02:00</published><updated>2008-08-07T16:22:56.880+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Some best practices around SOA, ESB</title><content type='html'>La conception d'architecture logiciel au sens SOA nécessite la vision "Service réutilisable" avant tout. Le concepteur orienté objet peut se trouvé face à des composant pas forcément réutilisable au sens SOA du terme. Il faut surtout comprendre que la conception SOA est par nature stateless  par contre la conception orienté objet est stateful.&lt;br /&gt;&lt;br /&gt;Un article précisément autour de la question se trouve au :&lt;br /&gt;&lt;a href="http://architects.dzone.com/articles/service-orientation-vs-object-"&gt;http://architects.dzone.com/articles/service-orientation-vs-object-&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La conception objet avec le temps à donné naissance aux fameux Designs Patterns des "gang of four", de la même façon la SOA et les ESB des Patterns sont recensés. Je recommande de lire :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://architects.dzone.com/articles/pattern-based-development-with"&gt;http://architects.dzone.com/articles/pattern-based-development-with&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.enterpriseintegrationpatterns.com/"&gt;http://www.enterpriseintegrationpatterns.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Enfin une analyses autours des causes d'échec des projets de mise en œuvre de la SOA :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://forumsoa.lemondeinformatique.fr/index.php?centre=article-actu&amp;amp;id=26608"&gt;http://forumsoa.lemondeinformatique.fr/index.php?centre=article-actu&amp;amp;id=26608&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-4939548195344151594?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/4939548195344151594/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=4939548195344151594' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4939548195344151594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4939548195344151594'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/08/some-best-practices-around-soa-esb.html' title='Some best practices around SOA, ESB'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5996554375893107502</id><published>2008-08-06T15:15:00.013+02:00</published><updated>2008-08-08T10:34:06.150+02:00</updated><title type='text'>Appcelerator plateforme RIA+SOA basée sur le RIA Message Broker</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Appcelerator est un framework et une plateforme d'intégration d'application Web 2.0/RIA + SOA. Ouvert à tous les langages Web :  jsp, php, .NET, html, ruby, etc...&lt;br /&gt;&lt;br /&gt;Le Framework comporte une extension du format HTML appelé "Web Expression Language", "Langage d'Expression Web". C'est des attributs ajouter aux balise HTML qui permettent d'apporter la touche RIA au page WEB sans coder du javascript.&lt;br /&gt;Il conprend aussi une bibilothèque de composants Widgets mais s'intègre aussi avec les framework Web 2.0 existant tel que Yahoo ou ExtJs.&lt;br /&gt;&lt;br /&gt;Pour la SOA il se base sur un composant appeler "RIA Message Broker" dont voici les schémas:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://doc.appcelerator.org/overview/messaging_local.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://doc.appcelerator.org/overview/messaging_local.png" alt="" border="0" /&gt;&lt;/a&gt;http://doc.appcelerator.org/overview/messaging_local.png&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://doc.appcelerator.org/overview/messaging_remote.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://doc.appcelerator.org/overview/messaging_remote.png" alt="" border="0" /&gt;&lt;/a&gt;http://doc.appcelerator.org/overview/messaging_remote.png&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mes critiques à sont égare sont:&lt;br /&gt;- Il impose une syntaxe HTML nouvelle à apprendre"Web Expression Language" .&lt;br /&gt;- Il se défini comme un client/serveur model like, mais à mon sens bien qu'il s'intègre aux architectures SOA, il ne s'intègre pas aux architectures EDA Event-Driven-Architectures.&lt;br /&gt;- Je ne vois pas d'apport supplémentaire par rapport à AjaxDWR à par son intégration avec les autres langages WEB.&lt;br /&gt;&lt;br /&gt;Mais je pense qui mérite d'être suivi de près. Appcelerator est open source, il offre le necessaire pour développer des applications RIA  s'intégrant dans les plateformes SOA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Liens :&lt;/span&gt;&lt;br /&gt;Présentation : &lt;a href="http://www.appcelerator.org/screencast_view?id=2&amp;amp;flash=true"&gt;http://www.appcelerator.org/screencast_view?id=2&amp;amp;flash=true&lt;/a&gt;&lt;br /&gt;Démonstration : &lt;a href="http://try.appcelerator.org/"&gt;http://try.appcelerator.org/&lt;/a&gt;&lt;br /&gt;Documentation : &lt;a href="http://doc.appcelerator.org/overview/index.html"&gt;http://doc.appcelerator.org/overview/index.html&lt;/a&gt;&lt;br /&gt;Livre Manning "Appcelerator in Action" chapitre gratuit : &lt;a href="http://www.manning.com/whinnery/whinnery_meapch1.pdf"&gt;http://www.manning.com/whinnery/whinnery_meapch1.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5996554375893107502?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5996554375893107502/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5996554375893107502' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5996554375893107502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5996554375893107502'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/08/appcelerator-plateforme-riasoa-base-sur.html' title='Appcelerator plateforme RIA+SOA basée sur le RIA Message Broker'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-7445844680641814792</id><published>2008-08-04T21:14:00.023+02:00</published><updated>2008-08-06T15:53:10.934+02:00</updated><title type='text'>workflow la gestion électronique des processus métier</title><content type='html'>Le workflow est la gestion électronique des processus métier. C’est un ensemble de taches séquencées, impliquant différents acteurs. Chaque acteur a un rôle et des droits bien spécifiés.&lt;br /&gt;&lt;br /&gt;Comme champs d’application on peut évoquer entre autres le sujet en vogue, « la dématérialisation des documents ».&lt;br /&gt;Les workflows dit statiques ont montrés leurs faiblesses/rigidités depuis longtemps. Plusieurs solution palliatifs ont immergés, mais leurs adoptions a été toujours un choix imposé et non souhaiter. Souvent c'est par crainte de ce retrouver en face d'un procède totalement propriétaire sans avenir.&lt;br /&gt;&lt;br /&gt;C'est pour cette raison qu'a été constitué un groupe de rédaction d'un standard des Workflows appeler WFMC (The &lt;span style="font-weight: bold;"&gt;W&lt;/span&gt;ork&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;low &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;anagement &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;oalition), http://www.wfmc.org . Il comprend la plupart des acteurs du marché des WorkFlow. Aujourd'hui plus de 70 éditeurs indépendant applique ce standard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.wfmc.org/graphics/processmodel_large.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.wfmc.org/graphics/processmodel_large.gif" alt="" border="0" /&gt;&lt;/a&gt;http://www.wfmc.org/graphics/processmodel_large.gif&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Le standard a permis de fournir, Le model XPDL de définition du workflow, l’interfaçage avec les applications clientes du workflow, avec des applications appelées par le workflow, avec d’autres systèmes de gestion de workflow, et aussi l’administration et le suivi des instances du workflow.&lt;br /&gt;&lt;br /&gt;Dans de meilleurs conditions, le moteur de workflow doit faire partie du système d'information de l'entreprise en tant que brique indépendante. Il permetra de définir et de modéliser graphiquement les workflows, les modifier dynamiquement et de pouvoir les intégrer avec le système d'information existant. Le moteur de Workflow, permet l’exécution de plusieurs définitions de processus de workflow. Le moteur prend en entrée une ou plusieurs descriptions de type XPDL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Liste de moteurs de Workflow open source matures :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;1) JBPM de JBoss,&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jboss.com/fr/products/jbpm"&gt;http://www.jboss.com/fr/products/jbpm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Démonstration video &lt;a href="http://docs.jboss.com/jbpm/v3/demos/movies/jbpm-overview.htm"&gt;http://docs.jboss.com/jbpm/v3/demos/movies/jbpm-overview.htm&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;2) OSWorkFlow d'opensymphony,&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.opensymphony.com/osworkflow/"&gt;http://www.opensymphony.com/osworkflow/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;3) BONITA&lt;/span&gt; Version 3 et la Version 4 c’est la « &lt;span style="font-weight: bold; font-style: italic;"&gt;NOVA Bonita&lt;/span&gt; », la v4 mettra en oeuvre la technologie innovante de 'Process Virtual Machine' développée en commun par OW2, Jboss et Bull.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.novaforge.org/novaforge/fr-selectionner/bmp/bonita"&gt;http://www.novaforge.org/novaforge/fr-selectionner/bmp/bonita&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.bonita.objectweb.org/xwiki/bin/view/Main/WebHome"&gt;http://wiki.bonita.objectweb.org/xwiki/bin/view/Main/WebHome&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.bonita.objectweb.org/xwiki/bin/view/Main/FAQPVM"&gt;http://wiki.bonita.objectweb.org/xwiki/bin/view/Main/FAQPVM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Démonstration video &lt;a href="http://www.bpmcorner.org/revolutionary-web-20-bpm-console-preview.html"&gt;http://www.bpmcorner.org/revolutionary-web-20-bpm-console-preview.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Signature numérique :&lt;/span&gt;&lt;br /&gt;Quand on parle de WorkFlow on ne doit pas oublié d’évoquer le mécanisme de signature numérique. Identifié la personne qui a établie/signé le document et l’assurance qu’il n’a pas était falsifié entre temps. Ce mécanisme nécessite l’utilisation d’algorithmes de cryptographie.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;lien vers un tutoriel sur la signature électronique:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://securite.univ-rennes1.fr/igc/formation/Menu3Modules.html"&gt;http://securite.univ-rennes1.fr/igc/formation/Menu3Modules.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-7445844680641814792?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/7445844680641814792/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=7445844680641814792' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/7445844680641814792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/7445844680641814792'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/08/framework-de-workflow.html' title='workflow la gestion électronique des processus métier'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-4196628137327181804</id><published>2008-08-03T17:08:00.003+02:00</published><updated>2008-08-07T19:41:30.268+02:00</updated><title type='text'>Site 3D métaphore de la maison</title><content type='html'>Très beau site 3D de la chanteuse Annie Lennox http://www.annielennox.com/&lt;br /&gt;&lt;br /&gt;Surtout futuriste l’idée d’utiliser la métaphore de la maison pour un site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_uJMKx9JuMiE/SJWwNj_6dDI/AAAAAAAAAB4/VlkC7LtZWtk/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5230280289308800050" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://bp3.blogger.com/_uJMKx9JuMiE/SJWwNj_6dDI/AAAAAAAAAB4/VlkC7LtZWtk/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_uJMKx9JuMiE/SJWwc8RM9PI/AAAAAAAAACA/xVuKabKFstk/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5230280553521804530" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://bp2.blogger.com/_uJMKx9JuMiE/SJWwc8RM9PI/AAAAAAAAACA/xVuKabKFstk/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_uJMKx9JuMiE/SJWwoCMFilI/AAAAAAAAACI/NwK-qbrEwKc/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5230280744089520722" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://bp0.blogger.com/_uJMKx9JuMiE/SJWwoCMFilI/AAAAAAAAACI/NwK-qbrEwKc/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_uJMKx9JuMiE/SJWw7RqQHBI/AAAAAAAAACQ/-BfC8mp4uU4/s1600-h/clip_image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5230281074660088850" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://bp0.blogger.com/_uJMKx9JuMiE/SJWw7RqQHBI/AAAAAAAAACQ/-BfC8mp4uU4/s320/clip_image002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Chanteuse engagé dans la lutte contre la pauvreté.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ici Annie Lennox At The International Aids Conference 2008. &lt;a href="http://uk.youtube.com/watch?v=1bcarSeXufg"&gt;http://uk.youtube.com/watch?v=1bcarSeXufg&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.annielennoxsing.com/sing.php"&gt;http://www.annielennoxsing.com/sing.php&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Elle chante de belles chansons elle constitue le groupe Eurythmics en duo avec Dave Stewart.&lt;br /&gt;Je vous laisse dans la détente avec la chanson "I Saved The World Today" :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/swf/l.swf?video_id=wa_lkpBVkXU"&gt;http://www.youtube.com/swf/l.swf?video_id=wa_lkpBVkXU&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/swf/l.swf?video_id=wa_lkpBVkXU"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/swf/l.swf?video_id=wa_lkpBVkXU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-4196628137327181804?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/4196628137327181804/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=4196628137327181804' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4196628137327181804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4196628137327181804'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/06/site-3d-mtaphore-de-la-maison.html' title='Site 3D métaphore de la maison'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_uJMKx9JuMiE/SJWwNj_6dDI/AAAAAAAAAB4/VlkC7LtZWtk/s72-c/clip_image002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-6369976366902250733</id><published>2008-08-03T14:28:00.008+02:00</published><updated>2008-08-04T21:14:00.361+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='application on demand'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><title type='text'>L'idée du bureau virtuel sur le net se concrétise</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://oos.cc/login.html" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_uJMKx9JuMiE/SJWmxvw2crI/AAAAAAAAABo/KveILN7-m3Y/s320/clip_image002.jpg" alt="" id="BLOGGER_PHOTO_ID_5230269915825861298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="centreservicetexte"&gt;L’idée d’avoir un bureau virtuel sur le net se concrétise. Il y’a quelques temps il était plus difficile de la faire imaginer aux utilisateurs. Les quelques implémentations disponibles offre maintenant la possibilité de faire des démonstrations et de manipuler quelques fonctionnalités. Limitées bien sure mais sa donne une idée.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://fmokaddem.oos.cc/album/detail?id=312312" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_uJMKx9JuMiE/SJWm-gTeipI/AAAAAAAAABw/Y1PI5FfSybo/s320/clip_image001" alt="" id="BLOGGER_PHOTO_ID_5230270135014427282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span class="centreservicetexte"&gt;Il faut voir surtout les gains financiers pour la partie déploiement, sur les migrations d’OS et surtout sur les mises à jour des softwares. Avec en plus de cela le confort aux utilisateurs puisqu’ils auront leurs bureau à disposition quelques soit l’endroit de connexion. &lt;span style=""&gt; &lt;/span&gt;Il suffit d’une connexion internet et s’est partie. Plus besoin d’installer un logiciel d’accès à distance tel que pcAnywhere ou autres, &lt;span style=""&gt; &lt;/span&gt;ni que la machine soit allumé ni problèmes de firewall.  &lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span class="centreservicetexte"&gt;Voir :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="centreservicetexte"&gt;&lt;a href="http://www.oos.cc/"&gt;www.oos.cc&lt;/a&gt; : offre gratuite, &lt;span style=""&gt; &lt;/span&gt;1 Go d’espace de stockage, mail, site perso, et album de photos paramétrable tout prêt, PdfViewer, des jeux tel que « Super Mario Bros », &lt;span style=""&gt; &lt;/span&gt;un navigateur web. Je vous laisse découvrir.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="centreservicetexte"&gt;Exemple : Mon album sur oos,&lt;span style=""&gt;  &lt;/span&gt;&lt;a href="http://fmokaddem.oos.cc/album/overview?id=297677"&gt;http://fmokaddem.oos.cc/album/overview?id=297677&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-6369976366902250733?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/6369976366902250733/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=6369976366902250733' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6369976366902250733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6369976366902250733'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/08/lide-du-bureau-virtuel-sur-le-net-se.html' title='L&apos;idée du bureau virtuel sur le net se concrétise'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_uJMKx9JuMiE/SJWmxvw2crI/AAAAAAAAABo/KveILN7-m3Y/s72-c/clip_image002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3925381613616551709</id><published>2008-07-13T22:31:00.004+02:00</published><updated>2008-08-06T17:54:51.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='loisirs'/><category scheme='http://www.blogger.com/atom/ns#' term='humours'/><title type='text'>Un peux d'humour d'informaticiens The IT CROWD</title><content type='html'>En ce weekend du 14  juillet, je me suis consacré à créer un post sur ma série préféré du moment, "The IT CROWD", je la trouve vraiment sympa, il était temps que l'industrie des série pense à des personnages informaticiens. A ma connaissance, jusqu'à présent il n'y avait que des séries sur les médecins, détectives et autres,  là ! c'est le top, avec beaucoup d'humour. Il faut être informaticien pour comprendre et rire que ce soit un homme ou une femme c'est idem même effet.&lt;br /&gt;Un fan a même créer un vrai faux site internet de la société fictif "REYNHOLM Industries", je me suis connecté à l'intranet et je me suis créer mon badge et  : )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_uJMKx9JuMiE/SJnAtnzyLHI/AAAAAAAAACw/vLGWfo4qepw/s1600-h/reynholm_card_with_photo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_uJMKx9JuMiE/SJnAtnzyLHI/AAAAAAAAACw/vLGWfo4qepw/s400/reynholm_card_with_photo.png" alt="" id="BLOGGER_PHOTO_ID_5231424332180368498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La saison 1 et 2 sont mortelles, a quand les saisons suivantes ?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Liens:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Site Web de "REYNHOLM Industries" créer par un  fan : &lt;a href="http://www.reynholm.co.uk/"&gt;http://www.reynholm.co.uk/ &lt;/a&gt;&lt;/li&gt;&lt;li&gt;Intranet : http://www.reynholm.co.uk/intranet/&lt;/li&gt;&lt;li&gt;Site Web bidon sur les problèmes de femmes : http://www.ladyproblems.org.uk/&lt;/li&gt;&lt;li&gt;HelpDesk System, pour ceux qui connaisse la série :  http://www.reynholm.co.uk/helpdesk.php&lt;/li&gt;&lt;li&gt;http://fr.wikipedia.org/wiki/The_IT_Crowd&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3925381613616551709?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3925381613616551709/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3925381613616551709' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3925381613616551709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3925381613616551709'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/07/un-peux-dhumour-dinformaticiens-it.html' title='Un peux d&apos;humour d&apos;informaticiens The IT CROWD'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uJMKx9JuMiE/SJnAtnzyLHI/AAAAAAAAACw/vLGWfo4qepw/s72-c/reynholm_card_with_photo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8626421150739099151</id><published>2008-06-10T21:08:00.008+02:00</published><updated>2008-08-08T21:18:18.366+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='RDA'/><title type='text'>Interview à propos des RIA (Client Riche), RDA (Client Lourd de nouvelle génération) et architecture SOA.</title><content type='html'>Un interview que j'ai accordé à Alain Clapaud journaliste de "01 Informatique", apparue le 29/05/2008 page 48.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Liens :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.01net.com/editorial/381618/fewzi-mokaddem-expert-technique-java-ee-chez-micropole-univers/"&gt;http://www.01net.com/editorial/381618/fewzi-mokaddem-expert-technique-java-ee-chez-micropole-univers/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.01net.com/article/381612_a.html"&gt;http://www.01net.com/article/381612_a.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8626421150739099151?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8626421150739099151/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8626421150739099151' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8626421150739099151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8626421150739099151'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/06/interview-propos-des-ria-client-riche.html' title='Interview à propos des RIA (Client Riche), RDA (Client Lourd de nouvelle génération) et architecture SOA.'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8088785409617281811</id><published>2008-04-22T22:27:00.007+02:00</published><updated>2008-04-23T13:58:11.481+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>C'est fait ! le rapprochement entre Extjs et Google GWT</title><content type='html'>Extjs séduit de plus en plus, et Google GWT aussi. L’idée de rassembler le meilleur entre les deux pour donner naissance à la librairie "Ext GWT 1.0". C’est vraiment ce qu'il manqué à Extjs. Le développement d’IHM avec java pour GWT et les composants web 2.0 / Javascript d’Extjs.&lt;br /&gt;&lt;br /&gt;En résumé, la librairie "Ext GWT 1.0" nous donne la possibilité de coder en java pure des interfaces web riche (html/Javascript/Ajax/CSS/etc.), basées sur la librairie de composants Extjs. Le bonheur pour les développeurs java "Swing", "Java Web Start".&lt;br /&gt;&lt;br /&gt;D'autres news Ext Js :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La sortie de la version Ext JS 2.1, qui promet de meilleures performances.&lt;/li&gt;&lt;li&gt;Une avant première de la version 3.0.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Liens :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ext GWT: Rich Internet Application Framework for GWT (http://extjs.com/products/gxt/)&lt;/li&gt;&lt;li&gt;http://code.google.com/p/gwt-ext/&lt;/li&gt;&lt;li&gt;http://www.gwt-ext.com/demo/&lt;/li&gt;&lt;li&gt;http://www.gwt-ext.com/demo-maps/&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8088785409617281811?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8088785409617281811/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8088785409617281811' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8088785409617281811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8088785409617281811'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/04/cest-fait-le-rapprochement-entre-extjs.html' title='C&apos;est fait ! le rapprochement entre Extjs et Google GWT'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3395006565185634999</id><published>2008-03-14T16:53:00.009+01:00</published><updated>2008-08-06T14:37:17.572+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Rich Client and Event-driven programming</title><content type='html'>Programmation évènementielle pour le Web on en parle depuis quelques années et c'est déja mi en œuvre à travers quelques Framework. Les précurseurs présentaient surtout des lacunes au niveau des performances, des temps de réponses insatisfaisants. Pour en citer qu'un seule parce que c'est ce que je connaissais, c'est Millstone (&lt;span class="a"&gt;www.&lt;b&gt;millstone&lt;/b&gt;.org&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Un Framework web event-driven nous permet de coder exactement à la programmation de type clients lourds, (du code de type Swing) sauf qu'avec le web, c'est le navigateur qui interprète et non un fichier exécutable et le code renvoyé c'est du html+css+javascript . Le navigateur effectue la communication Ajax avec le serveur via des données aux formats JSON  ou XML.&lt;br /&gt;&lt;br /&gt;Pour éclairer un peux plus : si en programmation Web conventionnelle, le développeur code les actions via des boutons qui font appel à des liens URL vers le serveur (une action ou une autre page tout simplement) en programmation Web évènementielle, il crée un bouton avec un ActionListener (un gestionnaire d'évènements centralisé), celui-ci définit le comportement de mise à jour de l'état de l'interface utilisateur de façon appropriée suite à l'appuis sur ce boutton.&lt;br /&gt;&lt;br /&gt;Autre possibilité offert par ces Framework la possibilité de codé les interfaces en java exactement à la sauce Swing.&lt;br /&gt;Voir ci-dessous :&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Button button = new Button("Button");&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;button.addActionListener(new ActionListener() {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;br /&gt;  public void actionPerformed(ActionEvent e) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;button.setText("Thanks!");&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exemples de Framework :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La version echo3 (Beta), déja avec de meilleurs performance que les précédentes, est disponible sur le site http://echo.nextapp.com&lt;/li&gt;&lt;li&gt;http://jseamless.org&lt;/li&gt;&lt;li&gt;&lt;span class="a"&gt;www.millstone.org  qui a maintenant une version basé sur google GWT.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3395006565185634999?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3395006565185634999/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3395006565185634999' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3395006565185634999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3395006565185634999'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/03/rich-client-and-event-driven.html' title='Rich Client and Event-driven programming'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3094519470954374935</id><published>2008-03-12T17:59:00.012+01:00</published><updated>2008-03-14T11:18:07.213+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Nouvelle Achitecture du site Ebay V4 basé Java - javascript</title><content type='html'>Je présente ici un petit résumé de la présentation faite par par un membre de l'équipe technique d'Ebaysur le site d'IBM.&lt;br /&gt;http://www.ibm.com/developerworks/opensource/library/os-eclipse-ebay1/&lt;br /&gt;&lt;br /&gt;Ebay fait la refonte de son site en s'appuyant sur l'éditeur de code eclipse et bénéficie ainsi de la souplesse de création de plugin.&lt;br /&gt;Principe de l'architecture V4 : du code JavaScript manipulé depuis du code java généré via un plugin eclipse maison.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Aprés un bref rappel historique sur les problèmes de monté de charge rencontré sur les précédente technologies et architectures employés sur les précedente version de leurs site. Il fait la présentation de la version 4 de leurs Framework.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Il insiste sur la complexité du développement avec des technologie Web (javascript + css + coté serveur jsp, java). &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;L'handicape majeur est la non possibilité de compiler tout le code et de réduire ainsi les risques de bug. &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;La solution entrepris est de pouvoir transformer du code javascript en java et vice versa afin d'éliminer une majeur partie des bugs.  &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Encore une fois il met en avant eclipse avec la facilité par lequel ils ont réalisé leurs plugin qui permet de générer du code.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3094519470954374935?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3094519470954374935/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3094519470954374935' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3094519470954374935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3094519470954374935'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/03/nouvelle-achitecture-du-site-ebay-v4.html' title='Nouvelle Achitecture du site Ebay V4 basé Java - javascript'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8266600038783930047</id><published>2008-03-10T15:05:00.010+01:00</published><updated>2008-03-10T16:02:59.818+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Démo Web desktop basé sur Extjs</title><content type='html'>&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;Un mini projet open source mettant en œuvre une application Web desktop, une application de type  bureau windows dans le navigateur web.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;Lien vers la démonstration en live : http://qwikioffice.com/desktop-demo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;Le site du projet: http://qwikioffice.com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;Téléchargement: http://qwikioffice.com/download.php&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;a suivre ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8266600038783930047?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8266600038783930047/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8266600038783930047' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8266600038783930047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8266600038783930047'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/03/dmo-web-desktop-bas-sur-extjs.html' title='Démo Web desktop basé sur Extjs'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8968457706789254876</id><published>2008-02-22T10:43:00.005+01:00</published><updated>2008-02-22T11:00:30.018+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='search engine'/><title type='text'>Du nouveau chez Manning,</title><content type='html'>La prochaine sortie de deux livres :&lt;br /&gt;&lt;br /&gt;1)  Du livre "Hibernate Search in Action". Un livre qui traite de la problématique des moteurs de recherche, les besoins et les difficultés rencontrés. Indexation des informations issues de source et format hétérogènes. Il devrait proposer une étude sur l'outil d'indexation Lucen.&lt;br /&gt;&lt;br /&gt;Sample chapter :&lt;br /&gt;&lt;a href="http://www.manning-source.com/books/bernard/bernard_meapch1.pdf"&gt;http://www.manning-source.com/books/bernard/bernard_meapch1.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2)  Du livre Open source SOA.&lt;br /&gt;En bref il comportera les principes de la SOA, Business Process management and monitoring, deux études de cas. Et enfin une étude sur les Framework Java open source d'actualité:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Appendix A:&lt;/b&gt; Setting up Apache Tuscany    &lt;br /&gt;&lt;b&gt;Appendix B:&lt;/b&gt; Setting up ServiceMix    &lt;br /&gt;&lt;b&gt;Appendix C:&lt;/b&gt; Setting up Apache Synapse    &lt;br /&gt;&lt;b&gt;Appendix D:&lt;/b&gt; Setting up jBoss jBPM and BPEL    &lt;br /&gt;&lt;b&gt;Appendix E:&lt;/b&gt; Setting up Esper    &lt;br /&gt;&lt;b&gt;Appendix F:&lt;/b&gt; Setting up Apache Directory Server    &lt;br /&gt;&lt;b&gt;Appendix G:&lt;/b&gt; Setting up JBoss Drools    &lt;br /&gt;&lt;b&gt;Appendix H:&lt;/b&gt; Setting up a Salesforce.com Developer Account&lt;br /&gt;&lt;br /&gt;Je poserais bien la question a l'auteur: Pourquoi pas avoir parlé du super Framework ESB Mule de Codehaus ?&lt;br /&gt;&lt;br /&gt;Sample chapter :&lt;br /&gt;&lt;a href="http://www.manning-source.com/books/davis/davismeapch01.pdf"&gt;http://www.manning-source.com/books/davis/davismeapch01.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8968457706789254876?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8968457706789254876/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8968457706789254876' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8968457706789254876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8968457706789254876'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/02/du-nouveau-chez-manning.html' title='Du nouveau chez Manning,'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5633206634458898215</id><published>2008-01-25T13:43:00.000+01:00</published><updated>2008-01-25T13:50:04.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>News sur Ext-js</title><content type='html'>&lt;ol&gt;&lt;li&gt;Super une librairie de taglib pour les composants Ext-js :&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.exttld.com/"&gt;http://www.exttld.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;et sur un autre site une interface de développement wysiwyg pour Extjs:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tof2k.com/ext/formbuilder/"&gt;http://tof2k.com/ext/formbuilder/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tof2k.com/ext/formbuilder2/"&gt;http://tof2k.com/ext/formbuilder2/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5633206634458898215?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5633206634458898215/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5633206634458898215' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5633206634458898215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5633206634458898215'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/01/news-sur-ext-js.html' title='News sur Ext-js'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-678395830307298444</id><published>2008-01-15T22:06:00.000+01:00</published><updated>2008-01-25T14:27:36.732+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Résumé BEA Convergence 2008: 1er partie "la plateforme Genesis"</title><content type='html'>&lt;p&gt;BEA tenait aujourd'hui son « Convergence Day » au Cnit de Paris-La Défense, Rendez-vous annuel incontournable de BEA. Beaucoup de sujets concernant la SOA, Web 2.0, des ateliers sur leurs produits et retours d’expériences clients.&lt;/p&gt;  &lt;p&gt;Lors de la séance plénière du matin, Alfred Chuang, le patron de BEA, a présenté les conceptes de la nouvelle plateforme BEA Genesis. Elle permettra de réaliser des applications web2.0-SOA, offrant aux utilisateurs en entreprises des interfaces Web 2.0 composées dynamiquement de widgets, mashups, services web, etc.&lt;/p&gt;  &lt;p&gt;Démonstration en vidéo de ce que doit donner une application basé sur Genesis : un portail Web pour une marque automobile fictive, proposant plusieurs vues selon les utilisateurs (client, vendeur, concessionnaire, designer...), et privilégiant des techniques ainsi que des façons de travailler très Web 2.0 : collaboration via messagerie ou tableau blanc, modification en live de la vue client via l’interface vendeur/designer, glisser-déposer d'éléments applicatifs générant automatiquement des mashups.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Il explique que l'avenir appartient à ce type d'applications nommées « Dynamic business applications », des applications conçues pour être changées, et non pas simplement personnalisées. Il insiste sur un de ses slides que c'est bientôt fini pour les applications packagées. &lt;/p&gt;  &lt;p&gt;Lancement de la première étape de Genesis dès cet été.&lt;br /&gt;&lt;br /&gt;Chaque nouvelle version d'un produit BEA comporterait désormais des spécificités liées à Genesis, &lt;/p&gt;  &lt;p&gt;Nouveau concept les applications en mode Saas (Software as a service, ou application hébergée). &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Capacité de gérer plusieurs      instances pour des clients différents.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;De superviser l'usage du      logiciel pour la facturation.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a suivre...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-678395830307298444?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/678395830307298444/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=678395830307298444' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/678395830307298444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/678395830307298444'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2008/01/rsum-bea-convergence-2008-1er-partie-la.html' title='Résumé BEA Convergence 2008: 1er partie &quot;la plateforme Genesis&quot;'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-4441123774670937705</id><published>2007-10-17T10:08:00.001+02:00</published><updated>2007-10-17T16:32:11.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Free PageRank logo pour votre site</title><content type='html'>&lt;!-- Start Free-PageRank.com --&gt;&lt;script language="JavaScript" type="text/javascript"&gt;_FPR=0;&lt;/script&gt;&lt;script language="JavaScript" type="text/javascript" src="http://www.free-pagerank.com/js/free-pagerank.js"&gt;&lt;/script&gt;&lt;o:p&gt;&lt;/o:p&gt;          &lt;p class="MsoNormal"&gt;pour installer très facile un logo&lt;span style=""&gt; &lt;/span&gt;PageRank sur votre site, il suffit de s’y rendre sur Free-PageRank.com et de saisir votre url pour obtenir votre code javascript.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Free-PageRank.com a été créé pour permettre aux webmasters de facilement connaître et afficher le PageRank de leur site sans utiliser la Google Bar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Par exemple j'ai généré celui de mon blog :&lt;br /&gt;&lt;br /&gt;&lt;script language="JavaScript" type="text/javascript"&gt;if(_FPR==1){freepr("http://eclaviser.blogspot.com/","3");}&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;target="_blank" href="http://www.free-pagerank.com" logo=""&gt;&lt;!-- End Free-PageRank.com --&gt;&lt;/target="_blank"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-4441123774670937705?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/4441123774670937705/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=4441123774670937705' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4441123774670937705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4441123774670937705'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/fpr0-iffpr1freeprhttpeclaviser.html' title='Free PageRank logo pour votre site'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3098847557210874456</id><published>2007-10-16T16:50:00.000+02:00</published><updated>2007-10-17T16:30:37.918+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Ext JS 2.0 beta 1 est disponible en téléchargement</title><content type='html'>- Mise a jour de l'API.&lt;br /&gt;&lt;br /&gt;- Nouvelles versions de démonstration :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Le Web Desktop :&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://extjs.com/deploy/dev/examples/desktop/desktop.html"&gt;http://extjs.com/deploy/dev/examples/desktop/desktop.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://extjs.com/deploy/dev/examples/desktop/desktop.html"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_uJMKx9JuMiE/RxTS_SuzfJI/AAAAAAAAAAg/DAROGrwnUaQ/s320/Nouvelle+image+%282%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5121950661028838546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li value="2"&gt;&lt;b&gt;Le Portail :&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt; &lt;b&gt;&lt;a href="http://extjs.com/deploy/dev/examples/portal/portal.html"&gt;http://extjs.com/deploy/dev/examples/portal/portal.html&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://extjs.com/deploy/dev/examples/portal/portal.html"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://extjs.com/playpen/screenshots/ext2.0/beta1/portal.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3098847557210874456?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3098847557210874456/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3098847557210874456' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3098847557210874456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3098847557210874456'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/extjs-20-alpha-est-disponible-en_16.html' title='Ext JS 2.0 beta 1 est disponible en téléchargement'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_uJMKx9JuMiE/RxTS_SuzfJI/AAAAAAAAAAg/DAROGrwnUaQ/s72-c/Nouvelle+image+%282%29.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8152012120424832595</id><published>2007-10-05T00:22:00.000+02:00</published><updated>2007-11-02T17:24:05.221+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Exemple d'intégration ExtJs dans une jsp avec le framework struts</title><content type='html'>Je présente ici un petit exemple montant comment intégré le framework ExtJs avec le   Framework Struts.&lt;br /&gt;&lt;br /&gt;L'architecture que je souhaite est composé de :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Framwork Spring pour :&lt;/li&gt;&lt;ul&gt;&lt;li&gt;relier les couches présentation, service, DAO soit en 3-tiers ou en n-tiers,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;prendre en charge la translation des exceptions en runtimeException,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;bien gérer les transactions base de donnée&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pouvoir bénéficier de l'AOP (programmation orienté aspect)  pour ajouter des traces log pour mesurer les temps d'appel des transactions base de données.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Framework javascript Ext-Js avec l'adaptateur pour prototype.js et &lt;a href="http://eclaviser.blogspot.com/2007/04/scriptaculos-pour-scriptaculos.html"&gt;script.aculo.us&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;La dernière version 1.x du Framework Struts soit la version 1.38. J'aurais aimé employer plutot le Framework de présentation apache beehive ex Framework de BEA, pour bénéficier du principe de page flow mais il faut passé en java 5 à cause des annotations. je le ferais plus tard.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Framework Hibernate pour la couche de persistance DAO.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Le sujet étant long à traiter je vais devoir le faire en plusieurs messages.&lt;br /&gt;&lt;br /&gt;le fichier edit-grid.js&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ext.onReady(function(){&lt;br /&gt;Ext.QuickTips.init();&lt;br /&gt;function formatBoolean(value){&lt;br /&gt;return value ? 'Yes' : 'No';&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;function formatDate(value){&lt;br /&gt;return value ? value.dateFormat('M d, Y') : '';&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// alias pour réduire les noms de variable&lt;br /&gt;var fm = Ext.form, Ed = Ext.grid.GridEditor;&lt;br /&gt;&lt;br /&gt;var cm = new Ext.grid.ColumnModel([{&lt;br /&gt;  header: "Nom",&lt;br /&gt;  dataIndex: 'nom',&lt;br /&gt;  width: 50,&lt;br /&gt;  editor: new Ed(new fm.TextField({&lt;br /&gt;      allowBlank: false&lt;br /&gt;  }))&lt;br /&gt;},{&lt;br /&gt;  header: "Prenom",&lt;br /&gt;  dataIndex: 'prenom',&lt;br /&gt;  width: 130,&lt;br /&gt;  editor: new Ed(new Ext.form.ComboBox({&lt;br /&gt;      typeAhead: true,&lt;br /&gt;      triggerAction: 'all',&lt;br /&gt;      transform:'light',&lt;br /&gt;      lazyRender:true&lt;br /&gt;   }))&lt;br /&gt;},{&lt;br /&gt;  header: "Date de naissance",&lt;br /&gt;  dataIndex: 'dateNaissance',&lt;br /&gt;  width: 95,&lt;br /&gt;  renderer: formatDate,&lt;br /&gt;  editor: new Ed(new fm.DateField({&lt;br /&gt;       format: 'm/d/y',&lt;br /&gt;       minValue: '01/01/06'&lt;br /&gt;&lt;br /&gt;   }))&lt;br /&gt;},{&lt;br /&gt;  header: "Marié(e)?",&lt;br /&gt;  dataIndex: 'marier',&lt;br /&gt;  width: 55,&lt;br /&gt;  renderer: formatBoolean,&lt;br /&gt;  editor: new Ed(new fm.Checkbox())&lt;br /&gt;},{&lt;br /&gt;  header: "Sexe",&lt;br /&gt;  dataIndex: 'sexe',&lt;br /&gt;  width: 2,&lt;br /&gt;editor: new Ed(new Ext.form.ComboBox({&lt;br /&gt;            typeAhead: true,&lt;br /&gt;            triggerAction: 'all',&lt;br /&gt;            transform:'sexe',&lt;br /&gt;            lazyRender:true&lt;br /&gt;         }))&lt;br /&gt;}]);&lt;br /&gt;&lt;br /&gt;// par défaut les colonnes sont sortable&lt;br /&gt;cm.defaultSortable = true;&lt;br /&gt;&lt;br /&gt;//la définition du fichier XML circulant entre le navigateur et le serveur.&lt;br /&gt;var Personne= Ext.data.Record.create([&lt;br /&gt;  // les "noms" suivant doivent correspondre aux noms de tag Xml à lire,&lt;br /&gt;  {name: 'nom', type: 'string'},&lt;br /&gt;  {name: 'prenom', type: 'string'},&lt;br /&gt;  {name: 'marier', type: 'bool'},&lt;br /&gt;  {name: 'sexe'},&lt;br /&gt;  {name: 'dateNaissance', type: 'date', dateFormat: 'm/d/Y'}&lt;br /&gt;]);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;la clés de communication avec le serveur et d'appeler une action struts et de définir le proxy du  datasource d'extjs:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;// créer la Data Store&lt;br /&gt;var ds = new Ext.data.Store({&lt;br /&gt;// load using HTTP  plants.xml&lt;br /&gt;proxy: new &lt;span style="font-weight: bold;"&gt;Ext.data.HttpProxy({url: '/myApplication/accueil.do?method=getDonneesXml'}&lt;/span&gt;),&lt;br /&gt;&lt;br /&gt;// si la réponse est de type XML, alors définissant le reader en XmlReader&lt;br /&gt;// si c'est du JSON alors utiliser le JsonReader&lt;br /&gt;reader: new Ext.data.XmlReader({&lt;br /&gt;      // les enregistrement doivent avoir un tag XML "personne"&lt;br /&gt;      record: 'personne'&lt;br /&gt;  }, Personne)&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;// création du tableau editable (the editor grid)&lt;br /&gt;var grid = new Ext.grid.EditorGrid('editor-grid', {&lt;br /&gt;ds: ds,&lt;br /&gt;cm: cm,&lt;br /&gt;enableColLock:false&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;var layout = Ext.BorderLayout.create({&lt;br /&gt;center: {&lt;br /&gt;   margins:{left:3,top:3,right:3,bottom:3},&lt;br /&gt;   panels: [new Ext.GridPanel(grid)]&lt;br /&gt;}&lt;br /&gt;}, 'grid-panel');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// construire le tableau&lt;br /&gt;grid.render();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;var gridHead = grid.getView().getHeaderPanel(true);&lt;br /&gt;var tb = new Ext.Toolbar(gridHead, [{&lt;br /&gt;text: 'Adjouter une personne',&lt;br /&gt;handler : function(){&lt;br /&gt;   var p = new Personne({&lt;br /&gt;       nom: 'New personne 1',&lt;br /&gt;       prenom: 'New Prénom',&lt;br /&gt;       dateNaissance: new Date(),&lt;br /&gt;       marier: false,&lt;br /&gt;sexe:'Homme'&lt;br /&gt;   });&lt;br /&gt;   grid.stopEditing();&lt;br /&gt;   ds.insert(0, p);&lt;br /&gt;   grid.startEditing(0, 0);&lt;br /&gt;}&lt;br /&gt;}]);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// charger les données sous le format XML depuis le serveur&lt;br /&gt;ds.load();&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;// l'action struts coté serveur&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;public ActionForward getDonneesXml(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException {&lt;br /&gt;AccueilForm accueilForm = (AccueilForm) form;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// return value&lt;br /&gt;&lt;br /&gt;PrintWriter out = response.getWriter();&lt;br /&gt;//        // return value&lt;br /&gt;response.setHeader("Cache-Control", "no-cache");&lt;br /&gt;response.setHeader("pragma", "no-cache");&lt;br /&gt;response.setContentType("application/xml");&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;out.write("&amp;lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&amp;gt;");&lt;br /&gt;out.write("&amp;lt;liste&amp;gt;");&lt;br /&gt;out.write("&amp;lt;personne&amp;gt;");&lt;br /&gt;out.write("&amp;lt;nom&amp;gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Dupon&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/nom&amp;gt;");&lt;br /&gt;out.write("&amp;lt;prenom&amp;gt;Nicolas&amp;lt;/prenom&amp;gt;");&lt;br /&gt;out.write("&amp;lt;datenaissance&amp;gt;03/15/1945&amp;lt;/datenaissance&amp;gt;");&lt;br /&gt;out.write("&amp;lt;marier&amp;gt;true&amp;lt;/marier&amp;gt;");&lt;br /&gt;out.write("&amp;lt;/personne&amp;gt;");&lt;br /&gt;out.write("&amp;lt;/liste&amp;gt;");&lt;br /&gt;&lt;br /&gt;out.flush();&lt;br /&gt;return null;&lt;br /&gt;&lt;br /&gt;//une autre alternative pour ne pas utiliser "out.write" que je présenterais plus tard&lt;br /&gt;//return     mapping.findForward("/page-donnees-xml");&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Le code html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="../ext-1.1.1/resources/css/ext-all.css" /&amp;gt;&lt;br /&gt;&lt;br /&gt;//importer les librairies javascript&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="scripts/adapter/prototype/prototype.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="scripts/adapter/prototype/scriptaculous.js?load=effects"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="scripts/adapter/prototype/ext-prototype-adapter.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="scripts/lib/ext-all.js"&amp;gt;&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;select name="sexe" id="sexe" style="display: none;"&amp;gt;&lt;br /&gt; &amp;lt;option value="Homme"&amp;gt;Homme&amp;lt;/option&amp;gt;&lt;br /&gt; &amp;lt;option value="Femme"&amp;gt;Femme&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;/select&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="grid-panel" style="height: 300px;"&amp;gt;&lt;br /&gt; &amp;lt;div id="editor-grid"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="/js/edit-grid.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;// exemple du fichier XML&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;liste&amp;gt;&lt;br /&gt;   &amp;lt;personne&amp;gt;&lt;br /&gt;       &amp;lt;nom&amp;gt;Dupon&amp;lt;/nom&amp;gt;&lt;br /&gt;       &amp;lt;prenom&amp;gt;Nicolas&amp;lt;/prenom&amp;gt;&lt;br /&gt;       &amp;lt;datenaissance&amp;gt;03/15/1945&amp;lt;/datenaissance&amp;gt;&lt;br /&gt;       &amp;lt;marier&amp;gt;true&amp;lt;/marier&amp;gt;&lt;br /&gt;   &amp;lt;/personne&amp;gt;&lt;br /&gt;   &amp;lt;personne&amp;gt;&lt;br /&gt;       &amp;lt;nom&amp;gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Dupon&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/nom&amp;gt;&lt;br /&gt;       &amp;lt;prenom&amp;gt;Cecilia&amp;lt;/prenom&amp;gt;&lt;br /&gt;       &amp;lt;datenaissance&amp;gt;09/11/1944&amp;lt;/datenaissance&amp;gt;&lt;br /&gt;       &amp;lt;marier&amp;gt;true&amp;lt;/marier&amp;gt;&lt;br /&gt;   &amp;lt;/personne&amp;gt;&lt;br /&gt;&amp;lt;/liste&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;tutoriel a suivre ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8152012120424832595?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='' href='http://extjs.com/forum/showthread.php?t=12545&amp;highlight=struts' length='0'/><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8152012120424832595/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8152012120424832595' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8152012120424832595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8152012120424832595'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/intgration-extjs-avec-struts.html' title='Exemple d&apos;intégration ExtJs dans une jsp avec le framework struts'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8042668943716223366</id><published>2007-10-04T23:55:00.000+02:00</published><updated>2007-10-05T00:34:56.105+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Spring Web Flow</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;strong&gt;&lt;i&gt;Spring Web Flow&lt;/i&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;: &lt;span class="lire"&gt;est un module du framework Spring. Spring Web Flow représente le flux des applications web sous la forme d'un automate fini déterministe (ou machine à états finis déterministe) ; il contient un état initial, un état final (ou plusieurs), des états intermédiaires et le passage d'un état à un autre se fait par une transition.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;Il permet de définir et d'exécuter le flux des interfaces utilisateurs (il détermine quelles actions sont appelées, et quelles pages sont affichées, en fonction de paramètres)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Toute cette mécanique est généré en XML via une interface graphique. Ce qui rend la maintenance des enchaînements et actions des écrans très dynamique contrairement à ce qui a été proposé jusqu'a ce jour par les Framework MVC, tel que  Struts.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8042668943716223366?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8042668943716223366/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8042668943716223366' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8042668943716223366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8042668943716223366'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/spring-web-flow.html' title='Spring Web Flow'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-6085237518190931525</id><published>2007-10-04T23:52:00.000+02:00</published><updated>2007-10-18T11:58:28.261+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><title type='text'>Taglib json</title><content type='html'>Un ensemble de taglib pour la génération de structure &lt;a href="http://eclaviser.blogspot.com/2007/07/dvellopement-avec-json.html"&gt;JSON&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://json-taglib.sourceforge.net/"&gt;http://json-taglib.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Par exemple la jsp suivante :&lt;br /&gt;&amp;lt;%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;json:object&amp;gt;&lt;br /&gt;&amp;lt;json:property name="itemCount" value="${cart.itemCount}"/&amp;gt;&lt;br /&gt;&amp;lt;json:property name="subtotal" value="${cart.subtotal}"/&amp;gt;&lt;br /&gt;&amp;lt;json:array name="items" var="item" items="${cart.lineItems}"&amp;gt;&lt;br /&gt;  &amp;lt;json:object&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;json:property name="title" value="${item.title}"/&amp;gt;&lt;br /&gt;    &amp;lt;json:property name="description" value="${item.description}"/&amp;gt;&lt;br /&gt;    &amp;lt;json:property name="imageUrl" value="${item.imageUrl"/&amp;gt;&lt;br /&gt;    &amp;lt;json:property name="price" value="${item.price}"/&amp;gt;&lt;br /&gt;    &amp;lt;json:property name="qty" value="${item.qty}"/&amp;gt;&lt;br /&gt;  &amp;lt;/json:object&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/json:array&amp;gt;&lt;br /&gt;&amp;lt;/json:object&amp;gt;&lt;br /&gt;&lt;br /&gt;produit la structure JSON suivante :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;{&lt;br /&gt;itemCount: 2,&lt;br /&gt;subtotal: "$15.50",&lt;br /&gt;items:[&lt;br /&gt;{&lt;br /&gt;title: "The Big Book of Foo",&lt;br /&gt;description: "Bestselling book of Foo by A.N. Other",&lt;br /&gt;imageUrl: "/images/books/12345.gif",&lt;br /&gt;price: "$10.00",&lt;br /&gt;qty: 1&lt;br /&gt;},&lt;br /&gt;{&lt;br /&gt;title: "Javascript Pocket Reference",&lt;br /&gt;description: "Handy pocket-sized reference for the Javascript language",&lt;br /&gt;imageUrl: "/images/books/56789.gif",&lt;br /&gt;price: "$5.50",&lt;br /&gt;qty: 1&lt;br /&gt;}&lt;br /&gt;]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A suivre...&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-6085237518190931525?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='' href='http://json-taglib.sourceforge.net/' length='0'/><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/6085237518190931525/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=6085237518190931525' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6085237518190931525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6085237518190931525'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/taglib-json.html' title='Taglib json'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-7626101660061317837</id><published>2007-10-03T12:52:00.000+02:00</published><updated>2007-10-03T15:29:02.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Extjs 2.0 alpha est disponible en téléchargement</title><content type='html'>Enfin c'est possible de télécharger la version 2.0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Demos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://fmokaddem.free.fr/ext-2.0-alpha1/examples/window/desktop.html"&gt;&lt;span style="font-weight: bold;"&gt;1) Démo du Web Desktop:&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://extjs.com/deploy/ext-2.0-alpha1/examples/window/desktop.html" style="border-style: none; border-width: 0px; position: relative; left: 0px;" frameborder="0" height="402" scrolling="no" width="500"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fmokaddem.free.fr/ext-2.0-alpha1/examples/grid/edit-grid2.html"&gt;&lt;br /&gt;2) Le Datagrid éditable (tableau éditable)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;iframe src="http://fmokaddem.free.fr/ext-2.0-alpha1/examples/grid/edit-grid2.html" style="border-style: none; border-width: 0px; position: relative; left: 0px;" frameborder="0" height="360" scrolling="no" width="620"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-7626101660061317837?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/7626101660061317837/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=7626101660061317837' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/7626101660061317837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/7626101660061317837'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/10/extjs-20-alpha-est-disponible-en.html' title='Extjs 2.0 alpha est disponible en téléchargement'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3328167625484753623</id><published>2007-09-13T11:46:00.001+02:00</published><updated>2007-10-18T14:48:24.988+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Extjs suite...</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Liens en ligne vers quelques sites en productions :&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style=""&gt;-&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Dow Jones Indexes, &lt;a href="http://www.dowjonesindexes.com/" title="http://www.dowjonesindexes.com/"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:#000000;"   &gt;http://www.dowjonesindexes.com/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.dowjonesindexes.com/"&gt; &lt;/a&gt;: Un petit coup d’œil sur le tableau, ensuite double cliquez sur le tableau et regardez ce que ça donne. C’est de la classe en plus pas de soucis de performances. Résumé du pour quoi du site copie/colle de leur site:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style=""&gt;-&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;a href="http://www.dowjonesindexes.com/"&gt; &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.dowjonesindexes.com/"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;/span&gt;&lt;/a&gt;&lt;a target="_blank" title="http://www.dowjonesindexes.com/"&gt;&lt;span style="text-decoration: none;color:#000000;"  lang="EN-GB"&gt;&lt;span title="http://www.dowjonesindexes.com/"&gt;Dow Jones Indexes&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="EN-GB" &gt; has unveiled their newly redesigned website that showcases the Ext JS grid and tab components right on the home page! &lt;/span&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;The site is widely viewed by finance and business professionals who need quick access to market index data, market trends, benchmarks and other up-to-the-minute information, and Ext JS is a perfect fit for serving up a professional-grade,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;u1:p&gt;&lt;/u1:p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;br /&gt;Ce Framework c’est du solide et il a de l’avenir.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Je ferais bientôt un petit tutorial sur comment intégrer ext js dans une application JSP/J2EE utilisant par exemple le framework Struts.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3328167625484753623?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3328167625484753623/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3328167625484753623' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3328167625484753623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3328167625484753623'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/09/extjs-suite.html' title='Extjs suite...'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-9076782565628833324</id><published>2007-09-12T15:39:00.000+02:00</published><updated>2007-09-13T11:51:34.809+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Framework javascript Ext-js version 2.0 pour bientôt</title><content type='html'>Depuis le 06 septembre une partie du contenu de la version Ext-js 2.0 a été  dévoilé. Franchement, ça promet.&lt;br /&gt;Je suis excité de pouvoir la télécharger. Actuellement il est impossible de trouver une copie sur le net, la version bêta n'est disponible que pour ceux qui ont souscrit un abonnement d'assistance. Mais heureusement pour le téléchargement gratuit c'est pour bientôt, il faut prendre sont mal en patience.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://extjs.com/blog/2007/09/06/ext-20-a-preview/"&gt;http://extjs.com/blog/2007/09/06/ext-20-a-preview/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A suivre...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-9076782565628833324?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/9076782565628833324/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=9076782565628833324' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/9076782565628833324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/9076782565628833324'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/09/framework-javascript-ext-js-version-20.html' title='Framework javascript Ext-js version 2.0 pour bientôt'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-6867833148358733731</id><published>2007-09-07T11:08:00.000+02:00</published><updated>2007-09-07T11:29:45.018+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Framework javascript Ext-js, à fond le Web 2.0</title><content type='html'>&lt;a href="http://extjs.com/"&gt;  &lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://extjs.com/"&gt;Ext-js&lt;/a&gt;, est un Framework javascript avec une liste de composants widgets assez exhaustive. Il s'intègre facilement avec tous les Framework J2EE de présentation.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Code bien écrit, &lt;/li&gt;&lt;li&gt;Indépendance vis-vis des librairies et Framework tiers.&lt;/li&gt;&lt;li&gt;Forum riche.&lt;/li&gt;&lt;li&gt; Une liste importante de composants est proposée.&lt;/li&gt;&lt;li&gt;Communication avec le serveur en XML ou &lt;a href="http://eclaviser.blogspot.com/2007/07/dvellopement-avec-json.html"&gt;JSON&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt; &lt;span style="font-weight: bold;"&gt;Point marquant :&lt;/span&gt; il est livré sous plusieurs implémentations avec :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;prototype.js et script.aculo.us,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;une autres avec les librairies de Yahoo&lt;br /&gt;&lt;/li&gt;&lt;li&gt;et une troisième avec JQuery.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt;Preuve de souplesse de ce Framework, il est évident qu'il n'est pas du tout intrusif comme Framework. De quoi augmenter ses chances de réussite, par exemple moi j'ai adhéré pour son intégration avec prototype.js et &lt;a href="http://eclaviser.blogspot.com/2007/04/scriptaculos-pour-scriptaculos.html"&gt;script.aculo.us&lt;/a&gt;.&lt;br /&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;br /&gt;- Page de démo : &lt;a href="http://extjs.com/deploy/ext/docs/index.html" title="http://extjs.com/deploy/ext/docs/index.html"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;http://extjs.com/deploy/ext/docs/index.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;u1:p&gt;&lt;/u1:p&gt;- Page de la licence open source :&lt;u1:p&gt;&lt;/u1:p&gt; &lt;a href="http://extjs.com/license" title="http://extjs.com/license"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;http://extjs.com/license&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-6867833148358733731?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/6867833148358733731/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=6867833148358733731' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6867833148358733731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6867833148358733731'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/09/framework-javascript-ext-js-fond-le-web.html' title='Framework javascript Ext-js, à fond le Web 2.0'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3408822766915821279</id><published>2007-08-16T20:17:00.000+02:00</published><updated>2008-08-06T17:48:13.768+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='loisirs'/><title type='text'>Vacances au Pays de Grasse</title><content type='html'>&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.linternaute.com/sortir/escap/sudest/grasse/diaporama/images/05.jpg" alt="" border="0" /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Grasse, connue pour être la capitale historique                    de la parfumerie, elle est aussi une citée&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt; médiévale,                    fondée au VIIème siècle, qui surprend par                    son mélange d'architecture génoise et provençale                    avec ses maisons aux façades restaurées des XVIIème                    et XVIIIème siècles, ses places, ses arcades,                    ses rues étroites et sinueuses, ses traverses et ses                    fortes rampes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.linternaute.com/sortir/escap/sudest/grasse/diaporama/images/07.jpg" alt="" border="0" /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Des visites guidées sont proposés gratuitement par les trois grande parfumeries de Grasse, durant laquelle on peut découvrir les différents procédés de fabrication.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.confiserieflorian.com/images/products/20.131.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.confiserieflorian.com/images/products/20.131.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;De même pour la confiserie FLORIAN, située dans un site exceptionnel entre le torrent des Gorges du Loup et la montagne de l’arrière-pays grassois. Décorés de meubles anciens du Midi de la France datant des 17èmes et 18èmes siècles, les Confiseries Florian ont su allier tradition, raffinement et saveurs.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Elle accueille les visiteurs pour leur faire découvrir les secrets de fabrication de leurs spécialités.&lt;/span&gt;&lt;/span&gt;  &lt;span style=";font-family:arial;font-size:100%;"  &gt;J'en rafolle des clémentines confites, un péché vraiment mignon :)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Enfin les villages perches des Alpes Maritimes comme le village Auribeau sur Siagne une pure merveille ou règne une atmosphère agréable, des ruelles étroites et fleuries.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.maprovence.net/album/albums/userpics/10085/auribeau-imp.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.maprovence.net/album/albums/userpics/10085/auribeau-imp.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;Liens:&lt;br /&gt;&lt;a href="http://www.grasse-riviera.com/"&gt;http://www.grasse-riviera.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.fragonard.com/"&gt;http://www.fragonard.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.confiserieflorian.com/"&gt;http://www.confiserieflorian.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.maprovence.net/album/thumbnails.php?album=4"&gt;http://www.maprovence.net/album/thumbnails.php?album=4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3408822766915821279?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3408822766915821279/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3408822766915821279' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3408822766915821279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3408822766915821279'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/08/vacances-au-pays-de-grasse.html' title='Vacances au Pays de Grasse'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8932820062909980311</id><published>2007-07-18T15:43:00.000+02:00</published><updated>2007-07-25T17:57:35.001+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Geolocalisation:googlemap+ajax</title><content type='html'>Dans la série Web 2.0 encore des sites amusants:&lt;br /&gt;&lt;br /&gt;1) &lt;span class="urlextern"&gt;Geolocalisation de l'IP&lt;/span&gt; : Une page web basé sur Ajax et web 2.0. Il permet de vous localiser sur la carte du monde via googlemap suivant votre adresse IP.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seomoz.org/ip2loc"&gt;http://www.seomoz.org/ip2loc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;    &lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.france-horoscope.com/images/voyante.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.protopage.com/mokaddem"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8932820062909980311?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8932820062909980311/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8932820062909980311' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8932820062909980311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8932820062909980311'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/07/geolocalisationgooglemapajax.html' title='Geolocalisation:googlemap+ajax'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-4465344919609833471</id><published>2007-07-04T14:19:00.000+02:00</published><updated>2007-10-18T11:59:21.924+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Dévellopement avec JSON</title><content type='html'>&lt;b&gt;JSON&lt;/b&gt; (JavaScript Object Notation – Notation Objet issue de JavaScript)     est un format léger d'échange de données. Il est facile à lire ou à écrire pour des humains.     Il est aisément analysable ou générable par des machines.&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;JSON se base sur deux structures :&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Une collection de couples nom/valeur. Divers langages la réifient par un         &lt;i&gt;objet&lt;/i&gt;, un enregistrement, une structure, un dictionnaire, une table de         hachage, une liste typée ou un tableau associatif.&lt;/li&gt;&lt;li&gt;Une liste de valeurs ordonnées. La plupart des langages la réifient par un         &lt;i&gt;tableau&lt;/i&gt;, un vecteur, une liste ou une suite.&lt;/li&gt;&lt;/ul&gt;En JSON, elles prennent les formes suivantes : &lt;ul&gt;&lt;li&gt;Un &lt;i&gt;objet&lt;/i&gt;, qui est un ensemble de couples nom/valeur non ordonnés. Un objet         commence par &lt;tt&gt;{&lt;/tt&gt; &lt;small&gt;(accolade gauche)&lt;/small&gt; et se termine par &lt;tt&gt;}&lt;/tt&gt; &lt;small&gt;(accolade         droite)&lt;/small&gt;. Chaque nom est suivi de &lt;tt&gt;:&lt;/tt&gt; &lt;small&gt;(deux-points)&lt;/small&gt; et les         couples nom/valeur sont séparés par &lt;tt&gt;,&lt;/tt&gt; &lt;small&gt;(virgule)&lt;/small&gt;.&lt;/li&gt;&lt;li&gt;Un &lt;i&gt;tableau&lt;/i&gt; est une collection de valeurs ordonnées. Un tableau commence         par &lt;tt&gt;[&lt;/tt&gt; &lt;small&gt;(crochet gauche)&lt;/small&gt; et se termine par &lt;tt&gt;]&lt;/tt&gt; &lt;small&gt;(crochet         droit)&lt;/small&gt;. Les valeurs sont séparées par &lt;tt&gt;,&lt;/tt&gt; &lt;small&gt;(virgule)&lt;/small&gt;.&lt;/li&gt;&lt;li&gt;Une &lt;i&gt;valeur&lt;/i&gt; peut être soit une &lt;i&gt;chaîne de caractères&lt;/i&gt; entre guillemets,         soit un &lt;i&gt;nombre&lt;/i&gt;, soit &lt;tt&gt;true&lt;/tt&gt; ou &lt;tt&gt;false&lt;/tt&gt; ou &lt;tt&gt;null&lt;/tt&gt;, soit un         &lt;i&gt;objet&lt;/i&gt; soit un &lt;i&gt;tableau&lt;/i&gt;. Ces structures peuvent être imbriquées.&lt;/li&gt;&lt;li&gt;Une &lt;i&gt;chaîne de caractères&lt;/i&gt; est une suite de zéro ou plus caractères Unicode,         entre guillemets, et utilisant les échappements avec antislash. Un caratère est représenté         par une chaîne d'un seul caractère.&lt;/li&gt;&lt;/ul&gt;Exemple en javascript pure :&lt;br /&gt;&lt;br /&gt;var infos;&lt;br /&gt;infos.nom= "DUPON";&lt;br /&gt;infos.prenom="TOTO";&lt;br /&gt;infos.age=33;&lt;br /&gt;infos.preferences= new Array();&lt;br /&gt;infos.preferences[0]="periodeVacance=3";&lt;br /&gt;infos.preferences[1]="deplacement=0";&lt;br /&gt;&lt;br /&gt;Et en JSON ça donne:&lt;br /&gt;&lt;br /&gt;var infos ={&lt;br /&gt;                 "nom": "DUPON",&lt;br /&gt;                 "prenom": "TOTO",&lt;br /&gt;                 "age":33,&lt;br /&gt;                 "preferences": [&lt;br /&gt;                                                "periodeVacance=3","deplacement=0"&lt;br /&gt;                                           ]&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;ça demeure un format de développement simple, plus claire et surtout un format d'échange moins verbeux que le XML.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Liens utiles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;voir plus sur le site officiel :  &lt;a href="http://www.json.org/jsonfr.html"&gt;http://www.json.org/jsonfr.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dev2dev.bea.com/pub/a/2007/02/introduction-json.html"&gt;http://dev2dev.bea.com/pub/a/2007/02/introduction-json.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.json.org/java/index.html"&gt;http://www.json.org/java/index.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://eclaviser.blogspot.com/2007/10/taglib-json.html"&gt;suite ....&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-4465344919609833471?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/4465344919609833471/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=4465344919609833471' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4465344919609833471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4465344919609833471'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/07/dvellopement-avec-json.html' title='Dévellopement avec JSON'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8786289680119824546</id><published>2007-06-28T17:26:00.001+02:00</published><updated>2007-08-03T10:25:16.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Construction de page riche web 2.0 rapide en DHTML</title><content type='html'>1 ) Le site protypage permet de construire un site perso web 2.0 rapide et gratuitement : il est possible de construire son site riche en ajoutant des widgets, en utilisant le drag/drop. Aucun connaissance en programmation HTML, css, javascript etc. n'est nécessaire. il ressemble à ce qu'il se fait sur &lt;a href="http://www.google.fr/ig?hl=fr"&gt;iGoogle&lt;/a&gt;.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 140px; height: 124px;" src="http://www.protopage.com/web/help/images/puppy.png" alt="" border="0" /&gt;&lt;/a&gt;exemple une page perso que j'ai créer en moins de 5 mn.&lt;br /&gt;&lt;a href="http://www.protopage.com/mokaddem"&gt;http://www.protopage.com/mokaddem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dhtmlgoodies.com/packages/dhtml-suite-for-applications/demos/demo-pane-splitter.html#"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8786289680119824546?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8786289680119824546/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8786289680119824546' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8786289680119824546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8786289680119824546'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/06/construction-de-page-riche-web-20.html' title='Construction de page riche web 2.0 rapide en DHTML'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-4067310281823048298</id><published>2007-06-24T10:25:00.000+02:00</published><updated>2007-08-03T10:27:08.307+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>DhtmlSuite</title><content type='html'>2 ) DhtmlSuite est Framework à connaitre absolument :&lt;br /&gt;&lt;a href="http://www.dhtmlgoodies.com/index.html"&gt;http://www.dhtmlgoodies.com/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;la page de démonstrations :&lt;br /&gt;&lt;a href="http://www.dhtmlgoodies.com/packages/dhtml-suite-for-applications/demos/demo-pane-splitter.html#"&gt;http://www.dhtmlgoodies.com/packages/dhtml-suite-for-applications/demos/demo-pane-splitter.html#&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-4067310281823048298?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/4067310281823048298/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=4067310281823048298' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4067310281823048298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/4067310281823048298'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/06/dhtmlsuite.html' title='DhtmlSuite'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-9066145301682257192</id><published>2007-05-04T17:50:00.000+02:00</published><updated>2007-07-25T17:54:08.600+02:00</updated><title type='text'>Départ en vacances</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_uJMKx9JuMiE/Rqdxqjw7MzI/AAAAAAAAAAM/wTh3KSxysd0/s1600-h/vacance1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_uJMKx9JuMiE/Rqdxqjw7MzI/AAAAAAAAAAM/wTh3KSxysd0/s320/vacance1.JPG" alt="" id="BLOGGER_PHOTO_ID_5091162879734526770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Enfin, je vais partir en vacances et ne rien coder... Faire d'autres choses ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-9066145301682257192?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/9066145301682257192/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=9066145301682257192' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/9066145301682257192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/9066145301682257192'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/05/dpart-en-vacances.html' title='Départ en vacances'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_uJMKx9JuMiE/Rqdxqjw7MzI/AAAAAAAAAAM/wTh3KSxysd0/s72-c/vacance1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5749054887052221365</id><published>2007-04-24T10:37:00.000+02:00</published><updated>2007-06-27T14:19:11.944+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Mashup &amp; WEB 2.0</title><content type='html'>Le contenu d’un site Web basé sur le mashup est composé de données provenant d'autres sites. L’exemple le plus connue est &lt;a href="http://news.google.fr/"&gt;google actualités&lt;/a&gt;. Pour mettre en œuvre un tel site, il faut que les sites exposants leurs données fournissent des API's. D'ailleurs c'est devenues à la mode le fait de dire notre société fournie une API pour interroger  notre BDD de produits ou notre base documentaire des catalogues etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;L'architecture d’un site mashup : &lt;/span&gt;Elle est composée d’au moins trois parties.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Les API qui fournissent les contenus à intégrer :&lt;/span&gt; pour faciliter l'extraction de données, les fournisseurs exposent souvent leur contenu par des protocoles Web tels que le REST, les Web services SOAP, et le RSS/Atom.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Le serveur ou doit être logé l’application mashup : &lt;/span&gt;L’application peut être logé sur un serveur Web/applications traditionnelle qui permet de fournir du contenu dynamique : tomcat, apache. Codé en java, php, asp, etc. Le contenu peut être produit directement dans le navigateur du client par scripting de client-côté (c'est-à-dire, Javascript) ou des applets. Les sites Mashups employant cette approche peuvent se nommer des applications riches d'Internet (RIA) ou site second génération WEB 2.0. L’avantage de la génération coté client est l’allégement de la charge sur le serveur.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;Le coté client :&lt;/span&gt; &lt;/span&gt;composé du browser pour afficher le contenu composé.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Ceci dit ce concept devient de plus en plus attractif. Les sites fournisseurs de contenus y contribuent beaucoup, en fournissant leurs propre API's.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Questions: &lt;/span&gt;Le concept de site mashup va-t-il percer au sein des applications intranets? Quand est-il des intranets dont le contenu doit être fourni via les services S.O.A (Architectures Orientés Services)?&lt;br /&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A suivre….&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5749054887052221365?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5749054887052221365/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5749054887052221365' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5749054887052221365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5749054887052221365'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/mashup-web-20.html' title='Mashup &amp; WEB 2.0'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-2236209161365673865</id><published>2007-04-19T00:12:00.000+02:00</published><updated>2007-09-07T11:27:29.495+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Scriptaculous pour script.aculo.us</title><content type='html'>&lt;p class="MsoNormal"&gt;C'est une librairie JavaScript en cours de développement. Mais déjà des résultats. Par exemple cette démo sur l'usage du drag and drop. Prendre avec la souris un produit et le mettre dans son panier. Il est possible de remplir plusieurs exemplaires du même produit, de pouvoir diminuer la quantité ou éliminer complètement du panier.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://demo.script.aculo.us/shop"&gt;Lien vers la démonstration du Drag and drop.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.script.aculo.us/scriptaculous/show/SliderDemo"&gt;Lien vers la démonstration des sliders.&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.script.aculo.us/scriptaculous/show/Demos"&gt;Lien vers toutes les démonstrations.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;Pour finir &lt;a href="http://script.aculo.us/"&gt;script.aculo.us&lt;/a&gt; se base sur le Framework javascript &lt;a href="http://prototypejs.org/"&gt;prototypejs&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;A suivre ….&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-2236209161365673865?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/2236209161365673865/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=2236209161365673865' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2236209161365673865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2236209161365673865'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/scriptaculos-pour-scriptaculos.html' title='Scriptaculous pour script.aculo.us'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-2218854014198693728</id><published>2007-04-17T14:57:00.001+02:00</published><updated>2007-07-18T16:27:42.140+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>OpenLaszlo</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;OpenLaszlo est une plateforme de développement d'applications riches. C'est à l'automne 2001 qu'est lancé le projet LPS (Laszlo Presentation Server) qui, dès 2002, aboutit sur une première version.  Certaines applications connues utilise LPS comme Yahoo. C'est un projet open source, cette plateforme est présente depuis 6 ans et a donc une implantation plus grande que ses concurrents. Ses applications sont développées via une solution qui produit par la suite des applications lisibles avec Flash Player.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;le principe d'OpenLaszlo est de décrire des interfaces via un langage basé sur une grammaire XML, appelé le LZX. Le serveur Laszlo compile cette description pour produire un fichier swf statique. Ce serveur est basé sur la technologie Java, en l'occurence une servlet.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;Exemple une demo d'une boutique en ligne, avec Amazon :&lt;br /&gt;&lt;/p&gt;&lt;a href="http://www.laszlosystems.com/lps/sample-apps/amazon/amazon2.lzx?lzt=html"&gt;http://www.laszlosystems.com/lps/sample-apps/amazon/amazon2.lzx?lzt=html&lt;/a&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;La page de démo du Framework openlaszlo :&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a href="http://www.openlaszlo.org/demos"&gt;http://www.openlaszlo.org/demos&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a href="http://www.openlaszlo.org/lps4/examples/components/style_example.html?lzr=dhtml"&gt;http://www.openlaszlo.org/lps4/examples/components/style_example.html?lzr=dhtml&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-2218854014198693728?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/2218854014198693728/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=2218854014198693728' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2218854014198693728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2218854014198693728'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/openlaszlo.html' title='OpenLaszlo'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-3632401278021527442</id><published>2007-04-17T14:17:00.000+02:00</published><updated>2007-06-27T14:16:46.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Illustrations sur les nouvelles possibilités qu’offriront les futures versions de navigateurs.</title><content type='html'>&lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;Les navigateurs, le langage HTML, le JavaScript, les CSS en évolution permanente à la recherche de plus de confort et de meilleurs rendus visuels. Et surtout sans aucune installation supplémentaire sur les postes des utilisateurs. Par exemple des extensions sur le langage HTML pour introduire une nouvelle balise nommée canvas. Ou bien des librairies JavaScript pour manipuler les anciennes balises afin de les rendre dynamique. Voir même dessiner des composants et de les redimensionner à la volé.&lt;/p&gt;        &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Extension du HTML :&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;La balise canvas :&lt;/u&gt;&lt;/b&gt; Est une extension du standard HTML qui permet de faire des dessins 2D ou 3D. Elle permet de délimiter une aire qui peut être manipulé via des fonctions de dessins en JavaScript. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Exemples (il faut avoir firefox version 1.5 ou superieur):&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1) Impressionnante cette démo sur les possibilités de réaliser des jeux uniquement en HTML et JavaScript.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.abrahamjoffe.com.au/ben/canvascape/"&gt;http://www.abrahamjoffe.com.au/ben/canvascape/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;une autre&lt;ul&gt;&lt;li&gt;&lt;a href="http://andrewwooldridge.com/canvas/canvasgame001/canvasgame002.html"&gt;http://andrewwooldridge.com/canvas/canvasgame001/canvasgame002.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;2) Dessiner avec les canvas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;a href="http://developer.mozilla.org/fr/docs/Dessiner_avec_canvas"&gt;http://developer.mozilla.org/fr/docs/Dessiner_avec_canvas&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.mozilla.org/fr/docs/Tutoriel_canvas:Animations_basiques"&gt;http://developer.mozilla.org/fr/docs/Tutoriel_canvas:Animations_basiques&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://caimansys.com/painter/"&gt;http://caimansys.com/painter/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;3) Démo sur la compatibilité avec internet explorer :&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://me.eae.net/projects/iecanvas/demo.html"&gt;http://me.eae.net/projects/iecanvas/demo.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;br /&gt;Autres techniques &lt;/u&gt;&lt;/b&gt;: Il y’en as d’autres qui se sont contenté des balises DIV et du JavaScript pour réaliser des interfaces de dessins innovantes. C’est le cas du Framework &lt;a href="http://www.openjacob.org/"&gt;Openjacob&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.openjacob.org/draw2d/normal/simple_interactive/index.html"&gt;http://www.openjacob.org/draw2d/normal/simple_interactive/index.html&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;Aller y tout peut être déplacé redimensionné. On se croit faire du dessin sur Word.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;Pour mieux apprécier cette démo, il faut ce doté du plugin &lt;a href="http://www.getfirebug.com/"&gt;Firebug&lt;/a&gt; sur mozilla firefox pour voir la modification du code à chaud lorsque vous déplacé les éléments. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Il ne faut pas oublier la &lt;b style=""&gt;RIA&lt;/b&gt; (&lt;b style=""&gt;R&lt;/b&gt;ich &lt;b style=""&gt;I&lt;/b&gt;nternet &lt;b style=""&gt;A&lt;/b&gt;pplications). A suivre....&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-3632401278021527442?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/3632401278021527442/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=3632401278021527442' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3632401278021527442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/3632401278021527442'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/illustrations-sur-les-nouvelles.html' title='Illustrations sur les nouvelles possibilités qu’offriront les futures versions de navigateurs.'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-6186104818242649300</id><published>2007-04-13T12:10:00.000+02:00</published><updated>2007-06-27T14:16:46.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Web 2.0 intéressant ou du bluff ?</title><content type='html'>&lt;b style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;  &lt;p class="MsoNormal" style=""&gt;Bien qu'il puisse être critiqué par bon nombre de personnes. Il faut avouer que c'est une suite logique dans l'évolution du web. Et que son apport ne peut être perçu que par un public initié.&lt;br /&gt;En imagerie médical par exemple qui peut distinguer la différence entre l'utilisation d'une radio et un scanner ? Bien sure il faut savoir quand utiliser l'un et quand utiliser l'autre ! Par exemple on ne découpe pas son steak avec un bistouri chirurgical :)  Le scanner bien qu’il est un successeur de la radio ne doit pas forcement être vue comme un remplaçant à proprement dit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Ceci dit le chantier WEB 2.0 est en construction. Des nouvelles techniques, des Framework basés sur le JavaScript vont immerger. L’objectif principale de cette nouvelle vague est d’offrir de nouvelles fonctionnalités qui ne sont pas couvertes par les sites dit statique Web 1.0 et dynamique Web 1.5.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Le &lt;b&gt;&lt;a href="http://developer.mozilla.org/en/docs/Tamarin"&gt;projet Tamarin&lt;/a&gt;&lt;/b&gt; par exemple est un projet &lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;open source&lt;/span&gt;, initié par &lt;a href="http://fr.wikipedia.org/wiki/Adobe_Systems" title="Adobe Systems"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;Adobe&lt;/span&gt;&lt;/a&gt; et la &lt;a href="http://fr.wikipedia.org/wiki/Fondation_Mozilla" title="Fondation Mozilla"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;Fondation Mozilla&lt;/span&gt;&lt;/a&gt; visant à l'implémentation des spécifications du langage &lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;ECMAScript&lt;/span&gt; édition 4 (ES4), un standard rédigé par l'&lt;a href="http://fr.wikipedia.org/wiki/Ecma_International" title="Ecma International"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;ECMA&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;La spécification du langage &lt;b&gt;&lt;a href="http://developer.mozilla.org/en/docs/ECMAScript"&gt;ECMAScript Edition 4&lt;/a&gt;&lt;/b&gt; définit une machine virtuelle pour le JavaScript tout comme celle de JVM  de JAVA. Elle comprend &lt;span style=""&gt; &lt;/span&gt;un garbage collector un compilateur just-in-time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Nous voila devant une nouvelle révolution de la programmation cotée client le &lt;b style=""&gt;JavaScript 2.0&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;C’est presque la mort annoncé de la fabrication du rendu final des pages coté serveur. Tout le rendu visuel va être construit intégralement par le navigateur. Celui-ci recevra finalement les données à afficher sous un format XML par exemple. Il pourra les transmettre aussi sous ce format ce qui rejoint les techniques AJAX.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Pour Finir pourquoi pas ?&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Avec le développement de la nanotechnologie, qui c'est un jour des centres médicaux spécialisés pourront surveiller le tôt de sucre dans le sang de leurs patients diabétiques depuis le Web et sans que le patient ne fasse de manœuvre particulière car la sonde sera implanté sous la peau !!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Des fonctionnalités liées à la domotique aussi.&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Bon je sais que je délire mais des idées comme ça peuvent faire de sorte qu'une version WEB 2.5 ou même WEB 3.0 puisse voir le jour. Ou par exemple un terme comme&lt;b&gt; santranet&lt;/b&gt;: santé par internet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-6186104818242649300?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/6186104818242649300/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=6186104818242649300' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6186104818242649300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/6186104818242649300'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/web-20-intressant-ou-du-bluff.html' title='Web 2.0 intéressant ou du bluff ?'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8229997433146861125</id><published>2007-04-06T00:49:00.000+02:00</published><updated>2007-10-18T11:54:58.627+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>rapid web application development</title><content type='html'>&lt;p class="MsoNormal"&gt;Comment développer rapidement des applications Web?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Par exemple pour une application J2EE, 6 mois au lieu de 12.&lt;br /&gt;Questions crucial a lequel j’ai du répondre mainte fois : Les techniques actuelles ne permettent pas de réaliser une application correcte de façon rapide. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Eh bien des Framework naissants donc pas encore matures vont dans ce sens.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Grails &lt;/i&gt;&lt;/b&gt;est un Framework open source qui aide à développer rapidement des applications Web. Il s'intègre au monde J2EE. Il est basé sur le langage de scripts &lt;a href="http://groovy.codehaus.org/"&gt;&lt;b&gt;&lt;i&gt;Groovy&lt;/i&gt;&lt;/b&gt;&lt;/a&gt;. D’ailleurs il s'appelé &lt;b&gt;&lt;i&gt;Groovy on rails &lt;/i&gt;&lt;/b&gt;et renommé &lt;b&gt;&lt;i&gt;Grails &lt;/i&gt;&lt;/b&gt;pour ne pas prêté confusion avec &lt;b&gt;&lt;i&gt;&lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; &lt;/i&gt;&lt;/b&gt;(Ruby on Rails que m'a fait découvrir mon collègue Lionel)&lt;b&gt;&lt;i&gt;.&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;La force de Grails réside sur le fait de pouvoir développer rapidement une application Web composé de &lt;a href="http://www.springframework.org/"&gt;Spring Framework&lt;/a&gt; et la persistance en &lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;. Démonstration en vidéo :&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;b&gt;&lt;i&gt;&lt;a href="http://hansamann.podspot.de/files/grails_scaffolding.mov"&gt;Lien vers      un tutorial en video sur une petite application&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;b&gt;&lt;i&gt;&lt;a href="http://grails.org/Grails+Screencasts"&gt;Liens vers toutes les videos      de démonstration.&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8229997433146861125?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='' href='http://grails.org/' length='0'/><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8229997433146861125/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8229997433146861125' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8229997433146861125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8229997433146861125'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/04/rapid-web-application-development.html' title='rapid web application development'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5826928297344469204</id><published>2007-03-21T16:18:00.000+01:00</published><updated>2007-10-18T11:54:33.188+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><title type='text'>How To Dismantle a BPM Solution</title><content type='html'>A la poursuite du chemin vers les BPM et mise en oeuvre d'architectures SOA, je tombe sur l'article de  Mariano Benitez (Architecte intégrateur de la suite AquaLogic BPM. Il est responsable de l'architecture technique de l'intégration du produit avec d'autres produits de BEA et de tiers.)&lt;br /&gt;&lt;br /&gt;Etant moi même fan du groupe de musique irlandé U2 j'ai trouvé cet article plus qu'intéressant. C'est par ce qu'il a donné des titres de paragraphe inspiré de titre de chansons du groupe.&lt;br /&gt;&lt;br /&gt;L'auteur assimile un architecte comme un conducteur de voiture  (la voiture le BPM) avec les utilisateurs comme étant le monde qui monte avec lui. Je trouve le fait de monté en voiture avec un chaufeur qui te dit "&lt;span style="color: rgb(255, 102, 0); font-style: italic;"&gt;I Still Haven’t Found What I’m Looking For&lt;/span&gt;",  pas trés rassurant. A votre avis ?&lt;br /&gt;Bon comme il faut toujours prendre les choses du bon cotés, il faut soutenir le conducteur pour éviter qu'il ne fasse des bètises :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;J'ai trouver &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;rigolo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; le &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;commentaire &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;d'un lecteur de l'article :&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-style: italic;"&gt;So is a "BPM Solution" an "Atomic Bomb?"  ;-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je vous laisse lire l'article pour comprendre.....&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;&lt;a href="http://dev2dev.bea.com/pub/a/2007/01/dismantle_bpm.html"&gt;http://dev2dev.bea.com/pub/a/2007/01/dismantle_bpm.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5826928297344469204?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://dev2dev.bea.com/pub/a/2007/01/dismantle_bpm.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5826928297344469204/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5826928297344469204' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5826928297344469204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5826928297344469204'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/03/la-poursuite-du-chemin-vers-les-bpm-et.html' title='How To Dismantle a BPM Solution'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5168318719512057165</id><published>2007-03-18T23:10:00.000+01:00</published><updated>2007-10-18T11:52:35.955+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><title type='text'>Html + javascript suite....</title><content type='html'>Encore plus impressionnant.&lt;br /&gt;Double clic sur une image, elle sautille. Les images peuvent êtres déplacés et même jetés dans la poubelle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe style="border-style: solid; border-width: 1px;" src="http://jimroos.com/demo.html" frameborder="0" height="350" scrolling="no" width="420"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5168318719512057165?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://www.jimroos.com/2006/07/certified-javascript-ninja.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5168318719512057165/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5168318719512057165' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5168318719512057165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5168318719512057165'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/03/html-javascript-suite.html' title='Html + javascript suite....'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-2728336506560251130</id><published>2007-03-17T22:02:00.000+01:00</published><updated>2007-10-18T11:50:22.563+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><title type='text'>ping pong en Html + javascript</title><content type='html'>&lt;iframe style="border-style: solid; border-width: 1px; margin-left: 1px;" src="http://jimroos.com/pong.html" frameborder="0" height="440" scrolling="no" width="365"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-2728336506560251130?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/2728336506560251130/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=2728336506560251130' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2728336506560251130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2728336506560251130'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/03/ping-pong-en-html-javascript_17.html' title='ping pong en Html + javascript'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-2436702444926509739</id><published>2007-03-16T12:37:00.000+01:00</published><updated>2007-06-27T14:16:46.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><title type='text'>Poissons en html+JavaScript</title><content type='html'>&lt;a href="http://jimroos.com/"&gt;Il faut le voir sur son site.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe style="border-style:none;border-width:0px;position:relative;left:55px;" frameborder=0 scrolling=no height=502 width=552 src="http://jimroos.com/fish/fishbowl.html"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-2436702444926509739?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/2436702444926509739/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=2436702444926509739' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2436702444926509739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2436702444926509739'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/03/poissons-en-htmljavascript.html' title='Poissons en html+JavaScript'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5211709699606426848</id><published>2007-02-22T12:20:00.000+01:00</published><updated>2007-02-22T16:05:51.848+01:00</updated><title type='text'>cohabitation php java dans weblogic server</title><content type='html'>Un article intéressant qui explique comment mettre un bridge entre du code java et du code PHP.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dev2dev.bea.com/pub/a/2007/02/php-java-bridge.html"&gt;http://dev2dev.bea.com/pub/a/2007/02/php-java-bridge.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Why Use a Bridge?&lt;/h3&gt;  &lt;p&gt;The encompassing example that motivates all the others is to be able to blend Java and PHP in the same application. Here are some ways in which this can be done:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;PHP code can instantiate and call methods on a Java object, either a POJO or a Java EE resource like an EJB.&lt;/li&gt;&lt;li&gt;You can use WebLogic Server as the Web server for pages coded in PHP.&lt;/li&gt;&lt;li&gt;Java code can invoke PHP scripts.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Available Implementations&lt;/h3&gt;  &lt;p&gt; Two bridges are available at present, and both can be used with WebLogic Server. One is a commercial product available from &lt;a href="http://www.zend.com/"&gt;Zend Technologies Ltd.&lt;/a&gt; The other is an open-source component, licensed under LGPL, housed on &lt;a href="http://www.sourceforge.net/"&gt;SourceForge&lt;/a&gt;. (A third implementation exists, at &lt;a href="http://us2.php.net/manual/en/ref.java.php"&gt;php.net&lt;/a&gt;, but that one is defunct; it doesn't support the latest version of PHP, and will not be discussed in this tutorial.)&lt;/p&gt;  &lt;p&gt;Both bridges permit PHP to talk both to Plain Old Java Objects (POJOs) and to Java EE resources that live on WebLogic Server. You get to WebLogic Server resources in the way you would expect: through JNDI. The following code sample shows PHP code that will obtain a resource that lives on WebLogic Server—for example, an EJB, a database connection, or JMS Queue. This code works with both bridges:&lt;br /&gt;&lt;/p&gt;exemple d'un script "ejbref.php" :&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Buy or Sell shares&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;if (isSet($_POST['ticker'])) {&lt;br /&gt;  $trader = getBean();&lt;br /&gt;&lt;br /&gt;  if (isSet($_POST['buy'])) {&lt;br /&gt;      $result = $trader-&amp;gt;buy($_POST['ticker'], ($_POST['shares'] + 0) );&lt;br /&gt;      $action = 'bought';&lt;br /&gt;  }&lt;br /&gt;  else {&lt;br /&gt;      $result = $trader-&amp;gt;sell($_POST['ticker'], $_POST['shares'] + 0);&lt;br /&gt;      $action = 'sold';&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  $trader-&amp;gt;remove();&lt;br /&gt;  print &amp;lt;&amp;lt;&amp;lt;__HTML__&lt;br /&gt;  &amp;lt;i&amp;gt;{$result-&amp;gt;getNumberTraded()} shares of {$result-&amp;gt;getStockSymbol()} $action.&amp;lt;/i&amp;gt;&lt;br /&gt;&lt;br /&gt;__HTML__;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&lt;br /&gt;print &amp;lt;&amp;lt;&amp;lt;__HTML__&lt;br /&gt;&amp;lt;form action="http://localhost:7001/JavaBridge/ejbref.php" method="post"&amp;gt;&lt;br /&gt;Ticker Symbol: &amp;lt;input type="text" size="4" name="ticker"/&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;Number of Shares: &amp;lt;input type="text" size="6" name="shares"/&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" name="buy" value="buy"/&amp;gt; &amp;lt;input type="submit" name="sell" value="sell"/&amp;gt;&lt;br /&gt;__HTML__;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getBean() {&lt;br /&gt;&lt;br /&gt;$envt = array(&lt;br /&gt;      "java.naming.factory.initial" =&amp;gt; "weblogic.jndi.WLInitialContextFactory",&lt;br /&gt;      "java.naming.provider.url" =&amp;gt; "t3://localhost:7001"&lt;br /&gt;);&lt;br /&gt;$ctx = new Java('javax.naming.InitialContext', $envt);&lt;br /&gt;$home = $ctx-&amp;gt;lookup('TraderHome');&lt;br /&gt;return $home-&amp;gt;create();&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5211709699606426848?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5211709699606426848/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5211709699606426848' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5211709699606426848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5211709699606426848'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/02/cohabitation-php-java-dans-weblogic.html' title='cohabitation php java dans weblogic server'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-2592320737847792469</id><published>2007-02-19T16:40:00.000+01:00</published><updated>2007-10-05T00:05:53.924+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='pl/sql'/><title type='text'>Gestion des exceptions avec Spring et procédure PlSql sous oracle</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Spring fournit une traduction commode des exceptions SQLException en sa propre hiérarchie d'exception. La racine de sa hiérarchie est DataAccessException.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Ces exceptions enveloppent l'exception originale évitant ainsi de perdre la cause. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Durant le projet sur lequel je travail actuellement j’ai défini l’architecture sous forme d’appel à des procédures pl/sql. Alors j’ai rencontré le plaisir de travailler sur comment acheminer les exceptions techniques et fonctionnelles qui peuvent survenir dans ses procédures vers le code java.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Solution :&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Premièrement :&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Gérer les exceptions dans le code pl/Sql.&lt;/p&gt;&lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;ErreurFonctionnelle&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;EXCEPTION;&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;InfoFonctionnelle&lt;span style=""&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;EXCEPTION;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;FUNCTION&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt; enregistrer &lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;(&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;………………&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;)&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;BEGIN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;………&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style=";font-family:Courier;font-size:10;color:green;"   &gt;&lt;span style=""&gt;      &lt;/span&gt;--Si un cas est détecté alors lever une exception fonctionnelle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;RAISE&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; ErreurFonctionnelle&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;;&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;………&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;………&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;RETURN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   lang="EN-GB" &gt; W_TiersFull&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  lang="EN-GB" &gt;;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;EXCEPTION&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;WHEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; ErreurFonctionnelle &lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;THEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;RAISE_APPLICATION_ERROR(&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;-20001, 'ER022'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;);&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;WHEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; InfoFonctionnelle &lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;THEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;RAISE_APPLICATION_ERROR(&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;-20002, 'IN022'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;);&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;WHEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; &lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:red;"   &gt;OTHERS&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;THEN&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;RAISE;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style=";font-family:Courier;font-size:10;color:green;"   &gt;--Laisse remonter les exceptions techniques pour par exemple les inclure dans les fichiers de logs;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;END&lt;/span&gt;&lt;span style=";font-family:Courier;font-size:10;color:black;"   &gt; enregistrer&lt;/span&gt;&lt;span style="color: rgb(0, 0, 240);font-family:Courier;font-size:10;"  &gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Deuxièmement :&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Créer une exception signicative du point de vue Java. Dans cet exemple, l’erreur ER002 correspond à : « &lt;span style=""&gt;Suppression impossible ... Cette valeur est utilisée dans l'application ».&lt;/span&gt; &lt;span style=""&gt; &lt;/span&gt;Il faut étendre DataAccessException de Spring ou une de ses sous-classes:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; FonctionelleException &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; DataAccessException {&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;WAB_FONCTIONAL_ERR_EXCEPTION&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; = 20001;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;WAB_FONCTIONAL_INF_EXCEPTION&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; = 20002;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; FonctionelleException(String message, Throwable throwable) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;(message, throwable);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; FonctionelleException(String message) {&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;(message);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Troisièmement :&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Etendre la classe de Spring &lt;span style=""&gt; &lt;/span&gt;SQLErrorCodeSQLExceptionTranslator pour traiter les exceptions fonctionnelles survenues dans les procédures stockées par Oracle.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;SQLExceptionOracleTranslatorWab &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; SQLExceptionOracleTranslator {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; SQLExceptionOracleTranslatorWab(DataSource dataSource) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;(dataSource);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;protected&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; DataAccessException customTranslate(String task, String sql, SQLException sqlException) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;String codeErreurFonctionnelle = sqlException.getMessage().subSequence(11, 16).toString();&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;switch&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; (sqlException.getErrorCode()) {&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;case&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; 1403:&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;//correspond à l'exception prédéfini d'oracle NO_DATA_FOUND&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; NotFoundException(codeErreurFonctionnelle, sqlException);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;case&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; NotFoundException.&lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;WAB_NOT_FOUND_EXCEPTION&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;:&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; NotFoundException(codeErreurFonctionnelle, sqlException);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;case&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; FonctionelleException.&lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;WAB_FONCTIONAL_ERR_EXCEPTION&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;:&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;case&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; FonctionelleException.&lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;WAB_FONCTIONAL_INF_EXCEPTION&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;:&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; FonctionelleException(codeErreurFonctionnelle, sqlException);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;default&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;:&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;// Fall back to Spring's default exception handling&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;.customTranslate(task, sql, sqlException);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; SQLExceptionOracleTranslator &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;SQLErrorCodeSQLExceptionTranslator&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;/**&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;Est&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;transient&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;pour&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;optimiser&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;la&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;serialisation&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;    &lt;/span&gt; &lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;*/&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;transient&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; Log &lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;LOG&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; = LogFactory.&lt;i&gt;getLog&lt;/i&gt;(SQLExceptionOracleTranslator.&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; SQLExceptionOracleTranslator(DataSource dataSource) {&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;(dataSource);&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; DataAccessException &lt;/span&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;translate&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;(String task, String sql, SQLException sqlEx) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;DataAccessException dataAccessException = &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;.translate(task, sql, sqlEx);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; ((!(dataAccessException &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;instanceof&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; FonctionelleException)) &amp;&amp;amp; (!(dataAccessException &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;instanceof&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; NotFoundException))) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; (&lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;LOG&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;.isFatalEnabled()) {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;LOG&lt;/span&gt;&lt;/i&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;.fatal(&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;"Technical error at data base level : "&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;, dataAccessException);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;}&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; TechnicalException(&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;"Technical error at data base level : "&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;, dataAccessException);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;} &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; {&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; dataAccessException;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Finalement :&lt;/p&gt;  &lt;p class="MsoNormal"&gt;S'assurer que le traducteur est appliqué à tout les DAOs automatiquement. Comment ? En définissant une classe abstraite contenant la propriété JdbcTemplate :&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;abstract&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; AbstractWabDao &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; JdbcDaoSupport {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;protected&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; initDao() &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; Exception {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;.initDao();&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;initJdbcTemplate();&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; initJdbcTemplate() {&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; JdbcTemplate lJdbcTemplate = &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 141.6pt; text-indent: 35.4pt;"&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; JdbcTemplate(getDataSource());&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;lJdbcTemplate.setExceptionTranslator(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; SQLExceptionOracleTranslatorWab(getDataSource()));&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;lJdbcTemplate.setNativeJdbcExtractor(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt; SimpleNativeJdbcExtractor());&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 70.8pt;"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;setJdbcTemplate(lJdbcTemplate);&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-2592320737847792469?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/2592320737847792469/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=2592320737847792469' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2592320737847792469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/2592320737847792469'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/02/gestion-des-exception-avec-spring-et.html' title='Gestion des exceptions avec Spring et procédure PlSql sous oracle'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-8084942422657925413</id><published>2007-01-19T15:14:00.000+01:00</published><updated>2007-06-27T14:27:52.424+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flocking behavior'/><category scheme='http://www.blogger.com/atom/ns#' term='essaim'/><title type='text'>l'intelligence en essaim ou l'intelligence collective :</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://webloria.loria.fr/%7Echevrier/hamlin/bigfishlittlefish.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://webloria.loria.fr/%7Echevrier/hamlin/bigfishlittlefish.gif" alt="" border="0" /&gt;&lt;/a&gt; &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;En observant l'intelligence collective des sociétés d'insectes on en déduit que l'intelligence naît de façon collective.&lt;/p&gt;&lt;p style="text-align: justify;" class="MsoNormal"&gt;Un groupe de poisson peuvent s'unir et ainsi former une grosse masse qui ressemble un plus &lt;a href="http://webloria.loria.fr/%7Echevrier/hamlin/swarm.html"&gt;gros poisson&lt;/a&gt; et ainsi repousser les prédateurs.&lt;br /&gt;En effet, bien que ne pouvant être individuellement qualifiés d'intelligents, les membres de ces sociétés sont collectivement capables de réaliser des constructions sophistiquées&lt;a href="javascript:ouvreEncart(2,%20720,%20640%20);"&gt; &lt;/a&gt;, de s'adapter à des environnements changeants, de trouver le plus court chemin à une source de nourriture comme pour les fourmis.&lt;br /&gt;&lt;br /&gt;Dans un tel système multi-agents, chaque agent n'a qu'une vue limitée du système, mais il décide de manière autonome de ses actions. De ce fait, le système est caractérisé par un fonctionnement décentralisé : aucun agent ne décide ni ne coordonne les actions des autres.&lt;br /&gt;&lt;br /&gt;De tels systèmes se caractérisent par leur adaptabilité et leur robustesse.&lt;br /&gt;Pour concevoir de tels systèmes, la difficulté principale qui se pose est de déterminer les comportements individuels. La dynamique qui va régir le fonctionnement du système afin qu'il produise la réponse collective souhaitée.&lt;br /&gt;&lt;br /&gt;Définition de la Stigmergie (copie/colle depuis &lt;a href="http://interstices.info/"&gt;http://interstices.info&lt;/a&gt;):&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;   &lt;/div&gt;&lt;p class="first" style="margin-bottom: 12pt; text-align: justify;"&gt;La stigmergie est un mode de communication particulier qui a été baptisé ainsi par le biologiste Pierre-Paul Grassé, en 1959. Celui-ci étudiait en particulier la construction du nid chez les termites. Voici son commentaire : « La coordination des tâches et la régulation des constructions ne dépendent pas directement des ouvriers, mais des constructions elles-mêmes. L'ouvrier ne dirige pas son travail, il est guidé par lui. C'est à cette stimulation d'un type particulier que nous donnons le nom de stigmergie. » En effet, les termites, comme les fourmis, laissent des traces de phéromones sur leur passage. Elles modifient donc leur environnement. Ces traces attirent leurs congénères, qui laissent des traces à leur tour, etc. Pour les araignées, ces traces sont les fils de soie. &lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;   &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Actuellement je me tourne vers l'observation des comportements des sociétés humaines. Comment un ensemble d'individus arrive à élire un chef ? Ou aussi le renverser. Comment la discussion entre plusieurs personnes converge vers une solution efficace? La question : c'est quoi et comment fonctionne l'intuition? Hé bien l'espèce humaine et le cerveau humain sont très complexe.&lt;br /&gt;&lt;br /&gt;Comment un groupe d'expert agissent positivement ? Il est évident que personne ne détient le plein mérite de la réussite, elle est collective.&lt;br /&gt;&lt;br /&gt;En observant à leurs tours les sociétés des humaines. ça pourrait être une source d'inspiration pour concevoir des algorithmes de résolution collective de problème.&lt;br /&gt;&lt;/div&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;A suivre ....&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-8084942422657925413?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/8084942422657925413/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=8084942422657925413' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8084942422657925413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/8084942422657925413'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/01/lintelligence-en-essaim.html' title='l&apos;intelligence en essaim ou l&apos;intelligence collective :'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-5430188567115592873</id><published>2007-01-18T16:34:00.000+01:00</published><updated>2007-10-18T11:48:48.110+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>DWR Direct Web Remoting : Ajax facile pour Java.</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Un retour d'expérience sur DWR.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;DWR permet depuis le navigateur de communiquer avec le Java coté serveur et vice-versa.&lt;br /&gt;&lt;a href="http://getahead.ltd.uk/dwr"&gt;http://getahead.ltd.uk/dwr&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;C'est une merveille !&lt;br /&gt;Intégration facile avec Struts, communication avec les beans déclaré avec Spring.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Méthodes utiles:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;- Récupérer la request:&lt;/i&gt;&lt;br /&gt;HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();&lt;br /&gt;&lt;br /&gt;&lt;i&gt;- Récupérer le context de la servlet :&lt;/i&gt;&lt;br /&gt;ServletContext servletContext = WebContextFactory.get().getServletContext();&lt;br /&gt;&lt;br /&gt;&lt;i&gt;- Récupérer l'html après évaluation d'une jsp :&lt;/i&gt;&lt;br /&gt;String value = WebContextFactory.get().forwardToString(jspName);&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-5430188567115592873?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/5430188567115592873/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=5430188567115592873' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5430188567115592873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/5430188567115592873'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/01/dwr-ajax-facile-pour-java.html' title='DWR Direct Web Remoting : Ajax facile pour Java.'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-116911906144565844</id><published>2007-01-18T12:10:00.000+01:00</published><updated>2007-10-18T11:48:05.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Stripes un autre framework de présentation</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Un autre Framework de présentation appelé STRIPES.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;u1:p&gt;&lt;/u1:p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;a href="http://stripes.mc4j.org/confluence/display/stripes/Home" title="http://stripes.mc4j.org/confluence/display/stripes/Home"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;http://stripes.mc4j.org/confluence/display/stripes/Home&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;u1:p&gt;&lt;/u1:p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;Il y a même un comparatif struts vs stripes sur le site &lt;a href="http://stripes.mc4j.org/confluence/display/stripes/Stripes+vs.+Struts"&gt;http://stripes.mc4j.org/confluence/display/stripes/Stripes+vs.+Struts&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;En résumé plus de contrainte d'utliser les fichiers xml, le formulaire est integré à l’action, le bean métier peut être référencé directement dans l’action, emploi des annotations java 5, intégration facile avec la technique Ajax &lt;a href="http://stripes.mc4j.org/confluence/display/stripes/AJAX"&gt;http://stripes.mc4j.org/confluence/display/stripes/AJAX&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Il lui faut la jdk 1.5, mais peut marcher aussi en 1.4.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Arial;"&gt;Je ne l’ai pas encore testé mais je pense à première vue qu’il est bien.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p class="MsoNormal" style=""&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;Guide de démarrage : &lt;a href="http://stripes.mc4j.org/confluence/pages/viewpage.action?pageId=2229"&gt;http://stripes.mc4j.org/confluence/pages/viewpage.action?pageId=2229&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-116911906144565844?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/116911906144565844/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=116911906144565844' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/116911906144565844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/116911906144565844'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2007/01/stripes-un-autre-framework-de.html' title='Stripes un autre framework de présentation'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16301486.post-116539607023929506</id><published>2006-12-06T09:48:00.000+01:00</published><updated>2007-06-27T14:29:33.178+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping O/R'/><category scheme='http://www.blogger.com/atom/ns#' term='jpa'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>sortie du livre Java Persistence with Hibernate</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;La bonne nouvelle de ce mois-ci c'est la sortie définitive du livre 'Java Persistence with Hibernate ' de GAVIN King le père d'Hibernate.&lt;br /&gt;Cela fait une dizaines de jours que j'ai commencé à le lire précisément depuis le 12/11/2006. C’est un peut trop tôt pour dire que j'ai tout lu. Mais pour ceux qui ont déjà lu la première édition je crois qu'une bonne moitié du livre peut être fini assez rapidement. Ce n'est pas pour rien qu'il fait le double du premier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;Les quelques nouveautés que j’ai pu retenir assez rapidement sont :&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;Qu’Hibernate 3.2 est      conforme à la nouvelle norme de SUN (JSR 220 : Enterprise JavaBeans 3.0).      Bien que réellement cette spécification soit en grande partie inspiré      d'Hibernate (Gavin King fait partie de l'équipe de conception et rédaction      de cette spécification).&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;L'avantage dorénavant est      qu'il est possible et même conseillé de développer des applications      indépendantes d'Hibernate. Il suffit pour cela de n'utiliser dans son code      que les interfaces de la norme (JSR 220) de SUN. Le lien avec l’implémentation      Hibernate étant fait en utilisant l'injection de dépendance. Inspiré du &lt;a href="http://www.springframework.org/" title="http://www.springframework.org"&gt;Framework Spring&lt;/a&gt;. Ceci étant      l'autre nouveauté de la nouvelle norme.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;La norme JSR 220 contient      plusieurs volés. La partie appelé JPA (Java Persistence API) est celle qui      s'inspire d'Hibernate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Les autres parties comportent      la nouvelle façon de déclarer, déployer et utiliser les EJB 3.0.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Par exemple la gestion des      transactions et des sessions Hibernate est désormais faite de façon      déclarative (annotations java 5). Ça rappel un peut les déclarations en      xml faites avec les EJB 2.1 (Les annotations n’existaient pas jadis sauf ceux      ayant utilisés les Xdoclet).&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Pour ceux qui veulent      utiliser tout de suite la nouvelle norme il faut savoir que le conteneur      JBoss des EJB 3.0 est apparu aussi en version prête à embarqué. Elle est      faite pour s'intègre à d'autre serveur d'applications qui n'ont pas encore      implémenté la nouvelle norme (C'est génial).&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16301486-116539607023929506?l=eclaviser.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclaviser.blogspot.com/feeds/116539607023929506/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16301486&amp;postID=116539607023929506' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/116539607023929506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16301486/posts/default/116539607023929506'/><link rel='alternate' type='text/html' href='http://eclaviser.blogspot.com/2006/12/sortie-du-livre-java-persistence-with.html' title='sortie du livre Java Persistence with Hibernate'/><author><name>Fewzi</name><uri>http://www.blogger.com/profile/10080093291540032845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
