blob: 40b0093a97573e075f9d8a91c801eecab7aac74a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>TransactionManager (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TransactionManager (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":18,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TransactionManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.engine</a></div>
<h2 title="Interface TransactionManager" class="title">Interface TransactionManager</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonTransactionManager.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonTransactionManager</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">TransactionManager</span>
extends <a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;</pre>
<div class="block">Transaction Manager endpoint that implements the mechanics of handling the declaration
of and the requested discharge of AMQP transactions. Typically an AMQP server instance
will host the transaction management services that are used by client resources to declare
and discharge transaction and handle the associated of deliveries that are enlisted in
active transactions.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addCredit(int)">addCredit</a></span>&#8203;(int&nbsp;additionalCredit)</code></th>
<td class="colLast">
<div class="block">Adds the given amount of credit for the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> which allows
the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> to send <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> and <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a>
requests to this manager.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declared(org.apache.qpid.protonj2.engine.Transaction,byte%5B%5D)">declared</a></span>&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
byte[]&nbsp;txnId)</code></th>
<td class="colLast">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declared(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.Binary)">declared</a></span>&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a>&nbsp;txnId)</code></th>
<td class="colLast">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declareFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">declareFailed</a></span>&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction declaration has failed and is not active.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declareHandler(org.apache.qpid.protonj2.engine.EventHandler)">declareHandler</a></span>&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;declaredEventHandler)</code></th>
<td class="colLast">
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a new transaction be
declared using the information provided in the given <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> instance.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#discharged(org.apache.qpid.protonj2.engine.Transaction)">discharged</a></span>&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction)</code></th>
<td class="colLast">
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge completed on the transaction identified by given transaction Id
has now been retired.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dischargeFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">dischargeFailed</a></span>&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge resulted in an error and the transaction must be considered rolled
back.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dischargeHandler(org.apache.qpid.protonj2.engine.EventHandler)">dischargeHandler</a></span>&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;dischargeEventHandler)</code></th>
<td class="colLast">
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a current transaction be
discharged using the information provided in the given <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> instance.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCoordinator()">getCoordinator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the currently set Coordinator target for this <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine"><code>Link</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCredit()">getCredit</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the credit that is currently available or assigned to this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteCoordinator()">getRemoteCoordinator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the remote target <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for this transaction manager which must be of type
<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> or null if remote did not set a terminus.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteSource()">getRemoteSource</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSource()">getSource</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parentEndpointClosedHandler(org.apache.qpid.protonj2.engine.EventHandler)">parentEndpointClosedHandler</a></span>&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;handler)</code></th>
<td class="colLast">
<div class="block">Sets a <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> for when the parent <a href="Session.html" title="interface in org.apache.qpid.protonj2.engine"><code>Session</code></a> or <a href="Connection.html" title="interface in org.apache.qpid.protonj2.engine"><code>Connection</code></a> of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>
is locally closed.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCoordinator(org.apache.qpid.protonj2.types.transactions.Coordinator)">setCoordinator</a></span>&#8203;(<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;coordinator)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSource(org.apache.qpid.protonj2.types.messaging.Source)">setSource</a></span>&#8203;(<a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.qpid.protonj2.engine.Endpoint">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.qpid.protonj2.engine.<a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a></h3>
<code><a href="Endpoint.html#close()">close</a>, <a href="Endpoint.html#closeHandler(org.apache.qpid.protonj2.engine.EventHandler)">closeHandler</a>, <a href="Endpoint.html#engineShutdownHandler(org.apache.qpid.protonj2.engine.EventHandler)">engineShutdownHandler</a>, <a href="Endpoint.html#getAttachments()">getAttachments</a>, <a href="Endpoint.html#getCondition()">getCondition</a>, <a href="Endpoint.html#getDesiredCapabilities()">getDesiredCapabilities</a>, <a href="Endpoint.html#getEngine()">getEngine</a>, <a href="Endpoint.html#getLinkedResource()">getLinkedResource</a>, <a href="Endpoint.html#getLinkedResource(java.lang.Class)">getLinkedResource</a>, <a href="Endpoint.html#getOfferedCapabilities()">getOfferedCapabilities</a>, <a href="Endpoint.html#getParent()">getParent</a>, <a href="Endpoint.html#getProperties()">getProperties</a>, <a href="Endpoint.html#getRemoteCondition()">getRemoteCondition</a>, <a href="Endpoint.html#getRemoteDesiredCapabilities()">getRemoteDesiredCapabilities</a>, <a href="Endpoint.html#getRemoteOfferedCapabilities()">getRemoteOfferedCapabilities</a>, <a href="Endpoint.html#getRemoteProperties()">getRemoteProperties</a>, <a href="Endpoint.html#isLocallyClosed()">isLocallyClosed</a>, <a href="Endpoint.html#isLocallyOpen()">isLocallyOpen</a>, <a href="Endpoint.html#isRemotelyClosed()">isRemotelyClosed</a>, <a href="Endpoint.html#isRemotelyOpen()">isRemotelyOpen</a>, <a href="Endpoint.html#localCloseHandler(org.apache.qpid.protonj2.engine.EventHandler)">localCloseHandler</a>, <a href="Endpoint.html#localOpenHandler(org.apache.qpid.protonj2.engine.EventHandler)">localOpenHandler</a>, <a href="Endpoint.html#open()">open</a>, <a href="Endpoint.html#openHandler(org.apache.qpid.protonj2.engine.EventHandler)">openHandler</a>, <a href="Endpoint.html#setCondition(org.apache.qpid.protonj2.types.transport.ErrorCondition)">setCondition</a>, <a href="Endpoint.html#setDesiredCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setDesiredCapabilities</a>, <a href="Endpoint.html#setLinkedResource(java.lang.Object)">setLinkedResource</a>, <a href="Endpoint.html#setOfferedCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setOfferedCapabilities</a>, <a href="Endpoint.html#setProperties(java.util.Map)">setProperties</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="addCredit(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCredit</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;addCredit&#8203;(int&nbsp;additionalCredit)</pre>
<div class="block">Adds the given amount of credit for the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> which allows
the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> to send <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> and <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a>
requests to this manager. The <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> cannot send any requests
to start or complete a transaction without having credit to do so which implies that
the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> owner must grant credit as part of its normal processing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>additionalCredit</code> - the new amount of credits to add.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the credit amount is negative.</dd>
</dl>
</li>
</ul>
<a id="getCredit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCredit</h4>
<pre class="methodSignature">int&nbsp;getCredit()</pre>
<div class="block">Get the credit that is currently available or assigned to this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current unused credit.</dd>
</dl>
</li>
</ul>
<a id="setSource(org.apache.qpid.protonj2.types.messaging.Source)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSource</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;setSource&#8203;(<a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;source)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></pre>
<div class="block">Sets the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.
Must be called during setup, i.e. before calling the <a href="Endpoint.html#open()"><code>Endpoint.open()</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> that will be set on the local end of this transaction controller.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this transaction controller instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> has already been opened.</dd>
</dl>
</li>
</ul>
<a id="getSource()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSource</h4>
<pre class="methodSignature"><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;getSource()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> for the local end of this <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>.</dd>
</dl>
</li>
</ul>
<a id="setCoordinator(org.apache.qpid.protonj2.types.transactions.Coordinator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCoordinator</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;setCoordinator&#8203;(<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;coordinator)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></pre>
<div class="block">Sets the <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.
Must be called during setup, i.e. before calling the <a href="Endpoint.html#open()"><code>Endpoint.open()</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coordinator</code> - The <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target that will be set on the local end of this transaction controller.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this transaction controller instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> has already been opened.</dd>
</dl>
</li>
</ul>
<a id="getCoordinator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCoordinator</h4>
<pre class="methodSignature"><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;getCoordinator()</pre>
<div class="block">Returns the currently set Coordinator target for this <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine"><code>Link</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the link target <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> for the local end of this link.</dd>
</dl>
</li>
</ul>
<a id="getRemoteSource()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteSource</h4>
<pre class="methodSignature"><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;getRemoteSource()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the source <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> for the remote end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getRemoteCoordinator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteCoordinator</h4>
<pre class="methodSignature"><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;getRemoteCoordinator()</pre>
<div class="block">Returns the remote target <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for this transaction manager which must be of type
<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> or null if remote did not set a terminus.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the remote coordinator <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for the remote end of this link.</dd>
</dl>
</li>
</ul>
<a id="declared(org.apache.qpid.protonj2.engine.Transaction,byte[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declared</h4>
<pre class="methodSignature">default&nbsp;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;declared&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
byte[]&nbsp;txnId)</pre>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>txnId</code> - The binary transaction Id to assign the now declared transaction instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="declared(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.Binary)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declared</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;declared&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a>&nbsp;txnId)</pre>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>txnId</code> - The binary transaction Id to assign the now declared transaction instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="declareFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareFailed</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;declareFailed&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</pre>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction declaration has failed and is not active.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>condition</code> - The <a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport"><code>ErrorCondition</code></a> that described the reason for the transaction failure.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="discharged(org.apache.qpid.protonj2.engine.Transaction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discharged</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;discharged&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction)</pre>
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge completed on the transaction identified by given transaction Id
has now been retired.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The <a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine"><code>Transaction</code></a> instance that has been discharged and is now retired.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="dischargeFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dischargeFailed</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;dischargeFailed&#8203;(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</pre>
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge resulted in an error and the transaction must be considered rolled
back.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transaction</code> - The <a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine"><code>Transaction</code></a> instance that has been discharged and is now retired.</dd>
<dd><code>condition</code> - The <a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport"><code>ErrorCondition</code></a> that described the reason for the transaction failure.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="declareHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareHandler</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;declareHandler&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;declaredEventHandler)</pre>
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a new transaction be
declared using the information provided in the given <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>declaredEventHandler</code> - handler that will act on the transaction declaration request.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="dischargeHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dischargeHandler</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;dischargeHandler&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;dischargeEventHandler)</pre>
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a current transaction be
discharged using the information provided in the given <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dischargeEventHandler</code> - handler that will act on the transaction declaration request.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</li>
</ul>
<a id="parentEndpointClosedHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>parentEndpointClosedHandler</h4>
<pre class="methodSignature"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&nbsp;parentEndpointClosedHandler&#8203;(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;handler)</pre>
<div class="block">Sets a <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> for when the parent <a href="Session.html" title="interface in org.apache.qpid.protonj2.engine"><code>Session</code></a> or <a href="Connection.html" title="interface in org.apache.qpid.protonj2.engine"><code>Connection</code></a> of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>
is locally closed.
Typically used by clients for logging or other state update event processing. Clients should not perform any
blocking calls within this context. It is an error for the handler to throw an exception and the outcome of
doing so is undefined.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - The <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> to notify when this transaction manger's parent endpoint is locally closed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the link for chaining.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TransactionManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>