TAGL/TP
Séance 1
Créer un dépôt Git local (bare)
mkdir tagl cd tagl mkdir testgit cd testgit git init --bare cd .. git clone testgit testgit-work cd testgit-work echo hello > readme.rst git add readme.rst git commit git push
En parallèle : Installer dans votre Eclipse le plugin ReST Editor depuis le Marketplace Eclipse
Créer compte individuel sur GitHub https://github.com
Forker le projet TAGL (url) cron4j (2.5.5)
Ajouter un collaborateur au projet forké
Activer le Email hook depuis les paramètres (settings) du dépôt.
Activer le Travis-CI hook' depuis https://travis-ci.org/ (sign in avec le compte GitHub)
Créer un fichier ci_run.sh exécutant les étapes de compilation (nécessaire afin de se placer dans le bon dossier)
#!/bin/bash echo "Original (Ant)" pushd cron4j-original ant rel popd
Commit/Push .travis.yml pour Ant (depuis un gist)
language: java jdk: - oraclejdk7 - openjdk6 - openjdk7 before_script: chmod +x ci_run.sh script: ./ci_run.sh
Créer cron4j-mvn (layout + pom.xml)
Modifier .travis.yml pour mvn -DskipTests=true clean install (Commit/Push)
Tests unitaires du i.s.c.CronParser (Ajouter la dépendance JUnit 4 au pom.xml)
Modifier .travis.yml pour mvn clean install (Commit/Push)
Contrôle Continu
- Ajoutez au pom.xml le plugin Covertura pour la couverture de code.
- Répondez aux questions : Mais qu'est ce que la couverture de code ? En quoi c'est utile ?
- Ajoutez au pom.xml les plugins pour la gestion du site et des rapports (Javadoc, tests unitaires, tags list (FIXME, TODO, ...), ...): http://maven.apache.org/plugins/maven-site-plugin/ et d'autres.
- Pour la prochaine séance, regardez les exemples d'utilisation de cron4j dans cron4j-original/examples
Bonus Track
Clone SVN -> Git
Source: http://www.yterium.net/Migrer-un-projet-SVN-vers-GIT
# Cloner le dépôt SVN en dépôt Git (conservation historique) $ git svn clone svn://svn.code.sf.net/p/cron4j/code/trunk cron4j-original $ cd cron4j-original # Test compilation $ ant jar $ cd ..
Préparation TAGL
# Clone du dépôt TAGL
$ git clone git@github.com:donsez/tagl.git
$ cd tagl
# "Fetch" du dépôt local cloné précédemment
$ git fetch file://$(pwd)/../cron4j-original
# Fusion de ce qui vient d'être fetché
$ git merge FETCH_HEAD
# Envoi sur le serveur
$ git push
Séance 2
AOP & AspectJ
Ajouter le plugin Maven pour AspectJ au pom.xml
Ajouter un aspect de trace à l'invocation des méthodes run() de l'interface java.lang.Runnable (uniquement pour les objets schedulés).
Contrôle continu
Compléter l'aspect de trace avec le positionnement du java.lang.ThreadLocal pour passer 1) l'identifiant du job et 2) le compteur des appels de la méthode de l'objet.
Séance 3
@TODO
Tutorial OSGi avec Apache Felix
Séance 4
@TODO
Séance 5
Faire un projet PDE pour un bundle cron4j.gogo (indépendant de cron4j.bundle)
Utilisation de https://eclipse.org/tycho/