Réalisé par: Lakhdhar yessin Letaief Sana

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Transformation de documents XML
Les numéros
Les identités remarquables
Dimensions et Java : Plug-in, Build et EAR Elisabeth BAUDOIN STIME CLUB UTILISATEURS ALMA DU 23 NOVEMBRE 2010.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
Premiers pas avec Apache Ant Par Guillaume BITAUDEAU Le 16/10/2003.
Architecture de réseaux
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Initiation et perfectionnement à lutilisation de la micro-informatique Publier des films sur DailyMotion (sur Mac et sur PC) ©Yves Roger Cornil
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Sirop de Liège « industriel »
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
TP 3-4 BD21.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
COTE DIVOIRE IMAGES DES ATROCITES COMMISES PAR ALASSANE DRAMANE OUATARA, SORO GUILAUMES ET LEURS HOMMES 1.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Développement d’applications web
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
PAFI Référentiel de données par Sonia Watts DGIF (Direction de la gestion et de linformation forestière) 27 octobre 2010 et 3 novembre 2010.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
Serveurs Partagés Oracle
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Titre : Implémentation des éléments finis sous Matlab
Configuration de Windows Server 2008 Active Directory
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Développement d’application web
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Projet de Master première année 2007 / 2008
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Mise en place d'une forêt (Aspects pratiques).
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Module I-C3 : Applications Web IUT R&T 2e année
Nom:____________ Prénom: ___________
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Guide de paramétrage RRDI pour CLM v3
Gérer la sécurité des mots de passe et les ressources
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Subversion.
Ant Introduction Jean-Jacques LE COZ. Outils de construction de projets ➢ Pour livrer un produit logiciel ➢ Compiler ➢ Documenter ➢ Packager ➢ Déployer.
Transcription de la présentation:

Réalisé par: Lakhdhar yessin Letaief Sana Ant,XDoclet,CVS Réalisé par: Lakhdhar yessin Letaief Sana

Contenu : ANT XDoclet CVS

ANT,XDoclet,CVS ANT (Another Neat Tool)

Plan Qu’est ce que ANT ? Purquoi ANT ? Comment ça marche ? Demo…

Qu’est ce que Ant? Un projet de l’ Apache Software Foundation. A l’origine,un sous-projet de l’Apache Jakarta Project. Un outil de construction d’application écrit en Java. Permet d’automatiser le processus de construction des projets.

Un processus de construction Récupérer des sources Génération , à partir de sources, de différents types de fichiers Compilation Problèmes: -Tâches répétitives -Perte de temps -Grands Projets -Complexité croissante, risques d'oubli Nécessité d’automatisation,d’un outil. Test Réorganisations de fichiers Déploiement Création de la documentation

Pourquoi Ant? Des outils existent: make , gnumake, nmake, jam…. Problème : Ces outils sont basés sur des scripts Shell dépendants du Système d’exploitation. Solution : ANT qui est : - Indépendant du Système d’exploitation. - Accepte des instructions sous la forme d’un document XML ce qui le rend extensible et facile à mettre à jour. - Open Source.

Comment ça marche ?

Build.xml <?xml version=" 1.0 "?> <project name=" test " default=" compile " basedir=" . "> <property name=" src " value " . "/> <property name=" build " value =" build "/> <target name=" init "> <mkdir dir=" ${build} "/> </target> <target name="compile " depend=" init "> <!-- compile the java code --> <javac srcdir=" ${src} " destdir="${build} "/> </target> </project>

<project name=" test " default=" compile " basedir=" . "> Elément principal, composé de 3 attributs: - name : nom du projet - default : étape de construction par défaut - basedir : dossier racine (sinon le dossier du build.xml) Il contient : -Principalement : un ensemble de balises <target> -Optionnellement : <desciption>…

Build.xml <?xml version=" 1.0 "?> <project name=" test" default=" compile " basedir=" . "> <property name=" src " value ". "/> <property name=" build " value =" build "/> <target name=" init "> <mkdir dir=" ${build} "/> </target> <target name="compile " depend=" init "> <!-- compile the java code --> <javac srcdir=" ${src} " destdi="${build} "/> </target> </project>

<property> ≈ variables <property name=« build » value =« build »/> - Name : nom de la propriété - Value : valeur de la propriété Le référencement d’une propriété se fait comme suit : ${nom_propriété} Permet l’accès à : - Des propriétés systèmes : Ant permet l’accès à toutes les propriétés système comme si prédéfinies avec <property>, Exemple : ${os.name}. -Des Propriétés prédéfinies : - basedir : chemin absolu du répertoire de travail (sinon le dossier du build.xml) - ant.file : chemin absolu du fichier build, - ant.project.name : le nom du projet courant (initialisé comme attribut dans<project>)…

Build.xml <?xml version=" 1.0 "?> <project name=" test " default=" compile " basedir=" . "> <property name=" src " value ". "/> <property name=" build " value =" build "/> <target name=" init "> <mkdir dir=" ${build} "/> </target> <target name="compile " depend=" init "> <!-- compile the java code --> <javac srcdir=" ${src}" destdir="${build}"/> </target> </project>

<target name=«compile » depends=« init »> Définit une séquence de tâches à exécuter et possède : 1) un attribut obligatoire -name: nom qui permet son référencement 2) des attributs optionnels: - depends :liste des étapes de construction dont dépends la séquence en question  doivent être exécutées en premier - if, unless :permet de conditionner l'exécution par l'existence d'une propriété Exemple : <target name="A"/> <target name="C" depends="B"/> <target name="B" depends="A"/> <target name="D" depends="C,B,A"/>

Build.xml Deux tâches (Tasks) <?xml version=" 1.0 "?> <project name=" test " default=" compile " basedir=" . "> <property name=" src " value ". "/> <property name=" build " value =" build "/> Deux tâches (Tasks) <target name=" init "> <mkdir dir=" ${build} "/> </target> <target name="compile " depend=" init "> <!-- compile the java code --> <javac srcdir=" ${src} " destdir="${build} "/> </target> </project>

Les Tasks Une tâche est une unité de traitements contenue dans une classe Java qui implémente l'interface org.apache.ant.Task Une tâche est obligatoirement incluse dans une cible. Représente le body des <targets> du code exécutable. Peuvent utiliser des références à des propriétés. Forme générale: <name attribute1="value1" attribute2="value2" ... /> Ant fournit en standard un certain nombre de tâches pour des traitements courants lors du développement en Java.

Quelques catégories de tâches : Archives Tasks Compile Tasks DeployC Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … jar : Créer une archive de type jar ear : Créer une archive contenant une application J2EE Gzip : Compresser dans une archive

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … Javac : Compiler des sources Java JspC : Démarre le compilateur JSP.

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … ServerDeploy : tâche pour démarrer le "hot" de l’outil de déploiement pour vendor-specific J2EE server.

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … Javadoc : Génération de la documentation en utilisant l’outil javadoc Stylebook : Execute l’Apache Stylebook documentation generator

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … ejbc : démarrer l’outil Weblogic's ejbc wlrun: démarre une instance weblogic wlstop: arrete une instance weblogic

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … Ant : démarre Ant sur un fichier spécifié Exec : Exécute une commande système Sleep : suspendre l’exécution pour une période donnée

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … Cvs : Gérer packages/modules récuCés à partir du répertoire référence (repository) CVS. CvsTagDiff : Générer une fichier XML montrant les changements entre deux tags ou dates enregistrés dans le CVS repository.

Quelques catégories de tâches : Archives Tasks Compile Tasks Deployement Tasks Documentation Tasks EJB Tasks Exécution Tasks SCM Tasks … Il reste encore une multitude de tâches(.NET Tasks, Mail Tasks, …) et la possibilité de créer ses propres tâches.

Integration dans les IDE : Eclipse WebSphere Studio Application Developer JBuilder 8 Enterprise Oracle9i JDeveloper NetBeans / Sun ONE Studio

Demo  Création de Task  Compilation,Packagin,Déploiement d’une application J2EE

ANT,XDoclet,CVS XDoclet

Plan : Présentation Caractéristiques Comment ça marche Récapitulatif Tasks Subtask XDoclet & ANT Pattern de génération de code Templates Récapitulatif Démo

Présentation: Xdoclet est un moteur de génération de code orienté attribut (repose sur des commentaires javadoc) . Conçu à l'origine comme un outil de création d'EJBs, il a évolué en un moteur de génération de code générique. Actuellement, XDoclet ne peut être utilisé que comme une étape de construction de programme (build process) en utilisant Jakarta Ant .

Présentation(2) : Quand est ce que XDoclet est utlisé ? Fichiers de déploiement de configuration Systèmes construits autour de composantes métier Systèmes multi tiers Systèmes Orientés Interfaces

Présentation(3) : Source : Test-Driven Developmentwith Spring and Hibernate,Matt Raible

Caractéristiques de XDoclet : Permet de se focaliser sur un seul fichier par composant Facilite la mise à jour des fichiers Evite le travail répétitif Amélioration de la productivité Optimisation de l’intégration Continue  XDoclet reconnaît une multitude de patterns J2EE largement reconnus Ex : Composant EJB  interfaces, value objects, struts forms.  Supporte les Serveurs et les outils les + répandus JBoss, BEA WebLogic, IBM WebSphere, Oracle IAS, Orion, Jonas,etc…  Extensible  Open Source

Comment ça marche? XDoclet permet le développement Orienté Attribut  basé sur des commantaires JavaDoc spécifiques. Une balise JavaDoc se présente sous la forme : /** * @author C.TOWN **/ De même un tag spécifique XDoclet se présente sous la forme : /** * @namespace:tag_name name="value" name2="value2" ... */

@namespace:tag_name name="value" name2="value2" ... Les namespaces : @namespace:tag_name name="value" name2="value2" ... namespace : représente un groupe de tags logiquement reliés (garantit l’absence de conflits de noms) voici quelques exemples d’espaces de noms : ejb : informations standard sur les EJB (non spécifiques). jboss ,Weblogic,webSphere: informations spécifiques au serveur d'application . soap : génère les decripteurs SOAP. struts : génère les fichiers struts-config.xml à partir de Form et Action. web : génère le fichier de configuration web.xml pour les Web Applications. ... Balises avec un nom et un jeu d’attributs optionnels  Concept similaire à celui de l’XML mais avec une syntaxe différente.

Exemple : MetaData XDoclet placée en commentaire pour la classe Les MetaData peuvent aussi être spécifiées pour une méthode

Exemple :  Comment sont générés les fichiers ? Exemple de tags pour le déploiement d’un bean entité élémentaire:  Comment sont générés les fichiers ?

Les tasks XDcolet : On utilise XDoclet pour générer du code , MAIS il est plus correcte de dire qu’on utilise des tasks XDoclet pour générer du code. Un task, ou une tâche est une application de génération de code de haut niveau. Les 7 tasks XDoclet de base: <ejbdoclet> : EJBs, Descripteurs de déploiements,… <webdoclet> : Développement Web,servets,taglibs,web frameworks <hibernatedoclet> : Configuration de Persistance Hibernate , MBeans… <jdodoclet> : JDO-metadata <jmxdoclet> : JMX-interfaces MBean, mlets, fichiers de configuration <doclet> : JDO-MetaData <documentdoclet> : Documentation de projet ,comme les listes TODO

Les subtasks XDcolet :  Comment est lancée la génération ? Une subtask est une procédure de génération de code élémentaire,fournis par un task.  le task fournit un contexte ou un groupement qui gère des subtasks plus ou moins « proches ». Exemple: Task : <ejbdoclet> : Subtasks: <deploymentdescriptor>  Génération du descripteur de déploiement <localinterface>  Génération d’interface locale …  Comment est lancée la génération ?

XDcolet et ANT (1): Les tasks XDoclet sont des tasks ou tâches de construction ANT. Pour récapituler :

XDcolet et ANT (2): <taskdef classpathref="xdoclet.classpath" <target name="Web_Module" description="Web"> <taskdef classpathref="xdoclet.classpath" classname="xdoclet.modules.web.WebDocletTask" name="webdoclet" /> <webdoclet destDir="src" verbose="true"> <fileset dir="src" includes="**/*Servlet.java"> </fileset> <deploymentdescriptor Servletspec="2.3" destDir="src/WEB-INF"> </deploymentdescriptor> <jbosswebxml Version="4.0" destDir="src/WEB-INF"> </jbosswebxml> </webdoclet> </target> Définition d’un task  <webdoclet>

XDcolet et ANT (2): task <taskdef classpathref="xdoclet.classpath" <target name="Web_Module" description="Web"> <taskdef classpathref="xdoclet.classpath" classname="xdoclet.modules.web.WebDocletTask" name="webdoclet" /> <webdoclet destDir="src" verbose="true"> <fileset dir="src" includes="**/*Servlet.java"> </fileset> <deploymentdescriptor Servletspec="2.3" destDir="src/WEB-INF"> </deploymentdescriptor> <jbosswebxml Version="4.0" destDir="src/WEB-INF"> </jbosswebxml> </webdoclet> </target> Définition d’un task  <webdoclet> task

XDcolet et ANT (2): task <taskdef classpathref="xdoclet.classpath" <target name="Web_Module" description="Web"> <taskdef classpathref="xdoclet.classpath" classname="xdoclet.modules.web.WebDocletTask" name="webdoclet" /> <webdoclet destDir="src" verbose="true"> <fileset dir="src" includes="**/*Servlet.java"> </fileset> <deploymentdescriptor Servletspec="2.3" destDir="src/WEB-INF"> </deploymentdescriptor> <jbosswebxml Version="4.0" destDir="src/WEB-INF"> </jbosswebxml> </webdoclet> </target> Définition d’un task  <webdoclet> subtask task subtask

Pattern de génération de code :  Comment est ce que les subtasks génèrent du code?

Le Template : Le template est une version prototype du fichier qu’on veut générer. Utilise les tags XML qui précisent au moteur template comment ajuster le codé généré en se basant sur : les classes en entrée les metadata qu’elles contiennent (balises javadoc et tag XDoclet). Ces tag se présentent selon deux types différents : <XDtClass : …> <XDtMethod : …>

Les tag : Recherche : <XDtClass:ifHasClassTag tagName=“NomTag"> Utilisation : <XDtClass:classTagValue tagName=" NomTag " /> Recherche : <XDtMethod:ifHasMethodTag tagName=" NomTag "> Utilisation : <XDtMethod:methodTagValue tagName=" NomTag " />

Exemple: fichier « .xdt »

Récapitulation: Pour générer du code avec XDoclet on doit : Si on n’utilise pas les modules déjà développés pour XDoclet, créer son propre template de déploiement .xdt Commenter son code avec les balises Javadoc spécifiques XDoclet. Créer un fichier de déploiement build.xml pour Ant intégrant des demandes de génération de code XDoclet. Lancer Ant sur le fichier build.xml => les fichiers désirés sont générés.

Demo …

ANT,XDoclet,CVS CVS (Concurrent Version System)

Plan : Présentation de CVS Logique de fonctionnement Étapes de travail avec CVS (commandes) Quelques clients CVS

Présentation de CVS CVS (Concurrent Version System) est un système de contrôle de versions de fichiers. Développé par Cyclic Software et est sous licence GNU. Initialement développé pour Unix, disponible aussi sur MS Windows®

Qualités de CVS : ► Aide à gérer le développement d’un projet effectué en parallèle par plusieurs utilisateurs :  Permet Accès concurrentiel par plusieurs développeurs à un même projet. ► Identifie les changements et les zones de conflit pour lesquelles un arbitrage humain est requis :  Visualisation des différences qui sont sources de conflits. ► Conserve la trace des modifications successives effectuées sur les projets :  Archivage et Suivi de l’historique  Possibilité de retour à des versions anciennes

Logique de fonctionnement : Des outils existent: - RCS (Revisions Control System) - SCCS (Source Code Control)  Modèle: Lock-Modify-Unlock ( Contrôle par verrouillage) - CVSS,Subversion, Méta-CVS… Apparition de CVS :  Modèle : Copy-Modify-Merge. Copy-Modify-Merge ?

Copy-Modify-Merge ? CVS enregistre les projets dans un référentiel principal appelé Repository. L’utilisateur effectue une copie du projet dans le référentiel, puis la modifie. L’utilisateur effectue une synchronisation avec le référentiel pour voir s’il n’y a pas eu entre temps une modification du référentiel. CVS gère la nouvelle version en résolvant un certain nombre de conflits et crée un historique des versions.

Dépôt et copie de version : user1 user2 user3 Dépôt de projet(s) Standbox Standbox Référentiel Copie de projet(s) Standbox

Étapes de travail avec CVS : Définition d’un référentiel : variable d’environnement Ajout de(s) utilisateur(s) Connexion à un projet Copie du référentiel Update Commit

Définition d’un référentiel : L’ajout de la variable d’environnement se fait grâce à la commande suivante : set CVSROOT = c:\Dev_CVS\cvsrep

Ajouter de(s) utilisateur(s) : L’ajout d’un nouvel utilisateur se fait comme suit : cvs passwd –r <utilisateur> -a <password> Exemple : cvs passwd –r <user1> -a <my_pass>

Connexion au référentiel : Pour pointer sur un projet, l’utilisateur se connecte au référentiel en utilisant la commande : set cvsroot=:<protocole>:<utilisateur>@<hôte>:/CheminProjet Exemple : set cvsroot=:<pserver>:<utilisateur>@<hôte>:/CheminProjet Protocole pserver : se connecter en tant que serveur de mot de passe. D’autres protocoles existent : sserver et ssh.

cvs co <Chemin du projet> Exemple : Cvs co c:\Dev_CVS\projet_cvs Copie du projet : La commande checkout "co" permet d’avoir une copie locale du projet  il y a transfert d’une copie de ce projet à partir du référentiel dans le répertoire courant : cvs co <Chemin du projet> Exemple : Cvs co c:\Dev_CVS\projet_cvs

Update : Elle permet de mettre à jour les fichiers locaux à partir de versions situées sur le serveur : cvs update

Commit : Une fois l’utilisateur termine et vérifie son travail, il utilise la commande suivante pour enregistrer sa version dans le référentiel: cvs commit

La fusion : Problème : D'autres utilisateurs ont déjà publié une autre version : commit  il y a détection de la compatibilité entre les modifications. Si il y a compatibilité fusion avec le reste du projet dans le référentiel. • Sinon  CVS indique un conflit. Les utilisateurs le résolvent alors manuellement en se mettant d’accord pour valider la version finale.

Clients CVS : JCVS Smart CVS Intégration dans l’IDE Eclipse (Démo) Turtoise …

Démo …