tp-refactoring-graph associé au cours sur les patrons de conception et principes de refactoring.
- La branche par défaut ("initial") permet de récupérer un projet maven pour commencer à travailler
- Les branches 0.1, 0.2, etc. correspondront aux corrections pour chaque question du TP
- junit et mockito sont présents pour permettre l'écriture de tests unitaires
La classe Application est le point d'entrée de l'application. La méthode main
assure le démarrage de l'API implémentée à l'aide de spring-boot.
Le code est organisé en package :
model
: Modélisation des données de l'application- ̀
io
: Lecture de graphes routing
: Implémentation de l'algorithme de calcul de plus court chemincontrollers
: Contrôleurs de l'application springconfig
: Configuration de l'application spring (initialisation des beans)errors
: Gestion des erreurs (exceptions personnalisées)
- Lancer l'application "Application.java".
- Ouvrir http://localhost:8080/find-path?origin=1&destination=9557 dans un navigateur
- Construire le jar :
mvn clean package
mvn clean package
-
Démarrer l'API :
mvn spring-boot:run
-
Tester l'API :
curl "http://localhost:8080/find-path?origin=1&destination=9557"
Un extrait de ROUTE500 est présent dans src/main/resources/route500/idf/troncon_route.shp
à des fins de tests. Il est intégré dans le jar et est chargé par défaut.
Il est possible de charger un autre fichier à l'aide de l'option graph.path
:
java -Dgraph.path=path/to/troncon_route.shp -jar target/tp-refactoring-graph-0.1.0-SNAPSHOT.jar
- Log en mode debug :
-Dlogging.level.org.acme.graph=DEBUG
. - Génération de rapport de couverture :
mvn clean package jacoco:report
(voir target/site/jacoco/index.html) - VisualVM pourra vous aider pour les optimisations.