forked from GarlandNic/JavaPathENProject8
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsuivi_des_actions.txt
85 lines (70 loc) · 3.71 KB
/
suivi_des_actions.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Suivi des actions menées
Etape 5 : pipeline d'intégration continue
- regarder outils du marché
o GitHub Actions
o Gitlab-CI
o Jenkins
- faire son choix
- 3 étapes requises : compilation, test, build des artefacts.
-
TODO :
- étape 5
Ressources :
1 cours sur github avancé
https://openclassrooms.com/fr/courses/7688581-devenez-un-expert-de-git-et-github
fork, pull request, conflit, historique, workflow (ligne de conduite commune) et gitflow, hooks (script), client GUI git
2 Avoiding the ConcurrentModificationException in Java
https://www.baeldung.com/java-concurrentmodificationexception
2 Modify Arrays on Multiple Threads With CopyOnWriteArrayList
https://openclassrooms.com/fr/courses/5684021-scale-up-your-code-with-java-concurrency/6677541-modify-arrays-on-multiple-threads-with-copyonwritearraylist
4 Guide To CompletableFuture
https://www.baeldung.com/java-completablefuture
4 Connect Concurrent Actions Using CompletableFutures
https://openclassrooms.com/fr/courses/5684021-scale-up-your-code-with-java-concurrency/6655161-connect-concurrent-actions-using-completablefutures
5 GitHub Actions, Maven
https://docs.github.com/fr/enterprise-cloud@latest/actions/automating-builds-and-tests/building-and-testing-java-with-maven
5 Intégration continue, démarche DevOps
https://openclassrooms.com/fr/courses/2035736-mettez-en-place-lintegration-et-la-livraison-continues-avec-la-demarche-devops
5 deploy Maven projects to Artifactory with GitLab CI/CD
https://gitlab.com/gitlab-examples/maven/simple-maven-example/?_gl=1%2a1nkf3mi%2a_ga%2aODEwMjY2MDY0LjE2ODYyMjkyMDM.%2a_ga_ENFH3X7M5Y%2aMTY4NjIyOTIwMi4xLjEuMTY4NjIyOTIwNS4wLjAuMA
5 This repository is for the Build a Java app with Maven tutorial in the Jenkins User Documentation.
https://github.com/jenkins-docs/simple-java-maven-app/tree/master
Done :
Etape 1
- récupération des documents
- récupération du code et création du projet Eclipse
- installation des 3 bibliothèques particulières
- prise en main du projet (lecture)
- executer le projet et tester les tests
- parcourir cours sur git
- passer à l'étape 2
Etape 2
- identifier les tests unitaires qui échouent par intermitence
o: nearAllAttractions() (en plus d'être lent)
java.util.ConcurrentModificationException (run classique)
org.opentest4j.AssertionFailedError: expected: <26> but was: <1> (run debug, si pause entre li 589 et li 60)
- correction dans User.java li 73 : il manquait un ".attractionName" et le "!" était en trop
=> le test passe
- comprendre ce qu'il se passe dans calculateRewards(...)
o sleep de 1 seconde juste après le démarrage du tracker (et juste avant calculateRewards(...)
=> échec du test par Failure #2
Pourquoi ? je ne sais pas
? conflit entre le thread du tracker et le thread principal ?
: ils utilisent tous les deux calculateRewards (qui ajoute potentiellement des trucs dans userReward)
... comprendre CopyOnWriteArrayList
o utiliser CopyOnWriteArrayList sur User.userRewards => échec
o utiliser CopyOnWriteArrayList sur User.visitedLocations => réussite ! pk ? je sais pas trop, j'ai l'impression que le thread secondaire modifie cette liste aussi
Etape 3
- faire tourner la fonction de test qui ne marche pas
- lire le TODO du getNearbyAttractions
- implémenter le code qui va récupérer les 5 plus proches
o bonus : dans l'ordre de proximité
- implémenter le code qui va transformer la liste en JSON
Etape 4 :
- faire tourner les tests de performance
-> ConcurrentModificationException
=> il faut que je finisse l'étape 2 : Done !
- identifier les endroits où ça lague
- lire les cours/ressources
- modif du code ... CompletableFuture.runAsync( ... avec private final ExecutorService exec = Executors.newFixedThreadPool(100);
- mettre à jour le excel pour comparer les performances