@@ -39,12 +39,7 @@ void ConsumeMQTT::initialize() {
3939
4040void ConsumeMQTT::onSchedule (core::ProcessContext& context, core::ProcessSessionFactory& factory) {
4141 AbstractMQTTProcessor::onSchedule (context, factory);
42- record_set_reader_ = utils::parseOptionalControllerService<core::RecordSetReader>(context, RecordReader, getUUID ());
43- record_set_writer_ = utils::parseOptionalControllerService<core::RecordSetWriter>(context, RecordWriter, getUUID ());
4442
45- if ((record_set_reader_ == nullptr ) != (record_set_writer_ == nullptr )) {
46- throw Exception (ExceptionType::PROCESS_SCHEDULE_EXCEPTION, " ConsumeMQTT requires both or neither Record Reader and Record Writer to be set" );
47- }
4843 add_attributes_as_fields_ = utils::parseBoolProperty (context, AddAttributesAsFields);
4944}
5045
@@ -89,13 +84,13 @@ void ConsumeMQTT::addAttributesAsRecordFields(core::RecordSet& new_records, cons
8984}
9085
9186void ConsumeMQTT::transferMessagesAsRecords (core::ProcessSession& session) {
92- gsl_Expects (record_set_reader_ && record_set_writer_ );
87+ gsl_Expects (record_converter_ );
9388 auto msg_queue = getReceivedMqttMessages ();
9489 core::RecordSet record_set;
9590 while (!msg_queue.empty ()) {
9691 io::BufferStream buffer_stream;
9792 buffer_stream.write (reinterpret_cast <const uint8_t *>(msg_queue.front ().contents ->payload ), gsl::narrow<size_t >(msg_queue.front ().contents ->payloadlen ));
98- auto new_records_result = record_set_reader_ ->read (buffer_stream);
93+ auto new_records_result = record_converter_-> record_set_reader ->read (buffer_stream);
9994 if (!new_records_result) {
10095 logger_->log_error (" Failed to read records from MQTT message: {}" , new_records_result.error ());
10196 msg_queue.pop ();
@@ -112,7 +107,7 @@ void ConsumeMQTT::transferMessagesAsRecords(core::ProcessSession& session) {
112107 return ;
113108 }
114109 std::shared_ptr<core::FlowFile> flow_file = session.create ();
115- record_set_writer_ ->write (record_set, flow_file, session);
110+ record_converter_-> record_set_writer ->write (record_set, flow_file, session);
116111 session.putAttribute (*flow_file, RecordCountOutputAttribute.name , std::to_string (record_set.size ()));
117112 session.putAttribute (*flow_file, BrokerOutputAttribute.name , uri_);
118113 session.transfer (flow_file, Success);
@@ -152,7 +147,7 @@ void ConsumeMQTT::transferMessagesAsFlowFiles(core::ProcessSession& session) {
152147}
153148
154149void ConsumeMQTT::onTriggerImpl (core::ProcessContext&, core::ProcessSession& session) {
155- if (record_set_reader_ ) {
150+ if (record_converter_ ) {
156151 transferMessagesAsRecords (session);
157152 } else {
158153 transferMessagesAsFlowFiles (session);
0 commit comments