Menu principal

Statut de la page

Maven Release Plugin

Carrément, deux billets dans la même semaine, c’est rare. Bon rien de foufou, j’ai passé un peu de temps la semaine passé à automatiser le processus de release dans ma boite. J’avais déjà essayé d’utiliser le Maven Release Plugin mais j’ai jamais eu de succés. Cette fois j’ai quand même été un peu plus loin alors j’écris trois mots sur le sujet, en français, si ça intéresse des gens. Introduction L’idée est de pouvoir versionner un composant sans autre intervention humaine que le choix des numéros de version (release et next snapshot). Le POM.xml Configuration des plugin Déjà la première chose est de configurer les différents plugins de [...]
Lire la suite
Vus : 279
Publié par Marthym : 22

Spring et connexion sécurisé via proxy

Dans le cadre d’un projet, j’ai une configuration Spring Secure tel que : ... http.requiresChannel() .antMatchers("/client/").requiresSecure() .antMatchers("/fr/client/").requiresSecure() .antMatchers("/es/client/").requiresSecure()  [...]
Lire la suite
Vus : 161
Publié par Marthym : 22

Hello OSGi World, Part 5, Fragment Bundles

Disons que cette partie est un bonus si vous n’avez pas encore saturé ! Depuis le vous devez bien avoir remarqué que l’on utilise log4j 2 et que les logs ne s’affichent pas. À la place on a un message d’erreur qui dit qu’il manque un fichier de configuration. Et malheureusement, l’ajouter dans le répertoire de conf ne suffit pas, ni dans le répertoire courant. Il doit se trouver dans le classpath de log4j2-core. Fragment Bundle Le problème est là, l’isolation des classpaths induite par OSGi interdit donc de rajouter un fichier dans le classpath d’un bundle. À moins de modifier le jar original de log4j, ce qui n’est pas vraiment génial. C’est là qu’interviennent les Fragments Bundles. En effet, ce sont des genres d’ajout fait à des bundles existant. Les fichiers qu’ils contiennent vont être ajouté au bundle qui les abrite [...]
Lire la suite
Vus : 191
Publié par Marthym : 22

Hello OSGi World, Part 4, Injection de dépendances

Quelles sont donc les raisons d’utiliser OSGi ? On en a vu plusieurs jusqu’ici : Isolation des classpath par bundle Chargement et mise à jour des bundles à chaud Mais OSGi c’est aussi et surtout un framework d’injection de dépendances. Comme pour tout dans l’univers OSGi, l’injection est une spécification et il existe plusieurs implémentations comme iPOJO ou Declarative Service. On ne verra pas iPOJO parce que je suis pas fan et j’ai plus l’habitude d’utiliser DS. Declarative Service DS permet de déclarer des composants et des services qui s’injectent les uns les autres. Initialement tout doit être déclaré dans des XML et dans le MANIFEST.MF, encore un truc bien fastidieux ! Heureusement, SCR vient à notre secours et permet de faire tout ça via des annotations ce qui rend la chose plus sympa et plus [...]
Lire la suite
Vus : 169
Publié par Marthym : 22

Hello OSGi World, Part 3, Configuration du runner

On a parlé la dernière fois de l’un des points de complexité d’OSGi que sont les bundles et le fait que toutes les dépendances du projet doivent impérativement être des bundles aussi, sans quoi il ne sera pas possible au runner de les charger. Le run des applications OSGi est un autre de ces points noir. Le principe Pour démarrer une application OSGi, le principe est simple sur le papier. On lance l’implémentation choisie (pour nous felix) pour on lui fait charger les bundles de notre application. C’est très vite fastidieux et inhumain de le faire à la main. Donc pour s’épargner ça, on va utiliser le bundle fileinstall. Ce dernier va automatiquement charger tous les bundles contenu dans un dossier. Tel qu’on l’a inclus pour l’instant un import felix nu sans rien d’autre. On va ajouter gogo.shell qui va [...]
Lire la suite
Vus : 255
Publié par Marthym : 22

Hello OSGi World, Part 2, Premiers concepts OSGi

Introduction L’objectif est donc de créer un serveur REST avec une route /hello qui produit le résultat Hello World. Le tout exécuté dans un environnement OSGi. Pour exécuter une application au sein d’un conteneur OGSi, cette dernière doit être packagé sous la forme d’un bundle. Un bundle est un jar contenant des informations de dépendance dans son META-INF. Création du projet Commençons par créer le projet et le POM associé. On ne va pas utiliser d’artefact Maven, ça serait trop facile. Le projet va avoir l’arborescence suivante: hello-osgi-world how-assembly Module faisant l’assemblage du projet how-rest Code du [...]
Lire la suite
Vus : 284
Publié par Marthym : 22

Hello OSGi World, Part 1, Introduction

Vaste sujet que j’ai entamé il y a plus d’un an mais que j’ai jamais eu le temps de terminer correctement jusqu’ici. Introduction On en entend parler, mais on ne sait pas bien ce que c’est ni ce que cela fait ? OSGi c’est une spécification de framework basé sur Java. Cette spécification définit le cycle de vie d’une application. Wikipedia définira mieux que moi ce qu’est OSGi sur le papier. Les fonctionnalités clés apportées par OSGi (selon moi) sont les suivantes : Mise à jour des jar à chaud Injection de dépendance Gestion des versions au niveau package Mais tous ces avantages ne sont pas gratuits, OSGi c’est compliqué. Les experts diront que non et qu’une fois qu’on a compris c’est simple mais [...]
Lire la suite
Vus : 318
Publié par Marthym : 22

GitLab-CI + Docker Hub

Il y a pas loin d’un an, j’ai décrit sur l’une des nombreuses manière d’automatiser une release grace à Github et Travis CI. Depuis, les nouvelles versions de Gitlag intègre des fonctionnalités d’intégration continue. Couplé avec des services comme Framagit qui permettent d’avoir des repos git privé, ça permet d’avoir gratuitement accès à une infrastructure d’intégration continue gratuite pour toutes sortes de projets personnels. Je prends pour exemple une projet perso en latex SW-Redemption pour vous montrer ce qu’il est possible de faire avec gitlab-ci. Configuration de gitlab-ci Un peu comme pour travis qui lit un fichier .travis.yml, gitlab-ci utilise un fichier [...]
Lire la suite
Vus : 279
Publié par Marthym : 22

LaTeX, L'éditeur qui va bien

L’histoire Dans un précédent billet, j’expliquais comment j’avais publié mon CV LaTeX sur GitHub. C’était ma première expérience LaTeX et quand on connaît pas et qu’on apprend, on a besoin de voir ce que l’on fait en temps réel. Je modifie une ligne, ça change le PDF généré, … Je m’étais alors tourné vers Gummy. Léger, pratique, pour les deux pages de mon CV c’est très bien. Mais déjà il y avait quelques points gênant comme un affichage pas toujours fidèle à mon PDF de sortie. Et puis dernièrement j’ai commencé un projet demandant la rédaction d’un PDF assez conséquent. [...]
Lire la suite
Vus : 413
Publié par Marthym : 22

Nettoyer sa Debian

Vue d'ensemble Nettoyer les fichiers de conf obsolète Localepurge Le nettoyage régulier Les symptomes La solution Gagner encore de la place Nettoyer les kernels Trouver les gros fichiers  [...]
Lire la suite
Vus : 994
Publié par Marthym : 22
Powered by BilboPlanet