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