Skip to content

Sivloc/tp-refactoring-graph

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 

Repository files navigation

tp-refactoring-graph

Description

tp-refactoring-graph associé au cours sur les patrons de conception et principes de refactoring.

Principes

  • 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

Organisation du code

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 chemin
  • controllers : Contrôleurs de l'application spring
  • config : Configuration de l'application spring (initialisation des beans)
  • errors : Gestion des erreurs (exceptions personnalisées)

Utilisation

Avec eclipse

En ligne de commande

  • 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"

Données utilisées

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

Notes

  • 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.

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%