Amin Fathallah

 

Spring Security Core Plugin, la sécurité avec Grails

Article publié par Amin Fathallah le 13 décembre 2011.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

Mots-clefs :,

Certains d’entre vous ont peut-être déjà constaté la grande simplicité de mise en place de Spring Security dans une application Grails (si ce n’est pas le cas, je vous invite à lire l’article Grails Spring Security, la sécurité facile publiée par Aurélien Maury sur le sujet).

Depuis cet article, les développements du plugin Acegi ont été arrêtés, au profit du plugin officiel Spring Security Core. Voici donc un petit tutoriel mis à jour, pour installer une gestion des utilisateurs, avec gestion des rôles, filtres URL/Rôles avec le plugin Spring Security Core. Cela servira de base pour la suite de l’article Facebook Connect avec Grails qui traitera le sujet de l’intégration de Facebook Connect avec Spring Security dans Grails.

Cet article s’adresse aux personnes ayant déjà une expérience autour du framework Grails. Pour les autres, je vous invite vivement à lire la série d’articles NoThunes, naissances d’un projet Grails publiée par Aurélien Maury.

Lire la suite de cet article »

Composant Scroll Avec jQuery

Article publié par Amin Fathallah le 30 novembre 2011.

Catégorie(s) : Java / JEE, RIA

 

11 commentaires »

Mots-clefs :

Dernièrement, j’ai participé au développement d’un Framework de composants visuels en HTML, jQuery et Java. Parmi ces composants, nous avons mis en place une grille de données évoluée avec des fonctionnalités étendues (Support du drag and drop, rafraichissement partiel de la page, …). Ce composant est intégré dans une application web utilisée la majorité de temps depuis un terminal tactile. Pour naviguer à travers les données, la grille de données utilisait un contrôle de pagination classique dans le style ci-dessous :

Ce type de pagination contraint l’utilisateur à effectuer plusieurs clics pour avancer à travers les données paginées, et atteindre sa page cible. Pour améliorer ce comportement, un ergonome et moi avons proposé une nouvelle stratégie de pagination permettant d’atteindre la page souhaitée avec un minimum de clics, tout en gardant un comportement proche d’une pagination classique (pagination des pages). Le résultat de notre travail est un contrôle scroll permettant de paginer à travers les données en utilisant la fonctionnalité drag-and-drop.

L’expérience tactile des utilisateurs et la résolution fixe du terminal nous imposait certaines règles à respecter pour une interaction facile et aisée avec l’application :

  • La barre de scroll doit avoir une taille fixe (56 pixels dans mon exemple) pour mieux interagir avec les doigts des utilisateurs.
  • Le contrôle scroll (boutons de navigation+espace de scrolling) doit avoir une hauteur fixe selon le nombre de lignes par page et la résolution du terminal. (L’affichage du scroll navigateur est banni)

Une fois le travail réalisé, j’ai trouvé intéressante l’idée de partager cette expérience de code avec des personnes sensibles à l’ergonomie et à l’utilisabilité des interfaces web.

Lire la suite de cet article »

Facebook Connect avec Grails

Article publié par Amin Fathallah le 19 août 2011.

Catégorie(s) : Java / JEE

 

Un commentaire »

Facebook Connect est une librairie qui permet aux sites web de déléguer leur processus d’identification à Facebook. L’intégration de Facebook Connect dans un site web permet ainsi de s’affranchir du processus d’inscription. Facebook Connect simplifie l’inscription et l’identification en utilisant l’identité Facebook de chaque visiteur.

L’API Facebook Connect propose plusieurs fonctions :

  • Trusted Authentification, qui permet aux internautes de se connecter aux services partenaires avec leur compte Facebook (même principe qu’Open ID).
  • Real Identity, qui permet aux internautes d’afficher et de revendiquer leur identité réelle (même principe que Real Name d’Amazon).
  • Friend Linking, qui permet aux internautes de porter leur profil vers d’autres services Web (même principe que Data Availability).
  • Dynamic Privacy, qui permet aux internautes d’exporter leurs données personnelles et leurs données de confidentialité vers d’autres systèmes (même principe que Data Portability).
  • Social Distribution, qui permet aux membres de notifier leurs amis des actions qu’ils effectuent sur les sites partenaires (même principe que le projet Beacon).

Dans ce billet, nous allons :

  • Expliquer les stratégies d’intégration de l’api Facebook Connect avec une application externe.
  • Créer une application Facebook pour l’intéraction entre Facebook et notre exemple.
  • Installer le plugin Facebook Connect.
  • Configurer notre exemple pour utiliser les services Facebook Connect.
  • Créer un module de connexion avec Facebook Connect.

Cet article s’adresse aux personnes ayant déjà une expérience autour du framework Grails. Pour les autres, je vous invite vivement à lire la série d’articles NoThunes, naissance d’un projet Grails publiés par Aurélien Maury.

Lire la suite de cet article »

Customiser les Tooltips JFreeChart

Article publié par Amin Fathallah le 30 août 2010.

Catégorie(s) : Java / JEE

 

Un commentaire »

Mots-clefs :,

J’ai récemment eu quelques difficultés à customiser les styles (couleurs, fonts, …) des Tooltips générés par l’API JFreeChart.
Quelques recherches sur le sujet m’ont permis de constater que je n’étais pas le seul à rencontrer des difficultés pour modifier les styles par défaut fournis par l’API JFreeChart.
L’API JFreeChart étant assez mal documentée sur le sujet, j’ai du fouiller dans le code source de l’api pour trouver mon bonheur. Comme dit le proverbe, « Pour avoir de l’eau claire, il n’est que d’aller à la source ».
Ayant finalement trouvé une solution au problème, je me propose de la partager au travers de ce billet.

Lire la suite de cet article »

JMS/ActiveMQ : Spring vs Grails

Article publié par Amin Fathallah le 31 mars 2010.

Catégorie(s) : Java / JEE

 

9 commentaires »

Vous avez peut être entendu parler de Grails, ce nouveau framework Web Java qui vise à fournir une solution simple, rapide et efficace pour créer des applications Web JEE. Grails est une plateforme de développement qui grâce à son système de plugins intègrent plusieurs APIs et frameworks de l’écosystème Java visant ainsi à fournir une stack complète packagée et intégrée pour répondre d’une manière efficace et élégante aux différentes problématiques liées à la création des applications d’entreprises orientées Web…

Dans ce premier billet, nous nous attarderons sur la comparaison entre deux implémentations d’une application utilisant JMS et ActiveMQ : une première implémentation avec Spring et JMS et une deuxième avec le plugin grails-activemq.

Lire la suite de cet article »

Selenium – Could not start Selenium session: Internal Server Error

Article publié par Amin Fathallah le 19 janvier 2010.

Catégorie(s) : Java / JEE

 

2 commentaires »

Lors de l’intégration des tests unitaires Selenium avec Hudson sur un environnement graphique Linux, j’ai été confronté à l’exception « Selenium – Could not start Selenium session : Failed to start new browser session : Error while launching browser » qui empêchait Selenium Remote Control (RC) d’ouvrir une instance du navigateur Firefox pour le jeu des tests.

La trace de l’exception est la suivante :

java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: Error while launching browser
	at com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:89)
	at com.mycompany.selenese.util.HomePageTest.setUp(BaseTestCase.java:39)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
(30 more lines...)

En fouillant un peu, j’ai constaté que cette exception est dûe principalement à une mauvaise configuration du profil Firefox utilisé pour le jeu des tests. Il est cependant possible de la résoudre en positionnant la variable browser avec la valeur « *firefox » suivie d’un espace et du chemin absolu du bin Firefox sur le système cible (firefox.exe sous windows et firefox-bin sous linux).

Lire la suite de cet article »

Seam : Repenser l’architecture des applications web ?

Article publié par Amin Fathallah le 3 juin 2009.

Catégorie(s) : Java / JEE

 

6 commentaires »

Mots-clefs :, , , , ,

Seam est un framework qui permet de simplifier le développement des applications web complexes. Seam utilise la plupart des concepts de la spécification JAVA EE 5 qui vise à faciliter le développement et l’intégration des applications entreprises. Seam fournit un modèle de composant, une API et des annotations pour faciliter l’intégration des standards Java EE 5 telles que JSF (Java Server Faces), EJB 3, et JPA (Java Persistence API).

Dans ce billet, nous allons essayer d’évaluer ce framework en menant une étude comparative entre deux prototypes basés sur le même socle fonctionnel. Un premier prototype en JSF/EJB3/JPA et un deuxième se basant sur le même socle technique mais intégrant Seam. L’étude va porter sur plusieurs critères tel que la maturité de la solution, la pérennité, la complexité de mise en œuvre, le coût de développement etc.

Au programme :

Lire la suite de cet article »

Améliorer l’écriture de vos tests Selenium

Article publié par Amin Fathallah le 8 avril 2009.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

Mots-clefs :

Selenium est une suite d’outils permettant d’écrire des tests fonctionnels sur une application web. Il permet d’une part de valider les fonctionnalités de l’application web, et d’autre part de tester sa compatibilité avec des environnements clients hétérogènes. Nous avions déjà mentionné Selenium il y a quelques mois dans un article dédié à l’outil Selenium Grid, qui permet de lancer les tests Selenium en parallèle (afin de réduire le temps d’exécution de la batterie de tests).

Au début, vous écriviez vos tests en HTML avec l’outil Selenium IDE. Avec le temps, le nombre de tests ne cessent d’augmenter ainsi que la charge de travail nécessaire pour les maintenir et les mettre à jour.

L’écriture des scénarios de tests demandent beaucoup de temps. Les intégrateurs HTML ont tendance à changer de façon fréquente la structure des pages HTML, les identifiants des éléments UI, les noms des classes CSS etc.

L’écriture des tests Selenium a plusieurs limitations :

  • Jouer plusieurs fois un scénario de test avec des données différentes nécessite l’écriture de plusieurs tests.
  • Les tests Selenium sont très dépendants de la structure des pages. Une petite modification dans les pages entraîne une mise à jour de plusieurs tests.
  • La démarche d’écriture des tests et la génération des tests unitaires en java est manuelle. Pour automatiser vous devez coder vos propres outils.
  • Les composants UI d’un test Selenium ne sont pas réutilisés dans plusieurs tests.

Un projet sous le nom de Tellurium permet d’améliorer la démarche d’écriture des tests Selenium.

Lire la suite de cet article »

Intégrer Hibernate avec GWT sans douleur

Article publié par Amin Fathallah le 17 décembre 2008.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

Mots-clefs :, ,

Avez-vous essayé d’utiliser directement vos objets du Domaine directement dans votre application GWT sans avoir une longue liste d’erreurs ? Avez-vous essayé de résoudre le problème en créant des objets DTO (Data Transfer Object) ou en adaptant vos objets du Domaine ? Existe-t-il une solution légère et transparente pour faire cohabiter Hibernate avec GWT ?

Dans cet article, nous présenterons une solution simple et propre pour vous permettre une meilleure intégration d’Hibernate avec GWT.

Ce billet se découpe de la façon suivante :

Lire la suite de cet article »

 

Page optimized by WP Minify WordPress Plugin