RapidMiner uses older library than extension

HeikoPaulheim
HeikoPaulheim New Altair Community Member
edited November 2024 in Community Q&A
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.<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
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_Boeck
    Marco_Boeck New Altair Community Member
    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
  • HeikoPaulheim
    HeikoPaulheim New Altair Community Member
    Hi all,

    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
  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    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_Boeck
    Marco_Boeck New Altair Community Member
    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
  • Jolly
    Jolly New Altair Community Member
    R-extension id installed but when i open rapidminer it ask for the r-extension file and jri file for R-extension