blob: 6ada71ec6d4575ddafef5680b5962b0fab17f02e [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Tue Feb 08 12:40:05 CST 2022 -->
<title>OSGiWebappClassLoader (Eclipse Jetty API Doc - v10.0.8)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-02-08">
<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="OSGiWebappClassLoader (Eclipse Jetty API Doc - v10.0.8)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":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/OSGiWebappClassLoader.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><a href="#field.detail">Field</a>&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.osgi.boot.internal.webapp</a></div>
<h2 title="Class OSGiWebappClassLoader" class="title">Class OSGiWebappClassLoader</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><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">org.eclipse.jetty.webapp.WebAppClassLoader</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.osgi.boot.internal.webapp.OSGiWebappClassLoader</li>
</ul>
</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>, <code>org.osgi.framework.BundleReference</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">OSGiWebappClassLoader</span>
extends <a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a>
implements org.osgi.framework.BundleReference</pre>
<div class="block">OSGiWebappClassLoader
Extends the webapp classloader to also use the classloader of the Bundle defining the webapp.</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.webapp.WebAppClassLoader">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.webapp.<a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></h3>
<code><a href="../../../../webapp/WebAppClassLoader.Context.html" title="interface in org.eclipse.jetty.webapp">WebAppClassLoader.Context</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>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAR_WITH_SUCH_CLASS_MUST_BE_EXCLUDED">JAR_WITH_SUCH_CLASS_MUST_BE_EXCLUDED</a></span></code></th>
<td class="colLast">
<div class="block">when a logging framework is setup in the osgi classloaders, it can access
this and register the classes that must not be found in the jar.</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.WebAppContext,org.osgi.framework.Bundle)">OSGiWebappClassLoader</a></span>&#8203;(java.lang.ClassLoader&nbsp;parent,
<a href="../../../../webapp/WebAppContext.html" title="class in org.eclipse.jetty.webapp">WebAppContext</a>&nbsp;context,
org.osgi.framework.Bundle&nbsp;contributor)</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>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">
<div class="block">Parse the classpath ourselves to be able to filter things.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addClassThatIdentifiesAJarThatMustBeRejected(java.lang.Class)">addClassThatIdentifiesAJarThatMustBeRejected</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;zclass)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addClassThatIdentifiesAJarThatMustBeRejected(java.lang.String)">addClassThatIdentifiesAJarThatMustBeRejected</a></span>&#8203;(java.lang.String&nbsp;zclassName)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" 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="#findClass(java.lang.String)">findClass</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.net.URL</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findResource(java.lang.String)">findResource</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>org.osgi.framework.Bundle</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBundle()">getBundle</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <code>Bundle</code> that defined this web-application.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<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="i7" class="rowColor">
<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="i8" 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="#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">Try to load the class from the bundle classloader.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.webapp.WebAppClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.webapp.<a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></h3>
<code><a href="../../../../webapp/WebAppClassLoader.html#addClassPath(org.eclipse.jetty.util.resource.Resource)">addClassPath</a>, <a href="../../../../webapp/WebAppClassLoader.html#addJars(org.eclipse.jetty.util.resource.Resource)">addJars</a>, <a href="../../../../webapp/WebAppClassLoader.html#addTransformer(java.lang.instrument.ClassFileTransformer)">addTransformer</a>, <a href="../../../../webapp/WebAppClassLoader.html#close()">close</a>, <a href="../../../../webapp/WebAppClassLoader.html#foundClass(java.lang.String,java.net.URL)">foundClass</a>, <a href="../../../../webapp/WebAppClassLoader.html#getContext()">getContext</a>, <a href="../../../../webapp/WebAppClassLoader.html#getName()">getName</a>, <a href="../../../../webapp/WebAppClassLoader.html#getPermissions(java.security.CodeSource)">getPermissions</a>, <a href="../../../../webapp/WebAppClassLoader.html#isServerClass(java.lang.Class)">isServerClass</a>, <a href="../../../../webapp/WebAppClassLoader.html#isSystemClass(java.lang.Class)">isSystemClass</a>, <a href="../../../../webapp/WebAppClassLoader.html#loadClass(java.lang.String,boolean)">loadClass</a>, <a href="../../../../webapp/WebAppClassLoader.html#removeTransformer(java.lang.instrument.ClassFileTransformer)">removeTransformer</a>, <a href="../../../../webapp/WebAppClassLoader.html#runWithServerClassAccess(java.security.PrivilegedExceptionAction)">runWithServerClassAccess</a>, <a href="../../../../webapp/WebAppClassLoader.html#setName(java.lang.String)">setName</a>, <a href="../../../../webapp/WebAppClassLoader.html#toString()">toString</a></code></li>
</ul>
<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, 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">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="JAR_WITH_SUCH_CLASS_MUST_BE_EXCLUDED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JAR_WITH_SUCH_CLASS_MUST_BE_EXCLUDED</h4>
<pre>public static final&nbsp;java.util.Set&lt;java.lang.String&gt; JAR_WITH_SUCH_CLASS_MUST_BE_EXCLUDED</pre>
<div class="block">when a logging framework is setup in the osgi classloaders, it can access
this and register the classes that must not be found in the jar.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= 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;(java.lang.ClassLoader,org.eclipse.jetty.webapp.WebAppContext,org.osgi.framework.Bundle)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OSGiWebappClassLoader</h4>
<pre>public&nbsp;OSGiWebappClassLoader&#8203;(java.lang.ClassLoader&nbsp;parent,
<a href="../../../../webapp/WebAppContext.html" title="class in org.eclipse.jetty.webapp">WebAppContext</a>&nbsp;context,
org.osgi.framework.Bundle&nbsp;contributor)
throws java.io.IOException</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - The parent classloader.</dd>
<dd><code>context</code> - The WebAppContext</dd>
<dd><code>contributor</code> - The bundle that defines this web-application.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to cerate the OSGiWebappClassLoader</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="addClassThatIdentifiesAJarThatMustBeRejected(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addClassThatIdentifiesAJarThatMustBeRejected</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;addClassThatIdentifiesAJarThatMustBeRejected&#8203;(java.lang.Class&lt;?&gt;&nbsp;zclass)</pre>
</li>
</ul>
<a id="addClassThatIdentifiesAJarThatMustBeRejected(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addClassThatIdentifiesAJarThatMustBeRejected</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;addClassThatIdentifiesAJarThatMustBeRejected&#8203;(java.lang.String&nbsp;zclassName)</pre>
</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><a href="../../../../webapp/WebAppClassLoader.html#findClass(java.lang.String)">findClass</a></code>&nbsp;in class&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassNotFoundException</code></dd>
</dl>
</li>
</ul>
<a id="getBundle()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBundle</h4>
<pre class="methodSignature">public&nbsp;org.osgi.framework.Bundle&nbsp;getBundle()</pre>
<div class="block">Returns the <code>Bundle</code> that defined this web-application.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getBundle</code>&nbsp;in interface&nbsp;<code>org.osgi.framework.BundleReference</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <code>Bundle</code> object associated with this
<code>BundleReference</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><a href="../../../../webapp/WebAppClassLoader.html#getResources(java.lang.String)">getResources</a></code>&nbsp;in class&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html#getResource(java.lang.String)">WebAppClassLoader</a></code></span></div>
<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><a href="../../../../webapp/WebAppClassLoader.html#getResource(java.lang.String)">getResource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></code></dd>
</dl>
</li>
</ul>
<a id="findResource(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findResource</h4>
<pre class="methodSignature">public&nbsp;java.net.URL&nbsp;findResource&#8203;(java.lang.String&nbsp;name)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>findResource</code>&nbsp;in class&nbsp;<code>java.net.URLClassLoader</code></dd>
</dl>
</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">Try to load the class from the bundle classloader.
We do NOT load it as a resource as the WebAppClassLoader does because the
url that is returned is an osgi-special url that does not play
properly with WebAppClassLoader's method of extracting the class
from the resource. This implementation directly asks the osgi
bundle classloader to load the given class name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../webapp/WebAppClassLoader.html#loadAsResource(java.lang.String,boolean)">loadAsResource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></code></dd>
<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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../webapp/WebAppClassLoader.html#loadAsResource(java.lang.String,boolean)"><code>WebAppClassLoader.loadAsResource(java.lang.String, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="addClassPath(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<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>
<div class="block">Parse the classpath ourselves to be able to filter things. This is a
derivative work of the super class</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../webapp/WebAppClassLoader.html#addClassPath(java.lang.String)">addClassPath</a></code>&nbsp;in class&nbsp;<code><a href="../../../../webapp/WebAppClassLoader.html" title="class in org.eclipse.jetty.webapp">WebAppClassLoader</a></code></dd>
<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>
</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/OSGiWebappClassLoader.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><a href="#field.detail">Field</a>&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;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>