blob: a428a46ba1cbc936d52b55ce241bf4f0c4f61bac [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>OutgoingAMQPEnvelope (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="OutgoingAMQPEnvelope (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/OutgoingAMQPEnvelope.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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="Class OutgoingAMQPEnvelope" class="title">Class OutgoingAMQPEnvelope</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="PerformativeEnvelope.html" title="class in org.apache.qpid.protonj2.engine">org.apache.qpid.protonj2.engine.PerformativeEnvelope</a>&lt;<a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">OutgoingAMQPEnvelope</span>
extends <a href="PerformativeEnvelope.html" title="class in org.apache.qpid.protonj2.engine">PerformativeEnvelope</a>&lt;<a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative</a>&gt;</pre>
<div class="block">Frame object that carries an AMQP Performative</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static byte</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AMQP_FRAME_TYPE">AMQP_FRAME_TYPE</a></span></code></th>
<td class="colLast">
<div class="block">The frame type value to used when encoding the outgoing AMQP frame.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== 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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleOutgoingFrameWriteComplete()">handleOutgoingFrameWriteComplete</a></span>()</code></th>
<td class="colLast">
<div class="block">Called by the encoder when the write of a frame that comprises the transfer of the AMQP <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a>
plus any assigned payload has completed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handlePayloadToLarge()">handlePayloadToLarge</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when the encoder determines that the encoding of the <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a> plus any
payload value is to large for a single AMQP frame.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>&lt;E&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke(org.apache.qpid.protonj2.types.transport.Performative.PerformativeHandler,E)">invoke</a></span>&#8203;(<a href="../types/transport/Performative.PerformativeHandler.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative.PerformativeHandler</a>&lt;E&gt;&nbsp;handler,
E&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Invoke the correct PerformativeHandler event based on the body of this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Used to release a Frame that was taken from a Frame pool in order
to make it available for the next input operations.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFrameWriteCompletionHandler(java.lang.Runnable)">setFrameWriteCompletionHandler</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;frameWriteCompleteHandler)</code></th>
<td class="colLast">
<div class="block">Configures a handler to be invoked when a write operation that was handed off to the I/O layer
has completed indicated that a single frame portion of the payload has been fully written.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPayloadToLargeHandler(java.util.function.Consumer)">setPayloadToLargeHandler</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative</a>&gt;&nbsp;payloadToLargeHandler)</code></th>
<td class="colLast">
<div class="block">Configures a handler to be invoked if the payload that is being transmitted with this
performative is to large to allow encoding the frame within the maximum configured AMQP
frame size limit.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.qpid.protonj2.engine.PerformativeEnvelope">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.qpid.protonj2.engine.<a href="PerformativeEnvelope.html" title="class in org.apache.qpid.protonj2.engine">PerformativeEnvelope</a></h3>
<code><a href="PerformativeEnvelope.html#getBody()">getBody</a>, <a href="PerformativeEnvelope.html#getChannel()">getChannel</a>, <a href="PerformativeEnvelope.html#getFrameType()">getFrameType</a>, <a href="PerformativeEnvelope.html#getPayload()">getPayload</a>, <a href="PerformativeEnvelope.html#toString()">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="AMQP_FRAME_TYPE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AMQP_FRAME_TYPE</h4>
<pre>public static final&nbsp;byte AMQP_FRAME_TYPE</pre>
<div class="block">The frame type value to used when encoding the outgoing AMQP frame.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope.AMQP_FRAME_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setPayloadToLargeHandler(java.util.function.Consumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPayloadToLargeHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;setPayloadToLargeHandler&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative</a>&gt;&nbsp;payloadToLargeHandler)</pre>
<div class="block">Configures a handler to be invoked if the payload that is being transmitted with this
performative is to large to allow encoding the frame within the maximum configured AMQP
frame size limit.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>payloadToLargeHandler</code> - Handler that will update the Performative to reflect that more than one frame is required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="handlePayloadToLarge()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlePayloadToLarge</h4>
<pre class="methodSignature">public&nbsp;<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;handlePayloadToLarge()</pre>
<div class="block">Called when the encoder determines that the encoding of the <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a> plus any
payload value is to large for a single AMQP frame. The configured handler should update
the <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a> in preparation for encoding as a split framed AMQP transfer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> instance</dd>
</dl>
</li>
</ul>
<a id="setFrameWriteCompletionHandler(java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFrameWriteCompletionHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;setFrameWriteCompletionHandler&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;frameWriteCompleteHandler)</pre>
<div class="block">Configures a handler to be invoked when a write operation that was handed off to the I/O layer
has completed indicated that a single frame portion of the payload has been fully written.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>frameWriteCompleteHandler</code> - Runnable handler that will update state or otherwise respond to the write of a frame.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="handleOutgoingFrameWriteComplete()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleOutgoingFrameWriteComplete</h4>
<pre class="methodSignature">public&nbsp;<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;handleOutgoingFrameWriteComplete()</pre>
<div class="block">Called by the encoder when the write of a frame that comprises the transfer of the AMQP <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a>
plus any assigned payload has completed. If the transfer comprises multiple frame writes this handler should
be invoked as each frame is successfully written by the IO layer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="release()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;release()</pre>
<div class="block">Used to release a Frame that was taken from a Frame pool in order
to make it available for the next input operations. Once called the
contents of the Frame are invalid and cannot be used again inside the
same context.</div>
</li>
</ul>
<a id="invoke(org.apache.qpid.protonj2.types.transport.Performative.PerformativeHandler,java.lang.Object)">
<!-- -->
</a><a id="invoke(org.apache.qpid.protonj2.types.transport.Performative.PerformativeHandler,E)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>invoke</h4>
<pre class="methodSignature">public&nbsp;&lt;E&gt;&nbsp;void&nbsp;invoke&#8203;(<a href="../types/transport/Performative.PerformativeHandler.html" title="interface in org.apache.qpid.protonj2.types.transport">Performative.PerformativeHandler</a>&lt;E&gt;&nbsp;handler,
E&nbsp;context)</pre>
<div class="block">Invoke the correct PerformativeHandler event based on the body of this <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - The type that the <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a> handler expects for the context value.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - The handler that should be used to process the current body value.</dd>
<dd><code>context</code> - The context that should be passed along for the current event.</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/OutgoingAMQPEnvelope.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>