blob: 8a581cb0c1e377b796eec02435737fb7e8934141 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>VerifiableSinkTask (kafka 3.6.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.kafka.connect.tools, class: VerifiableSinkTask">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.kafka.connect.tools</a></div>
<h1 title="Class VerifiableSinkTask" class="title">Class VerifiableSinkTask</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">org.apache.kafka.connect.sink.SinkTask</a>
<div class="inheritance">org.apache.kafka.connect.tools.VerifiableSinkTask</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../connector/Task.html" title="interface in org.apache.kafka.connect.connector">Task</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">VerifiableSinkTask</span>
<span class="extends-implements">extends <a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></span></div>
<div class="block">Counterpart to <a href="VerifiableSourceTask.html" title="class in org.apache.kafka.connect.tools"><code>VerifiableSourceTask</code></a> that consumes records and logs information about each to stdout. This
allows validation of processing of messages by sink tasks on distributed workers even in the face of worker restarts
and failures. This task relies on the offset management provided by the Kafka Connect framework and therefore can detect
bugs in its implementation.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#ID_CONFIG" class="member-name-link">ID_CONFIG</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#NAME_CONFIG" class="member-name-link">NAME_CONFIG</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.kafka.connect.sink.SinkTask">Fields inherited from class&nbsp;org.apache.kafka.connect.sink.<a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></h3>
<code><a href="../sink/SinkTask.html#context">context</a>, <a href="../sink/SinkTask.html#TOPICS_CONFIG">TOPICS_CONFIG</a>, <a href="../sink/SinkTask.html#TOPICS_REGEX_CONFIG">TOPICS_REGEX_CONFIG</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">VerifiableSinkTask</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#flush(java.util.Map)" class="member-name-link">flush</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="../../common/TopicPartition.html" title="class in org.apache.kafka.common">TopicPartition</a>,<wbr><a href="../../clients/consumer/OffsetAndMetadata.html" title="class in org.apache.kafka.clients.consumer">OffsetAndMetadata</a>&gt;&nbsp;offsets)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Flush all records that have been <a href="../sink/SinkTask.html#put(java.util.Collection)"><code>SinkTask.put(Collection)</code></a> for the specified topic-partitions.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#put(java.util.Collection)" class="member-name-link">put</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="../sink/SinkRecord.html" title="class in org.apache.kafka.connect.sink">SinkRecord</a>&gt;&nbsp;records)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Put the records in the sink.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#start(java.util.Map)" class="member-name-link">start</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;props)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Start the Task.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stop()" class="member-name-link">stop</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Perform any cleanup to stop this task.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#version()" class="member-name-link">version</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get the version of this task.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.kafka.connect.sink.SinkTask">Methods inherited from class&nbsp;org.apache.kafka.connect.sink.<a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></h3>
<code><a href="../sink/SinkTask.html#close(java.util.Collection)">close</a>, <a href="../sink/SinkTask.html#initialize(org.apache.kafka.connect.sink.SinkTaskContext)">initialize</a>, <a href="../sink/SinkTask.html#onPartitionsAssigned(java.util.Collection)">onPartitionsAssigned</a>, <a href="../sink/SinkTask.html#onPartitionsRevoked(java.util.Collection)">onPartitionsRevoked</a>, <a href="../sink/SinkTask.html#open(java.util.Collection)">open</a>, <a href="../sink/SinkTask.html#preCommit(java.util.Map)">preCommit</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="NAME_CONFIG">
<h3>NAME_CONFIG</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">NAME_CONFIG</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.kafka.connect.tools.VerifiableSinkTask.NAME_CONFIG">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="ID_CONFIG">
<h3>ID_CONFIG</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ID_CONFIG</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.kafka.connect.tools.VerifiableSinkTask.ID_CONFIG">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>VerifiableSinkTask</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">VerifiableSinkTask</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="version()">
<h3>version</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">version</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../connector/Task.html#version()">Task</a></code></span></div>
<div class="block">Get the version of this task. Usually this should be the same as the corresponding <a href="../connector/Connector.html" title="class in org.apache.kafka.connect.connector"><code>Connector</code></a> class's version.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the version, formatted as a String</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="start(java.util.Map)">
<h3>start</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">start</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;props)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../sink/SinkTask.html#start(java.util.Map)">SinkTask</a></code></span></div>
<div class="block">Start the Task. This should handle any configuration parsing and one-time setup of the task.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../connector/Task.html#start(java.util.Map)">start</a></code>&nbsp;in interface&nbsp;<code><a href="../connector/Task.html" title="interface in org.apache.kafka.connect.connector">Task</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="../sink/SinkTask.html#start(java.util.Map)">start</a></code>&nbsp;in class&nbsp;<code><a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></code></dd>
<dt>Parameters:</dt>
<dd><code>props</code> - initial configuration</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="put(java.util.Collection)">
<h3>put</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">put</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="../sink/SinkRecord.html" title="class in org.apache.kafka.connect.sink">SinkRecord</a>&gt;&nbsp;records)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../sink/SinkTask.html#put(java.util.Collection)">SinkTask</a></code></span></div>
<div class="block">Put the records in the sink. This should either write them to the downstream system or batch them for
later writing. If this method returns before the records are written to the downstream system, the task must
implement <a href="../sink/SinkTask.html#flush(java.util.Map)"><code>SinkTask.flush(Map)</code></a> or <a href="../sink/SinkTask.html#preCommit(java.util.Map)"><code>SinkTask.preCommit(Map)</code></a> to ensure that offsets are only committed for records
that have been written to the downstream system (hence avoiding data loss during failures).
<p>
If this operation fails, the SinkTask may throw a <a href="../errors/RetriableException.html" title="class in org.apache.kafka.connect.errors"><code>RetriableException</code></a> to
indicate that the framework should attempt to retry the same call again. Other exceptions will cause the task to
be stopped immediately. <a href="../sink/SinkTaskContext.html#timeout(long)"><code>SinkTaskContext.timeout(long)</code></a> can be used to set the maximum time before the
batch will be retried.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../sink/SinkTask.html#put(java.util.Collection)">put</a></code>&nbsp;in class&nbsp;<code><a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></code></dd>
<dt>Parameters:</dt>
<dd><code>records</code> - the collection of records to send</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="flush(java.util.Map)">
<h3>flush</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">flush</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="../../common/TopicPartition.html" title="class in org.apache.kafka.common">TopicPartition</a>,<wbr><a href="../../clients/consumer/OffsetAndMetadata.html" title="class in org.apache.kafka.clients.consumer">OffsetAndMetadata</a>&gt;&nbsp;offsets)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../sink/SinkTask.html#flush(java.util.Map)">SinkTask</a></code></span></div>
<div class="block">Flush all records that have been <a href="../sink/SinkTask.html#put(java.util.Collection)"><code>SinkTask.put(Collection)</code></a> for the specified topic-partitions.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../sink/SinkTask.html#flush(java.util.Map)">flush</a></code>&nbsp;in class&nbsp;<code><a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></code></dd>
<dt>Parameters:</dt>
<dd><code>offsets</code> - the current offset state as of the last call to <a href="../sink/SinkTask.html#put(java.util.Collection)"><code>SinkTask.put(Collection)</code></a>, provided for
convenience but could also be determined by tracking all offsets included in the
<a href="../sink/SinkRecord.html" title="class in org.apache.kafka.connect.sink"><code>SinkRecord</code></a>s passed to <a href="../sink/SinkTask.html#put(java.util.Collection)"><code>SinkTask.put(java.util.Collection&lt;org.apache.kafka.connect.sink.SinkRecord&gt;)</code></a>. Note that the topic, partition and offset
here correspond to the original Kafka topic partition and offset, before any
<a href="../transforms/Transformation.html" title="interface in org.apache.kafka.connect.transforms"><code>transformations</code></a> have been applied. These can be tracked by the task
through the <a href="../sink/SinkRecord.html#originalTopic()"><code>SinkRecord.originalTopic()</code></a>, <a href="../sink/SinkRecord.html#originalKafkaPartition()"><code>SinkRecord.originalKafkaPartition()</code></a>
and <a href="../sink/SinkRecord.html#originalKafkaOffset()"><code>SinkRecord.originalKafkaOffset()</code></a> methods.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="stop()">
<h3>stop</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">stop</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../sink/SinkTask.html#stop()">SinkTask</a></code></span></div>
<div class="block">Perform any cleanup to stop this task. In SinkTasks, this method is invoked only once outstanding calls to other
methods have completed (e.g., <a href="../sink/SinkTask.html#put(java.util.Collection)"><code>SinkTask.put(Collection)</code></a> has returned) and a final <a href="../sink/SinkTask.html#flush(java.util.Map)"><code>SinkTask.flush(Map)</code></a> and offset
commit has completed. Implementations of this method should only need to perform final cleanup operations, such
as closing network connections to the sink system.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../connector/Task.html#stop()">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../connector/Task.html" title="interface in org.apache.kafka.connect.connector">Task</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="../sink/SinkTask.html#stop()">stop</a></code>&nbsp;in class&nbsp;<code><a href="../sink/SinkTask.html" title="class in org.apache.kafka.connect.sink">SinkTask</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>