Loading
déc 13

In this article, I will explain you how to add to your Maven build some Integration Tests executed by SoapUI.

As a bonus, Sonar Code Coverage will be enhanced with these tests.

Continuer a lire »

Tags :
oct 29

When using the sonar-csharp-core-plugin with Gallio (for executing Unit Tests), you may encounter the following error An attempt was made to load a program with an incorrect format:

[INFO] Running the tests.
[INFO] A fatal exception occurred while running tests.  Possible causes include invalid test runner parameters and stack overflows.
[INFO] 	Gallio.Model.ModelException: An exception occurred while invoking a test driver. ---> Gallio.Model.ModelException: Gallio.Model.ModelException: Could not load test assembly from 'X:\XXXXX\MyDLL.dll'. ---> System.BadImageFormatException: Could not load file or assembly 'file:///X:\XXXXX\MyDLL.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
[INFO] 	   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
[INFO] 	   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
[INFO] 	   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
[INFO] 	   at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
[INFO] 	   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
[INFO] 	   at Gallio.Runtime.Loader.DefaultAssemblyLoader.LoadAssemblyFrom(String assemblyFile) in c:\Server\Projects\MbUnit v3.3\Work\src\Gallio\Gallio\Runtime\Loader\DefaultAssemblyLoader.cs:line 86
[INFO] 	   at Gallio.Model.DotNetTestDriver.ExploreOrRunTask.LoadAssembly(String assemblyPath) in c:\Server\Projects\MbUnit v3.3\Work\src\Gallio\Gallio\Model\DotNetTestDriver.cs:line 330
[INFO] 	   --- End of inner exception stack trace ---
[INFO] 	   at Gallio.Model.DotNetTestDriver.ExploreOrRunTask.LoadAssembly(String assemblyPath) in c:\Server\Projects\MbUnit v3.3\Work\src\Gallio\Gallio\Model\DotNetTestDriver.cs:line 337

After many attempts, I found the error : the build was being executed on a 64bits machine while the build was a 32bits.
The solution is to change the sonar.gallio.runner parameter :

 
    <sonar.gallio.runner>IsolatedProcess</sonar.gallio.runner>
 
Tags :
juil 03

Joda Time est une librairie destinée à remplacer les classes Date et Time du JDK.
Date et Time ont très peu évolué depuis le début du JDK, elles sont maintenant assez pénibles à utiliser sans devoir toujours re-coder les mêmes utilitaires.

Continuer a lire »

Tags :
fév 10

Travaillant sur des projets dans un environnement financier, beaucoup de transferts se font de manière sécurisée.

Parmi eux, on retrouve très souvent les transferts de fichiers, habituellement rencontrés sur le protocole FTP. Or le protocole FTP n’est absolument pas sécurisé (données et mots de passe qui transitent en clair sur le réseau).

Le choix opérationnel se porte très souvent sur SFTP.
SFTP (SSH File Transfer Protocol), n’est pas FTP exécuté sur SSH, mais plutôt un nouveau protocole conçu dès le départ par le groupe de travail IETF SECSH.
STFP est un protocole de communication fonctionnant au-dessus de SSH à ne pas confondre avec File Transfer Protocol over SSL, abrégé FTPS.

L’objectif de cet article est d’écrire un bout de code pour se connecter à un serveur SFTP, uploader un fichier et télécharger un fichier.
Nous allons bien évidemment écrire un test unitaire et pour cela nous allons utiliser un serveur SFTP embarqué en mémoire.

Continuer a lire »

Tags :
juil 15

Github

Voici la configuration que j’applique lorsque mon poste de développement se situe derrière un proxy ultra-restrictif. Je pars du principe que vous êtes dans une entreprise, donc vous avez hélas un poste sous Windows.

Le principe est d’utiliser plink au lieu de la commande ssh fournie par défaut par msysgit.
Plink va permettre d’utiliser une clef stockée par pageant et de faire un tunnel SSH vers le repository git.

Continuer a lire »

Tags :
déc 27

Dans cet article, je vais vous montrer comment créer une application Play! et comment la déployer sur Google AppEngine.

Google AppEngine (GAE) propose une solution d’hébergement d’applications gratuites très pratiques pour des applications Java. La liste des fonctionnalités offertes par GAE peut-être consultée ici.
Le framework Play! fournit un module extrêmement bien fait pour déployer des applications sur Gae et un autre module est disponible pour gérer le Datastore Gae : Siena.
Continuer a lire »

Tags :
déc 16

Voici un billet un peu plus pratique utilisant le framework Play!.
Contrairement à mon billet précédent, celui-ci s’adresse avant tout aux développeurs.

L’objectif est d’intégrer dans une page un éditeur de texte riche au format Textile. Cette syntaxe est très simple à appréhender et la génération de code HTML à partir de code Textile est native dans Play! grâce à la librairie Wikitext.

En ce qui concerne l’éditeur en tant que tel, nous allons utiliser l’excellent MarkItUp. Il est basé sur jQuery, lui même nativement embarqué par Play!. MarkItUp propose un éditeur modulaire, permettant de gérer plusieurs syntaxes. L’ajout de syntaxes se fait par des sets.


Continuer a lire »

Tags :
déc 15

Depuis le 2 novembre, la version 1.1 du framework Play! est disponible.
Je ne vous ferai pas une présentation de ce framework, il en existe plusieurs dont celle du Touilleur Express (Play! Framework).

Je vais plutôt vous faire un retour d’expérience de la mise en place des outils nécessaires pour intégrer des applications Play! à notre usine d’Intégration Continue.
Continuer a lire »

Tags :
août 05

JMX (Java Management Extensions) est très pratique pour le monitoring d’une application.
Malheureusement, lorsque l’application grandit et que, par exemple, des traitements nocturnes apparaissent, ces derniers tournent dans des machines virtuelles distinctes.

A ce moment là, JMX pose problème pour la remontée d’informations.

L’idée que je vais vous proposer est la suivante :

  • Une JVM hébergeant un MBeanServer tourne en continu (éventuellement hébergé dans un serveur d’application).
  • Chacun des traitements se connectera à cette JVM en utilisant un JMX Connector et invoquera à distance des Notifications JMX à destination du MBeanServer.

Continuer a lire »

Tags :
août 05

Après avoir étudié les différents frameworks Java en vue de la génération de documents PDF (ici), entrainons-nous maintenant 2 exemples simples d’implémentation de la librairie iText.

Ce sample se divise en 2 parties :

  • la 1ère montre un exemple de génération de document PDF from scratch.
  • la 2ième partie va générer un document à partir d’un template que nous allons créer dans Open-Office.

Continuer a lire »

Tags :

Creative Commons License
Blog Infin-It par Infin-It est mis à disposition selon les termes de la licence Creative Commons Paternité-Pas d'Utilisation Commerciale 2.0 France.