| 72 | ExecuteJavaControllerService::~ExecuteJavaControllerService() = default; |
| 73 | |
| 74 | void ExecuteJavaControllerService::onEnable() { |
| 75 | std::string controller_service_name; |
| 76 | |
| 77 | auto serv_cs = JVMLoader::getInstance()->getBaseServicer(); |
| 78 | java_servicer_ = std::static_pointer_cast<controllers::JavaControllerService>(serv_cs); |
| 79 | if (serv_cs == nullptr) |
| 80 | throw std::runtime_error("Could not load controller service"); |
| 81 | |
| 82 | if (!getProperty(NiFiControllerService.getName(), class_name_)) { |
| 83 | throw std::runtime_error("NiFi Controller Service must be defined"); |
| 84 | } |
| 85 | |
| 86 | auto env = java_servicer_->attach(); |
| 87 | |
| 88 | ClassRegistrar::getRegistrar().registerClasses(env, java_servicer_, "org/apache/nifi/processor/JniConfigurationContext", getJniConfigurationContext()); |
| 89 | ClassRegistrar::getRegistrar().registerClasses(env, java_servicer_, "org/apache/nifi/processor/JniInitializationContext", getJniInitializationContextSignatures()); |
| 90 | config_context_.service_reference_ = shared_from_this(); |
| 91 | |
| 92 | contextInstance = java_servicer_->newInstance("org.apache.nifi.processor.JniConfigurationContext"); |
| 93 | |
| 94 | java_servicer_->setReference<minifi::jni::JniConfigurationContext>(env, contextInstance, &config_context_); |
| 95 | |
| 96 | clazzInstance = java_servicer_->newInstance(class_name_); |
| 97 | |
| 98 | auto methods_with_signatures = java_servicer_->getAnnotations(class_name_, "OnEnabled"); |
| 99 | current_cs_class = java_servicer_->getObjectClass(class_name_, clazzInstance); |
| 100 | try { |
| 101 | for (const auto &mwithsig : methods_with_signatures) { |
| 102 | current_cs_class.callVoidMethod(env, clazzInstance, mwithsig.first, mwithsig.second, contextInstance); |
| 103 | } |
| 104 | } catch (std::runtime_error &re) { |
| 105 | // this can be ignored. |
| 106 | } |
| 107 | |
| 108 | } |
| 109 | |
| 110 | } /* namespace controllers */ |
| 111 | } /* namespace jni */ |
nothing calls this directly
no test coverage detected