Installation de Springsource Tool Suite (STS 2.1.0 RC1) pour développement Spring et OSGiDate de publication : 12 juillet 2009
Par
objis
Maîtrisez l'installation de SpringSource Tool Suite (STS), le meilleur environnement
de développement d'applications impliquant le framework Spring. Comprenez le lien entre le plugin Spring IDE et STS. Comprenez le rôle de STS dans la stratégie de la société SpringSource.
Découvrez enfin la valeur ajoutée de STS pour le développement OSGi , le 'cloud computing' et le déploiement d'application pour les serveurs tc server et dm server de SpringSource.
Introduction
Prérequis
Liens utiles
Partie 1 - Contexte : Eliminer la complexité de J2EE
Partie 2 - les 4 domaines d'utilisation de STS
STS pour le développeur SPRING
STS pour le développeur OSGi
STS pour le déloiement d'applications et Cloud computing
STS pour Groovy/Grails
Partie 3 - Téléchargement STS
Partie 4 - Tableau de bord
Onglet Dashboard
Onglet Knowledge Base
Onglet Configuration
Conclusion
Introduction
Ce tutoriel est un extrait de séances pratiques de la formation SPRING dispensée par Objis, spécialiste formation Java depuis 2005.
Depuis le début de l'année 2009, SpringSource Tool Suite, ensemble de logiciels édités par la société SpringSource, contient un environnement de développement contribuant à une meilleure productivité du développeur Spring. De plus STS est gratuit. Le patron de SpringSource Rod Johson en personne l'a affirmé lors de plusieurs conférences dont la 4ème conférence européenne annuelle des utilisateurs de Spring (SpringOne Europe 2009), à laquelle nous avons assisté et pour laquelle un excellent résumé est disponible.
STS est une pièce de la stratégie "Build - Run - Manage" de SpringSource. Cette stratégie vise à nous rassurer sur la capacité de SpringSource à accompagner efficacement les différentes étapes du cycle de vie (Développement - déploiement - monitoring) d'une application Java Entreprise basée non pas sur les spécifications JEE (jugées complexes), mais sur le modèle de développement et les différentes briques proposées par Spring (Core, Spring MVC, Spring JMS, Spring WS...).
Une stratégie qui ammène des choix tactiques d'acquisition de sociétés et technologies comme le
langage de script Groovy, le framework Grails (au dessus de Spring MVC + Hibernate) ou encore plus récement d' Hyperic (outil de monitoring), désormais dans le giron SpringSource.
Prérequis
Liens utiles
Partie 1 - Contexte : Eliminer la complexité de J2EE
STS, outil gratuit fourni par SpringSource, s'inscrit dans une volonté d'"éliminer la complexité de java entreprise" (sous entendu "éliminer la complexité de J2EE" ) et d'augmenter de façon significative la productivité du développeur java Entreprise.
Rapellons que le framework Spring a été créé pour faire avec de simples classes java (POJOs) ce qui était possible avant avec uniquement avec des EJB2, dont la création était complexe et impliquait obligatoirement un serveur d'applications (lourd) J2EE. Les ingrédients techniques de la réussite de Spring étant l'injection de dépendance et la programmation orientée aspect. Avec l'acquisition de différentes sociétés , Spring souhaite faciliter la productivité des équipes de développement et déploiement d'applications Java Entreprise.
Avec Spring, vous pouvez créer une application à la carte (de l'application java standalone jusqu'à l'application riche web 2.0 en passant pas l'intégration avec web services ou file de message JMS) en n'utilisant que les briques dont vous avez besoin. C'est un positionnement différent de celui des applications JEE 'traditionelles'.
Partie 2 - les 4 domaines d'utilisation de STS
Basé sur Eclipse, STS va plus loin que le traditionnel plugin eclipse Spring IDE. Développé par la même équipe que Spring IDE, STS propose des outils pour 4 domaines précis :
- Le développement Spring
- Le développement OSGi
- Le déploiement d'applications et Cloud computing
- Le développement Groovy/Grails
STS pour le développeur SPRING
Le premier objectif d'STS est d'augmenter la productivité du développeur SPRING. Notez en particulier le support de Spring 3.0, qui confirme l'utilisation des @nnotations directement dans les Pojos pour la configuration de Spring
ainsi que certains sujets clés comme l'Unified EL++, Services web avec REST, Portlet 2.0, et un support anticipé de Java EE6.
Voici les points clés :
- Support de Spring 3.0
- Assistant création d'un projet Spring, basé sur XML ou @nnotations
- Editeur de configuration graphique
- Outils graphiques pour le développement Spring Web Flow et Spring Batch
- Assistant pour création applications Spring MVC, Spring Faces, Spring WebFlow, Spring Batch
- Assistant création projet avec le framework 'maison' ROO
- Outils de validation et bonnes pratiques Spring
Accès aux Assistants proposés par STS (New/Project/)
On appréciera également la présence en natif de fonctionalités pour lesquels une extension au plugin SpringIDE était nécessaire (Exemple avec le support d'AspectJ ou Spring Web Flow) ainsi que le support de Maven.
Maven2 intégré !
En particulier, les modèles de projet sont basés en réalité sur des templates de pom.xml pour la gestion des dépendances. Le plugin m2eclipse embarqué dans STS permet de synchroniser les dépendances d'eclipse avec les dépendances identifiées dans le pom.xml de chaque template.
Voici par exemple le point de départ d'un projet Spring Web Flow en utilisant l'assistant création de projet Spring web flow (après 3 clics et le rapatriement automatique des jars par Maven) :
STS pour le développeur OSGi
Un deuxième objectif plus large d'STS est d'améliorer la productivité du développeur Java désireux de mettre en oeuvre des applications modulaires basées sur la technologie OSGi. OSGi vous permet de déployer, mettre à jour ou supprimer des modules dynamiques (bundles) à la volée sans arrêter la JVM. POur cela vous devez déclarer dans le fichier MANIFEST.MF de votre jar les dépendances du Jar. Notez sur ce point que l'équipe SpringSource propose un Repository qui contient plus de 500 Jars 'Bundlelisé'.
La technologie OSGi (qui existe depuis que java existe) s'est imposé dans le monde embarqué, a également fait ses preuves dans les environnements de développement (avec Equinox, présent dans Eclipse) et s'invite dans les applications serveurs en particulier suite à la sortie du serveur d'application 'dm Server' de SpringSource, véritable implémentation de référence de la spécification RFC-124 de l'OSGI Alliance.
Rappelons que la valeur ajoutée d'Osgi coté serveur est lié au manque de modularité de Java à l'exécution (runtime).
Par exemple, il est aujourd'hui impossible de charger 2 versions d'un même jar dans une application web Java. Vous vous exposez à des problèmes de charger de classe de ja JVM. Nos efforts de modularisation à la conceptions (couches présentation, service, model, persistence...) ne sont donc pas si bien récompensés car on produit au final souvent un seul livrable (ex : WAR) qui contient des versions spécifiques de Jars.
OSGi répond à cette problématique (et d'autres) en permettant d'avoir plusieurs versions d'un Jar déployées, et de pouvoir choisir à l'exécution quelle version nous souhaitons pour notre application.
Notez que la plupart des serveurs d'applications JEE du marché utilisent OSGi pour leur infrastructure interne mais ne permettent pas aujourd'hui de déployer des applcatifs OSGi. Exception notable pour Spring dm Server (fournit dans la suite).
Voici les points clés utiles pour le développeur OSGi :
- Voir un bundle et voir le graphe de dépendances
- Gestion du Classpath (via méta données OSGi)
- Génération automatique du MANIFEST.MF
- Explorateur du repository des bundle springSource
- Validation de votre MANIFEST.MF et bonnes pratiques
STS pour le déloiement d'applications et Cloud computing
Notez d'entrée qu'STS est livrée avec un Serveur Tomcat (6.0.19) optimisé pour la production : le tc Server 6 de SpringSource.
Une des valeurs ajoutées de tc Serveur est la possibilité pour les administrateurs du serveur tc Server de Monitorer graphiquement
leurs applications déployèes à partir de l'outil AMS
Vous pouvez démarrer le serveur à partir de la vue Servers.
En plus du support 'classique' via WTP de serveurs d'applications libres et propriétaires connus (tomcat, Jboss, WebSphere...), STS assure le support pour :
- le déploiement vers les 2 serveurs d'applications édités par SpringSource : tc Server (basé sur Tomcat. Concurrent serveurs jee traditionels) et dm Server (Implémentation de référence OSGi - )
- l'ntégration VM ware Lab Manager pour un déploiement d'application dans une machine virtuelle VM Ware
- le 'Cloud computing' avec l'intégration Amazon EC2 (Elastic Cloud Computing) : vous pouvez déployer une application dans un serveur tc server ou dm server évoluant dans un nuage Amazon EC2.
Sur ce dernier point rapellons qu'Amazon EC2 est un service web permettant aux entreprises de déployer leur applications dans les serveurs d'Amazon, qui comprennent virtuellement un nombre ilimité de machines virtuelles.
Pour bénéficier d'EC2 vous devez créer un AMI (Amazon Machine Image) contenant votre Système d'exploitation, votre application et sa configuration. Ensuite votre AMI est uploadé par le service Amazon Simple Storage Service (S3) et enregistré dans EC2 avec son identifiant AMI (Notez les AMIs pour tc et dm Serveur sont disponibles pour les développeurs). Vous pouvez alors augmenter/diminuer à la demande les capacités de votre environnement serveur suivant les besoins en montée en charge de votre appli (de 1 à 3000 machines virtuelles ou + ).
Vous pouvez utiliser le plugin Firefox ElasticFox pour piloter le démarrage/arrêt de vos instances.
STS pour Groovy/Grails
Cette version de STS (2.1.0 RC1) ne possède pas directement d'outils pour Groovy/Grails, deux technologies acquises par SpringSource.
Notez cependant le déploiement réussi d'une application grails dans Google App Engine via sts.
L'équipe de développement nous promet pour une prochaine version de STS l'intégration de Groogy/Grails.
Partie 3 - Téléchargement STS
S'il est vrai que vous pouvez passer par l'Update classique d'Eclipse (3.4+) pour installer STS (http://www.springsource.org/milestone/e3.4), la méthode recommandée par SpringSource est de téléchargez STS.
Rendez-vous sur le site officiel de l'outil
Cliquez sur l'icone 'Download' en haut à droite. L'écran suivant apparaît. Remplissez le formulaire suivant.
Appuyez sur Download. L'écran suivant apparaît.
Choisissez la version qui vous convient. Par exemple la version pour Windows basée sur Eclipse 3.4 : springsource-tool-suite-2.1.0.RC1-e3.4-win32.zip
Dézippez l'archive. vous obtenez un répertoire SpringSource qui contient les 4 sous-répertoires suivants.
Notez que STS est gratuit mais seuls 2 des composants sont open source : spring ide et spring dm server.
Partie 4 - Tableau de bord
Le contenu du répertoire STS est le suivant :
Double-cliquez sur eclipse.exe (comme d'hab).
Choisissez votre workspace.
La page d'accueil 'Welcome' d'eclipse apparaît, relooké façon STS.
Cliquez sur le lien 'SpringSource Tool Suite DashBoard'. L'espace de travail eclipse apparaît avec au centre la vue tableau de bord STS (STS Dashboard) qui contient 3 onglets :
- Onglet 'Dashboard' : tableau de bord d'informations ( tutoriaux, buzz, téléchargements, news...)
- Onglet 'Knowledge base' : base de connaissance Springsource
- Onglet 'Configuration' : pour créer une instance du serveur dm Server ou pour configurer Tomcat
Onglet Dashboard
- 1 : Espace d'accès rapide à des tutoriaux et bonnes pratiques modules Spring : Core, DM (OsGi), Security, MVC, Web Flow, Wev services
- 2 : Flux rss du Blog de l'équipe SpringSource
- 3 : Articles publiés autour des technos et modules Spring (Ex : acquisition de Hyperic, comparaison Grails-Rails-Django, ...)
- 4 : Annonce de séminaires et publications
- 5 : Téléchargement rapide de produits. ici BlazeDS (pour intégration Spring/Flex), ROO (outil 'maison' pour création d'applications), Serveur 'maison' tc Server, module Sping Web Flow)
Notez vous pouvez à tout moment faire apparaître ce tableau de bord STS en appuyant sur l'icône STS.
Onglet Knowledge Base
- 1 : Copier-coller ici un exemple d'exception et erreur que vous rencontrez. Ici par ex (NoSuchBeanDefinitionError)
- 2 : Mettez à jour votre base de connaissance locale à partir de cele de SpringSource
- 3 : Lancez la recherche de cette erreur dans la base de connaissance
- 4 : Ici le résultat de la recherche. Ici l'erreur n'a pas encore été répertoriée dans la base de connaisance.
Onglet Configuration
- 1 : Télécharger et installer un serveur dm Server
- 2 : Créer une instance de serveur tomcat
- 3 : Choix de l'apparition du DashBoard lors du lancement d'Eclipse (par défaut oui)
- Extension de Mylyn pour faciliter l'enregistrement d'incidents sur STS.
Conclusion
Cet article vous a présenté STS, l'outil gratuit offert par SpringSource pour vos développement Spring, OSGi et vos déploiements (avec ou sans cloud computing) vers les serverus d'applications tc Server et dm Server.
Le tutoriel N°2 sera dédié à la mise en oeuvre (avec STS) de l'injection de dépendance, premier des 2 concepts clés de Spring, le deuxième étant la programmation aspect, qui sera l'objet du tutoriel N°3.
Copyright ©2009 objis.
Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts. Cette page est déposée à la SACD.
|