Upload
mederic-morel
View
1.075
Download
0
Tags:
Embed Size (px)
Citation preview
Spring One
11 & 12 juin 2008Anvers, Belgique
VersionDate
Auteur
1.013/06/2008Arnaud Cogoluègnes
2Spring One 2008
Historique des révisions du document
A. CogoluègnesCréation du document13/06/20081.0AuteurModificationsDateVersion
Spring One 20083
Spring One 2008
Actualités récentes sur Spring & SpringSource
La conférence
Restitution des sessions
Conclusion
Plan
Spring One 20084
Spring One 2008
Actualités récentes sur Spring & SpringSource
La conférence
Restitution des sessions
Conclusion
Plan
Spring One 20085
Spring One 2008
ActualitésQuelques rappels
Novembre 2007 : Interface21 devient SpringSource
Novembre 2007 : Sortie de Spring 2.5
Janvier 2008 : SpringSource rachète CovalentCovalent : contributeur et support pour Tomcat et Apache HTTPD
Avril 2008 : sortie beta de Spring Source Application Platform
Serveur d’applicationsModulaire dans son infrastructure et pour les applicationsBasé sur OSGi
Spring One 20086
Spring One 2008
Actualités récentes sur Spring & SpringSource
La conférence
Restitution des sessions
Conclusion
Plan
Spring One 20087
Spring One 2008
La conférence Présentation
3ème édition
11 & 12 juin 2008 à Anvers, Belgique
Organisée par BeJUGBelgian Java User Group
Quelques Chiffres400 participants de 25 pays30 sessions, 2 keynotes27 intervenants (22 de SpringSource)
Partenaires : Oracle, JetBrains, CapGemini Belgique
Spring One 20088
Spring One 2008
La conférence Les sessions
Spring One 20089
Spring One 2008
Actualités récentes sur Spring & SpringSource
La conférence
Restitution des sessions
Conclusion
Plan
Spring One 200810
Spring One 2008
La conférence Les sessions
Spring One 200811
Spring One 2008
Welcome
Par Stephan JanssenFondateur BeJUGFondateur ParleysOrganisateur JaVoxx (ex-JavaPolis)
JaVoxxJavaPolis devient JaVoxx8-12 décembre 2008Inscription à partir de juillet
Spring One 200812
Spring One 2008
Welcome Parleys.com
Site de publication de vidéosSpringOne, JavaPolis, JavaZone…
Présentation du business modelEspace payant, gratuit
Démo :Client Flex et GWTMode autonomePublications
Début de la publication de SpringOne 2008 : en septembre
Spring One 200813
Spring One 2008
La conférence Les sessions
Spring One 200814
Spring One 2008
Keynote Jour 1
Par Rod JohnsonDirecteur Général SpringSourceCréateur de SpringAuteur
• Expert One-on-One J2EE Design and Development (Programmer to Programmer)
• Expert One-on-One J2EE Development without EJB • Professional Java Development with the Spring Framework
Spring est devenu un standard de facto
Suprématie de Spring
Certification Spring par SpringSource
Spring One 200815
Spring One 2008
Keynote Jour 1 Spring 2.5
Les “nouveautés” de Spring 2.5
Injection de dépendances avec annotations@Autowired + @Qualifier@Resource + @PostConstruct + @PreDestroy@Component
• Plus-value pour l’AOP, la sémantique, le rôle et le component-scanning
JMX
=> Une partie plutôt technique (contrairement au début)
Spring One 200816
Spring One 2008
Keynote Jour 1 Portfolio (Misc.)
Spring SecuritySortie le mois dernierRappel sur Acegi et sa verbositéPlus-value de Spring Securité (AOP, namespace…)
Spring IntegrationLes Enterprise Integration Pattern à la Spring
Tests d’intégrationNouveaux supports pour JUnit 4.4 et TestNGSupport moins intrusifPlutôt inclus dans Spring Core que dans le portfolio
Spring One 200817
Spring One 2008
Keynote Jour 1 Portfolio (Web)
Par Keith DonaldFondateur SpringSourceCréateur de Spring Web FlowLeader sur les projets Web du portfolio
Objectifs de Spring Web (2.5 et à venir)Modèle de programmation plus simpleSupport JSFSupport JavaScript
Spring One 200818
Spring One 2008
Keynote Jour 1 Portfolio (Web)
Spring MVCSupport pour les annotationsVolonté de sortir du modèle d’héritage (pour les contrôleurs)Typage fortConvention plutôt que configuration
=> l’ancien modèle pourrait être abandonné dans Spring 3.0
Spring Web Flow 2Sortie mai 2008Plus facile à utiliser que la v.1Configuration allégée (moins verbeuse)Fonctionnement asynchroneMise à jour partielle de page (“view scope”)
Spring One 200819
Spring One 2008
Keynote Jour 1 Portfolio (Web)
Spring JavaScriptAPI pour les pages webBasé sur DOJOIntégration avec Spring MVC et Spring Web Flow
Spring FacesUtilisation de JSF pour la partie vueDans un environnement managé par Spring
=> Enrichissement et ouverture de la partie web de Spring
Spring One 200820
Spring One 2008
Keynote Jour 1 Middleware
Rod Johnson a souligné la différence entre :
Notre modèle de programmation• Applications Spring• Injection de dépendances• Modulaire
L’environnement d’exécution• Archive monolithique (WAR)
Les applications web ont supplanté les autres éléments de la pile J2EE / JEE
D’où l’absence des EAR dans la comparaison précédente
Spring One 200821
Spring One 2008
Keynote Jour 1 Présentation de SpringSource Enterprise
Contrat à souscrire
Spring Enterprise EditionGarantie de correction de bugs, de patchVersion instrumentalisée de Spring
SpringSource Performance SuiteTool Suite (outils Eclipse)Application Management Suite
• Console (application Spring)• Debug, management, stats
Advanced Pack For Oracle• Performances, extension
Spring Source Support
Spring One 200822
Spring One 2008
Keynote Jour 1 SpringSource Enterprise
SpringSource Tool SuitePlugins EclipseDistribution EclipsePersonal Use License
Démo par Christian DupuisLead de Spring IDEResponsable des outils Spring
FonctionnalitésDashboardTaskForce TutorialIntégration de S2AP (vue Server de WTP)Diagnostic d’erreursContent assist (ex. : version d’un bundle OSGi)
Spring One 200823
Spring One 2008
Keynote Jour 1 Actualités
Rachat de CovalentSpringSource leader pour le support et la contribution Tomcat
Peter Cooper-Ellis chez SpringSourceAncien directeur technique de WebLogicChez SpringSource : Engineering & Product Management
Prédictions de Rod Johnson :Compétition sur le marché des serveurs d’applicationsFin du serveur d’applications monolithique -> modulaireFusion serveur d’applications – ESB ?
Spring One 200824
Spring One 2008
Keynote Jour 1 Conclusion
Rappel de l’actualité autour de Spring et surtout de SpringSource
Opération de promotionLes outilsLa plateformeLes produits et l’expertise
Une période clé pour Spring et pour SpringSource
Spring One 200825
Spring One 2008
La conférence Les sessions
Spring One 200826
Spring One 2008
Spring 2.5 on the way to 3.0
Juergen HollerCo-fondateur de SpringContributeur le plus actif sur Spring CoreCo-auteur de “J2EE development without EJB”
Agenda :Etat de l’art de Spring 2.5Introduction à Spring 3.0
Spring One 200827
Spring One 2008
Spring 2.5 on the way to 3.0 Spring 2.5
Rappels sur Spring 2.5Support Java 1.6 (JDBC 4.0, JMX)Compatible 1.5 & 1.4Plus compatible 1.3
Noyau de Spring 2.5Extensions pour bénéficier de 1.5Mais reste fondamentalement 1.4
Intégration AspectJLoad time weavingDéjà dans Spring 2.0
Spring One 200828
Spring One 2008
Spring 2.5 on the way to 3.0 Spring 2.5
Support API JEE 5JPA, EJBServlet 2.5, JSP 2.1, JSF 1.2
Support pour EclipseLink et WebSphere JPA
AnnotationsJSR 250 (@Resource, @PostConstruct, @PreDestroy)@TransactionAttribute (EJB), @PersistenceContext, @PersistenceUnit@Autowired + @Qualifier@Component + component scanning@Configurable & AspectJPour Spring MVC
Tests unitairesJUnit 4.4, TestNG
Spring One 200829
Spring One 2008
Spring 2.5 on the way to 3.0 Recommandations pour Spring 2.5
Option 1 :XML pour chaque composant (bean)Complété par des annotations
=> Adaptée pour la couche métier
Option 2 :Classes annotéesComponent scanning
=> Adaptée pour les contrôleurs web
Spring One 200830
Spring One 2008
Spring 2.5 on the way to 3.0 Recommandations pour Spring 2.5
Option 1 :Externalisée
• Centralisée mais code supplémentaire à maintenirPossibilitée de changer sans recompilation
Option 2 :EmbarquéNécessite généralement des conventionsPeut nécessiter une recompilation
=> Savoir combiner les deux judicieusement
Spring One 200831
Spring One 2008
Spring 2.5 on the way to 3.0 Spring 3.0
Planning :2.5.6 en juillet3.0 M1 en août (REST, EL)3.0 GA pour Q4 2008
Nouveau noyau Java 5Transparent pour l’utilisateur
Compatible J2EE 1.4
Nouvelles fonctionnalités du conteneur et EL++
Spring One 200832
Spring One 2008
Spring 2.5 on the way to 3.0 Spring 3.0 Web
Portlet 2.0
Servlet 3.0
REST support
Gestion de conversation
Spring One 200833
Spring One 2008
Spring 2.5 on the way to 3.0 @deprecated & suppression ?
Support pour Commons Attributes
Support pour TopLink
Hiérarchie des contrôleurs MVC
Hiérarchie des tests JUnit 3.8
Spring One 200834
Spring One 2008
Spring 2.5 on the way to 3.0 Conclusion
Des similarités avec la keynote
Nouveautés pas vraiment nouvelles
Plongeon intéressant dans
Le noyau Spring 2.5
Spring 3.0
Spring One 200835
Spring One 2008
La conférence Les sessions
Spring One 200836
Spring One 2008
OSGi programming model
Adrian ColyerDirecteur technique de SpringSourceLead de AspectJCo-auteur “Eclipse AspectJ”Fondateur AJDT (outils Eclipse pour AspectJ)Impliqué dans S2APFondateur Spring Dynamic Modules
Spring One 200837
Spring One 2008
OSGi programming model OSGi ?
Dynamic Module System for Java
ModuleDivision d’un système en modulesRègles de visibilitéProcessus de résolutionVersionning
DynamiqueOpérations possibles à l’exécution (install, start, stop, uninstall, update)
Orienté servicePublication de serviceService registry
Spring One 200838
Spring One 2008
OSGi programming model Historique
Origine : OSGi Alliance
1999 : Java embarqué et network devices
2003 : support pour 4 composants mobiles
2004 : adoption dans l’Open Source (ex. : Eclipse)
2006 : premières utilisations coté serveur
Implémentations (Open Source)Eclipse EquinoxApache FelixKnopflerfish (Makewave)
Spring One 200839
Spring One 2008
OSGi programming model Concepts
Il faut un conteneur : OSGi Service Platform
Compendium ServicesDes services optionnelsEx. : console d’admin, HTTP (ajout de servlet)
Unité de déploiement (“bundle”)JARManifest (MET-INF/MANIFEST.MF)
• SymbolicName, Version, Name…
Spring One 200840
Spring One 2008
OSGi programming model Concepts
DépendancesImport-PackageLes classes du bundle B sont visibles pour AClassloading géré par le conteneurA peut faire des imports des classes de B
Fournir des classes aux autres bundles Export-Package
Service RegistryPublication et consommation de services
A
B
Spring One 200841
Spring One 2008
OSGi programming model Bénéfices
Modularité forte (module = black box)
Gestion du cycle de vie
Versionning
Démos avec Equinox, sous EclipseConsoleVersionning concurrent
app
lib A lib B
lib C v1 lib C v2
Spring One 200842
Spring One 2008
OSGi programming model Pour l’entreprise
Mettre OSGi coté serveur ?
Plusieurs architectures possiblesAutonome dans une application webBase d’un serveur d’applications (modulaire)
=> Ne permet pas de systématiser les applications OSGi powered
Spring One 200843
Spring One 2008
OSGi programming model Challenges pour OSGi coté serveur
Gestion de l’aspect dynamiqueUne application doit s’attendre à voir ses modules disparaître, réapparaître…
Activation asynchroneFaire attendre les clients
Difficulté pour tester
Concurrence, gestion des threads
Problème de classloadingEx. : le bundle Hibernate ne sait pas ce qu’il doit importerGestion des dépendances (pas de distribution sous forme de bundle)
Spring One 200844
Spring One 2008
OSGi programming model Dépôt OSGi de SpringSource
Bundle OSGi d’environ 300 bibliothèques Open Source
http://www.springsource.com/repository/app/
Spring One 200845
Spring One 2008
OSGi programming model Dépôt OSGi de SpringSource
Spring One 200846
Spring One 2008
OSGi programming model Conclusion
Les bases pour comprendreL’intérêt de OSGiLes problématiques d’un middleware OSGi à destination des applicationsLe fonctionnement de S2AP
Questions :OSGi adapté pour les applications ?Problématique technique ?Changement d’habitudes (modèle de programmation, de packaging) ?
Spring One 200847
Spring One 2008
La conférence Les sessions
Spring One 200848
Spring One 2008
Spring Dynamic Modules
Costin LeauLead Spring ModulesContributeur/lead Spring Dynamic Modules
Spring Dynamic Modulesaka Spring DMex-Spring OSGi
Objectif : utiliser OSGi sans code/préoccupation spécifique
Le projet :Licence ApacheDirigé par SpringSourceContributeurs : BEA, Oracle
Spring One 200849
Spring One 2008
Spring Dynamic Modules Problèmes adressés
Spring DMConfigure les bundles
• Création, décorationInjection de service
• Inter-bundle
=> POJO dans OSGi
Spring One 200850
Spring One 2008
Spring Dynamic Modules Fonctionnalités
Bundle = Application Context
Création automatiqueÀ partir de META-INF/spring/*.xml
Aucune dépendance vers OSGi
Contexte Spring OSGiConfigurableOsgiBundleApplicationContext
Spring One 200851
Spring One 2008
Spring Dynamic Modules Services
Les services (OSGi) sont des beans Spring
Exposition dans le registry via namespace Spring DM
<osgi:service id="simpleServiceOsgi" ref="simpleService" interface="org.xyz.MyService" />
Référence à un service
<osgi:reference interface="org.xyz.MyService" />
Spring One 200852
Spring One 2008
Spring Dynamic Modules Misc.
CardinalitésApposer des cardinalités sur des beans récupérés du registry (obligatoire, optionnel…). Le bundle (contexte) se charge en conséquenceNotions de List/Set de services
Listener : écouter les événements des servicesRegister/unregister
Tests unitairesFramework de tests unitairesSimulation de déploiementMulti-plateformes OSGi (Equinox, Felix, Knopflerfish)
Spring One 200853
Spring One 2008
Spring Dynamic Modules Web
ChallengesClass et resource loadingJSP, taglib
Les solutions existantes pas satisfaisantesHTTP ServiceEquinox Extension Registry
Spring DM s’intégre avec le conteneur WebSolution pour Tomcat 5.5/6.0, Jetty 6.1, Jasper 2Spring DM 1.1 (version GA pour l’instant : 1.0.2)
Spring One 200854
Spring One 2008
Spring Dynamic Modules Conclusion
Adresse les problématiques de OSGi concernant le développement d’applications d’entreprises
Doit permettre de garder… Ses habitudesSon modèle POJO
… tout en devenant OSGi-powered
Spring One 200855
Spring One 2008
La conférence Les sessions
Spring One 200856
Spring One 2008
Spring Transaction Choices for Transaction
Juergen Holler
Objectifs :
Distinguer les différents types de transactions
Démythifier certaines idées reçues
Bonnes pratiques concernant les transactions
Spring One 200857
Spring One 2008
Spring Transaction Choices for Transaction Types de transactions
Natives : une base de données, JDBC
Mapping objet-relationnel : transaction et problématiques liées à l’outil
Message Broker : orienté message
Transaction XA : ressources multiples
Spring One 200858
Spring One 2008
Spring Transaction Choices for Transaction Mythes
XA est obligatoire pour toute application critique
XA est obligatoire avec le mapping objet-relationnel
XA est obligatoire pour JDBC + JMS
Les gestionnaires de transaction JTA sont capables d’effectuer des optimisations intelligentes
=> toujours effectuer un choix approprié=> toujours des concessions à faire
Spring One 200859
Spring One 2008
Spring Transaction Choices for Transaction Misc.
L’attribut transactionnel read-only permet des optimisationsEx. : Hibernate, JDBC en cluster
Privilégier les transactions natives
L’ORM nécessite une intégration spécifiqueEx. : commit/rollback mais aussi flush, cache pour HibernateScope (un contexte de persistance par transaction)
JTAUtilisation du protocole XAGestionnaire de transactions avec un serveur d’applications ou en standalone
Spring One 200860
Spring One 2008
Spring Transaction Choices for Transaction Misc.
L’attribut transactionnel read-only permet des optimisationsEx. : Hibernate, JDBC en cluster
Privilégier les transactions natives
L’ORM nécessite une intégration spécifiqueEx. : commit/rollback mais aussi flush, cache pour HibernateScope (un contexte de persistance par transaction)
JTAUtilisation du protocole XAGestionnaire de transactions avec un serveur d’applications ou en standalone
Spring One 200861
Spring One 2008
Spring Transaction Choices for Transaction Misc.
XA complexe à paramétrer“lent” par nature à cause du recovery logMais avec des garanties très fortes
Etude de cas avec JMSUse case : réception d’un message, opération BD, aknowledgmentAvec XA : “Exactly once semantics”Si erreur dans opération BD => le message peut être relancé => duplication du traitementSolution “manuelle” : détection de message dupliqué (“at least one semantics”)La solution manuelle peut avoir un débit deux fois supérieur à la solution XA
Spring One 200862
Spring One 2008
La conférence Les sessions
Spring One 200863
Spring One 2008
Enterprise Integration Patterns with Spring
Mark FisherLead Spring IntegrationCommiter Spring Core
Rappel : EIP dans Spring CoreSpring RemotingJMS supportScheduling
Spring One 200864
Spring One 2008
Enterprise Integration Patterns with Spring EIP
Rappel sur les EIP
Pipe & Filter
Message Translator
Message Router
Spring One 200865
Spring One 2008
Enterprise Integration Patterns with Spring Objectifs
Fournir une API simple pour les EIP
Avec une base SpringDI, AOP, Remoting, Sécurité, méta-données, annotations
PrincipesCouplage lacheSeparation of concerns
Spring One 200866
Spring One 2008
Enterprise Integration Patterns with Spring Quoi ?
Présentation de l’APIInterfaces : Source, Target…
Exemples de configuration :Namespace XMLAnnotations
Message Bus :“Extension” de l’Application ContextWiring des éléments (ex. : canaux)Gère le scheduling
DémosTirées de la distribution
Spring One 200867
Spring One 2008
Enterprise Integration Patterns with Spring Conclusion
Projet récent (décembre 2007)
API pas encore figée
Implémentation “légère” (à la Spring)
Beaucoup de conceptsTous les EIP
Intégration prévue à la S2AP
Spring One 200868
Spring One 2008
La conférence Les sessions
Spring One 200869
Spring One 2008
Keynote Jour 2
Adrian Colyer
Rob HarropCo-auteur Pro Spring (notamment)Contributeur S2AP
Rappel sur ce qu’a apporté SpringApproche composantConfiguration
Spring One 200870
Spring One 2008
Keynote Jour 2 Les limites du modèle actuel
ModularitéOk pour tout ce qui est design (ex. : programmation par interfaces)Des limites pour le déploiement (monolithique)Pas de gestion de visibilité
VersionningPermet la gestion des contratsMais problèmes :
• Souvent géré à la main (“deploy and pray”)• Concurrence entre plusieurs versions d’une même bibliothèque
Nécessite des mécaniques complexes au niveau du classloading
ExécutionLimitation des serveurs d’applications et du mode de déploiementEmbarquer une plateforme (ex. : OSGi) ne résoud pas tous les problèmes
Spring One 200871
Spring One 2008
Keynote Jour 2 Démos & conclusion
DémosSpring Tool SuitePetClinic sur S2AP
ConclusionMise en évidence de limites et de problématiquesDes démos intéressantesAmener le public à suivre les différentes sessions sur S2AP
Spring One 200872
Spring One 2008
La conférence Les sessions
Spring One 200873
Spring One 2008
Introduction to SpringSource Application Platform
Andy WilkinsonMembre de l’équipe S2AP
Objectifs de la session : utiliser rapidement la plateforme
Démo : installationDécompression de l’archive
Explication de l’arborescenceNoyau de la plateforme dans /libDépendances dans /repositoryLes “librairies” dans /librairies => packaging spécial (extension OSGi)
• Permet de simplifier la gestion des dépendances
Spring One 200874
Spring One 2008
Introduction to SpringSource Application PlatformDémos
Lancement de la plateforme
Explication de la journalisationPeu verbeuseNe dit que ce qu’il faut
Lancement “simple” avec JMXÉvite la syntaxe complexeMonitoring avec JConsole
Démarrage en mode debug
Spring One 200875
Spring One 2008
Introduction to SpringSource Application PlatformConsole de la plateforme
Spring One 200876
Spring One 2008
Introduction to SpringSource Application PlatformDémos
Configuration : fichiers JSONSimple, structuré et lisible
“serviceability” : distinction log et trace
Exemple de déploiement d’une application webVia la consoleVia un répertoire scanné
La plateforme convertit les manifestGestion de header non-OSGi
Spring One 200877
Spring One 2008
La conférence Les sessions
Spring One 200878
Spring One 2008
Building Web Applications with the S2AP
Sam BrannenCommiter Spring Core
Objectifs :montrer les différentes options de déploiement de S2APPassage d’un WAR standard à une application modulaire
Spring One 200879
Spring One 2008
Building Web Applications with the S2APIntroduction
Spring DM se charge du cycle de vie des contextesSimplification de OSGi
SpringSource Application PlatformKernel Spring DMServiceability
• Trace : description détaillée de l’exécution• Log : message important pour l’utilisateur
Notion de “personnalités”• Pour l’instant, personnalité web (ie. Support pour le web)• À venir, personnalité batch
Conteneur OSGi (“small footprint”)
Spring One 200880
Spring One 2008
Building Web Applications with the S2APLes différentes options de déploiement
WAR standardSupport du conteneurComportement identique à Tomcat
Pur OSGiBundle OSGiPour les bibliothèques autonomes, les services globaux, de petites applications web
Shared Lib WARWAR ayant besoin de bundle(s) déployé(s) sur la plateforme
Shared Lib WARWAR mettant à disposition des classes / des services
PAR (Platform Archive)Pour tous les modules d’une applicationSimilaire à un EAR
Spring One 200881
Spring One 2008
Building Web Applications with the S2APDémos des différentes possibilités
ParticularitésLes projets Eclipse peuvent être déployés dans la vue “Server”Shared Lib WAR : l’archive voit sa taille diminuerShared Services WAR : utilisation d’un application contexte OSGi dans web.xmlDes comportements par défaut pour Spring MVC
• Plus de web.xml !Génération d’un PAR à partir d’EclipseDes traces pour chaque applicationLa console d’admin fait apparaître les différents modes
Spring One 200882
Spring One 2008
Building Web Applications with the S2APConclusion
Bonne vue des différentes alternatives de déploiement
Outillage Eclipse bien intégré et semble stable
Les avantages de OSGi mis en évidence pour le web
Questions :Gestion des mécaniques pas trop lourd ?Possibilité d’intégration continue, de déploiement automatique ?Les versions GA des produits prêtes ?Peu de documentation encore
Spring One 200883
Spring One 2008
La conférence Les sessions
Spring One 200884
Spring One 2008
Inside the SpringSource Application Platform
Rob Harrop
Objectifs :Architecture de la plateformeLes difficultés techniquesAnecdotes / historique
Le développement de la plateforme a commencé ces derniers mois
Spring One 200885
Spring One 2008
Inside the SpringSource Application Platform
Spring One 200886
Spring One 2008
Inside the SpringSource Application PlatformArchitecture
Equinox :conteneur OSGiEclipse
SpringSource Dynamic KernelGestion de la concurrence, des IOExtension de Equinox :
• Gestion des threads• Load class weaving
Chargement à la demande des bundles• “small footprint”• Possibilité de récupérer les bundles depuis un dépôt
Spring One 200887
Spring One 2008
Inside the SpringSource Application PlatformConnexion à la console OSGi de la plateforme
Spring One 200888
Spring One 2008
Inside the SpringSource Application PlatformDémonstration de diagnostic d’erreur
Effort particulier pour le diagnostic d’erreur
Démo ClassNotFoundException (bean d’un contexte)Indique le bundleIndique le nom du bean
Démo ClassNotFoundException (dans un manifeste)Propose une correction
Spring One 200889
Spring One 2008
Inside the SpringSource Application PlatformGestion de la concurrence
Une des points les plus difficiles
Equinox pas threadsafe
Solution Utilisation de Spring DMUtilisation des API de concurrence du JDK (java.util.concurrent)
Spring One 200890
Spring One 2008
Inside the SpringSource Application PlatformMisc.
Modification de AspectJ pour les performances
Possibilité de faire des dumpsSnapshot de l’état du systèmeDétection de deadlock
Extension de Equinox pour le load time weavingSupport de ClassFileTransformer (agent)
Spring One 200891
Spring One 2008
Inside the SpringSource Application PlatformConclusion
Plongeon intéressant dans la plateforme
Retour expérience intéressantNaissance de la plateforme
La plateforme est dans un état avancéBeta 6
Pas tout à fait prêt pour la productionStabilité généraleEncore un peu pour les “hacker”
Spring One 200892
Spring One 2008
La conférence Les sessions
Spring One 200893
Spring One 2008
Classloading in OSGi
Frederik SantensLead architect à Ebit
ObjectifsExpliquer le système de classloading de OSGiRetour d’expérience sur le load time weaving sur une plateforme OSGi
Spring One 200894
Spring One 2008
Classloading in OSGiClassloading
Rappel sur le classloading “classique”
À l’exécution, une classe est identifiée parSon nom completSon classloader
Le système de classloading par défaut est linéaireSystem, extension puis bootstrap classloaders
Spring One 200895
Spring One 2008
Classloading in OSGiClassloading avec OSGi
OSGi casse le modèle linéaire
OSGi utilise un système de délégation en réseau
Ce système permet le versionningUtilisation de plusieurs versions d’une même classe
OSGi propose des règles de délégationEx. : java.* est chargé par le classloader parent
C’est ce type de classloading qui permetUne visibilité limitée des classesEt donc une meilleure encapsulation
Spring One 200896
Spring One 2008
Classloading in OSGiRetour d’expérience et conclusion
Retour d’expérience sur la mise en oeuvre du load time weaving en environnement OSGi
But : faire du domaine driven design (injection de services dans les entités)Surmonter un ensemble de problème (limites de Spring DM)
ConclusionUne session très technique et très pointueTechnique de classloading intéressanteOSGi présente encore des difficultés techniques !
Spring One 200897
Spring One 2008
Actualités récentes sur Spring & SpringSource
La conférence
Restitution des sessions
Conclusion
Plan
Spring One 200898
Spring One 2008
L’actualité de Spring et de SpringSource tourne autour de la plateforme
SpringSource jette un pavé dans la mare !Comme avec Spring en 2003-2004
SpringSource sort du sentier battu des standards JEE
Cible de la “fronde” : le modèle de déploiement et les serveurs d’applications
Conclusion
Spring One 200899
Spring One 2008
Le modèle S2AP est intéressant de par ses cotés
ModulaireDynamiqueSans oublier le versionning
Le modèle reste encore jeuneMais devrait évoluer très rapidement (dans les mois qui viennent)
Les autres serveurs d’applications et les standards vont-ils suivre ?
Conclusion
Spring One 2008100
Spring One 2008
Les grands oubliés de cette restitutionL’AOPLe WebLa tools suite management
Spring est toujours actif dans ces domainesSpring MVC et consortsDéveloppement d’un projet JavaScriptSpring attaque les Rich Internet Applications
Mais l’actualité de l’année concernait le middleware !
Conclusion