RapidMiner uses older library than extension

HeikoPaulheimHeikoPaulheim MemberPosts:13Contributor I
edited July 2019 inHelp
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:
SEVERE: Process failed: org.encog.neural.networks.layers.BasicLayer.(Lorg/encog/engine/network/activation/ActivationFunction;ZI)V
java.lang.NoSuchMethodError: org.encog.neural.networks.layers.BasicLayer.(Lorg/encog/engine/network/activation/ActivationFunction;ZI)V
Removing encog.jar from RapidMiner_Unuk resolves the problem, but that is of course not an option.

Is there any way of making my extension using exactly the libraries it comes with?

Thank you,
Heiko

Answers

  • Marco_BoeckMarco_Boeck Administrator, Moderator, Employee, Member, University ProfessorPosts:1,984RM Engineering
    Hi,

    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
  • HeikoPaulheimHeikoPaulheim MemberPosts:13Contributor I
    Hi all,

    just for the records, if anyone else runs into that problem. What solved the issue for me was:
    • 库的源代码
    • 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
  • Marco_BoeckMarco_Boeck Administrator, Moderator, Employee, Member, University ProfessorPosts:1,984RM Engineering
    Hi,

    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
  • Marco_BoeckMarco_Boeck Administrator, Moderator, Employee, Member, University ProfessorPosts:1,984RM Engineering
    Hi,

    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
  • JollyJolly MemberPosts:11Contributor I
    R-extension id installed but when i open rapidminer it ask for the r-extension file and jri file for R-extension
Sign InorRegisterto comment.