blob: 409cf927e2ca1e26ee6cf2ca912ac2f9be3f6873 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Mon Jun 14 16:37:38 EDT 2021 -->
<title>WebAppClassLoader (Jetty :: Project 9.4.42.v20210604 API)</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="WebAppClassLoader (Jetty :: Project 9.4.42.v20210604 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":42,"i18":10,"i19":9,"i20":10,"i21":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
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/WebAppClassLoader.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>Field&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.webapp</a></div>
<h2 title="Class WebAppClassLoader" class="title">Class WebAppClassLoader</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.lang.ClassLoader</li>
<li>
<ul class="inheritance">
<li>java.security.SecureClassLoader</li>
<li>
<ul class="inheritance">
<li>java.net.URLClassLoader</li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.webapp.WebAppClassLoader</li>
</ul>
</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>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code>, <code><a href="../util/ClassVisibilityChecker.html" title="interface in org.eclipse.jetty.util">ClassVisibilityChecker</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="CachingWebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">CachingWebAppClassLoader</a></code>, <code><a href="../osgi/boot/internal/webapp/OSGiWebappClassLoader.html" title="class in org.eclipse.jetty.osgi.boot.internal.webapp">OSGiWebappClassLoader</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">WebAppClassLoader</span>
extends java.net.URLClassLoader
implements <a href="../util/ClassVisibilityChecker.html" title="interface in org.eclipse.jetty.util">ClassVisibilityChecker</a></pre>
<div class="block">ClassLoader for HttpContext.
<p>
Specializes URLClassLoader with some utility and file mapping
methods.
<p>
This loader defaults to the 2.3 servlet spec behavior where non
system classes are loaded from the classpath in preference to the
parent loader. Java2 compliant loading, where the parent loader
always has priority, can be selected with the
<a href="WebAppContext.html#setParentLoaderPriority(boolean)"><code>WebAppContext.setParentLoaderPriority(boolean)</code></a>
method and influenced with <a href="WebAppContext.html#isServerClass(java.lang.String)"><code>WebAppContext.isServerClass(String)</code></a> and
<a href="WebAppContext.html#isSystemClass(java.lang.String)"><code>WebAppContext.isSystemClass(String)</code></a>.
<p>
If no parent class loader is provided, then the current thread
context classloader will be used. If that is null then the
classloader that loaded this class is used as the parent.</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>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a></span></code></th>
<td class="colLast">
<div class="block">The Context in which the classloader operates.</div>
</td>
</tr>
</table>
</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(java.lang.ClassLoader,org.eclipse.jetty.webapp.WebAppClassLoader.Context)">WebAppClassLoader</a></span>&#8203;(java.lang.ClassLoader&nbsp;parent,
<a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.jetty.webapp.WebAppClassLoader.Context)">WebAppClassLoader</a></span>&#8203;(<a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Constructor.</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="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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addClassFileTransformer(java.lang.instrument.ClassFileTransformer)">addClassFileTransformer</a></span>&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment"><a href="#addTransformer(java.lang.instrument.ClassFileTransformer)"><code>addTransformer(ClassFileTransformer)</code></a> instead</div>
</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addClassPath(java.lang.String)">addClassPath</a></span>&#8203;(java.lang.String&nbsp;classPath)</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="#addClassPath(org.eclipse.jetty.util.resource.Resource)">addClassPath</a></span>&#8203;(<a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a>&nbsp;resource)</code></th>
<td class="colLast">&nbsp;</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="#addJars(org.eclipse.jetty.util.resource.Resource)">addJars</a></span>&#8203;(<a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a>&nbsp;lib)</code></th>
<td class="colLast">
<div class="block">Add elements to the class path for the context from the jar and zip files found
in the specified resource.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addTransformer(java.lang.instrument.ClassFileTransformer)">addTransformer</a></span>&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected java.lang.Class&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findClass(java.lang.String)">findClass</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected java.lang.Class&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#foundClass(java.lang.String,java.net.URL)">foundClass</a></span>&#8203;(java.lang.String&nbsp;name,
java.net.URL&nbsp;url)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.security.PermissionCollection</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPermissions(java.security.CodeSource)">getPermissions</a></span>&#8203;(java.security.CodeSource&nbsp;cs)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.net.URL</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResource(java.lang.String)">getResource</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Get a resource from the classloader
NOTE: this method provides a convenience of hacking off a leading /
should one be present.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.Enumeration&lt;java.net.URL&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResources(java.lang.String)">getResources</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isServerClass(java.lang.Class)">isServerClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Is the class a Server Class.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSystemClass(java.lang.Class)">isSystemClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Is the class a System Class.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected java.lang.Class&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadAsResource(java.lang.String,boolean)">loadAsResource</a></span>&#8203;(java.lang.String&nbsp;name,
boolean&nbsp;checkSystemResource)</code></th>
<td class="colLast">
<div class="block">Look for the classname as a resource to avoid loading a class that is
potentially a system resource.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected java.lang.Class&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadClass(java.lang.String,boolean)">loadClass</a></span>&#8203;(java.lang.String&nbsp;name,
boolean&nbsp;resolve)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeClassFileTransformer(java.lang.instrument.ClassFileTransformer)">removeClassFileTransformer</a></span>&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#removeTransformer(java.lang.instrument.ClassFileTransformer)"><code>removeTransformer(ClassFileTransformer)</code></a> instead</div>
</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeTransformer(java.lang.instrument.ClassFileTransformer)">removeTransformer</a></span>&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runWithServerClassAccess(java.security.PrivilegedExceptionAction)">runWithServerClassAccess</a></span>&#8203;(java.security.PrivilegedExceptionAction&lt;T&gt;&nbsp;action)</code></th>
<td class="colLast">
<div class="block">Run an action with access to ServerClasses</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setName(java.lang.String)">setName</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.net.URLClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.net.URLClassLoader</h3>
<code>addURL, definePackage, findResource, findResources, getResourceAsStream, getURLs, newInstance, newInstance</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.security.SecureClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.security.SecureClassLoader</h3>
<code>defineClass, defineClass</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.ClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.ClassLoader</h3>
<code>clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners</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>
</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.webapp.WebAppClassLoader.Context)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WebAppClassLoader</h4>
<pre>public&nbsp;WebAppClassLoader&#8203;(<a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a>&nbsp;context)
throws java.io.IOException</pre>
<div class="block">Constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the context for this classloader</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to initialize from context</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(java.lang.ClassLoader,org.eclipse.jetty.webapp.WebAppClassLoader.Context)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>WebAppClassLoader</h4>
<pre>public&nbsp;WebAppClassLoader&#8203;(java.lang.ClassLoader&nbsp;parent,
<a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a>&nbsp;context)
throws java.io.IOException</pre>
<div class="block">Constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - the parent classloader</dd>
<dd><code>context</code> - the context for this classloader</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to initialize classloader</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="runWithServerClassAccess(java.security.PrivilegedExceptionAction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runWithServerClassAccess</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;runWithServerClassAccess&#8203;(java.security.PrivilegedExceptionAction&lt;T&gt;&nbsp;action)
throws java.lang.Exception</pre>
<div class="block">Run an action with access to ServerClasses
<p>Run the passed <code>PrivilegedExceptionAction</code> with the classloader
configured so as to allow server classes to be visible</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type returned by the action</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>action</code> - The action to run</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The return from the action</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if thrown by the action</dd>
</dl>
</li>
</ul>
<a id="getName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getName()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getName</code>&nbsp;in class&nbsp;<code>java.lang.ClassLoader</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the name of the classloader</dd>
</dl>
</li>
</ul>
<a id="setName(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setName&#8203;(java.lang.String&nbsp;name)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the classloader</dd>
</dl>
</li>
</ul>
<a id="getContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
<pre class="methodSignature">public&nbsp;<a href="WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</a>&nbsp;getContext()</pre>
</li>
</ul>
<a id="addClassPath(org.eclipse.jetty.util.resource.Resource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addClassPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addClassPath&#8203;(<a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a>&nbsp;resource)
throws java.io.IOException</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - Comma or semicolon separated path of filenames or URLs
pointing to directories or jar files. Directories should end
with '/'.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to add classpath from resource</dd>
</dl>
</li>
</ul>
<a id="addClassPath(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addClassPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addClassPath&#8203;(java.lang.String&nbsp;classPath)
throws java.io.IOException</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classPath</code> - Comma or semicolon separated path of filenames or URLs
pointing to directories or jar files. Directories should end
with '/'.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to add classpath</dd>
</dl>
</li>
</ul>
<a id="addJars(org.eclipse.jetty.util.resource.Resource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addJars</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addJars&#8203;(<a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a>&nbsp;lib)</pre>
<div class="block">Add elements to the class path for the context from the jar and zip files found
in the specified resource.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lib</code> - the resource that contains the jar and/or zip files.</dd>
</dl>
</li>
</ul>
<a id="getPermissions(java.security.CodeSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissions</h4>
<pre class="methodSignature">public&nbsp;java.security.PermissionCollection&nbsp;getPermissions&#8203;(java.security.CodeSource&nbsp;cs)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getPermissions</code>&nbsp;in class&nbsp;<code>java.net.URLClassLoader</code></dd>
</dl>
</li>
</ul>
<a id="getResources(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResources</h4>
<pre class="methodSignature">public&nbsp;java.util.Enumeration&lt;java.net.URL&gt;&nbsp;getResources&#8203;(java.lang.String&nbsp;name)
throws java.io.IOException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getResources</code>&nbsp;in class&nbsp;<code>java.lang.ClassLoader</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="getResource(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResource</h4>
<pre class="methodSignature">public&nbsp;java.net.URL&nbsp;getResource&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Get a resource from the classloader
NOTE: this method provides a convenience of hacking off a leading /
should one be present. This is non-standard and it is recommended
to not rely on this behavior</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getResource</code>&nbsp;in class&nbsp;<code>java.lang.ClassLoader</code></dd>
</dl>
</li>
</ul>
<a id="loadClass(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadClass</h4>
<pre class="methodSignature">protected&nbsp;java.lang.Class&lt;?&gt;&nbsp;loadClass&#8203;(java.lang.String&nbsp;name,
boolean&nbsp;resolve)
throws java.lang.ClassNotFoundException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>loadClass</code>&nbsp;in class&nbsp;<code>java.lang.ClassLoader</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassNotFoundException</code></dd>
</dl>
</li>
</ul>
<a id="addClassFileTransformer(java.lang.instrument.ClassFileTransformer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addClassFileTransformer</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;void&nbsp;addClassFileTransformer&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment"><a href="#addTransformer(java.lang.instrument.ClassFileTransformer)"><code>addTransformer(ClassFileTransformer)</code></a> instead</div>
</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transformer</code> - the transformer to add</dd>
</dl>
</li>
</ul>
<a id="removeClassFileTransformer(java.lang.instrument.ClassFileTransformer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeClassFileTransformer</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;boolean&nbsp;removeClassFileTransformer&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use <a href="#removeTransformer(java.lang.instrument.ClassFileTransformer)"><code>removeTransformer(ClassFileTransformer)</code></a> instead</div>
</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transformer</code> - the transformer to remove</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if transformer was removed</dd>
</dl>
</li>
</ul>
<a id="addTransformer(java.lang.instrument.ClassFileTransformer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addTransformer</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addTransformer&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</pre>
</li>
</ul>
<a id="removeTransformer(java.lang.instrument.ClassFileTransformer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTransformer</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;removeTransformer&#8203;(java.lang.instrument.ClassFileTransformer&nbsp;transformer)</pre>
</li>
</ul>
<a id="loadAsResource(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadAsResource</h4>
<pre class="methodSignature">protected&nbsp;java.lang.Class&lt;?&gt;&nbsp;loadAsResource&#8203;(java.lang.String&nbsp;name,
boolean&nbsp;checkSystemResource)
throws java.lang.ClassNotFoundException</pre>
<div class="block">Look for the classname as a resource to avoid loading a class that is
potentially a system resource.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the class to load</dd>
<dd><code>checkSystemResource</code> - if true and the class isn't a system class we return it</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the loaded class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassNotFoundException</code> - if the class cannot be found</dd>
</dl>
</li>
</ul>
<a id="findClass(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findClass</h4>
<pre class="methodSignature">protected&nbsp;java.lang.Class&lt;?&gt;&nbsp;findClass&#8203;(java.lang.String&nbsp;name)
throws java.lang.ClassNotFoundException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>findClass</code>&nbsp;in class&nbsp;<code>java.net.URLClassLoader</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassNotFoundException</code></dd>
</dl>
</li>
</ul>
<a id="foundClass(java.lang.String,java.net.URL)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>foundClass</h4>
<pre class="methodSignature">protected&nbsp;java.lang.Class&lt;?&gt;&nbsp;foundClass&#8203;(java.lang.String&nbsp;name,
java.net.URL&nbsp;url)
throws java.lang.ClassNotFoundException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassNotFoundException</code></dd>
</dl>
</li>
</ul>
<a id="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;close()
throws java.io.IOException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.io.Closeable</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>close</code>&nbsp;in class&nbsp;<code>java.net.URLClassLoader</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="isSystemClass(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSystemClass</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSystemClass&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/ClassVisibilityChecker.html#isSystemClass(java.lang.Class)">ClassVisibilityChecker</a></code></span></div>
<div class="block">Is the class a System Class.
A System class is a class that is visible to a webapplication,
but that cannot be overridden by the contents of WEB-INF/lib or
WEB-INF/classes</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/ClassVisibilityChecker.html#isSystemClass(java.lang.Class)">isSystemClass</a></code>&nbsp;in interface&nbsp;<code><a href="../util/ClassVisibilityChecker.html" title="interface in org.eclipse.jetty.util">ClassVisibilityChecker</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - The fully qualified name of the class.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the class is a system class.</dd>
</dl>
</li>
</ul>
<a id="isServerClass(java.lang.Class)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isServerClass</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isServerClass&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/ClassVisibilityChecker.html#isServerClass(java.lang.Class)">ClassVisibilityChecker</a></code></span></div>
<div class="block">Is the class a Server Class.
A Server class is a class that is part of the implementation of
the server and is NIT visible to a webapplication. The web
application may provide it's own implementation of the class,
to be loaded from WEB-INF/lib or WEB-INF/classes</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/ClassVisibilityChecker.html#isServerClass(java.lang.Class)">isServerClass</a></code>&nbsp;in interface&nbsp;<code><a href="../util/ClassVisibilityChecker.html" title="interface in org.eclipse.jetty.util">ClassVisibilityChecker</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - The fully qualified name of the class.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the class is a server class.</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/WebAppClassLoader.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>Field&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>