MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / onSchedule

Method onSchedule

extensions/jni/ExecuteJavaProcessor.cpp:74–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74void ExecuteJavaProcessor::onSchedule(const std::shared_ptr<core::ProcessContext> &context, const std::shared_ptr<core::ProcessSessionFactory> &sessionFactory) {
75 std::string controller_service_name;
76 if (getProperty(JVMControllerService.getName(), controller_service_name)) {
77 auto cs = context->getControllerService(controller_service_name);
78 if (cs == nullptr) {
79 auto serv_cs = JVMLoader::getInstance()->getBaseServicer();
80 java_servicer_ = std::static_pointer_cast<controllers::JavaControllerService>(serv_cs);
81 if (serv_cs == nullptr)
82 throw std::runtime_error("Could not load controller service");
83 } else {
84 java_servicer_ = std::static_pointer_cast<controllers::JavaControllerService>(cs);
85 }
86
87 } else {
88 auto serv_cs = JVMLoader::getInstance()->getBaseServicer();
89 java_servicer_ = std::static_pointer_cast<controllers::JavaControllerService>(serv_cs);
90 if (serv_cs == nullptr)
91 throw std::runtime_error("Could not load controller service");
92 }
93
94 if (!getProperty(NiFiProcessor.getName(), class_name_)) {
95 throw std::runtime_error("NiFi Processor must be defined");
96 }
97
98 nifi_logger_ = logging::LoggerFactory<ExecuteJavaProcessor>::getAliasedLogger(class_name_);
99
100 jni_logger_ref_.logger_reference_ = nifi_logger_;
101
102 jni_logger_class_ = java_servicer_->loadClass("org/apache/nifi/processor/JniLogger");
103
104 spn = java_servicer_->loadClass("org/apache/nifi/processor/JniProcessContext");
105 auto env = java_servicer_->attach();
106 java_servicer_->putNativeFunctionMapping<minifi::jni::JniProcessContext>(env, spn);
107
108 ClassRegistrar::getRegistrar().registerClasses(env, java_servicer_, "org/apache/nifi/processor/JniInitializationContext", getJniInitializationContextSignatures());
109
110 init = java_servicer_->loadClass("org/apache/nifi/processor/JniInitializationContext");
111
112 ClassRegistrar::getRegistrar().registerClasses(env, java_servicer_, "org/apache/nifi/processor/JniControllerServiceLookup", getJniControllerServiceLookupSignatures());
113
114 if (context_instance_ != nullptr) {
115 java_servicer_->attach()->DeleteGlobalRef(context_instance_);
116 } else {
117 init_context_.identifier_ = getUUIDStr();
118 init_context_.lookup_ = &csl_;
119 csl_.cs_lookup_reference_ = context;
120
121 init_context_.lookup_ref_ = java_servicer_->newInstance("org.apache.nifi.processor.JniControllerServiceLookup");
122
123 java_servicer_->setReference<minifi::jni::JniControllerServiceLookup>(env, init_context_.lookup_ref_, &csl_);
124 }
125 context_instance_ = spn.newInstance(env);
126
127 auto initializer = init.newInstance(env);
128
129 java_servicer_->setReference<minifi::jni::JniInitializationContext>(env, initializer, &init_context_);
130
131 ClassRegistrar::getRegistrar().registerClasses(env, java_servicer_, "org/apache/nifi/processor/JniLogger", getLoggerSignatures());

Callers

nothing calls this directly

Calls 13

getUUIDStrFunction · 0.85
getBaseServicerMethod · 0.80
loadClassMethod · 0.80
registerClassesMethod · 0.80
callVoidMethodMethod · 0.80
c_strMethod · 0.80
getNameMethod · 0.45
getControllerServiceMethod · 0.45
attachMethod · 0.45
newInstanceMethod · 0.45
getReferenceMethod · 0.45
getAnnotationsMethod · 0.45

Tested by

no test coverage detected