You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Ferenc Gerlits (Jira)" <ji...@apache.org> on 2021/02/02 16:30:00 UTC

[jira] [Created] (MINIFICPP-1473) 2. Migrate hand-written class loader to Poco::ClassLoader

Ferenc Gerlits created MINIFICPP-1473:
-----------------------------------------

             Summary: 2. Migrate hand-written class loader to Poco::ClassLoader
                 Key: MINIFICPP-1473
                 URL: https://issues.apache.org/jira/browse/MINIFICPP-1473
             Project: Apache NiFi MiNiFi C++
          Issue Type: New Feature
            Reporter: Ferenc Gerlits


Our current class loading infrastructure is quite confusing, and relies on static self-registry of classes.

Poco::ClassLoader looks like a robust 3rd-party implementation of the same thing, which
 * would be easier to adapt to the shared-library-plugin world;
 * and already supports both Windows and Linux/Mac, so we can hide OS-specific differences (which are handled by our hand-crafted code, but it's not clear how well).

As part of this, we should get rid of the static self-registry, which won't work with plugins.

TODO: may need to be broken down further
 * bring in the Poco library: Foundation only, strip out everything else
 * rewrite the classloader to use Poco::ClassLoader
 * remove static self-registry and load the classes explicitly when needed

TODO: Verify that Poco::ClassLoader can load classes from whole-archived static libraries inside the executable itself.  If it cannot, then this step will need to be moved to later.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)