Affichage des articles dont le libellé est java. Afficher tous les articles
Affichage des articles dont le libellé est java. Afficher tous les articles

Le prix Turing 2008 pour Barbara Liskov


Félicitations à Mme Liskov célèbre pour le principe de programmation objet qui porte son nom publié en 1987 :

If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2, then S is a subtype of T.

Posted in Libellés : | 0 commentaires

Netbeans 10 ans déjà


Cela fait 10 ans que Netbeans existe :o))
Je regarde en arrière et je me rends compte à quel point le temps a passé.
Le temps où avoir 512 Mo de RAM sur un PC était un luxe. Eclipse n'existait pas et on avait VisualAge écrit en Smalltalk. Ça ramait dans tous les sens, les EJB 2.0 et 2.1 nous faisaient des misères, ....
Joyeux anniversaire Netbeans, pour télécharger ça se passe ici

Posted in Libellés : , , , | 0 commentaires

Master he is breathing


Et oui le voilà, il est tout beau, il est tout chaud notre premier plugin Maven est enfin sorti en version 1.0.
J'espère que vous allez tous pouvoir en profiter :o))
Ça se passe ici.

Posted in Libellés : , , | 0 commentaires

Créer une référence JNDI sur une BasiDataSource









      InitialContext ic = new InitialContext();
      // Construct BasicDataSource reference
      Reference ref = new Reference("javax.sql.DataSource",
          "org.apache.commons.dbcp.BasicDataSourceFactory"null);
      ref.add(new StringRefAddr("driverClassName""org.postgresql.Driver"));
      ref.add(new StringRefAddr("url",
          "jdbc:postgresql://localhost:5432/postgres"));
      ref.add(new StringRefAddr("username""postgres"));
      ref.add(new StringRefAddr("password""postgres"));
      ref.add(new StringRefAddr("maxActive""4"));
      ref.add(new StringRefAddr("maxWait""5000"));
      ref.add(new StringRefAddr("removeAbandoned""true"));
      ref.add(new StringRefAddr("removeAbandonedTimeout""5000"));
      ic.rebind("jdbc/Silverpeas", ref);



Java2html


Posted in Libellés : , | 0 commentaires

Mock mock mock

Comment tester une application J2EE 1.3 (et oui :-(( ) hors conteneur. Heureusement que l'on trouve pas mal de projets sympathiques sur le web :


  • Je conseille fortement Mock Javamail pour tester l'envoi et la réception de mail, il est très très simple d'utilisation et facilite grandement la vie.

  • L'implémentation FileSystem de JNDI permet d'avoir un espace de nommage très facilement.

  • Enfin pour la partie plus J2EE j'ai utilisé Mockrunner même si les factories ne sont pas compatibles JNDI et qu'il faille ajouter une instance d'ObjectFactory.
    Sans oublié les classes de tests de base que fournit Spring et qui sont un plaisir notamment pour les DAOs).


Si on couple tout cela à EasyMock on est capable de faire du TDD correctement.

Posted in Libellés : , | 0 commentaires

Groovy et Jonas

J'ai enfin réussi à faire comprendre l'intérêt de l'intégration continue et d'un outil comme Hudson auprès de mes voisins. Mais tout n'était pas si simple :o(( car alors on m'a gentiment expliqué qu'ici on utilise JOnAS.
Et là surprise JOnAS utilise ASM 1.5.3 qui est fortement incompatible avec ASM 2.2 utilisé par Groovy et donc Hudson.
Pour que tout fonctionne bien il faut ajouter un fichier jonas-web.xml dans le répertoire WEB-INF d'Hudson avec le contenu magique suivant :

<?xml version="1.0" encoding="ISO-8859-1"?>
<jonas-web-app xmlns="http://www.objectweb.org/jonas/ns"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.objectweb.org/jonas/ns
          http://www.objectweb.org/jonas/ns/jonas-web-app_4_0.xsd">
  <java2-delegation-model>false</java2-delegation-model>
</jonas-web-app>

J'imagine que cela s'applique aussi pour Grails.

PS: voici la jolie exception que l'on récupérait

2008-02-05 09:47:36,929 : StandardContext.filterStart : Exception starting filter authentication-filter
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
        at org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:213)
        at org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:691)
        at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:885)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:436)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:289)
        at groovy.lang.GroovyShell.parseClass(GroovyShell.java:488)
        at groovy.lang.GroovyShell.parse(GroovyShell.java:500)
        at groovy.lang.GroovyShell.parse(GroovyShell.java:480)
        at groovy.lang.GroovyShell.parse(GroovyShell.java:539)
        at hudson.util.spring.BeanBuilder.parse(BeanBuilder.java:133)
        at hudson.security.HudsonFilter.init(HudsonFilter.java:62)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)

Posted in Libellés : , | 4 commentaires

Java et X11

Il n'y a pas à dire, développer sous un véritable OS change beaucoup de choses.
On a remarqué récemment sous Windows nos collègues mettaient plus de deux fois plus de temps à construire le projet que sous Linux; Et encore je ne parle pas des problèmes d'anti-virus quand on n'est pas administrateur du poste.
Mais hélas parfois notre petit pingouin pose des soucis spécifiques notamment avec X11.
Voici donc une petite astuce lorsque l'on se trouve avec l'erreur suivante:

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.


Il ne suffit pas de définir la variable d'environnement DISPLAY mais aussi autoriser les connexions au serveur X grâce à a commande magique suivante :

xhost +localhost +LOCAL:all

Posted in Libellés : , | 0 commentaires