<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Wed Jun 07 15:10:59 EDT 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Deprecated List (Jetty :: Project 9.2.22.v20170606 API)</title>
<meta name="date" content="2017-06-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Deprecated List (Jetty :: Project 9.2.22.v20170606 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript">                     var _gaq = _gaq || [];                     _gaq.push(['_setAccount', 'UA-1149868-7']);                     _gaq.push(['_trackPageview']);                     (function() {                       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;                       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';                       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);                     })();                  </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All 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>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#interface">Deprecated Interfaces</a></li>
<li><a href="#class">Deprecated Classes</a></li>
<li><a href="#field">Deprecated Fields</a></li>
<li><a href="#method">Deprecated Methods</a></li>
<li><a href="#constructor">Deprecated Constructors</a></li>
</ul>
</div>
<div class="contentContainer"><a name="interface">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Interfaces table, listing deprecated interfaces, and an explanation">
<caption><span>Deprecated Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Interface and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/security/CrossContextPsuedoSession.html" title="interface in org.eclipse.jetty.security">org.eclipse.jetty.security.CrossContextPsuedoSession</a>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="class">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/security/jaspi/modules/BasicAuthModule.html" title="class in org.eclipse.jetty.security.jaspi.modules">org.eclipse.jetty.security.jaspi.modules.BasicAuthModule</a>
<div class="block"><i>use *ServerAuthentication</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/security/jaspi/modules/ClientCertAuthModule.html" title="class in org.eclipse.jetty.security.jaspi.modules">org.eclipse.jetty.security.jaspi.modules.ClientCertAuthModule</a>
<div class="block"><i>use *ServerAuthentication</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ContextHandler.ApprovePathPrefixAliases.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.ContextHandler.ApprovePathPrefixAliases</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ContextHandler.ApproveSameSuffixAliases.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.ContextHandler.ApproveSameSuffixAliases</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/security/jaspi/modules/DigestAuthModule.html" title="class in org.eclipse.jetty.security.jaspi.modules">org.eclipse.jetty.security.jaspi.modules.DigestAuthModule</a>
<div class="block"><i>use *ServerAuthentication</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/security/jaspi/modules/FormAuthModule.html" title="class in org.eclipse.jetty.security.jaspi.modules">org.eclipse.jetty.security.jaspi.modules.FormAuthModule</a>
<div class="block"><i>use *ServerAuthentication</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/security/HashCrossContextPsuedoSession.html" title="class in org.eclipse.jetty.security">org.eclipse.jetty.security.HashCrossContextPsuedoSession</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/IPAccessHandler.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.IPAccessHandler</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/IPAddressMap.html" title="class in org.eclipse.jetty.util">org.eclipse.jetty.util.IPAddressMap</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/MultiPartFilter.html" title="class in org.eclipse.jetty.servlets">org.eclipse.jetty.servlets.MultiPartFilter</a>
<div class="block"><i>See servlet 3.0 apis like javax.servlet.http.HttpServletRequest.getParts()</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/nio/NetworkTrafficSelectChannelConnector.html" title="class in org.eclipse.jetty.server.nio">org.eclipse.jetty.server.nio.NetworkTrafficSelectChannelConnector</a>
<div class="block"><i>use <a href="org/eclipse/jetty/server/NetworkTrafficServerConnector.html" title="class in org.eclipse.jetty.server"><code>NetworkTrafficServerConnector</code></a> instead.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/pathmap/PathMappings.html" title="class in org.eclipse.jetty.websocket.server.pathmap">org.eclipse.jetty.websocket.server.pathmap.PathMappings</a>
<div class="block"><i>use <a href="org/eclipse/jetty/http/pathmap/PathMappings.html" title="class in org.eclipse.jetty.http.pathmap"><code>PathMappings</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/ServletWebSocketRequest.html" title="class in org.eclipse.jetty.websocket.server">org.eclipse.jetty.websocket.server.ServletWebSocketRequest</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.html" title="class in org.eclipse.jetty.websocket.servlet"><code>ServletUpgradeRequest</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/ServletWebSocketResponse.html" title="class in org.eclipse.jetty.websocket.server">org.eclipse.jetty.websocket.server.ServletWebSocketResponse</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.html" title="class in org.eclipse.jetty.websocket.servlet"><code>ServletUpgradeResponse</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/thread/SpinLock.html" title="class in org.eclipse.jetty.util.thread">org.eclipse.jetty.util.thread.SpinLock</a>
<div class="block"><i>Do not use it anymore, prefer normal locks</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="field">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Fields table, listing deprecated fields, and an explanation">
<caption><span>Deprecated Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Field and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/StringUtil.html#__ISO_8859_1_CHARSET">org.eclipse.jetty.util.StringUtil.__ISO_8859_1_CHARSET</a>
<div class="block"><i>Use <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html?is-external=true#ISO_8859_1" title="class or interface in java.nio.charset"><code>StandardCharsets.ISO_8859_1</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/StringUtil.html#__LINE_SEPARATOR">org.eclipse.jetty.util.StringUtil.__LINE_SEPARATOR</a>
<div class="block"><i>use <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/System.html?is-external=true#lineSeparator()" title="class or interface in java.lang"><code>System.lineSeparator()</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/StringUtil.html#__US_ASCII_CHARSET">org.eclipse.jetty.util.StringUtil.__US_ASCII_CHARSET</a>
<div class="block"><i>Use <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html?is-external=true#US_ASCII" title="class or interface in java.nio.charset"><code>StandardCharsets.US_ASCII</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/StringUtil.html#__UTF16_CHARSET">org.eclipse.jetty.util.StringUtil.__UTF16_CHARSET</a>
<div class="block"><i>Use <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html?is-external=true#UTF_16" title="class or interface in java.nio.charset"><code>StandardCharsets.UTF_16</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/StringUtil.html#__UTF8_CHARSET">org.eclipse.jetty.util.StringUtil.__UTF8_CHARSET</a>
<div class="block"><i>Use <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html?is-external=true#UTF_8" title="class or interface in java.nio.charset"><code>StandardCharsets.UTF_8</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_BUNDLE_INSTALL_LOCATION_OVERRIDE">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_BUNDLE_INSTALL_LOCATION_OVERRIDE</a>
<div class="block"><i>see JETTY_BUNDLE_INSTALL_LOCATION_OVERRIDE</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_CONTEXT_FILE_PATH">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_CONTEXT_FILE_PATH</a>
<div class="block"><i>see JETTY_CONTEXT_FILE_PATH</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_CONTEXT_PATH">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_CONTEXT_PATH</a>
<div class="block"><i>see RFC66_WEB_CONTEXTPATH</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_DEFAULT_WEB_XML_PATH">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_DEFAULT_WEB_XML_PATH</a>
<div class="block"><i>see JETTY_DEFAULT_WEB_XML_PATH</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_EXTRA_CLASSPATH">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_EXTRA_CLASSPATH</a>
<div class="block"><i>see JETTY_EXTRA_CLASSPATH</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_WAR">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_WAR</a>
<div class="block"><i>see JETTY_WAR_FOLDER_PATH</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/osgi/boot/OSGiWebappConstants.html#SERVICE_PROP_WEB_XML_PATH">org.eclipse.jetty.osgi.boot.OSGiWebappConstants.SERVICE_PROP_WEB_XML_PATH</a>
<div class="block"><i>see JETTY_WEB_XML_PATH</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/webapp/WebAppClassLoader.html#addClassFileTransformer(java.lang.instrument.ClassFileTransformer)">org.eclipse.jetty.webapp.WebAppClassLoader.addClassFileTransformer(ClassFileTransformer)</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/servlet/ServletHandler.html#addFilter(java.lang.String,%20java.lang.String,%20java.util.EnumSet)">org.eclipse.jetty.servlet.ServletHandler.addFilter(String, String, EnumSet<DispatcherType>)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/servlet/ServletHandler.html#addFilterWithMapping(java.lang.Class,%20java.lang.String,%20java.util.EnumSet)"><code>ServletHandler.addFilterWithMapping(Class, String, EnumSet)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeHandlerWrapper.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)">org.eclipse.jetty.websocket.server.WebSocketUpgradeHandlerWrapper.addMapping(PathSpec, WebSocketCreator)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeHandlerWrapper.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)"><code>WebSocketUpgradeHandlerWrapper.addMapping(PathSpec, WebSocketCreator)</code></a> instead.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeFilter.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)">org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.addMapping(PathSpec, WebSocketCreator)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/NativeWebSocketConfiguration.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)">org.eclipse.jetty.websocket.server.NativeWebSocketConfiguration.addMapping(PathSpec, WebSocketCreator)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/server/NativeWebSocketConfiguration.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)"><code>NativeWebSocketConfiguration.addMapping(PathSpec, WebSocketCreator)</code></a> instead.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/MappedWebSocketCreator.html#addMapping(org.eclipse.jetty.websocket.server.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)">org.eclipse.jetty.websocket.server.MappedWebSocketCreator.addMapping(PathSpec, WebSocketCreator)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/server/MappedWebSocketCreator.html#addMapping(org.eclipse.jetty.http.pathmap.PathSpec,%20org.eclipse.jetty.websocket.servlet.WebSocketCreator)"><code>MappedWebSocketCreator.addMapping(org.eclipse.jetty.http.pathmap.PathSpec, WebSocketCreator)</code></a> instead.
 (support classes moved to generic jetty-http project)</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#append(java.lang.StringBuffer,%20java.lang.Object)">org.eclipse.jetty.util.ajax.JSON.append(StringBuffer, Object)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendArray(java.lang.StringBuffer,%20java.util.Collection)">org.eclipse.jetty.util.ajax.JSON.appendArray(StringBuffer, Collection)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendArray(java.lang.StringBuffer,%20java.lang.Object)">org.eclipse.jetty.util.ajax.JSON.appendArray(StringBuffer, Object)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendBoolean(java.lang.StringBuffer,%20java.lang.Boolean)">org.eclipse.jetty.util.ajax.JSON.appendBoolean(StringBuffer, Boolean)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendJSON(java.lang.StringBuffer,%20org.eclipse.jetty.util.ajax.JSON.Convertible)">org.eclipse.jetty.util.ajax.JSON.appendJSON(StringBuffer, JSON.Convertible)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendJSON(java.lang.StringBuffer,%20org.eclipse.jetty.util.ajax.JSON.Convertor,%20java.lang.Object)">org.eclipse.jetty.util.ajax.JSON.appendJSON(StringBuffer, JSON.Convertor, Object)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendJSON(java.lang.StringBuffer,%20org.eclipse.jetty.util.ajax.JSON.Generator)">org.eclipse.jetty.util.ajax.JSON.appendJSON(StringBuffer, JSON.Generator)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendMap(java.lang.StringBuffer,%20java.util.Map)">org.eclipse.jetty.util.ajax.JSON.appendMap(StringBuffer, Map<?, ?>)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendNull(java.lang.StringBuffer)">org.eclipse.jetty.util.ajax.JSON.appendNull(StringBuffer)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendNumber(java.lang.StringBuffer,%20java.lang.Number)">org.eclipse.jetty.util.ajax.JSON.appendNumber(StringBuffer, Number)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#appendString(java.lang.StringBuffer,%20java.lang.String)">org.eclipse.jetty.util.ajax.JSON.appendString(StringBuffer, String)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.html#checkNPNAvailable()">org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory.checkNPNAvailable()</a>
<div class="block"><i>use <a href="org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.html#checkProtocolNegotiationAvailable()"><code>SPDYServerConnectionFactory.checkProtocolNegotiationAvailable()</code></a> instead.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/DoSFilter.html#checkWhitelist(java.util.List,%20java.lang.String)">org.eclipse.jetty.servlets.DoSFilter.checkWhitelist(List<String>, String)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/IteratingCallback.html#completed()">org.eclipse.jetty.util.IteratingCallback.completed()</a>
<div class="block"><i>Use <a href="org/eclipse/jetty/util/IteratingCallback.html#onCompleteSuccess()"><code>IteratingCallback.onCompleteSuccess()</code></a> instead.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeFilter.html#configureContext(javax.servlet.ServletContext)">org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.configureContext(ServletContext)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeFilter.html#configureContext(org.eclipse.jetty.servlet.ServletContextHandler)"><code>WebSocketUpgradeFilter.configureContext(ServletContextHandler)</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.html#configureContext(javax.servlet.ServletContext,%20org.eclipse.jetty.servlet.ServletContextHandler)">org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.configureContext(ServletContext, ServletContextHandler)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.html#configureContext(org.eclipse.jetty.servlet.ServletContextHandler)"><code>WebSocketServerContainerInitializer.configureContext(ServletContextHandler)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#copyHeaders(javax.servlet.http.HttpServletRequest,%20org.eclipse.jetty.client.api.Request)">org.eclipse.jetty.proxy.ProxyServlet.copyHeaders(HttpServletRequest, Request)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#copyRequestHeaders(javax.servlet.http.HttpServletRequest,%20org.eclipse.jetty.client.api.Request)"><code>AbstractProxyServlet.copyRequestHeaders(HttpServletRequest, Request)</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#customizeProxyRequest(org.eclipse.jetty.client.api.Request,%20javax.servlet.http.HttpServletRequest)">org.eclipse.jetty.proxy.ProxyServlet.customizeProxyRequest(Request, HttpServletRequest)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#sendProxyRequest(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Request)"><code>AbstractProxyServlet.sendProxyRequest(HttpServletRequest, HttpServletResponse, Request)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/resource/Resource.html#encode(java.lang.String)">org.eclipse.jetty.util.resource.Resource.encode(String)</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/Response.html#encodeRedirectUrl(java.lang.String)">org.eclipse.jetty.server.Response.encodeRedirectUrl(String)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/Response.html#encodeUrl(java.lang.String)">org.eclipse.jetty.server.Response.encodeUrl(String)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#filterResponseHeader(javax.servlet.http.HttpServletRequest,%20java.lang.String,%20java.lang.String)">org.eclipse.jetty.proxy.ProxyServlet.filterResponseHeader(HttpServletRequest, String, String)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/ProxyServlet.html#filterServerResponseHeader(javax.servlet.http.HttpServletRequest,%20org.eclipse.jetty.client.api.Response,%20java.lang.String,%20java.lang.String)"><code>ProxyServlet.filterServerResponseHeader(HttpServletRequest, Response, String, String)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/BufferUtil.html#flipPutFlip(java.nio.ByteBuffer,%20java.nio.ByteBuffer)">org.eclipse.jetty.util.BufferUtil.flipPutFlip(ByteBuffer, ByteBuffer)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/util/BufferUtil.html#append(java.nio.ByteBuffer,%20java.nio.ByteBuffer)"><code>BufferUtil.append(ByteBuffer, ByteBuffer)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/JDBCSessionIdManager.html#getBlobType()">org.eclipse.jetty.server.session.JDBCSessionIdManager.getBlobType()</a>
<div class="block"><i>see DbAdaptor.getBlobType</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/deploy/App.html#getContextId()">org.eclipse.jetty.deploy.App.getContextId()</a>
<div class="block"><i>Use getContextPath instead.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/continuation/ContinuationSupport.html#getContinuation(javax.servlet.ServletRequest,%20javax.servlet.ServletResponse)">org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ServletRequest, ServletResponse)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/continuation/ContinuationSupport.html#getContinuation(javax.servlet.ServletRequest)"><code>ContinuationSupport.getContinuation(ServletRequest)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/rewrite/handler/RuleContainer.html#getLegacyRule()">org.eclipse.jetty.rewrite.handler.RuleContainer.getLegacyRule()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/JDBCSessionIdManager.html#getLongType()">org.eclipse.jetty.server.session.JDBCSessionIdManager.getLongType()</a>
<div class="block"><i>see DbAdaptor.getLogType</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/WebSocketUpgradeFilter.html#getMappings()">org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.getMappings()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/server/MappedWebSocketCreator.html#getMappings()">org.eclipse.jetty.websocket.server.MappedWebSocketCreator.getMappings()</a>
<div class="block"><i>do not use, use <a href="org/eclipse/jetty/websocket/server/MappedWebSocketCreator.html#getMapping(java.lang.String)"><code>MappedWebSocketCreator.getMapping(String)</code></a> instead.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/SessionManager.html#getMetaManager()">org.eclipse.jetty.server.SessionManager.getMetaManager()</a>
<div class="block"><i>use <a href="org/eclipse/jetty/server/SessionManager.html#getSessionIdManager()"><code>SessionManager.getSessionIdManager()</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSessionManager.html#getMetaManager()">org.eclipse.jetty.server.session.AbstractSessionManager.getMetaManager()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#getMimeTypes()">org.eclipse.jetty.servlets.gzip.GzipHandler.getMimeTypes()</a>
<div class="block"><i>use <a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#getExcludedMimeTypes()"><code>GzipHandler.getExcludedMimeTypes()</code></a> or <a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#getIncludedMimeTypes()"><code>GzipHandler.getIncludedMimeTypes()</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.html#getPrincipal()">org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest.getPrincipal()</a>
<div class="block"><i>use <a href="org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.html#getUserPrincipal()"><code>ServletUpgradeRequest.getUserPrincipal()</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/http/HttpGenerator.html#getSendServerVersion()">org.eclipse.jetty.http.HttpGenerator.getSendServerVersion()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ContextHandler.NoContext.html#getServlet(java.lang.String)">org.eclipse.jetty.server.handler.ContextHandler.NoContext.getServlet(String)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ContextHandler.NoContext.html#getServletNames()">org.eclipse.jetty.server.handler.ContextHandler.NoContext.getServletNames()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ContextHandler.NoContext.html#getServlets()">org.eclipse.jetty.server.handler.ContextHandler.NoContext.getServlets()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#getSessionContext()">org.eclipse.jetty.server.session.AbstractSession.getSessionContext()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#getValue(java.lang.String)">org.eclipse.jetty.server.session.AbstractSession.getValue(String)</a>
<div class="block"><i>As of Version 2.2, this method is replaced by
             <a href="org/eclipse/jetty/server/session/AbstractSession.html#getAttribute(java.lang.String)"><code>AbstractSession.getAttribute(java.lang.String)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#getValueNames()">org.eclipse.jetty.server.session.AbstractSession.getValueNames()</a>
<div class="block"><i>As of Version 2.2, this method is replaced by
             <a href="org/eclipse/jetty/server/session/AbstractSession.html#getAttributeNames()"><code>AbstractSession.getAttributeNames()</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/AbstractNCSARequestLog.html#isLogDispatch()">org.eclipse.jetty.server.AbstractNCSARequestLog.isLogDispatch()</a>
<div class="block"><i>use <code>StatisticsHandler</code></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ConnectHandler.html#newDownstreamConnection(org.eclipse.jetty.io.EndPoint,%20java.util.concurrent.ConcurrentMap,%20java.nio.ByteBuffer)">org.eclipse.jetty.proxy.ConnectHandler.newDownstreamConnection(EndPoint, ConcurrentMap<String, Object>, ByteBuffer)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/ConnectHandler.html#newDownstreamConnection(org.eclipse.jetty.io.EndPoint,%20java.util.concurrent.ConcurrentMap)"><code>ConnectHandler.newDownstreamConnection(EndPoint, ConcurrentMap)</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.html#newHttpConnection(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination)">org.eclipse.jetty.client.http.HttpClientTransportOverHTTP.newHttpConnection(EndPoint, HttpDestination)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/client/http/HttpClientTransportOverHTTP.html#newHttpConnection(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination,%20org.eclipse.jetty.util.Promise)"><code>HttpClientTransportOverHTTP.newHttpConnection(EndPoint, HttpDestination, Promise)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#onResponseFailure(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response,%20java.lang.Throwable)">org.eclipse.jetty.proxy.ProxyServlet.onResponseFailure(HttpServletRequest, HttpServletResponse, Response, Throwable)</a>
<div class="block"><i>Use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#onProxyResponseFailure(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response,%20java.lang.Throwable)"><code>AbstractProxyServlet.onProxyResponseFailure(HttpServletRequest, HttpServletResponse, Response, Throwable)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#onResponseHeaders(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response)">org.eclipse.jetty.proxy.ProxyServlet.onResponseHeaders(HttpServletRequest, HttpServletResponse, Response)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#onServerResponseHeaders(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response)"><code>AbstractProxyServlet.onServerResponseHeaders(HttpServletRequest, HttpServletResponse, Response)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#onResponseSuccess(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response)">org.eclipse.jetty.proxy.ProxyServlet.onResponseSuccess(HttpServletRequest, HttpServletResponse, Response)</a>
<div class="block"><i>Use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#onProxyResponseSuccess(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse,%20org.eclipse.jetty.client.api.Response)"><code>AbstractProxyServlet.onProxyResponseSuccess(HttpServletRequest, HttpServletResponse, Response)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#onRewriteFailed(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse)">org.eclipse.jetty.proxy.ProxyServlet.onRewriteFailed(HttpServletRequest, HttpServletResponse)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#onProxyRewriteFailed(javax.servlet.http.HttpServletRequest,%20javax.servlet.http.HttpServletResponse)"><code>AbstractProxyServlet.onProxyRewriteFailed(HttpServletRequest, HttpServletResponse)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#parse(java.io.InputStream)">org.eclipse.jetty.util.ajax.JSON.parse(InputStream)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/util/ajax/JSON.html#parse(java.io.Reader)"><code>JSON.parse(Reader)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#parse(java.io.InputStream,%20boolean)">org.eclipse.jetty.util.ajax.JSON.parse(InputStream, boolean)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/util/ajax/JSON.html#parse(java.io.Reader,%20boolean)"><code>JSON.parse(Reader, boolean)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#putValue(java.lang.String,%20java.lang.Object)">org.eclipse.jetty.server.session.AbstractSession.putValue(String, Object)</a>
<div class="block"><i>As of Version 2.2, this method is replaced by
             <a href="org/eclipse/jetty/server/session/AbstractSession.html#setAttribute(java.lang.String,%20java.lang.Object)"><code>AbstractSession.setAttribute(java.lang.String, java.lang.Object)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ConnectHandler.html#read(org.eclipse.jetty.io.EndPoint,%20java.nio.ByteBuffer)">org.eclipse.jetty.proxy.ConnectHandler.read(EndPoint, ByteBuffer)</a>
<div class="block"><i>override <a href="org/eclipse/jetty/proxy/ConnectHandler.html#read(org.eclipse.jetty.io.EndPoint,%20java.nio.ByteBuffer,%20java.util.concurrent.ConcurrentMap)"><code>ConnectHandler.read(EndPoint, ByteBuffer, ConcurrentMap)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/util/resource/Resource.html#release()">org.eclipse.jetty.util.resource.Resource.release()</a>
<div class="block"><i>use <a href="org/eclipse/jetty/util/resource/Resource.html#close()"><code>Resource.close()</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/webapp/WebAppClassLoader.html#removeClassFileTransformer(java.lang.instrument.ClassFileTransformer)">org.eclipse.jetty.webapp.WebAppClassLoader.removeClassFileTransformer(ClassFileTransformer)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#removeValue(java.lang.String)">org.eclipse.jetty.server.session.AbstractSession.removeValue(String)</a>
<div class="block"><i>As of Version 2.2, this method is replaced by
             <a href="org/eclipse/jetty/server/session/AbstractSession.html#removeAttribute(java.lang.String)"><code>AbstractSession.removeAttribute(java.lang.String)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ProxyServlet.html#rewriteURI(javax.servlet.http.HttpServletRequest)">org.eclipse.jetty.proxy.ProxyServlet.rewriteURI(HttpServletRequest)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/proxy/AbstractProxyServlet.html#rewriteTarget(javax.servlet.http.HttpServletRequest)"><code>AbstractProxyServlet.rewriteTarget(HttpServletRequest)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/JDBCSessionIdManager.html#setBlobType(java.lang.String)">org.eclipse.jetty.server.session.JDBCSessionIdManager.setBlobType(String)</a>
<div class="block"><i>see DbAdaptor.setBlobType</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/util/ajax/JSON.html#setDefault(org.eclipse.jetty.util.ajax.JSON)">org.eclipse.jetty.util.ajax.JSON.setDefault(JSON)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#setExcludeMimeTypes(boolean)">org.eclipse.jetty.servlets.gzip.GzipHandler.setExcludeMimeTypes(boolean)</a>
<div class="block"><i>use <code>#setExcludedMimeTypes()</code> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/rewrite/handler/RuleContainer.html#setLegacyRule(org.eclipse.jetty.rewrite.handler.LegacyRule)">org.eclipse.jetty.rewrite.handler.RuleContainer.setLegacyRule(LegacyRule)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/rewrite/handler/RewriteHandler.html#setLegacyRule(org.eclipse.jetty.rewrite.handler.LegacyRule)">org.eclipse.jetty.rewrite.handler.RewriteHandler.setLegacyRule(LegacyRule)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/server/AbstractNCSARequestLog.html#setLogDispatch(boolean)">org.eclipse.jetty.server.AbstractNCSARequestLog.setLogDispatch(boolean)</a>
<div class="block"><i>use <code>StatisticsHandler</code></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/JDBCSessionIdManager.html#setLongType(java.lang.String)">org.eclipse.jetty.server.session.JDBCSessionIdManager.setLongType(String)</a>
<div class="block"><i>see DbAdaptor.setLongType</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#setMimeTypes(java.util.Set)">org.eclipse.jetty.servlets.gzip.GzipHandler.setMimeTypes(Set<String>)</a>
<div class="block"><i>use <code>#setExcludedMimeTypes()</code> or <code>#setIncludedMimeTypes()</code> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/servlets/gzip/GzipHandler.html#setMimeTypes(java.lang.String)">org.eclipse.jetty.servlets.gzip.GzipHandler.setMimeTypes(String)</a>
<div class="block"><i>use <code>#setExcludedMimeTypes()</code> or <code>#setIncludedMimeTypes()</code> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/http/HttpGenerator.html#setSendServerVersion(boolean)">org.eclipse.jetty.http.HttpGenerator.setSendServerVersion(boolean)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/Response.html#setStatus(int,%20java.lang.String)">org.eclipse.jetty.server.Response.setStatus(int, String)</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/websocket/api/CloseStatus.html#trimMaxReasonLength(java.lang.String)">org.eclipse.jetty.websocket.api.CloseStatus.trimMaxReasonLength(String)</a>
<div class="block"><i>use of this method is strongly discouraged, as it creates too many new objects that are just thrown away to accomplish its goals.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/session/AbstractSession.html#updateAttribute(java.lang.String,%20java.lang.Object)">org.eclipse.jetty.server.session.AbstractSession.updateAttribute(String, Object)</a>
<div class="block"><i>use changeAttribute(String,Object) instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ConnectHandler.html#write(org.eclipse.jetty.io.EndPoint,%20java.nio.ByteBuffer,%20org.eclipse.jetty.util.Callback)">org.eclipse.jetty.proxy.ConnectHandler.write(EndPoint, ByteBuffer, Callback)</a>
<div class="block"><i>override <a href="org/eclipse/jetty/proxy/ConnectHandler.html#write(org.eclipse.jetty.io.EndPoint,%20java.nio.ByteBuffer,%20org.eclipse.jetty.util.Callback,%20java.util.concurrent.ConcurrentMap)"><code>ConnectHandler.write(EndPoint, ByteBuffer, Callback, ConcurrentMap)</code></a> instead</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="constructor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/proxy/ConnectHandler.DownstreamConnection.html#ConnectHandler.DownstreamConnection(org.eclipse.jetty.io.EndPoint,%20java.util.concurrent.Executor,%20org.eclipse.jetty.io.ByteBufferPool,%20java.util.concurrent.ConcurrentMap,%20java.nio.ByteBuffer)">org.eclipse.jetty.proxy.ConnectHandler.DownstreamConnection(EndPoint, Executor, ByteBufferPool, ConcurrentMap<String, Object>, ByteBuffer)</a>
<div class="block"><i>use <code>#DownstreamConnection(EndPoint, Executor, ByteBufferPool, ConcurrentMap)</code> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/security/jaspi/modules/FormAuthModule.html#FormAuthModule(javax.security.auth.callback.CallbackHandler,%20org.eclipse.jetty.security.CrossContextPsuedoSession,%20java.lang.String,%20java.lang.String)">org.eclipse.jetty.security.jaspi.modules.FormAuthModule(CallbackHandler, CrossContextPsuedoSession<UserInfo>, String, String)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/fcgi/client/http/HttpConnectionOverFCGI.html#HttpConnectionOverFCGI(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination,%20boolean)">org.eclipse.jetty.fcgi.client.http.HttpConnectionOverFCGI(EndPoint, HttpDestination, boolean)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/fcgi/client/http/HttpConnectionOverFCGI.html#HttpConnectionOverFCGI(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination,%20org.eclipse.jetty.util.Promise,%20boolean)"><code>HttpConnectionOverFCGI.HttpConnectionOverFCGI(EndPoint, HttpDestination, Promise, boolean)</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/eclipse/jetty/client/http/HttpConnectionOverHTTP.html#HttpConnectionOverHTTP(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination)">org.eclipse.jetty.client.http.HttpConnectionOverHTTP(EndPoint, HttpDestination)</a>
<div class="block"><i>use <a href="org/eclipse/jetty/client/http/HttpConnectionOverHTTP.html#HttpConnectionOverHTTP(org.eclipse.jetty.io.EndPoint,%20org.eclipse.jetty.client.HttpDestination,%20org.eclipse.jetty.util.Promise)"><code>HttpConnectionOverHTTP.HttpConnectionOverHTTP(EndPoint, HttpDestination, Promise)</code></a> instead</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/eclipse/jetty/server/handler/ShutdownHandler.html#ShutdownHandler(org.eclipse.jetty.server.Server,%20java.lang.String)">org.eclipse.jetty.server.handler.ShutdownHandler(Server, String)</a></td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript">                     var _gaq = _gaq || [];                     _gaq.push(['_setAccount', 'UA-1149868-7']);                     _gaq.push(['_trackPageview']);                     (function() {                       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;                       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';                       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);                     })();                  </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All 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>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1995-2017 <a href="http://webtide.com">Webtide</a>. All Rights Reserved.</small></p>
</body>
</html>
