| 281 | } |
| 282 | |
| 283 | void printManifest(const std::shared_ptr<minifi::Configure> &configuration) { |
| 284 | |
| 285 | std::string prov_repo_class = "volatileprovenancerepository"; |
| 286 | std::string flow_repo_class = "volatileflowfilerepository"; |
| 287 | std::string nifi_configuration_class_name = "yamlconfiguration"; |
| 288 | std::string content_repo_class = "volatilecontentrepository"; |
| 289 | |
| 290 | std::shared_ptr<logging::LoggerProperties> log_properties = std::make_shared<logging::LoggerProperties>(); |
| 291 | log_properties->setHome("./"); |
| 292 | log_properties->set("appender.stdout", "stdout"); |
| 293 | log_properties->set("logger.org::apache::nifi::minifi", "OFF,stdout"); |
| 294 | logging::LoggerConfiguration::getConfiguration().initialize(log_properties); |
| 295 | |
| 296 | configuration->get(minifi::Configure::nifi_provenance_repository_class_name, prov_repo_class); |
| 297 | // Create repos for flow record and provenance |
| 298 | std::shared_ptr<core::Repository> prov_repo = core::createRepository(prov_repo_class, true, "provenance"); |
| 299 | prov_repo->initialize(configuration); |
| 300 | |
| 301 | configuration->get(minifi::Configure::nifi_flow_repository_class_name, flow_repo_class); |
| 302 | |
| 303 | std::shared_ptr<core::Repository> flow_repo = core::createRepository(flow_repo_class, true, "flowfile"); |
| 304 | |
| 305 | flow_repo->initialize(configuration); |
| 306 | |
| 307 | configuration->get(minifi::Configure::nifi_content_repository_class_name, content_repo_class); |
| 308 | |
| 309 | std::shared_ptr<core::ContentRepository> content_repo = core::createContentRepository(content_repo_class, true, "content"); |
| 310 | |
| 311 | content_repo->initialize(configuration); |
| 312 | |
| 313 | std::string content_repo_path; |
| 314 | if (configuration->get(minifi::Configure::nifi_dbcontent_repository_directory_default, content_repo_path)) { |
| 315 | minifi::setDefaultDirectory(content_repo_path); |
| 316 | } |
| 317 | |
| 318 | configuration->set("c2.agent.heartbeat.period", "25"); |
| 319 | configuration->set("nifi.c2.root.classes", "AgentInformation"); |
| 320 | configuration->set("nifi.c2.enable", "true"); |
| 321 | configuration->set("nifi.c2.agent.class","test"); |
| 322 | configuration->set("c2.agent.listen", "true"); |
| 323 | configuration->set("c2.agent.heartbeat.reporter.classes", "AgentPrinter"); |
| 324 | |
| 325 | configuration->get(minifi::Configure::nifi_configuration_class_name, nifi_configuration_class_name); |
| 326 | |
| 327 | std::shared_ptr<minifi::io::StreamFactory> stream_factory = minifi::io::StreamFactory::getInstance(configuration); |
| 328 | |
| 329 | std::unique_ptr<core::FlowConfiguration> flow_configuration = core::createFlowConfiguration( |
| 330 | prov_repo, flow_repo, content_repo, configuration, stream_factory, nifi_configuration_class_name); |
| 331 | |
| 332 | std::shared_ptr<minifi::FlowController> controller = std::unique_ptr<minifi::FlowController>( |
| 333 | new minifi::FlowController(prov_repo, flow_repo, configuration, std::move(flow_configuration), content_repo, "manifest", false)); |
| 334 | controller->load(); |
| 335 | controller->start(); |
| 336 | std::this_thread::sleep_for(std::chrono::milliseconds(10000)); |
| 337 | controller->stop(); |
| 338 | } |
| 339 | |
| 340 | #endif /* CONTROLLER_CONTROLLER_H_ */ |
no test coverage detected