Menu principal

Statut de la page

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 : 152
Publié par Marthym : 20

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 : 118
Publié par Marthym : 20

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 : 198
Publié par Marthym : 20

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 : 179
Publié par Marthym : 20

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 : 235
Publié par Marthym : 20

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 : 196
Publié par Marthym : 20

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 : 364
Publié par Marthym : 20

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 : 827
Publié par Marthym : 20

Sauvegarde intelligente sur HubiC

Introduction Il y a pas loin d’une année je publiais un script bash permettant de faire des backups distants sur HubiC (complets & incrémentaux) de toutes vos données. Un an et un changement de connexion ADSL plus tard, ce script n’est pas vraiment viable. En effet, je suis passé d’une fibre optique à une connexion ADSL avec une forte atténuation. Pour transférer mes données complète ça prend pas loin d’une journée … J’ai donc changé le script pour pallier ce problème. L’idée est toujours de sauvegarder mes données mais au lieu d’un ubert tar découpé que je transfère une fois par semaine, je suis parti sur une sauvegarde par sous-répertoire et un transfert des modifications uniquement. Explications On a un script [...]
Lire la suite
Vus : 253
Publié par Marthym : 20

Sauvegarde de données personelle

Introduction J’ai récemment déménagé et au passage changé de box, de configuration réseau et tant qu’à tout refaire, j’en ai profité pour revoir l’organisation de mes sauvegardes perso. Je n’ai pas écrit grand-chose depuis un moment, alors pourquoi pas en faire profiter pour faire un billet rapide sur les quelques trucs sympas que j’ai changé. Les besoins Voyons déjà ce qui est important en matière de préservation de nos données personnelles. Pour une sécurité minimale, les données doivent être dupliquées sur au moins deux supports physiques. On parle là de deux copies faciles d’accès, sur le PC de tous les jours et sur un disque secondaire. Les données doivent être facile à restaurer et à synchroniser. Pour une [...]
Lire la suite
Vus : 327
Publié par Marthym : 20
Powered by BilboPlanet