From 3b7ebd42b5b039fcd5daf4ee5a7609f88205ffe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Mon, 6 Jun 2005 12:36:07 +0000 Subject: [PATCH] - reimplemented dynamic class loading in the correct way --- src/fr/inrialpes/exmo/align/util/EvalAlign.java | 8 +++++--- src/fr/inrialpes/exmo/align/util/ParserPrinter.java | 12 ++++++------ src/fr/inrialpes/exmo/align/util/Procalign.java | 7 ++++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/fr/inrialpes/exmo/align/util/EvalAlign.java b/src/fr/inrialpes/exmo/align/util/EvalAlign.java index 3d176fcb..6fd5523c 100644 --- a/src/fr/inrialpes/exmo/align/util/EvalAlign.java +++ b/src/fr/inrialpes/exmo/align/util/EvalAlign.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) 2003-2004 INRIA Rh�ne-Alpes. + * Copyright (C) 2003-2005 INRIA Rh�ne-Alpes. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -177,9 +177,11 @@ public class EvalAlign { if ( classname != null ) { try { Object [] mparams = {(Object)align1, (Object)align2}; + Class oClass = Class.forName("org.semanticweb.owl.align.Alignment"); + Class[] cparams = { oClass, oClass }; Class evaluatorClass = Class.forName(classname); - java.lang.reflect.Constructor[] evaluatorConstructors = evaluatorClass.getConstructors(); - eval = (Evaluator)evaluatorConstructors[0].newInstance(mparams); + java.lang.reflect.Constructor evaluatorConstructor = evaluatorClass.getConstructor(cparams); + eval = (Evaluator)evaluatorConstructor.newInstance(mparams); } catch (Exception ex) { System.err.println("Cannot create alignment " + classname + "\n" + ex.getMessage() ); diff --git a/src/fr/inrialpes/exmo/align/util/ParserPrinter.java b/src/fr/inrialpes/exmo/align/util/ParserPrinter.java index 3265ed42..cf5f08d8 100644 --- a/src/fr/inrialpes/exmo/align/util/ParserPrinter.java +++ b/src/fr/inrialpes/exmo/align/util/ParserPrinter.java @@ -199,12 +199,12 @@ public class ParserPrinter { if ( rendererClass == null ) renderer = new RDFRendererVisitor( writer ); else { try { - //renderer = (AlignmentVisitor) ClassLoader.getSystemClassLoader().loadClass(renderingClass).newInstance(); - Object[] mparams = {(Object) writer }; - java.lang.reflect.Constructor[] rendererConstructors = - Class.forName(rendererClass).getConstructors(); - renderer = - (AlignmentVisitor) rendererConstructors[0].newInstance(mparams); + Object[] mparams = {(Object) writer }; + Class[] cparams = {Class.forName("java.io.writer")}; + java.lang.reflect.Constructor rendererConstructor = + Class.forName(rendererClass).getConstructor(cparams); + renderer = + (AlignmentVisitor) rendererConstructor.newInstance(mparams); } catch (Exception ex) { System.err.println("Cannot create renderer " + rendererClass + "\n" + ex.getMessage() ); diff --git a/src/fr/inrialpes/exmo/align/util/Procalign.java b/src/fr/inrialpes/exmo/align/util/Procalign.java index 43adeb53..ededaa95 100644 --- a/src/fr/inrialpes/exmo/align/util/Procalign.java +++ b/src/fr/inrialpes/exmo/align/util/Procalign.java @@ -267,9 +267,10 @@ public class Procalign { // Create alignment object Object[] mparams = {(Object)onto1, (Object)onto2 }; Class alignmentClass = Class.forName(alignmentClassName); - java.lang.reflect.Constructor[] alignmentConstructors = - alignmentClass.getConstructors(); - result = (AlignmentProcess)alignmentConstructors[0].newInstance(mparams); + Class oClass = Class.forName("org.semanticweb.owl.model.OWLOntology"); + Class[] cparams = { oClass, oClass }; + java.lang.reflect.Constructor alignmentConstructor = alignmentClass.getConstructor(cparams); + result = (AlignmentProcess)alignmentConstructor.newInstance(mparams); result.setFile1(uri1); result.setFile2(uri2); } catch (Exception ex) { -- GitLab