Accéder au contenu principal

Articles

Create and use a result captor in Mockito

Today I will show you how to create a Mockito captor In Mockito it exists the possibilty to use ArgumentCaptor to allow developers to verify the arguments used during the call of mocked method, but not the result itself. Indeed, in the current release of Mockito it's not possible to capture it and my solution to do that is to build a ResultCaptor class which implements the Answer interface and generify it for more conveniance. Let's take a look. Create the ResultCaptor class public static class ResultCaptor < T > implements Answer < T > { private T result = null ; public T getResult () { return result ; } @Override public T answer ( InvocationOnMock invocationOnMock) throws Throwable { //noinspection unchecked result = ( T ) invocationOnMock.callRealMethod(); return result ; } } In this quite simple implementation we see that the ResultCaptor class implements the Answer interface which force to override the
Articles récents

Mémotech Rubik's Cube

Voici un article rapide plus destiné à un être un mémo, qu'un tutorial complet sur la résolution du Cube en 3x3x3. Je tire les informations d'un site web aujourd'hui disparu (www.rubik.gireaud.org), qui proposait des solutions pour les cubes 2x2x2, 3x3x3, 4x4x4, 5x5x5, 7x7x7. La première couronne Quand vous aurez fini la première couronne, votre cube ressemblera à ça: Le croix Le but de cette étape est de réaliser une croix qui ressemblera à ça: Comme le montre la figure ci-dessus,  il faut que la croix soit alignée avec les cubes centraux . Comme les cubes centraux ne bougent jamais (ils seront toujours au centre), c'est à vous de placer les arêtes correctement. Exemple d'une couronne mal positionnée: Ne vous souciez pas des coins ! Concentrez-vous sur les  arêtes uniquement  !! Comme c'est l'étape la plus facile, je n'ai pas détaillé toutes les possibilités de mouvements. Arrangez-vous pour placer les arêtes que vous voulez placer sur la croix sur la f

Univers Docker, Introduction à Docker Entreprise

Introduction D'abord un petit rappel, un conteneur Docker est un package léger d'applications, qui fonctionnent de manière isolée du reste des autres logiciels. Les grandes familles de produits chez Docker Le projet Moby est une extraction du code d'origine de Docker, qui contient tous les composants nécessaires à la réalisation des déclinaisons des outils Docker, Plusieurs déclinaisons de Moby existent comme par exemple,  Docker Engine , Docker Desktop et Docker Entreprise . Dans le chapitre qui suit, nous allons regarder de plus près la déclinaison Docker Entreprise. Focus sur Docker Entreprise Docker Entreprise est d'avantage une plateforme destinée à la production des applications d'entreprises dans son ensemble, qu'un simple ensemble d'outils à destination des OPS. Ainsi, il faut s'imaginer Docker Entreprise comme un pipeline de développement logiciel destiné aussi bien aux développeurs, qu'aux OPS. Un dès principaux avanta

Hystrix, Introduction

Toujours en quête d'amélioration continue, j'ai décidé de trouver une alternative à notre solution actuelle de cache couplée à un  circuit-breaker , qui de surcroît me donnerait une visualisation claire de l'état du système. L'idée de départ était de trouver un produit proposant toutes ces features et qui éviterait un couplage compliqué, voir hasardeux entre des librairies d'origines différentes. La partie dashboard étant le nice-to-have ! Après une étude de l'existant, je suis tombé assez rapidement sur Hystrix , qui est une librairie développée à l'origine par  Netflix , pour Netflix. Cette librairie au nom mystérieux possède toutes les caractéristiques désirées, elle implémente le pattern circuit-breaker à la perfection, on peut lui adjoindre un mécanisme de cache interne et propose en complément une solution de dashboard, mais pas que... En effet, on retrouve également dans le produit la possibilité de brancher un fallback en cas d'échec de l

Jib, Introduction

Voici un bref aperçu de Jib, qui est un produit de chez Google facilitant la conteneurisation d'une application Java standard. Le but de Jib est de créer une image Docker ou OCI d'une application Java, sans la nécessité de créer un fichier dockerfile dédié ou même d'avoir Docker installé sur sa machine. Jib repense donc la conteneurisation de son application en se passant du workflow classique : application, build, création de l'image Docker, ajout de l'image dans son contexte Docker et déploiement de l'image sur sa registry. Le but clairement annoncé par Jib est de dockériser son application en vue de faciliter ses développements ou déploiements et cela de manière optimisée. En effet, Jib va cartographier votre application et ainsi faire un inventaire de vos classes, ressources et dépendances. Cette cartographie permettra la création d'un layer correspondant à la modification apportée à la ressource modifiée et améliorer drastiquement les temps de dépl

Java Mission Control, Introduction

Découvrons rapidement Java Mission Control , un outil proposé par Oracle, qui a été récemment open-sourcé pour le grand plaisir des Javaistes. Le but de JMC est de proposer une alternative un peu plus poussée à  VisualVM pour les développeurs mais pas que. En effet, les sys admins y verront aussi un allié de poids dans la maintenance ou le troubleshooting des applications Java en production. Pour plus d'information sur JMC, n'hésitez pas à aller voir mon article sur mon Wiki pro Reservoir code. Introduction à JMC Bonne lecture, Crédit photo : https://pixabay.com/fr/users/jackmac34-483877/

Les microservices, Introduction

Nous sommes en 2018 et il est (plus que) temps d'étudier de plus près ce nouveau paradigme popularisé par Martin Fowler et son équipe de Thoughtworks : les microservices . En effet, nous avons tous en charge directement ou indirectement, une pièce de code, qui même si elle est correctement codée a besoin d'être corrigée, améliorée et maintenue dans le cadre de son exploitation et son intégration au sein du SI. Ce type d'application est en règle générale nommée monolithe .  Bien que ce terme ait une connotation négative de nos jours, celles-ci ont fait les beaux jours des directions techniques en proposant une architecture standard, robuste, fiable et intégrée. Généralement déclinées en plusieurs couches applicatives (présentation, business, repository...), ces applications avaient l'avantage d'être simple à développer et leur intégration dans le SI était aisée, car composée de peu de ressource finalement (un serveur web, un serveur d'application et une b