|
29 | 29 | import org.slf4j.Logger; |
30 | 30 | import org.slf4j.LoggerFactory; |
31 | 31 |
|
| 32 | +import javax.net.ssl.SSLEngineResult; |
| 33 | + |
32 | 34 | public final class SplunkSinkTask extends SinkTask implements PollerCallback { |
33 | 35 | private static final Logger log = LoggerFactory.getLogger(SplunkSinkTask.class); |
34 | 36 | private static final long flushWindow = 30 * 1000; // 30 seconds |
@@ -158,20 +160,26 @@ else if (connectorConfig.hasMetaDataConfigured()) { |
158 | 160 | } |
159 | 161 |
|
160 | 162 | private void handleRecordsWithHeader(final Collection<SinkRecord> records) { |
161 | | - List<SinkRecord> recordsWithSameHeaders = new ArrayList<>(); |
162 | | - SplunkSinkRecord splunkSinkRecord = new SplunkSinkRecord(); |
163 | | - |
| 163 | + HashMap<SplunkSinkRecord, ArrayList<SinkRecord>> recordsWithSameHeaders = new HashMap<>(); |
| 164 | + SplunkSinkRecord splunkSinkRecord; |
164 | 165 | for (SinkRecord record : records) { |
165 | | - if (splunkSinkRecord.compareRecordHeaders(record)) { |
166 | | - recordsWithSameHeaders.add(record); |
167 | | - continue; |
168 | | - } |
169 | | - |
170 | | - EventBatch batch = createRawHeaderEventBatch(splunkSinkRecord); |
171 | | - sendEvents(recordsWithSameHeaders, batch); |
172 | | - recordsWithSameHeaders.clear(); |
173 | | - recordsWithSameHeaders.add(record); |
174 | 166 | splunkSinkRecord = new SplunkSinkRecord(record, connectorConfig); |
| 167 | + |
| 168 | + if (!recordsWithSameHeaders.containsKey(splunkSinkRecord)) { |
| 169 | + recordsWithSameHeaders.put(splunkSinkRecord, new ArrayList<>()); |
| 170 | + } |
| 171 | + ArrayList<SinkRecord> recordList = recordsWithSameHeaders.get(record); |
| 172 | + recordList.add(record); |
| 173 | + recordsWithSameHeaders.put(splunkSinkRecord, recordList); |
| 174 | + } |
| 175 | + |
| 176 | + Iterator itr = recordsWithSameHeaders.entrySet().iterator(); |
| 177 | + while(itr.hasNext()) { |
| 178 | + Map.Entry set = (Map.Entry)itr.next(); |
| 179 | + SplunkSinkRecord splunkSinkRecordKey = (SplunkSinkRecord)set.getKey(); |
| 180 | + ArrayList<SinkRecord> recordArrayList = (ArrayList)set.getValue(); |
| 181 | + EventBatch batch = createRawHeaderEventBatch(1); |
| 182 | + sendEvents(recordArrayList, batch); |
175 | 183 | } |
176 | 184 | } |
177 | 185 |
|
|
0 commit comments