Difference between revisions of "TAGL/TP"

From air
Jump to navigation Jump to search
Line 44: Line 44:
   
   
  +
Créer '''cron4j-mvn''' (layout + pom.xml) en réorganisant les sources de cron4j-original. Pour cela, vous utiliserez préalablement un [https://maven.apache.org/guides/introduction/introduction-to-archetypes.html archetype Maven] ''simple'' ou ''quickstart''. (la version de cron4j est la 2.5.5).
Créer '''cron4j-mvn''' (layout + pom.xml)
 
  +
   
 
Modifier .travis.yml pour ''mvn -DskipTests=true clean install'' (Commit/Push)
 
Modifier .travis.yml pour ''mvn -DskipTests=true clean install'' (Commit/Push)
Line 86: Line 87:
 
$ git push
 
$ git push
 
</syntaxhighlight>
 
</syntaxhighlight>
  +
  +
  +
====Archetype webapp====
  +
L'archetype webapp (http://maven.apache.org/archetype/maven-archetype-bundles/maven-archetype-webapp/) permet de créer le squelette d'une webapp. Créez un simple webapp monsite en version 0.1.0. (add/commit/push). Vous pourrez tester cette webapp en ajoutant au pom.xml le [https://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin plugin maven Jetty].
  +
  +
<pre>
  +
mvn -Djetty.port=9999 jetty:run
  +
</pre>
  +
  +
Naviguez sur http://localhost:9999/monsite
   
 
==Séance 2==
 
==Séance 2==

Revision as of 20:22, 6 February 2014

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 cron4j depuis https://github.com/donsez/tagl

Ajouter un collaborateur (ie votre binome) 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)

Commit/Push .travis.yml pour Ant:

language: java

jdk:
        - oraclejdk7
        - openjdk6
        - openjdk7

script:
        - pushd cron4j-original && ant rel && popd


Créer cron4j-mvn (layout + pom.xml) en réorganisant les sources de cron4j-original. Pour cela, vous utiliserez préalablement un archetype Maven simple ou quickstart. (la version de cron4j est la 2.5.5).


Modifier .travis.yml pour mvn -DskipTests=true clean install (Commit/Push)

Créer des tests unitaires du i.s.c.CronParser (Ajouter la dépendance JUnit 4 au pom.xml)

Modifier .travis.yml pour mvn clean test (Commit/Push)

Contrôle Continu

  1. Ajoutez au pom.xml le plugin Covertura pour la couverture de code.
  2. Répondez aux questions : Mais qu'est ce que la couverture de code ? En quoi c'est utile ?
  3. 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.
  4. 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


Archetype webapp

L'archetype webapp (http://maven.apache.org/archetype/maven-archetype-bundles/maven-archetype-webapp/) permet de créer le squelette d'une webapp. Créez un simple webapp monsite en version 0.1.0. (add/commit/push). Vous pourrez tester cette webapp en ajoutant au pom.xml le plugin maven Jetty.

mvn -Djetty.port=9999 jetty:run

Naviguez sur http://localhost:9999/monsite

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/