06.23.08

ZenBinding : du databinding pour GWT

Posted in GWT (Google Web Toolkit) at 10:09 par pierre.queinnec

Un nouvel outil Zenika open-source (sous LGPL) vient d’être releasé: il
s’agit du ZenBinding, un framework de databinding pour GWT, utilisant la
technique des Generators.

http://code.google.com/p/zenbinding/

06.09.08

Retour sur Eclipse Time : Brève 3

Posted in Eclipse at 13:10 par laurent.delvaux

Les Eclipse Verticals

Après sa présentation de Ganymede, Ralph MUELLER (Eclipse Europe Ecosystem Director) nous a fait découvrir une orientation supplémentaire que pourrait bien prendre la fondation Eclipse dans les (toutes) prochaines années : les Industry Verticals.

Read the rest of this entry »

06.06.08

Retour sur Eclipse Time : Brève 2

Posted in Eclipse at 18:22 par laurent.delvaux

Sortie imminente de Ganymede

Ralph MUELLER (Eclipse Europe Ecosystem Director) nous a présenté le contenu de Ganymede : la toute dernière livraison d’Eclipse qui sortira très prochainement.

Il a commencé par nous rappeler quelques chiffres sur la composition des équipes d’Eclipse en rappelant qu’aujourd’hui 46% des commiters font partie d’IBM, ce qui représente plus de 400 personnes travaillant à plein temps sur les différents projets Eclipse. Le nombre de commiters, tout comme le nombre de projets et de downloads ne cessent de grandir (ce qui semble ravir son supérieur hiérarchique, photos à l’appui).

Read the rest of this entry »

06.03.08

Retour sur Eclipse Time : Brève 1

Posted in Eclipse at 21:33 par laurent.delvaux

Pour la troisième année consécutive, la conférence EclipseTime (organisée par Anyware Technologies) s’est tenue à la cité de l’Espace de Tououse. Le but de cette journée était de faire le point sur les nombreux projets de la fondation Eclipse : des livraisons imminentes (sortie de Ganymede), jusqu’à la refonte annoncée d’Eclipse (E4) en passant par de nombreux retours d’expérience. Cette série de brèves se propose de vous retracer les moments forts de cette journée au combien intense!

E4, la prochaine (r)évolution d’Eclipse

Benjamin CABE (Expert Eclipse) nous a présenté l’ambitieux projet de refonte qui donnera naissance à Eclipse 4.

Read the rest of this entry »

05.24.08

Retour de la présentation Maven au JUG Paris

Posted in Maven at 21:57 par gregory.boissinot

Passionnante présentation au JUG de Arnaud Héritier, committer Maven. Il a fournit de nombreux éléments de réponses aux différentes problématiques rencontrées quotidiennement par les utilisateurs. Après un rapide état de la situation très mouvementé concernant le démantèlement de Mergere, le rachat de DevZuz par ExistGlobal et le création de la société Sonatype par Jason van Zyl, Arnaud Héritier confirme la fin définitive de Maven 1. Il a présenté la dernière version de Maven, la 2.0.9 comme un aboutissement des nombreuses versions précédentes. Il a insisté sur la forte présence de la communauté Maven avec maintenant près de 70 committer et une centaine de plugins répartis entre la communauté Apache et Codehaus.

Read the rest of this entry »

05.02.08

Monitoring de l’activité Hibernate / Piste d’optimisation

Posted in Hibernate at 23:40 par carl.azoury

Introduction

Cet article présente comment rendre plus transparent l’activité d’Hibernate afin de détecter un éventuel défaut de comportement de son application. La persistance transparente est une fonctionnalité puissante mais qui mérite d’être surveillée. Combien d’objets, et de quel type, ont été chargés par l’application ? Quel objet a été modifié ? Quelle est la propriété qui a changé ? Quelle était la valeur avant la mise à jour et quelle est la nouvelle valeur ? Combien de requêtes SQL et quel temps d’exécution ? Autant de questions auxquelles tente de répondre ZenTracker un outil de monitoring.

ZenTracker

Cet outil s’insère dans la mécanique d’Hibernate via les API Interceptor et Listener. Il est disponible sur GoogleCode en téléchargement  Utiliser cet outil consiste à passer à la Session Hibernate un Interceptor qui va se charger de collecter des informations sur l’activité. Information qui sera journalisée au moment de la complétion de la transaction. L’Intercepteur étant un objet avec état il en faut une nouvelle instance pour chaque nouvelle Session Hibernate.

Cet outil ne fonctionne qu’à partir de la version 3.2.0 d’Hibernate.

// Opening Session with a fresh instance of the Interceptor
SessionStatisticsInterceptor interceptor = new SessionStatisticsInterceptor();
Session session = sessionFactory.openSession(interceptor);

Dans le cas ou la Session est utilisée sans démarrer de transaction, il faut récupérer l’intercepteur au moment de la fermeture de la Session et déclencher la journalistation manuellement par la méthode logSummary()

 

Configuration

1- Ajouter le jar zentracker.jar au classpath
2- Déclarer deux propriétés

hibernate.jdbc.factory_class=com.zenika.zentracker.hibernate.jdbc.ZenTrackerBatchingFactory
<listener type=”flush-entity” class=”com.zenika.zentracker.hibernate.listener.EntityCheckDirtyListener”/>

La propriété factory_class peut être déclarée soit dans le fichier hibernate.properties, soit dans le fichier hibernate.cfg.xml. Le listener doit être déclarée dans le fichier hibernate.cfg.xml.

3- Modifier le fichier log4j.properties

# Loggers used by the ZenTracker tool
log4j.logger.com.zenika.ZenTracker=debug

4- Déclarer l’intercepteur au moment de la création d’une nouvelle Session. L’intercepteur possède un état, il en faut un pour chaque nouvelle instance de Session.

Utilisation

Comment tracer la modification d’une entité ?
Le “Listener” EntityCheckDirtyListener va se déclencher après celui d’Hibernate après que celui-ci ai déterminé la liste des propriétés “dirty”. Toutes les propriétés modifiées sont ainsi tracées. La trace sera de la forme suivante :

ZenTracker - Entity [City [NewCityName]] with ID [9] has the following dirty property [name] Previous value was [London], current value is [NewCityName]

Que veux dire surveiller l’activité des entités par type ?
Quand une entité est chargée, mise à jour, supprimée, créée elle sera tracée par l’intercepteur. A la complétion de la transaction il sera possible de savoir combien une entité d’un type donnée a été chargée.

ZenTracker - Entity <class com.zenika.sample.model.Continent> loaded 2 times
ZenTracker - Entity <class com.zenika.sample.model.City> loaded 70 times
ZenTracker - Entity <class com.zenika.sample.model.Country> loaded 10 times

Et les collections ?
Il sera possible de connaître l’activité au niveau d’une collection. Dans la trace ci dessous, on peut voir par exemple que la collection countries du Continent Asie a été modifiée au premier flush avec un retrait de deux pays, et qu’au troisième flush un nouveau pays a été ajouté.

ZenTracker - COLLECTION [3 - com.zenika.sample.model.Continent.countries] for Entity
Continent [Asie] has been modified !
ZenTracker - During flush <1> REMOVED : <Country [Russie]> <Country [Japon]>
ZenTracker - During flush <3> ADDED : <Country [Zenika]>

Et en ce qui concerne le temps d’exécution des requêtes ?
Sans ajout d’un outil tierce, il est possible d’accéder à toutes les requêtes SQL, savoir combien de fois elles ont été exécutées ainsi que les temps d’exécution (min, max, moyenne)

ZenTracker - Query <select cities0_.COUNTRY_ID as COUNTRY3_1_, cities0_.id as id1_, cities0_.id as id2_0_, cities0_.name as name2_0_, cities0_.COUNTRY_ID as COUNTRY3_2_0_ from CITY cities0_ where cities0_.COUNTRY_ID=?> executed: 10 times. average: 1 min: 0 max: 7

09.20.07

DatePicker pour GWT

Posted in GWT (Google Web Toolkit) at 16:43 par jean-philippe.dournel

Bonjour,

Au moment ou la création de widgets additionnelles à GWT bat son plein, Zenika décide de rentrer dans la danse en publiant aujourd’hui un DatePicker pour GWT. Ce DatePicker propose le grand avantage d’être internationalizable.

Démo : http://www.zenika.com/demos/DatePicker/

Projet : http://code.google.com/p/gwt-datepicker/

09.13.07

Vidéos SpringOne 2007

Posted in Spring at 14:15 par carl.azoury

La dernière SpringOne s’est déroulée à Anvers au mois de juin dernier. Les conférences de cet événement sont souvent de très bonne qualité. C’est ainsi que suite à la demande générale des participants des précédentes éditions, le format en fût modifié par l’ajout d’une journée supplémentaire afin d’avoir moins de conférences en parallèle.

Pour ceux qui n’ont pas pu assister à ces présentations, BeJug, le Belgium Java User Group, met à disposition les vidéos de ces conférences depuis l’un de leurs sites web.

Des vidéos des différentes conférences internationales sont disponibles depuis leur site, mais celles concernant la SpringOne 2007 sont accessibles via le lien suivant :

Vidéos SpringOne 2007
Bon visionnage !

08.10.07

Intégration de MooTools Morph Effect à GWT

Posted in GWT (Google Web Toolkit) at 17:10 par benjamin.houdu

Introduction

Cet article présente l’intégration d’un effet de la librairie Javascript MooTools (www.mootools.net) à GWT. FX.Morph de MooTools permet de transformer par animations un élément, d’un état défini par une classe CSS de départ vers une classe CSS d’arrivée : le framework calcule et génère le morphing de la transition!

Read the rest of this entry »

08.03.07

GWT databinding: English version

Posted in GWT (Google Web Toolkit) at 15:07 par jean-philippe.dournel

The purpose of this tutorial is to explain how Deferred Binding works in GWT and the use of the Generator class to create classes dynamically. The example we will use throughout this tutorial is the creation of an utility class which provides access to the properties of an object using the field names. This mechanism will prove very useful for solving recurrent problems like connecting a model to a GUI (also know as databinding).
You can download the tutorial in PDF format (PDF article) and the code (GWT_Binding).

« Previous entries Project-Id-Version: WordPress 2.5.1 Report-Msgid-Bugs-To: wp-polyglots@lists.automattic.com POT-Creation-Date: 2008-04-25 15:51+0000 PO-Revision-Date: 2008-04-26 12:53-0000 Last-Translator: Amaury Balmer Language-Team: French (France) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rosetta-Version: 0.1 X-Poedit-Country: FRANCE X-Poedit-SourceCharset: utf-8 X-Poedit-KeywordsList: _e;_c;__ X-Poedit-Basepath: . Plural-Forms: nplurals=2; plural=n>1 X-Poedit-Language: French Project-Id-Version: WordPress 2.5.1 Report-Msgid-Bugs-To: wp-polyglots@lists.automattic.com POT-Creation-Date: 2008-04-25 15:51+0000 PO-Revision-Date: 2008-04-26 12:53-0000 Last-Translator: Amaury Balmer Language-Team: French (France) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rosetta-Version: 0.1 X-Poedit-Country: FRANCE X-Poedit-SourceCharset: utf-8 X-Poedit-KeywordsList: _e;_c;__ X-Poedit-Basepath: . Plural-Forms: nplurals=2; plural=n>1 X-Poedit-Language: French