Appfuse : Lancement De Vos Applications Avec Appfuse

Appfuse : Lancement De Vos Applications Avec Appfuse

APPFUSE : LANCEMENT DE VOS APPLICATIONS AVEC APPFUSE Par Ryan Withers, ingénieur logiciel principal chez OCI MAI 2008 INTRODUCTION "Combien de temps pouvez-vous l'avoir fait ?» Cela vous semble trop familier ? Au fil des ans, les gestionnaires ont été confrontés à une demande sans cesse croissante pour produire davantage de logiciels sur des cycles de livraison plus courts. À mesure que le paysage économique s'est mondialisé, ces pressions pour obtenir des résultats ont considérablement augmenté. Pour les développeurs de logiciels, cela se traduit par la responsabilité d'atteindre les plus hauts niveaux de productivité. Compte tenu de cela, tout développeur bien intentionné doit constamment rechercher les outils appropriés pour le travail. Dans le monde de J2EE, nous sommes nombreux à écrire un peu de code, à ajouter une petite configuration, à écrire un peu de code, à ajouter une petite configuration, et ainsi de suite. Nous passons une grande partie de notre temps à nous préoccuper de la configuration et nous consacrons davantage de temps à la logique métier. Le temps passé à configurer ne traduit pas bien en valeur réelle. En outre, le risque associé est énorme, dans la mesure où des erreurs de configuration peuvent générer des problèmes. En outre, l'écriture du code standard écrit pour coller les différentes couches d'un système peut être un travail fastidieux et monotone. Si cela vous semble familier, poursuivez votre lecture pour voir comment AppFuse peut accélérer les cycles de développement et aider à réduire les risques associés aux projets nécessitant beaucoup de configuration. AppFuse fournit des modèles de projet standard, une génération de code et un shell de code d'application permettant aux projets de démarrer rapidement. L'un de ses principaux atouts est l'automatisation de la configuration, deux éléments standard dans la plupart des projets J2EE. Cet article couvrira les trois choses suivantes : 1. Tout d'abord, nous allons créer un projet shell. 2. Deuxièmement, nous étendrons le projet à la main en ajoutant une page de base de suivi du temps. 3. Troisièmement, nous allons effacer l'ardoise et créer à nouveau la même page de suivi temporel. Seulement cette fois, nous utiliserons l'outil appgen pour effectuer la génération complète du code de l'ensemble.> HISTOIRE / CONTEXTE AppFuse est le fruit de Matt Raible . Il y a eu deux versions principales, mais cet article se concentrera sur AppFuse version 2. Il est conçu pour rendre le processus de création d'une application Web shell aussi clé en main que possible. La version 1 utilisait ant pour effectuer la génération de chaque niveau d'une application Web (avec la permission de la commande appgen). En outre, la version 1 prenait en charge quatre infrastructures Web. Dans la version 2, ant a été remplacé par Maven et des classes supplémentaires ont été ajoutées pour fournir un modèle d'application Web miniature entièrement fonctionnel. Ce modèle d'application est implémenté dans quatre infrastructures Web prises en charge : 1. JSF 2. Spring MVC 3. Struts 2 4. Tapisserie Ces modèles d’application sont disponibles sous forme d’archétypes Maven. De plus, le développeur peut choisir entre deux classifications d'archétype différentes : basique ou modulaire. À partir du guide de démarrage rapide (ci-après dénommé "Démarrage rapide"), la version de base regroupe l'application Web sous la forme d'une unité déployable unique, tandis que la version modulaire offre une séparation entre l'interface Web et son back-end. Cela offre la possibilité de déployer plusieurs serveurs frontaux dans le futur. Avant que je sache quoi que ce soit à propos d'AppFuse, j'avais l'impression qu'il s'agissait d'un cadre. Bien qu'il utilise des cadres, ce n'est pas nécessairement un cadre en soi. Il serait beaucoup plus précis de dire qu’AppFuse est une distribution de bibliothèques et d’outils open source. Ces bibliothèques et outils ont été intégrés pour créer un environnement de développement d'applications rapide. Téléchargé par défaut, l'application shell prend en charge : la connexion, la sécurité et les fonctions administratives de base. Les fonctionnalités intégrées incluent : le téléchargement de fichiers, l'ajout d'un utilisateur, la modification de votre profil, etc. Certains des packages inclus sont : Spring Framework, Hibernate, Acegi, plusieurs packages / bibliothèques de Jakarta Commons, ANTLR, Velocity, Log4j, jMock, sans parler des frameworks Web. Comme vous pouvez le constater, la liste des bibliothèques tierces prises en charge est longue et exhaustive. INTRODUCTION ET CONFIGURATION Les exemples de l'article ont été développés et testés à l'aide du logiciel ci-dessous : 1. AppFuse a. Remarque: le démarrage rapide est vivement recommandé. 2. Maven 2.0.8 3. MySQL 4. JDK 1.6 Pour commencer, nous suivrons le Quick-start à la lettre, pour montrer à quel point il est facile de créer l’application shell. Suivez les étapes ci-dessous à partir de la ligne de commande pour créer l'exemple d'application. Il y a beaucoup plus d'informations dans le démarrage rapide, ceci est simplement pour la référence commode. L'exercice ci-dessous nous permettra de créer ultérieurement une extension personnalisée. Exécutez la commande suivante: 1. mvn archetype: créer 2. -DarchetypeGroupId = org.appfuse.archetypes 3. -DarchetypeArtifactId = appfuse-basic-struts 4. -DremoteRepositories = http: //static.appfuse.org/releases 5. -DarchetypeVersion = 2.0.1 -DgroupId = com.oci.jnb -DartifactId = timeEntry Veuillez noter que cette commande doit être entrée sur une ligne longue mais continue. Lors de l'exécution de maven, il créera un répertoire avec le nom timeEntrycorrespondant à la valeur fournie au -DartifactIdparamètre. Le répertoire créé est appelé répertoire du projet. Malheureusement, le projet de base struts 2 avait des problèmes à quelques endroits. En fait, ils étaient assez mauvais pour exiger une consultation de la liste de diffusion . On m'a donné quelques suggestions, dont la meilleure consistait à extraire la source complète d'AppFuse. Cela peut être fait en exécutant la commande: mvn appfuse:full-source. Je ne sais pas pourquoi cette commande n'est pas une option standard pour tous les archétypes. Étant donné que chaque archétype est un projet shell, une grande partie du code AppFuse principal peut nécessiter une modification une fois que de nouvelles fonctionnalités ont été développées. Compte tenu de cela et de la facilité de démarrage avec la source complète, j'ai choisi de supprimer toute la source. Veuillez noter que cette commande ne fonctionnera que si elle est exécutée au tout début, avant l'ajout de personnalisations. Maintenant, prenez une minute pour exécuter la commande:mvn appfuse:full-source, qui devrait produire le résultat ci-dessous: Une fois le répertoire du projet créé et la source téléchargée, modifiez les paramètres de la base de données dans le fichier pom.xml. Le fichier pom a une section utilisée pour spécifier le mot de passe root de la base de données. Voir le segment en gras ci-dessous : 1. <! - Paramètres de la base de données -> 2. < dbunit. dataTypeFactoryName > 3. org. dbunit . ensemble de données . type de données . DefaultDataTypeFactory 4. </ dbunit. dataTypeFactoryName > 5. < dbunit. opération . type > CLEAN_INSERT </ dbunit. opération . type > 6. < hiberner. dialecte > 7. org. hiberner . dialecte . MySQL5InnoDBDialect 8. </ hibernate. dialecte > 9. < jdbc. groupId > mysql </ jdbc. groupId > 10. < jdbc. artifactId > mysql - connector - java </ jdbc. artefact > 11. < jdbc. version > 5.0.5 </ jdbc. version > 12. < jdbc. driverClassName > com. mysql . jdbc . Pilote </ jdbc. driverClassName > 13. < jdbc. url > 14. <! [ CDATA [ jdbc : mysql : // localhost / timeEntryApp? CreateDatabaseIfNotExist = true 15. & useUnicode = true & characterEncoding = utf - 8 ] ] > 16. </ jdbc. url > 17. < jdbc. nom d'utilisateur > root </ jdbc. nom d'utilisateur > 18. < jdbc. mot de passe > </ jdbc. mot de passe > Cela nécessite une instance de MySQL. Installez donc la base de données et définissez un mot de passe root. Le démarrage rapide a une référence pour savoir comment changer le mot de passe root. Ou simplement, exécutez les commandes suivantes, après l’installation : définir le mot de passe pour root @ localhost = PASSWORD ( '[mot de passe choisi]' ) ; définir le mot de passe pour root @ host = PASSWORD ( '[choisir un mot de passe]' ) ; Il y a deux lignes ici car il y a généralement deux entrées pour l'utilisateur root: une avec l'hôte localhost et l'autre avec le nom d'hôte du système (Dyer, page 14). Pour plus d'informations, consultez le manuel d'aide en ligne. Une fois le fichier pom.xml modifié, vous pouvez exécuter la commande "mvn". Cette commande peut prendre une minute alors soyez patient. Si tout va bien, le message rapporté est : 1. [ INFO ] ----------------------------------------------- ------------------------- 2. [ INFO ] CONSTRUIRE AVEC SUCCÈS 3. [ INFO ] ----------------------------------------------- ------------------------- Maintenant, lancez la commande : 'mvn jetty: run-war' et naviguez jusqu'à http: // localhost: 8080 . Si tout se passe bien, le nom de connexion pour l'exemple d'application devrait apparaître comme dans la fenêtre ci- dessous. Les mots de passe de l'application par défaut sont admin / admin pour un administrateur et utilisateur / utilisateur pour un utilisateur normal. La base de code de l'application shell est légère et complète. Il ne contient que 81 fichiers source et de test, ce qui est une autre raison pour laquelle je n’ai pas hésité à le télécharger. Les développeurs du développement piloté par les tests (TDD) apprécieront le code fourni avec une suite complète de tests unitaires qui passent sans problème. Au cours de ma formation à AppFuse, j'ai téléchargé des projets pour tous les archétypes pris en charge, ce qui s'est avéré être une tâche assez facile. Comme indiqué, l'une des motivations d'AppFuse est de rendre la création d'un projet Web de base aussi simple que de créer un projet via un IDE. Comme vous pouvez le constater grâce à l'expérience ci-dessus, AppFuse a initialement réussi à atteindre cet objectif.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    31 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us