...
This approach will create a binary with only the GetFile processor and RemoteProcessGroup along with a shared object. The shared object will include a version that identifies the built source and enables agents that load that shared object to enforce update rules. While a binary limited to GetFile and an RPG may not be useful to many, including updates to either can allow us to update agents in real time through the transmission of a shared object. Realtime updates with non updates to system dependencies can be done in realtime. This can be done by versioning the class loading mechanism. While we don't aim to match the complexity of java class loading, we can certainly use the facilities that exist now to separate class instantiation. Once registry versioning is complete, we should be able to support object isolation.
The next focus will be components within MiNiFi such as C2. Creating build time conditionals for these components will facilitate the eventual goal of making libminifi more developer friendly. The code is created in such a way that modularization is simple; however, we don’t have compile time capabilities to exclude integral components to an agent. Further, we don’t have an API that is intuitive. This proposal includes the foundation for that API. The goal will be to use CMAKE to more easily facilitate building either a library or agent.
...