Skip to content

Commit

Permalink
MINIFICPP-758: Make CoAP default protocol and add properties as ident…
Browse files Browse the repository at this point in the history
…ifiers

This closes civetweb#503.

Signed-off-by: Aldrin Piri <aldrin@apache.org>
  • Loading branch information
phrocker authored and apiri committed Mar 8, 2019
1 parent 2194662 commit 83bd11b
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 8 deletions.
9 changes: 5 additions & 4 deletions C2.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,14 @@ an alternate key, but you are encouraged to switch your configuration options as
# specify classes for the AST response
nifi.c2.root.classes=DeviceInfoNode,AgentInformation,FlowInformation

# specify C2 protocol -- default is RESTSender if this is not specified
nifi.c2.agent.protocol.class=RESTSender
# may also use MQTT
# specify C2 protocol -- default is CoapProtocol if not specified
nifi.c2.agent.protocol.class=CoapProtocol
# may also use MQTT or REST
# nifi.c2.agent.protocol.class=MQTTC2Protocol
# nifi.c2.agent.protocol.class=RESTSender

# control c2 heartbeat interval in millisecocnds
nifi.c2.agent.heartbeat.period=3000
nifi.c2.agent.heartbeat.period=250

# enable reporter classes
nifi.c2.agent.heartbeat.reporter.class=RESTReciver
Expand Down
28 changes: 27 additions & 1 deletion conf/minifi.properties
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,32 @@ nifi.database.content.repository.directory.default=${MINIFI_HOME}/content_reposi
#nifi.rest.api.user.name=admin
#nifi.rest.api.password=password

## Enabling C2 Uncomment each of the following options
## define those with missing options
#nifi.c2.enable=true
## define protocol parameters
#nifi.c2.agent.protocol.class=CoapProtocol
#nifi.c2.agent.coap.host=
#nifi.c2.agent.coap.port=
#nifi.c2.rest.url=
#nifi.c2.rest.url.ack=
#nifi.c2.root.classes=DeviceInfoNode,AgentInformation,FlowInformation
## heartbeat 4 times a second
#nifi.c2.agent.heartbeat.period=250
## define parameters about your agent
#nifi.c2.agent.class=
#nifi.c2.agent.identifier=
## define metrics reported
#nifi.c2.root.class.definitions=metrics
#nifi.c2.root.class.definitions.metrics.name=metrics
#nifi.c2.root.class.definitions.metrics.metrics=typedmetrics
#nifi.c2.root.class.definitions.metrics.metrics.typedmetrics.name=RuntimeMetrics
#nifi.c2.root.class.definitions.metrics.metrics.queuemetrics.name=QueueMetrics
#nifi.c2.root.class.definitions.metrics.metrics.queuemetrics.classes=QueueMetrics
#nifi.c2.root.class.definitions.metrics.metrics.typedmetrics.classes=ProcessMetrics,SystemInformation
#nifi.c2.root.class.definitions.metrics.metrics.processorMetrics.name=ProcessorMetric
#nifi.c2.root.class.definitions.metrics.metrics.processorMetrics.classes=GetFileMetrics

## enable the controller socket provider on port 9998
## off by default. C2 must be enabled to support these
#controller.socket.host=localhost
Expand All @@ -50,4 +76,4 @@ nifi.nar.deploy.directory=${MINIFI_HOME}/minifi-jni/nardeploy
nifi.nar.docs.directory=${MINIFI_HOME}/minifi-jni/nardocs
# must be comma separated
nifi.jvm.options=-Xmx1G
nifi.python.processor.dir=${MINIFI_HOME}/minifi-python/
nifi.python.processor.dir=${MINIFI_HOME}/minifi-python/
6 changes: 3 additions & 3 deletions libminifi/src/c2/C2Agent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,19 +151,19 @@ void C2Agent::configure(const std::shared_ptr<Configure> &configure, bool reconf

if (!reconfigure) {
if (!configure->get("nifi.c2.agent.protocol.class", "c2.agent.protocol.class", clazz)) {
clazz = "RESTSender";
clazz = "CoapProtocol";
}
logger_->log_info("Class is %s", clazz);
auto protocol = core::ClassLoader::getDefaultClassLoader().instantiateRaw(clazz, clazz);

if (protocol == nullptr) {
logger_->log_info("Class %s not found", clazz);
protocol = core::ClassLoader::getDefaultClassLoader().instantiateRaw("RESTSender", "RESTSender");
protocol = core::ClassLoader::getDefaultClassLoader().instantiateRaw("CoapProtocol", "RESTSender");

if (!protocol) {
return;
}
logger_->log_info("Class is RESTSender");
logger_->log_info("Class is CoapProtocol");
}
C2Protocol *old_protocol = protocol_.exchange(dynamic_cast<C2Protocol*>(protocol));

Expand Down

0 comments on commit 83bd11b

Please sign in to comment.