In this article we'll discuss how to customize your MiNiFI C++ builds to accommodate your environment. Extensions within MiNiFI C++ allow you to specify, through CMAKE, options. We'll go through the current set and update this how to as extensions are added. An added feature for 0.4.0 is the bootstrap process, which can be used to bootstrap a machine using an interactive GUI. The bootstrap script is located in the root of the minifi source tree. Simply run ./bootstrap.sh. It will install dependencies and enable you to select your extensions. Alternatively, you may use the CMAKE options, below, manually.
Current Extensions
Extension Name | Description | CMAKE Option |
---|---|---|
GPS | Enables GPS capture capabilities | -DENABLE_GPS=TRUE |
HTTP-CURL | Enables libcURL builds, thus supporting HTTP operations | -DDISABLE_CURL=TRUE |
ROCKSDB | Enables ROCKSDB to build providing provenance, flowfile, and DBContent repositories. *Note that if disabled, only volatile repositories will be allowed | -DDISABLE_ROCKSDB=TRUE |
Expression Language | Supports adding expression language capabilities into MiNiFi C++ | -DDISABLE_EXPRESSION_LANGUAGE=TRUE |
KAFKA | Enables KAFKA put record support | -DENABLE_LIBRDKAFKA=TRUE |
LIBARCHIVE | Provides archive processors including MergeContent and CompressContent. | -DDISABLE_LIBARCHIVE=TRUE |
SCRIPTING | Enables Execute script with python and LUA | -DDISABLE_SCRIPTING=TRUE |
PCAP | Enables the CapturePacket processor | -DENABLE_PCAP=TRUE |
USB_CAMERA | Enables USB camera support | -DENABLE_USB_CAMERA=TRUE |
TENSORFLOW | Enables base tensor flow support | -DENABLE_TENSORFLOW=TRUE |
Step-by-step guide
When building you may use the following steps
- Create your CMAKE build directory in your root nifi-minifi-cpp source folder. Traditionally, this will be build.
- Change to the build directory ( cd build ) and type CMAKE .. to enable all extensions. To disable any extension, enter the CMAKE option before the parent dir
- e.g. user $ cmake -DDISABLE_CURL=TRUE -DDISABLE_ROCKSDB=TRUE -DDISABLE_LIBARCHIVE=TRUE ..
- Some extensions require that they be enabled, in this case you must specify them as they are above.
A Note about running
Disabling extensions allows us to minimize code and functionality within a binary. This may make it smaller or eliminate code that is not desired on a specific platform. Note that in doing so you change the profile of your executable. If your configuration identifies a component or processor that does not exist within your binary we will exit with a log statement indicating that it cannot be found.
Enabling all extensions
You may enable all extensions that can run on your platform by using -DENABLE_ALL=true in your command line cmake, in lieu of the options above.