The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
RapidMiner uses older library than extension
HeikoPaulheim
Member Posts: 13 Contributor II
Hi,
I am developing an extension that Encog, version 3.2.0. In RapidMiner_Unuk, some older version of Encog is used, so when I run my extension, it says:
Is there any way of making my extension using exactly the libraries it comes with?
Thank you,
Heiko
I am developing an extension that Encog, version 3.2.0. In RapidMiner_Unuk, some older version of Encog is used, so when I run my extension, it says:
Removing encog.jar from RapidMiner_Unuk resolves the problem, but that is of course not an option.
SEVERE: Process failed: org.encog.neural.networks.layers.BasicLayer.<init>(Lorg/encog/engine/network/activation/ActivationFunction;ZI)V
java.lang.NoSuchMethodError: org.encog.neural.networks.layers.BasicLayer.<init>(Lorg/encog/engine/network/activation/ActivationFunction;ZI)V
Is there any way of making my extension using exactly the libraries it comes with?
Thank you,
Heiko
Tagged:
0
Answers
I'm afraid this is not possible. The main classloader will grab the RapidMiner Studio library first and that's that for your extension :-\
Regards,
Marco
just for the records, if anyone else runs into that problem. What solved the issue for me was:
- get the source code of the library
- refactor the package names, e.g., from org.encog.* to org.encogx.*
- package a JAR with the refactored package names and use that one in the extension
A more than dirty hack, but it works.ÂBest,
Heiko
clever! However please make sure the license of the product in question actually allows such things if you ever want to make your extension publicly available.
Regards,
Marco
after some investigation there would be a way to fix that. Studio uses the default "loadClass()" implementation from ClassLoader. Which tries to load from the root classloader first (i.e. the main classloader instead of the plugin one). We have created an internal issue to fix that.
Regards,
Marco