Objectif : faire une analyse SonarQube à chaque Pull Request, et afficher le résultat dans la PR de Bitbucket cloud
Continuer la lecture de Analyse SonarQube dans chaque PR BitbucketArchives de catégorie : Java
Intégration continue avec Gitlab+Jenkins et des Jenkinsfiles


Gitlab permet de se brancher avec Jenkins pour y faire l’intégration continue.
Continuer la lecture de Intégration continue avec Gitlab+Jenkins et des JenkinsfilesBascule sur Spring Boot d’une application Java legacy
Spring Boot est un excellent accélérateur et cadre pour les applications spécifiques Java. J’ai eu l’occasion d’y faire passer une application dite « legacy » : c’est plus compliqué que de partir de zéro, mais ça vaut le coup.
Continuer la lecture de Bascule sur Spring Boot d’une application Java legacyInstallation/configuration de slaves Jenkins
Jenkins propose un architecture distribuée basée sur des noeuds (aussi appelée master/slave) qui est très efficace et flexible.
Elle permet facilement de répartir des builds sur des machines, qui peuvent être sur des OS différents, avec installation à la volée des outils de build.
Je ne vais pas ré-écrire la documentation de Jenkins, mais donner un retour d’expérience sur des cas que j’ai eu à traiter.
Continuer la lecture de Installation/configuration de slaves JenkinsComment installer Jenkins : sous Docker, via un package/repo ou à la main?
Il y a plusieurs manières d’installer Jenkins sous Linux, que j’ai essayé de comparer.
Continuer la lecture de Comment installer Jenkins : sous Docker, via un package/repo ou à la main?Spring TransactionSynchronization et SimpleThreadScope pour « remplacer » une connexion XA
Besoin : sur une appli Java, compenser la suppression du XA sur un couple JDBC–JMS.
Les classes TransactionSynchronization et SimpleThreadScope du framework Spring nous ont grandement rendu service pour ça.
Tests unitaires Hibernate sous H2 au lieu d’Oracle
Contexte : développement d’applications Java/Spring/Hibernate, avec données en bases Oracle. Build géré par Maven, exécutant des tests unitaires (voire tests d’intégration) sur un schema Oracle dédié à chaque développeur. Plateforme d’intégration continue (PIC, gérée par Jenkins) exécutant les TUs sur un schema Oracle par application.
Objectifs :
- réduire le temps de build sur les postes de dev
- permettre de basculer d’un projet à un autre plus facilement (sans avoir à recréer la structure de son schema Oracle)
- alléger l’installation/configuration des postes de dev
Idée : faire passer les tests unitaires sur une base en mémoire (H2) plutôt que sur Oracle
Spoiler : on a réussi à le mettre en place… mais on ne s’en est finalement quasiment pas servi.
Continuer la lecture de Tests unitaires Hibernate sous H2 au lieu d’Oracle
« Checksum » des données d’une table pour vérifier la synchronisation entre bases de données ou MDM
Besoin : pouvoir comparer un « checksum » des données de certaines tables (en base de données, ou dans un MDM), pour s’assurer que les données y sont fonctionnellement identiques.
Contexte : certaines données (dites de référentiel) sont dupliquées et synchronisées entre plusieurs systèmes/applications. Ce contrôle permet de s’assurer que la synchronisation fonctionne bien.
Contraintes : la structure des tables peut être légèrement différente d’un système à l’autre, et elles ne sont pas toujours accessibles directement en SQL (cas du MDM : progiciel EBX dans notre cas)
Chiffrement interopérable en Java, PL/SQL, Javascript, et avec des progiciels
Besoin : être capable de chiffrer des données sensibles d’une entreprise, pour pouvoir les faire transiter entre plusieurs applications.
Périmètre : chiffrement d’une chaine de caractères, pas d’un fichier ou d’un filesystem.
Enjeu : être capable de raisonnablement sécuriser le contenu, tout en étant interopérable entre différentes technologies.
Sécuriser les mots de passe jdbc du server.xml d’un Tomcat
Par défaut, les dataSources déclarées dans Tomcat affichent le mot de passe jdbc en clair dans conf/server.xml.
Dans pas mal d’entreprises, le répertoire de tomcat est accessible en lecture à de nombreuses personnes. C’est très pratique pour diagnostiquer, mais pose un problème de sécurité en exposant ce mot de passe.
Voici quelques pistes d’amélioration que j’ai investiguées, en essayant de trouver un équilibre entre les besoins des développeurs et ceux de l’exploitation (oui, ça ressemble à de la démarche devops ).
Continuer la lecture de Sécuriser les mots de passe jdbc du server.xml d’un Tomcat