Index: lutinmatrix/src/java/org/codelutin/math/matrix/MatrixFactory.java diff -u lutinmatrix/src/java/org/codelutin/math/matrix/MatrixFactory.java:1.2 lutinmatrix/src/java/org/codelutin/math/matrix/MatrixFactory.java:1.3 --- lutinmatrix/src/java/org/codelutin/math/matrix/MatrixFactory.java:1.2 Thu Oct 27 12:28:10 2005 +++ lutinmatrix/src/java/org/codelutin/math/matrix/MatrixFactory.java Fri Nov 4 16:56:39 2005 @@ -23,15 +23,16 @@ * Created: 11 octobre 2005 20:15:20 CEST * * @author Benjamin POUSSIN - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * - * Last update: $Date: 2005/10/27 12:28:10 $ + * Last update: $Date: 2005/11/04 16:56:39 $ * by : $Author: bpoussin $ */ package org.codelutin.math.matrix; import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,15 +53,33 @@ static { // on essai d'enregistrer le converter XML try { - org.codelutin.xml.XMLConverterFactory.addConverter(MatrixND.class, - new MatrixNDXMLConverter()); + // Il faut le faire par pur introspection sinon l'exception + // NoClassDefFoundError est levé avant d'entrer dans le constructeur + // static :( + Class converterClass = Class.forName("org.codelutin.math.matrix.MatrixNDXMLConverter"); + Object converter = converterClass.newInstance(); + + Class converterFactoryClass = Class.forName("org.codelutin.xml.XMLConverterFactory"); + Method m = converterFactoryClass.getMethod("addConverter", Class.class, Class.forName("org.codelutin.xml.XMLConverter")); + m.invoke(null, MatrixND.class, converter); + + // org.codelutin.xml.XMLConverterFactory.addConverter(MatrixND.class, + // new MatrixNDXMLConverter()); log.info("Converter XML pour MatrixND ajoute"); // on essai d'enregistrer le converter JDBC // le JDBC depend du XML try { - org.codelutin.topia.persistence.jdbctransformer.JDBCTransformerFactory - .addConverter(MatrixND.class, new MatrixNDJDBCConverter()); + converterClass = Class.forName("org.codelutin.math.matrix.MatrixNDJDBCConverter"); + converter = converterClass.newInstance(); + + converterFactoryClass = Class.forName("org.codelutin.topia.persistence.jdbctransformer.JDBCTransformerFactory"); + m = converterFactoryClass.getMethod("addConverter", Class.class, Class.forName("org.codelutin.topia.persistence.jdbctransformer.JDBCTransformer")); + m.invoke(null, MatrixND.class, converter); + + // Class converterClass = org.codelutin.math.matrix.MatrixNDJDBCConverter(); + // JDBCTransformerFactory + // .addConverter(MatrixND.class, new MatrixNDJDBCConverter()); log.info("Converter JDBC pour MatrixND ajoute"); } catch (Throwable eee) { log.info("librairie topia non presente. Import/Export JDBC impossible");