blob: 525db69f77a02582dc19b3187df0e53da70a52b8 [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>JarScanner (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="JarScanner (Jetty :: Project 9.4.42.v20210604 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":42,"i1":38,"i2":42,"i3":42};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/JarScanner.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>Nested&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 JarScanner" class="title">Class JarScanner</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../util/PatternMatcher.html" title="class in org.eclipse.jetty.util">org.eclipse.jetty.util.PatternMatcher</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.webapp.JarScanner</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>@Deprecated
public abstract class <span class="typeNameLabel">JarScanner</span>
extends <a href="../util/PatternMatcher.html" title="class in org.eclipse.jetty.util">PatternMatcher</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Does not handle MR Jars</div>
</div>
<div class="block">JarScannerConfiguration
Abstract base class for configurations that want to scan jars in
WEB-INF/lib and the classloader hierarchy.
Jar name matching based on regexp patterns is provided.
Subclasses should implement the processEntry(URL jarUrl, JarEntry entry)
method to handle entries in jar files whose names match the supplied
pattern.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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()">JarScanner</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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="#matched(java.net.URI)">matched</a></span>&#8203;(java.net.URI&nbsp;uri)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processEntry(java.net.URI,java.util.jar.JarEntry)">processEntry</a></span>&#8203;(java.net.URI&nbsp;jarUri,
java.util.jar.JarEntry&nbsp;entry)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&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="#scan(java.util.regex.Pattern,java.lang.ClassLoader,boolean,boolean)">scan</a></span>&#8203;(java.util.regex.Pattern&nbsp;pattern,
java.lang.ClassLoader&nbsp;loader,
boolean&nbsp;isNullInclusive,
boolean&nbsp;visitParent)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Find jar names from the classloader matching a pattern.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scan(java.util.regex.Pattern,java.net.URI%5B%5D,boolean)">scan</a></span>&#8203;(java.util.regex.Pattern&nbsp;pattern,
java.net.URI[]&nbsp;uris,
boolean&nbsp;isNullInclusive)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Find jar names from the provided list matching a pattern.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.PatternMatcher">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.<a href="../util/PatternMatcher.html" title="class in org.eclipse.jetty.util">PatternMatcher</a></h3>
<code><a href="../util/PatternMatcher.html#match(java.util.regex.Pattern,java.net.URI%5B%5D,boolean)">match</a>, <a href="../util/PatternMatcher.html#matchPatterns(java.util.regex.Pattern,java.net.URI%5B%5D,boolean)">matchPatterns</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JarScanner</h4>
<pre>public&nbsp;JarScanner()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</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="processEntry(java.net.URI,java.util.jar.JarEntry)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processEntry</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;processEntry&#8203;(java.net.URI&nbsp;jarUri,
java.util.jar.JarEntry&nbsp;entry)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="scan(java.util.regex.Pattern,java.net.URI[],boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;scan&#8203;(java.util.regex.Pattern&nbsp;pattern,
java.net.URI[]&nbsp;uris,
boolean&nbsp;isNullInclusive)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Find jar names from the provided list matching a pattern.
If the pattern is null and isNullInclusive is true, then
all jar names will match.
A pattern is a set of acceptable jar names. Each acceptable
jar name is a regex. Each regex can be separated by either a
"," or a "|". If you use a "|" this or's together the jar
name patterns. This means that ordering of the matches is
unimportant to you. If instead, you want to match particular
jar names, and you want to match them in order, you should
separate the regexs with "," instead.
Eg "aaa-.*\\.jar|bbb-.*\\.jar"
Will iterate over the jar names and match
in any order.
Eg "aaa-*\\.jar,bbb-.*\\.jar"
Will iterate over the jar names, matching
all those starting with "aaa-" first, then "bbb-".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pattern</code> - the pattern to use for jar matching</dd>
<dd><code>uris</code> - the uris of the jars to scan</dd>
<dd><code>isNullInclusive</code> - if true, an empty pattern means all names match, if false, none match</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to scan</dd>
</dl>
</li>
</ul>
<a id="scan(java.util.regex.Pattern,java.lang.ClassLoader,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;scan&#8203;(java.util.regex.Pattern&nbsp;pattern,
java.lang.ClassLoader&nbsp;loader,
boolean&nbsp;isNullInclusive,
boolean&nbsp;visitParent)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Find jar names from the classloader matching a pattern.
If the pattern is null and isNullInclusive is true, then
all jar names in the classloader will match.
A pattern is a set of acceptable jar names. Each acceptable
jar name is a regex. Each regex can be separated by either a
"," or a "|". If you use a "|" this or's together the jar
name patterns. This means that ordering of the matches is
unimportant to you. If instead, you want to match particular
jar names, and you want to match them in order, you should
separate the regexs with "," instead.
Eg "aaa-.*\\.jar|bbb-.*\\.jar"
Will iterate over the jar names in the classloader and match
in any order.
Eg "aaa-*\\.jar,bbb-.*\\.jar"
Will iterate over the jar names in the classloader, matching
all those starting with "aaa-" first, then "bbb-".
If visitParent is true, then the pattern is applied to the
parent loader hierarchy. If false, it is only applied to the
classloader passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pattern</code> - the pattern to use for jar matching</dd>
<dd><code>loader</code> - the class loader to look for jars in</dd>
<dd><code>isNullInclusive</code> - if true, an empty pattern means all names match, if false, none match</dd>
<dd><code>visitParent</code> - if true, visit parent classloaders too</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to scan</dd>
</dl>
</li>
</ul>
<a id="matched(java.net.URI)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>matched</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;matched&#8203;(java.net.URI&nbsp;uri)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/PatternMatcher.html#matched(java.net.URI)">matched</a></code>&nbsp;in class&nbsp;<code><a href="../util/PatternMatcher.html" title="class in org.eclipse.jetty.util">PatternMatcher</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></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/JarScanner.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>Nested&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>