
Au même titre que le Paris JUG, le Breizh JUG organise des soirées afin de présenter les technologies / plateformes qui nous entourent. A ce titre, Nicolas De Loof nous a proposé de venir parler du langage Scala. Après notre passage au Paris JUG au mois d’Avril, c’est avec un grand plaisir que nous avons accepté de faire la présentation (mise à jour pour l’occasion). Cette dernière a été l’occasion de présenter les principales notions du langage, ainsi que quelques nouveautés de la version 2.8 et notamment les Collections.
La deuxième partie de soirée a suscité quelques questions. Ce fut très constructif. De nombreux sujets ont été abordés tels que l’intégration de modules Scala dans une application Java, les performances… Mention spéciale troll à Nicolas pour sa question sur les pointeurs de fonction de Microsoft en 2001 !
Cette soirée s’est poursuivie dans un bon petit restaurant rue St Georges, où, entre autres, nous avons discuté des méthodes agiles, de diagrammes de classes ayant des formes de Dalaï Lama ou bien encore de Mammouth (pour de plus amples informations, demandez à Nicolas, il est expert dans ce domaine !).
Enfin pour ceux qui hésiteraient à se rendre au Breizh JUG, nous vous y encourageons fortement. Vous y rencontrerez des personnes avec lesquelles les échanges sont enrichissants et il y règne une très bonne ambiance.
Vous trouverez les slides de notre présentation à cette adresse, ainsi que la vidéo sur Parleys à cette adresse.
Merci encore au Breizh JUG !
La soirée Scala du Paris JUG a eu lieu ce Mardi 13 Avril, et à ce titre nous tenions à remercier les organisateurs de cet événement ainsi que les personnes présentes dans la salle.
Merci aussi pour la troisième mi-temps qui a été l’occasion de retours positifs sur les présentations de la soirée et qui nous a permis de constater que ces dernières ont donné envie à beaucoup de personnes de s’essayer à Scala. En effet, comme l’explique Nicolas Martignole dans son article, cette troisième mi-temps permet de poursuivre les discussions et les débats que les présentations engendrent mais aussi de rencontrer des personnes passionnées comme nous le sommes.
Vous trouverez les slides de notre présentation à cette adresse.
Merci encore et à bientôt !
Lors du XKE de Février, nous avons eu l’occasion de tester les outils Flash Catalyst et Builder en version beta. Pour ce faire, nous avons décidé de faire un projet et de présenter les facilités et les difficultés que nous avons rencontrées.
Concernant le projet, ce dernier est simple : mettre en place une application permettant de lister des voyages, et à partir d’une image Photoshop, nous allons définir les états/transitions dans Flash Catalyst, et brancher un backend Java avec Flash Builder. Cette série d’articles reprendra ces points avec nos analyses et critiques.
Avant toute chose, nous allons commencer par nous excuser auprès des designers/graphistes : n’étant pas notre coeur de métier, le design et l’ergonomie de l’application pourra peut être heurter la sensibilité de certains de nos lecteurs.
Lire la suite de cet article »

Lors de la finalisation de l’un de nos développements Flex, nous avons mis en place des styles pour les différents composants de l’application. Mais il se trouve que nous avons rencontré une petite difficulté sur le composant DataGrid. A noter également l’utilisation de Flex 4 dans cet exemple, mais ce problème est aussi valable avec Flex 3.
Les styles
Avec Flex, les styles sont très simples à mettre en place, et se font de la même manière qu’en HTML :
- Soit via la définition des styles directement dans le fichier MXML :
<mx:style>
myStyle {
fontFamily: "arial";
background-color:#FFFFFF;
}
</mx:style>
- Soit via la définition d’une feuille de styles CSS, déclarée dans le fichier MXML :
<mx:style source="css/xebia.css"/>
Concernant le composant DataGrid, modifier les couleurs des lignes devient trivial avec la propriété alternatingItemColors. Néanmoins la situation se corse lorsque nous devons appliquer ces couleurs aux lignes d’une seule colonne…
Lire la suite de cet article »
Récemment, lors d’une intervention sur une application Flex, j’ai été confronté à un problème de migration d’une version de la librairie Spring BlazeDS Integration (passage de la version 1.0.0.RC2 à 1.0.0.M2). Cette librairie permet la configuration de BlazeDS à travers Spring de façon simplifiée. J’ai voulu configurer un appel à un service Java en Remoting.
Afin de déclarer votre service Remote, les lignes suivantes doivent être ajoutées dans votre applicationContext.xml :
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/*=mySpringManagedMessageBroker
</value>
</property>
</bean>
<!-- Envoie les requêtes au "message broker" -->
<bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>
<!-- Le MessageBroker de BlazeDs -->
<bean id="mySpringManagedMessageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean" />
<!-- Service myService -->
<bean id="myService" class="com.xebia.impl.MyServiceImpl" />
<flex:remoting -destination message-broker="mySpringManagedMessageBroker" destination-id="myServiceDest" ref="myService" />
Ainsi que la référence au fichier xsd : http://www.springframework.org/schema/flex/spring-flex-1.0.xsd
Malheureusement, au démarrage de votre application, vous aurez cette erreur :
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 67 in XML document from ServletContext resource [/WEB-INF/classes/applicationContext-service.xml] is invalid;
nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'flex:remoting-destination'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
Pourtant cela fonctionnait parfaitement avec les versions précédentes de Spring BlazeDS Integration …
Lire la suite de cet article »
Pour les besoins de l’un de nos développements Flex, nous avons utilisé les validateurs Flex. De base, le framework nous fournit un ensemble de validateurs (StringValidator, EmailValidator…), mais il se trouve qu’ils ne répondaient pas tous à l’ensemble de nos besoins. En effet, nous avions besoin de valider la longueur d’une suite de chiffres, mais le NumberValidator ne permet pas de valider la longueur… De plus, nous avions aussi besoin d’une longueur minimale…
Heureusement, il est possible d’écrire votre validateur : il suffit de coder une classe ActionScript qui hérite de mx.validators.Validator et de surcharger la méthode doValidation(). Voici notre validateur permettant de contrôler qu’une suite de chiffres doit être comprise entre une longueur minimale et une longueur maximale.
Lire la suite de cet article »
Lors du développement d’une application, j’ai été confronté à un problème avec l’intégration de BlazeDS et de Spring Security. En effet lorsque je me connectais, je pouvais accéder à l’application. Mais lorsque je fermais, ouvrais le navigateur puis me reconnectais, une erreur apparaissait :
flex.messaging.LocalizedException: The FlexSession is invalid.
at flex.messaging.FlexSession.checkValid(FlexSession.java:906)
at flex.messaging.FlexSession.getUserPrincipal(FlexSession.java:225)
at flex.messaging.HttpFlexSession.getUserPrincipal(HttpFlexSession.java:272)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
at com.wavecom.ui.util.AddToMDCFilter.doFilter(AddToMDCFilter.java:68)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
Lire la suite de cet article »
Dans les précédents articles sur Flex, nous avons vu la mise en place d’une galerie d’images ainsi que le drag and drop. Ce billet sera consacré à la création de composants Flex génériques et réutilisables. Nous prendrons comme exemple un formulaire classique permettant de gérer les permissions d’un utilisateur.
Lire la suite de cet article »
Dans les précédents billets consacrés à Scala, nous avons traité du mécanisme d’inférence et des constructeurs et méthodes.
Dans ce billet, nous allons étudier les interfaces en Scala. Celles-ci ont peu de similarités avec les interfaces en Java. Le langage Java ne permet pas de faire de l’héritage multiple, mais les interfaces permettent en quelque sorte de contourner ce problème.
Lire la suite de cet article »
Après avoir étudié dans un précédent billet la mise en place d’une galerie d’image, nous allons voir le drag and drop. Tous les composants Flex supportent le drag and drop, mais certains composants dont le Tree, la List et le DataGrid possèdent quelques options supplémentaires.
A travers ce billet, nous allons mettre en place le drag and drop pour le composant List.
Lire la suite de cet article »