C'est l'orgie chez les fourmis


A l'occasion de la sortie d'Ant 1.9.0, Ivy 2.3.0 et du tout récent EasyAnt, je vous propose de découvrir ce nouvel outil de build qui vient s'ajouter à la liste (déjà bien fournie) des outils existants.

Lire la suite...

FindBugs, a static analysis tool (part 2/4)


In the previous article, you have learned some bases in static analysis and how it can be used to improve code quality. Today, I will present FindBugs, one of the most known static analyzers for Java.

FindBugs

Lire la suite...

Static analysis (part 1/4)


Software quality is modern software development. In fact, software defects can lead to serious issues, like data loss. Besides, they need to get fixed, which adds to the project cost. That is why code review, different set of eyes examining the source code looking for possible bugs, is becoming a routine procedure in software development.

Along with code review, is static code analysis. Indeed, code review, while an important and necessary step, is not enough. It is tedious and fallible because it depends on humans. Thus, there is a large class of software defects that can be detected in an automated way. Enter the static code analysis, with tools like PMD, CheckStyle and FindBugs. Even if you haven't used one of those tools, you still have encountered static analysis by simply using your IDE of choice, like Eclipse or IntelliJ. Integrated Development Environments do perform some nice static analysis that can detect important bugs, which are not compiling errors, like dead code or unused variables.

One interesting body of defects that could be detected by static analysis is security flaws. This post, the first of a series of four, is going to present the FindBugs detector I developed that performs an advanced analysis to find input injections, called "Taint Analysis". The program can find in java bytecode most vulnerabilities related to input representation, including Cross-site scripting, SQL injection, Cookie poisoning, path traversal.

But first, let's introduce static analysis: how it works, and how it can help developers build a strong system.

Lire la suite...

Intégrer RPM avec Maven et Jenkins 2/2


Après avoir découvert avec vous le rpm-maven-plugin, je vous propose de continuer l'immersion dans le packaging natif avec le même cocktail Maven-RPM, toujours servi par Jenkins. Cette fois, je vais par contre présenter une approche plus en phase avec ce que j'ai pu expérimenter sur le terrain. C'est donc parti pour un petit retour d'expérience DevOps.

Lire la suite...

Gestion de dépendances et conflits -- CUDF 1/3


Nous allons détailler au cours d'une série de trois articles la problématique des gestions de dépendances et de la résolution de conflits. Nous commençons par la base: la norme qui va permettre une meilleure gestion des dépendances et conflits.

Lire la suite...

Intégrer RPM avec Maven et Jenkins 1/2


Le mouvement DevOps fait de plus en plus parler de lui, et parmi les concepts qu'on y trouve, figure le packaging natif. Après quelques mois passés sur un projet livré en RPM, je vous propose de partager mon retour d'expérience sur le sujet. Pour faire simple, je suis convaincu par le packaging natif, surtout dans un cadre entreprise. Mais plutôt que de vous présenter ce qui a été fait en mission, je vous propose un cocktail Maven-RPM servi par Jenkins. Dans ce premier article, je découvre avec vous le rpm-maven-plugin que je n'avais encore jamais utilisé.

Lire la suite...

Eclipse Indigo et EGit 1.0.0


Personne n'a pu passer au travers : le 22 juin dernier la fondation Eclipse a sorti Eclipse Indigo, sa release simultanée d'Eclipse et de plus de 60 projets.

Mais cette année, un projet intéressant est sorti en version 1.0.0 avec Indigo : EGit, le plugin d'intégration de Git dans Eclipse. Avec la migration de ses projets sous Git, la fondation Eclipse se devait d'avoir un plugin à la hauteur. C'est maintenant chose faite !

Un petit tour des fonctionnalités d'EGit.

Lire la suite...

Animer l'évolution de son code source avec Gource


La plupart des projets sont maintenant gérés avec des systèmes de contrôle de version (VCS) tels que SVN ou Git.
Pour voir la construction de ces projets, le seul outil offert par ces VCS est l'historique via la commande log.
C'est bien pratique mais pas très fun et compréhensible pour des non techniques...

C'est là que Gource entre en scène !

Lire la suite...

Gradle, un nouvel outil de build incontournable


La réalisation d'une application est constituée de nombreuses étapes.
Parmi celles-ci, l'étape de construction, aussi appelée étape de build, est la plus importante. Elle permet de transformer un code source, issu d'une représentation humaine, dans un ensemble de code exécutable constituant une représentation machine.
Il n'est pas rare que cette étape soit complexe tant par sa mise en œuvre que son adéquation aux besoins changeants du projet. Il est alors nécessaire d'outiller cette construction afin de répondre au plus près aux besoins du projet.

Lire la suite de l'article sur Le Journal du Net

Writing custom Gradle plugins, part 1


Gradle is a plugin-oriented build system. Each plugin provides a set of tasks and conventions, and the code required to run the build process. Although many plugins are already provided in the core distribution (java, groovy, ant, maven, jetty...), the need may arise to develop your own. As this feature is currently not documented, we will write a series of blog posts demonstrating, step by step, how to create a plugin participating in the build lifecycle.

Lire la suite...

- page 1 de 3