blob: 3f1d6d1f1205a32a036de6bbec1f572fdc6626ae [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Mon Jun 14 16:44:01 EDT 2021 -->
<title>JettyWebSocketFrameHandlerFactory (Eclipse Jetty API Doc - v11.0.5)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-06-14">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JettyWebSocketFrameHandlerFactory (Eclipse Jetty API Doc - v11.0.5)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":10,"i5":9,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</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/JettyWebSocketFrameHandlerFactory.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="../../../../../index-all.html">Index</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>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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><a href="#nested.class.summary">Nested</a>&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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.eclipse.jetty.websocket.common</a></div>
<h2 title="Class JettyWebSocketFrameHandlerFactory" class="title">Class JettyWebSocketFrameHandlerFactory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.ContainerLifeCycle</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandlerFactory</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></code>, <code><a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a></code>, <code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code>, <code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code>, <code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../server/internal/JettyServerFrameHandlerFactory.html" title="class in org.eclipse.jetty.websocket.server.internal">JettyServerFrameHandlerFactory</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">JettyWebSocketFrameHandlerFactory</span>
extends <a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></pre>
<div class="block">Factory to create <a href="JettyWebSocketFrameHandler.html" title="class in org.eclipse.jetty.websocket.common"><code>JettyWebSocketFrameHandler</code></a> instances suitable for
use with jetty-native websocket API.
<p>
Will create a <a href="../core/FrameHandler.html" title="interface in org.eclipse.jetty.websocket.core"><code>FrameHandler</code></a> suitable for use with classes/objects that:
</p>
<ul>
<li>Is &#64;<a href="../api/annotations/WebSocket.html" title="annotation in org.eclipse.jetty.websocket.api.annotations"><code>WebSocket</code></a> annotated</li>
<li>Extends <a href="../api/WebSocketAdapter.html" title="class in org.eclipse.jetty.websocket.api"><code>WebSocketAdapter</code></a></li>
<li>Implements <a href="../api/WebSocketListener.html" title="interface in org.eclipse.jetty.websocket.api"><code>WebSocketListener</code></a></li>
<li>Implements <a href="../api/WebSocketConnectionListener.html" title="interface in org.eclipse.jetty.websocket.api"><code>WebSocketConnectionListener</code></a></li>
<li>Implements <a href="../api/WebSocketPartialListener.html" title="interface in org.eclipse.jetty.websocket.api"><code>WebSocketPartialListener</code></a></li>
<li>Implements <a href="../api/WebSocketPingPongListener.html" title="interface in org.eclipse.jetty.websocket.api"><code>WebSocketPingPongListener</code></a></li>
<li>Implements <a href="../api/WebSocketFrameListener.html" title="interface in org.eclipse.jetty.websocket.api"><code>WebSocketFrameListener</code></a></li>
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.InheritedListener.html" title="interface in org.eclipse.jetty.util.component">Container.InheritedListener</a>, <a href="../../util/component/Container.Listener.html" title="interface in org.eclipse.jetty.util.component">Container.Listener</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#KEY">KEY</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.jetty.websocket.api.WebSocketContainer,org.eclipse.jetty.websocket.core.WebSocketComponents)">JettyWebSocketFrameHandlerFactory</a></span>&#8203;(<a href="../api/WebSocketContainer.html" title="interface in org.eclipse.jetty.websocket.api">WebSocketContainer</a>&nbsp;container,
<a href="../core/WebSocketComponents.html" title="class in org.eclipse.jetty.websocket.core">WebSocketComponents</a>&nbsp;components)</code></th>
<td class="colLast">&nbsp;</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>static <a href="../core/internal/messages/MessageSink.html" title="interface in org.eclipse.jetty.websocket.core.internal.messages">MessageSink</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createMessageSink(java.lang.invoke.MethodHandle,java.lang.Class,java.util.concurrent.Executor,org.eclipse.jetty.websocket.common.WebSocketSession)">createMessageSink</a></span>&#8203;(java.lang.invoke.MethodHandle&nbsp;msgHandle,
java.lang.Class&lt;? extends <a href="../core/internal/messages/MessageSink.html" title="interface in org.eclipse.jetty.websocket.core.internal.messages">MessageSink</a>&gt;&nbsp;sinkClass,
java.util.concurrent.Executor&nbsp;executor,
<a href="WebSocketSession.html" title="class in org.eclipse.jetty.websocket.common">WebSocketSession</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="JettyWebSocketFrameHandlerMetadata.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandlerMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createMetadata(java.lang.Class)">createMetadata</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dump(java.lang.Appendable,java.lang.String)">dump</a></span>&#8203;(java.lang.Appendable&nbsp;out,
java.lang.String&nbsp;indent)</code></th>
<td class="colLast">
<div class="block">Dump this object (and children) into an Appendable using the provided indent after any new lines.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.lang.invoke.MethodHandles.Lookup</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApplicationMethodHandleLookup(java.lang.Class)">getApplicationMethodHandleLookup</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;lookupClass)</code></th>
<td class="colLast">
<div class="block">
Gives a <code>MethodHandles.Lookup</code> instance to be used to find public methods in application classes.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="JettyWebSocketFrameHandlerMetadata.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandlerMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetadata(java.lang.Class)">getMetadata</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static java.lang.invoke.MethodHandles.Lookup</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServerMethodHandleLookup()">getServerMethodHandleLookup</a></span>()</code></th>
<td class="colLast">
<div class="block">
Gives a <code>MethodHandles.Lookup</code> instance to be used to find methods in server classes.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../core/WebSocketComponents.html" title="class in org.eclipse.jetty.websocket.core">WebSocketComponents</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWebSocketComponents()">getWebSocketComponents</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="JettyWebSocketFrameHandler.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandler</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newJettyFrameHandler(java.lang.Object)">newJettyFrameHandler</a></span>&#8203;(java.lang.Object&nbsp;endpointInstance)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.ContainerLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></h3>
<code><a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object,boolean)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#addManaged(org.eclipse.jetty.util.component.LifeCycle)">addManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#contains(java.lang.Object)">contains</a>, <a href="../../util/component/ContainerLifeCycle.html#destroy()">destroy</a>, <a href="../../util/component/ContainerLifeCycle.html#doStart()">doStart</a>, <a href="../../util/component/ContainerLifeCycle.html#doStop()">doStop</a>, <a href="../../util/component/ContainerLifeCycle.html#dump()">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpObjects(java.lang.Appendable,java.lang.String,java.lang.Object...)">dumpObjects</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpStdErr()">dumpStdErr</a>, <a href="../../util/component/ContainerLifeCycle.html#getBean(java.lang.Class)">getBean</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans()">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans(java.lang.Class)">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class,java.util.Collection)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#isAuto(java.lang.Object)">isAuto</a>, <a href="../../util/component/ContainerLifeCycle.html#isManaged(java.lang.Object)">isManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#isUnmanaged(java.lang.Object)">isUnmanaged</a>, <a href="../../util/component/ContainerLifeCycle.html#manage(java.lang.Object)">manage</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBean(java.lang.Object)">removeBean</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBeans()">removeBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#setBeans(java.util.Collection)">setBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#start(org.eclipse.jetty.util.component.LifeCycle)">start</a>, <a href="../../util/component/ContainerLifeCycle.html#stop(org.eclipse.jetty.util.component.LifeCycle)">stop</a>, <a href="../../util/component/ContainerLifeCycle.html#unmanage(java.lang.Object)">unmanage</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object,boolean)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.lang.Object%5B%5D,java.lang.Object%5B%5D)">updateBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.util.Collection,java.util.Collection)">updateBeans</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../util/component/AbstractLifeCycle.html#stop()">stop</a>, <a href="../../util/component/AbstractLifeCycle.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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.html#getCachedBeans(java.lang.Class)">getCachedBeans</a>, <a href="../../util/component/Container.html#getEventListeners()">getEventListeners</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#dumpSelf()">dumpSelf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable.DumpableContainer">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html#isDumpable(java.lang.Object)">isDumpable</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.eclipse.jetty.websocket.api.WebSocketContainer,org.eclipse.jetty.websocket.core.WebSocketComponents)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JettyWebSocketFrameHandlerFactory</h4>
<pre>public&nbsp;JettyWebSocketFrameHandlerFactory&#8203;(<a href="../api/WebSocketContainer.html" title="interface in org.eclipse.jetty.websocket.api">WebSocketContainer</a>&nbsp;container,
<a href="../core/WebSocketComponents.html" title="class in org.eclipse.jetty.websocket.core">WebSocketComponents</a>&nbsp;components)</pre>
</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="getWebSocketComponents()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWebSocketComponents</h4>
<pre class="methodSignature">public&nbsp;<a href="../core/WebSocketComponents.html" title="class in org.eclipse.jetty.websocket.core">WebSocketComponents</a>&nbsp;getWebSocketComponents()</pre>
</li>
</ul>
<a id="getMetadata(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="JettyWebSocketFrameHandlerMetadata.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandlerMetadata</a>&nbsp;getMetadata&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</pre>
</li>
</ul>
<a id="createMetadata(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="JettyWebSocketFrameHandlerMetadata.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandlerMetadata</a>&nbsp;createMetadata&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</pre>
</li>
</ul>
<a id="newJettyFrameHandler(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newJettyFrameHandler</h4>
<pre class="methodSignature">public&nbsp;<a href="JettyWebSocketFrameHandler.html" title="class in org.eclipse.jetty.websocket.common">JettyWebSocketFrameHandler</a>&nbsp;newJettyFrameHandler&#8203;(java.lang.Object&nbsp;endpointInstance)</pre>
</li>
</ul>
<a id="createMessageSink(java.lang.invoke.MethodHandle,java.lang.Class,java.util.concurrent.Executor,org.eclipse.jetty.websocket.common.WebSocketSession)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMessageSink</h4>
<pre class="methodSignature">public static&nbsp;<a href="../core/internal/messages/MessageSink.html" title="interface in org.eclipse.jetty.websocket.core.internal.messages">MessageSink</a>&nbsp;createMessageSink&#8203;(java.lang.invoke.MethodHandle&nbsp;msgHandle,
java.lang.Class&lt;? extends <a href="../core/internal/messages/MessageSink.html" title="interface in org.eclipse.jetty.websocket.core.internal.messages">MessageSink</a>&gt;&nbsp;sinkClass,
java.util.concurrent.Executor&nbsp;executor,
<a href="WebSocketSession.html" title="class in org.eclipse.jetty.websocket.common">WebSocketSession</a>&nbsp;session)</pre>
</li>
</ul>
<a id="getServerMethodHandleLookup()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerMethodHandleLookup</h4>
<pre class="methodSignature">public static&nbsp;java.lang.invoke.MethodHandles.Lookup&nbsp;getServerMethodHandleLookup()</pre>
<div class="block"><p>
Gives a <code>MethodHandles.Lookup</code> instance to be used to find methods in server classes.
For lookups on application classes use <a href="#getApplicationMethodHandleLookup(java.lang.Class)"><code>getApplicationMethodHandleLookup(Class)</code></a> instead.
</p>
<p>
This uses the caller sensitive <code>MethodHandles.lookup()</code>, this will allow MethodHandle access
to server classes we need to use and will give access permissions to private methods as well.
</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a lookup object to be used to find methods on server classes.</dd>
</dl>
</li>
</ul>
<a id="getApplicationMethodHandleLookup(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getApplicationMethodHandleLookup</h4>
<pre class="methodSignature">public static&nbsp;java.lang.invoke.MethodHandles.Lookup&nbsp;getApplicationMethodHandleLookup&#8203;(java.lang.Class&lt;?&gt;&nbsp;lookupClass)</pre>
<div class="block"><p>
Gives a <code>MethodHandles.Lookup</code> instance to be used to find public methods in application classes.
For lookups on server classes use <a href="#getServerMethodHandleLookup()"><code>getServerMethodHandleLookup()</code></a> instead.
</p>
<p>
This uses <code>MethodHandles.publicLookup()</code> as we only need access to public method of the lookupClass.
To look up a method on the lookupClass, it must be public and the class must be accessible from this
module, so if the lookupClass is in a JPMS module it must be exported so that the public methods
of the lookupClass are accessible outside of the module.
</p>
<p>
The <code>MethodHandles.Lookup.in(Class)</code> allows us to search specifically
in the endpoint Class to avoid any potential linkage errors which could occur if the same
class is present in multiple web apps. Unlike using <code>MethodHandles.publicLookup()</code>
using <code>MethodHandles.lookup()</code> with <code>MethodHandles.Lookup.in(Class)</code>
will cause the lookup to lose its public access to the lookup class if they are in different modules.
</p>
<p>
<code>MethodHandles.privateLookupIn(Class, MethodHandles.Lookup)</code> is also unsuitable because it
requires the caller module to read the target module, and the target module to open reflective
access to the lookupClasses private methods. This is possible but requires extra configuration
to provide private access which is not necessary for the purpose of accessing the public methods.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lookupClass</code> - the desired lookup class for the new lookup object.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a lookup object to be used to find methods on the lookupClass.</dd>
</dl>
</li>
</ul>
<a id="dump(java.lang.Appendable,java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dump</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;dump&#8203;(java.lang.Appendable&nbsp;out,
java.lang.String&nbsp;indent)
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../util/component/Dumpable.html#dump(java.lang.Appendable,java.lang.String)">Dumpable</a></code></span></div>
<div class="block">Dump this object (and children) into an Appendable using the provided indent after any new lines.
The indent should not be applied to the first object dumped.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../util/component/Dumpable.html#dump(java.lang.Appendable,java.lang.String)">dump</a></code>&nbsp;in interface&nbsp;<code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable,java.lang.String)">dump</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - The appendable to dump to</dd>
<dd><code>indent</code> - The indent to apply after any new lines.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to write to Appendable</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/JettyWebSocketFrameHandlerFactory.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="../../../../../index-all.html">Index</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><a href="#nested.class.summary">Nested</a>&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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>