blob: 38a975930bcf7aca814c6393d6e810509b34a2f4 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.9.1) on Mon Nov 23 11:46:34 CST 2020 -->
<title>ContainerTldBundleDiscoverer (Jetty :: Project 9.4.35.v20201120 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-11-23">
<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="ContainerTldBundleDiscoverer (Jetty :: Project 9.4.35.v20201120 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All 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 = 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/ContainerTldBundleDiscoverer.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.osgi.boot.jasper</a></div>
<h2 title="Class ContainerTldBundleDiscoverer" class="title">Class ContainerTldBundleDiscoverer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.osgi.boot.jasper.ContainerTldBundleDiscoverer</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../utils/TldBundleDiscoverer.html" title="interface in org.eclipse.jetty.osgi.boot.utils">TldBundleDiscoverer</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ContainerTldBundleDiscoverer</span>
extends java.lang.Object
implements <a href="../utils/TldBundleDiscoverer.html" title="interface in org.eclipse.jetty.osgi.boot.utils">TldBundleDiscoverer</a></pre>
<div class="block">ContainerTldBundleDiscoverer
Finds bundles that are considered as on the container classpath that
contain tlds.
The System property org.eclipse.jetty.osgi.tldbundles is a comma
separated list of exact symbolic names of bundles that have container classpath
tlds.
The DeploymentManager context attribute "org.eclipse.jetty.server.webapp.containerIncludeBundlePattern"
can be used to define a pattern of symbolic names of bundles that contain container
classpath tlds.
The matching bundles are converted to URLs that are put onto a special classloader that acts as the
parent classloader for contexts deployed by the jetty Server instance (see ServerInstanceWrapper).
It also discovers the bundle that contains the jstl taglib and adds it into the
"org.eclipse.jetty.server.webapp.containerIncludeBundlePattern" (if it is not already there) so
that the WebInfOSGiConfiguration class will add the jstl taglib bundle into the list of container
resources.
Eg:
-Dorg.eclipse.jetty.osgi.tldbundles=org.springframework.web.servlet,com.opensymphony.module.sitemesh</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()">ContainerTldBundleDiscoverer</a></span>()</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="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>org.osgi.framework.Bundle</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findJstlBundle()">findJstlBundle</a></span>()</code></th>
<td class="colLast">
<div class="block">Find the bundle that contains a jstl implementation class, which assumes that
the jstl taglibs will be inside the same bundle.</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="#fixJspFactory()">fixJspFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Some versions of JspFactory do Class.forName, which probably won't work in an
OSGi environment.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.net.URL[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUrlsForBundlesWithTlds(org.eclipse.jetty.deploy.DeploymentManager,org.eclipse.jetty.osgi.boot.utils.BundleFileLocatorHelper)">getUrlsForBundlesWithTlds</a></span>&#8203;(<a href="../../../deploy/DeploymentManager.html" title="class in org.eclipse.jetty.deploy">DeploymentManager</a>&nbsp;deploymentManager,
<a href="../utils/BundleFileLocatorHelper.html" title="interface in org.eclipse.jetty.osgi.boot.utils">BundleFileLocatorHelper</a>&nbsp;locatorHelper)</code></th>
<td class="colLast">
<div class="block">Check the System property "org.eclipse.jetty.osgi.tldbundles" for names of
bundles that contain tlds and convert to URLs.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isJspAvailable()">isJspAvailable</a></span>()</code></th>
<td class="colLast">
<div class="block">Check that jsp is on the classpath</div>
</td>
</tr>
</table>
<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>ContainerTldBundleDiscoverer</h4>
<pre>public&nbsp;ContainerTldBundleDiscoverer()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getUrlsForBundlesWithTlds(org.eclipse.jetty.deploy.DeploymentManager,org.eclipse.jetty.osgi.boot.utils.BundleFileLocatorHelper)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUrlsForBundlesWithTlds</h4>
<pre class="methodSignature">public&nbsp;java.net.URL[]&nbsp;getUrlsForBundlesWithTlds&#8203;(<a href="../../../deploy/DeploymentManager.html" title="class in org.eclipse.jetty.deploy">DeploymentManager</a>&nbsp;deploymentManager,
<a href="../utils/BundleFileLocatorHelper.html" title="interface in org.eclipse.jetty.osgi.boot.utils">BundleFileLocatorHelper</a>&nbsp;locatorHelper)
throws java.lang.Exception</pre>
<div class="block">Check the System property "org.eclipse.jetty.osgi.tldbundles" for names of
bundles that contain tlds and convert to URLs.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../utils/TldBundleDiscoverer.html#getUrlsForBundlesWithTlds(org.eclipse.jetty.deploy.DeploymentManager,org.eclipse.jetty.osgi.boot.utils.BundleFileLocatorHelper)">getUrlsForBundlesWithTlds</a></code>&nbsp;in interface&nbsp;<code><a href="../utils/TldBundleDiscoverer.html" title="interface in org.eclipse.jetty.osgi.boot.utils">TldBundleDiscoverer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deploymentManager</code> - The <a href="../../../deploy/DeploymentManager.html" title="class in org.eclipse.jetty.deploy"><code>DeploymentManager</code></a> instance to use</dd>
<dd><code>locatorHelper</code> - the <a href="../utils/BundleFileLocatorHelper.html" title="interface in org.eclipse.jetty.osgi.boot.utils"><code>BundleFileLocatorHelper</code></a> instance to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The location of the jars that contain tld files as URLs.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - In case of errors during resolving TLDs files</dd>
</dl>
</li>
</ul>
<a id="isJspAvailable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isJspAvailable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isJspAvailable()</pre>
<div class="block">Check that jsp is on the classpath</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if jsp is available in the environment</dd>
</dl>
</li>
</ul>
<a id="fixJspFactory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fixJspFactory</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;fixJspFactory()</pre>
<div class="block">Some versions of JspFactory do Class.forName, which probably won't work in an
OSGi environment.</div>
</li>
</ul>
<a id="findJstlBundle()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>findJstlBundle</h4>
<pre class="methodSignature">public&nbsp;org.osgi.framework.Bundle&nbsp;findJstlBundle()</pre>
<div class="block">Find the bundle that contains a jstl implementation class, which assumes that
the jstl taglibs will be inside the same bundle.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Bundle contains the jstl implementation 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/ContainerTldBundleDiscoverer.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;2020 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>