blob: 4e1e8ae97ae6ae921d1796b075b229e0863c2eae [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CoprocessorClassLoader (Apache HBase 3.0.0-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CoprocessorClassLoader (Apache HBase 3.0.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/CoprocessorClassLoader.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">
<li><a href="../../../../../org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/util/DefaultEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" target="_top">Frames</a></li>
<li><a href="CoprocessorClassLoader.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.util</div>
<h2 title="Class CoprocessorClassLoader" class="title">Class CoprocessorClassLoader</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">java.lang.ClassLoader</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/security/SecureClassLoader.html?is-external=true" title="class or interface in java.security">java.security.SecureClassLoader</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true" title="class or interface in java.net">java.net.URLClassLoader</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.ClassLoaderBase</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.util.CoprocessorClassLoader</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><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.78">CoprocessorClassLoader</a>
extends <a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html" title="class in org.apache.hadoop.hbase.util">ClassLoaderBase</a></pre>
<div class="block">ClassLoader used to load classes for Coprocessor instances.
<p>
This ClassLoader always tries to load classes from the specified coprocessor
jar first actually using URLClassLoader logic before delegating to the parent
ClassLoader, thus avoiding dependency conflicts between HBase's classpath and
classes in the coprocessor jar.
<p>
Certain classes are exempt from being loaded by this ClassLoader because it
would prevent them from being cast to the equivalent classes in the region
server. For example, the Coprocessor interface needs to be loaded by the
region server's ClassLoader to prevent a ClassCastException when casting the
coprocessor implementation.
<p>
A HDFS path can be used to specify the coprocessor jar. In this case, the jar
will be copied to local at first under some folder under ${hbase.local.dir}/jars/tmp/.
The local copy will be removed automatically when the HBase server instance is
stopped.
<p>
This ClassLoader also handles resource loading. In most cases this
ClassLoader will attempt to load resources from the coprocessor jar first
before delegating to the parent. However, like in class loading,
some resources need to be handled differently. For all of the Hadoop
default configurations (e.g. hbase-default.xml) we will check the parent
ClassLoader first to prevent issues such as failing the HBase default
configuration version check.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#CLASS_PREFIX_EXEMPTIONS">CLASS_PREFIX_EXEMPTIONS</a></span></code>
<div class="block">If the class being loaded starts with any of these strings, we will skip
trying to load it from the coprocessor jar and instead delegate
directly to the parent ClassLoader.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#classLoadersCache">classLoadersCache</a></span></code>
<div class="block">External class loaders cache keyed by external jar path.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#libJarPattern">libJarPattern</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/util/KeyLocker.html" title="class in org.apache.hadoop.hbase.util">KeyLocker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#locker">locker</a></span></code>
<div class="block">A locker used to synchronize class loader initialization per coprocessor jar file</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#parentDirLockSet">parentDirLockSet</a></span></code>
<div class="block">A set used to synchronized parent path clean up.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#RESOURCE_LOAD_PARENT_FIRST_PATTERNS">RESOURCE_LOAD_PARENT_FIRST_PATTERNS</a></span></code>
<div class="block">If the resource being loaded matches any of these patterns, we will first
attempt to load the resource with the parent ClassLoader.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#TMP_JARS_DIR">TMP_JARS_DIR</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.util.ClassLoaderBase">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html" title="class in org.apache.hadoop.hbase.util">ClassLoaderBase</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html#DEFAULT_LOCAL_DIR">DEFAULT_LOCAL_DIR</a>, <a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html#LOCAL_DIR_KEY">LOCAL_DIR_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/util/ClassLoaderBase.html#parent">parent</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#CoprocessorClassLoader-java.lang.ClassLoader-">CoprocessorClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</code>
<div class="block">Creates a JarClassLoader that loads classes from the given paths.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#clearCache--">clearCache</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#getAllCached--">getAllCached</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#getClassLoader-org.apache.hadoop.fs.Path-java.lang.ClassLoader-java.lang.String-org.apache.hadoop.conf.Configuration-">getClassLoader</a></span>(org.apache.hadoop.fs.Path&nbsp;path,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pathPrefix,
org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Get a CoprocessorClassLoader for a coprocessor jar path from cache.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#getIfCached-org.apache.hadoop.fs.Path-">getIfCached</a></span>(org.apache.hadoop.fs.Path&nbsp;path)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#getResource-java.lang.String-">getResource</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#init-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">init</a></span>(org.apache.hadoop.fs.Path&nbsp;pathPattern,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pathPrefix,
org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#isClassExempt-java.lang.String-java.lang.String:A-">isClassExempt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;includedClassPrefixes)</code>
<div class="block">Determines whether the given class should be exempt from being loaded
by this ClassLoader.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#loadClass-java.lang.String-">loadClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#loadClass-java.lang.String-java.lang.String:A-">loadClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;includedClassPrefixes)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#loadResourceUsingParentFirst-java.lang.String-">loadResourceUsingParentFirst</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Determines whether we should attempt to load the given resource using the
parent first before attempting to load the resource using this ClassLoader.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.net.URLClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.net.<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true" title="class or interface in java.net">URLClassLoader</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#addURL-java.net.URL-" title="class or interface in java.net">addURL</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#close--" title="class or interface in java.net">close</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#definePackage-java.lang.String-java.util.jar.Manifest-java.net.URL-" title="class or interface in java.net">definePackage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#findClass-java.lang.String-" title="class or interface in java.net">findClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#findResource-java.lang.String-" title="class or interface in java.net">findResource</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#findResources-java.lang.String-" title="class or interface in java.net">findResources</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#getPermissions-java.security.CodeSource-" title="class or interface in java.net">getPermissions</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#getResourceAsStream-java.lang.String-" title="class or interface in java.net">getResourceAsStream</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#getURLs--" title="class or interface in java.net">getURLs</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#newInstance-java.net.URL:A-" title="class or interface in java.net">newInstance</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true#newInstance-java.net.URL:A-java.lang.ClassLoader-" title="class or interface in java.net">newInstance</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.security.SecureClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.security.<a href="https://docs.oracle.com/javase/8/docs/api/java/security/SecureClassLoader.html?is-external=true" title="class or interface in java.security">SecureClassLoader</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/security/SecureClassLoader.html?is-external=true#defineClass-java.lang.String-byte:A-int-int-java.security.CodeSource-" title="class or interface in java.security">defineClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/security/SecureClassLoader.html?is-external=true#defineClass-java.lang.String-java.nio.ByteBuffer-java.security.CodeSource-" title="class or interface in java.security">defineClass</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.ClassLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#clearAssertionStatus--" title="class or interface in java.lang">clearAssertionStatus</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#defineClass-byte:A-int-int-" title="class or interface in java.lang">defineClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#defineClass-java.lang.String-byte:A-int-int-" title="class or interface in java.lang">defineClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#defineClass-java.lang.String-byte:A-int-int-java.security.ProtectionDomain-" title="class or interface in java.lang">defineClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#defineClass-java.lang.String-java.nio.ByteBuffer-java.security.ProtectionDomain-" title="class or interface in java.lang">defineClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#definePackage-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.net.URL-" title="class or interface in java.lang">definePackage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#findLibrary-java.lang.String-" title="class or interface in java.lang">findLibrary</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#findLoadedClass-java.lang.String-" title="class or interface in java.lang">findLoadedClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#findSystemClass-java.lang.String-" title="class or interface in java.lang">findSystemClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getClassLoadingLock-java.lang.String-" title="class or interface in java.lang">getClassLoadingLock</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getPackage-java.lang.String-" title="class or interface in java.lang">getPackage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getPackages--" title="class or interface in java.lang">getPackages</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getParent--" title="class or interface in java.lang">getParent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getResources-java.lang.String-" title="class or interface in java.lang">getResources</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getSystemClassLoader--" title="class or interface in java.lang">getSystemClassLoader</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getSystemResource-java.lang.String-" title="class or interface in java.lang">getSystemResource</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getSystemResourceAsStream-java.lang.String-" title="class or interface in java.lang">getSystemResourceAsStream</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getSystemResources-java.lang.String-" title="class or interface in java.lang">getSystemResources</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#loadClass-java.lang.String-boolean-" title="class or interface in java.lang">loadClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#registerAsParallelCapable--" title="class or interface in java.lang">registerAsParallelCapable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#resolveClass-java.lang.Class-" title="class or interface in java.lang">resolveClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#setClassAssertionStatus-java.lang.String-boolean-" title="class or interface in java.lang">setClassAssertionStatus</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#setDefaultAssertionStatus-boolean-" title="class or interface in java.lang">setDefaultAssertionStatus</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#setPackageAssertionStatus-java.lang.String-boolean-" title="class or interface in java.lang">setPackageAssertionStatus</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#setSigners-java.lang.Class-java.lang.Object:A-" title="class or interface in java.lang">setSigners</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.79">LOG</a></pre>
</li>
</ul>
<a name="TMP_JARS_DIR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TMP_JARS_DIR</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.83">TMP_JARS_DIR</a></pre>
</li>
</ul>
<a name="classLoadersCache">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>classLoadersCache</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.92">classLoadersCache</a></pre>
<div class="block">External class loaders cache keyed by external jar path.
ClassLoader instance is stored as a weak-reference
to allow GC'ing when it is not used
(@see HBASE-7205)</div>
</li>
</ul>
<a name="CLASS_PREFIX_EXEMPTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLASS_PREFIX_EXEMPTIONS</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.100">CLASS_PREFIX_EXEMPTIONS</a></pre>
<div class="block">If the class being loaded starts with any of these strings, we will skip
trying to load it from the coprocessor jar and instead delegate
directly to the parent ClassLoader.</div>
</li>
</ul>
<a name="RESOURCE_LOAD_PARENT_FIRST_PATTERNS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_LOAD_PARENT_FIRST_PATTERNS</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.123">RESOURCE_LOAD_PARENT_FIRST_PATTERNS</a></pre>
<div class="block">If the resource being loaded matches any of these patterns, we will first
attempt to load the resource with the parent ClassLoader. Only if the
resource is not found by the parent do we attempt to load it from the coprocessor jar.</div>
</li>
</ul>
<a name="libJarPattern">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>libJarPattern</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.128">libJarPattern</a></pre>
</li>
</ul>
<a name="locker">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>locker</h4>
<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/KeyLocker.html" title="class in org.apache.hadoop.hbase.util">KeyLocker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.133">locker</a></pre>
<div class="block">A locker used to synchronize class loader initialization per coprocessor jar file</div>
</li>
</ul>
<a name="parentDirLockSet">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>parentDirLockSet</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.139">parentDirLockSet</a></pre>
<div class="block">A set used to synchronized parent path clean up. Generally, there
should be only one parent path, but using a set so that we can support more.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="CoprocessorClassLoader-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CoprocessorClassLoader</h4>
<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.144">CoprocessorClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</pre>
<div class="block">Creates a JarClassLoader that loads classes from the given paths.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.148">init</a>(org.apache.hadoop.fs.Path&nbsp;pathPattern,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pathPrefix,
org.apache.hadoop.conf.Configuration&nbsp;conf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getIfCached-org.apache.hadoop.fs.Path-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIfCached</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.214">getIfCached</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
</li>
</ul>
<a name="getAllCached--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllCached</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.220">getAllCached</a>()</pre>
</li>
</ul>
<a name="clearCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearCache</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.225">clearCache</a>()</pre>
</li>
</ul>
<a name="getClassLoader-org.apache.hadoop.fs.Path-java.lang.ClassLoader-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.240">getClassLoader</a>(org.apache.hadoop.fs.Path&nbsp;path,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pathPrefix,
org.apache.hadoop.conf.Configuration&nbsp;conf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get a CoprocessorClassLoader for a coprocessor jar path from cache.
If not in cache, create one.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - the path to the coprocessor jar file to load classes from</dd>
<dd><code>parent</code> - the parent class loader for exempted classes</dd>
<dd><code>pathPrefix</code> - a prefix used in temp path name to store the jar file locally</dd>
<dd><code>conf</code> - the configuration used to create the class loader, if needed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a CoprocessorClassLoader for the coprocessor jar path</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="loadClass-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadClass</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.287">loadClass</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#loadClass-java.lang.String-" title="class or interface in java.lang">loadClass</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="loadClass-java.lang.String-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadClass</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.292">loadClass</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;includedClassPrefixes)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getResource-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResource</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.340">getResource</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#getResource-java.lang.String-" title="class or interface in java.lang">getResource</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></dd>
</dl>
</li>
</ul>
<a name="isClassExempt-java.lang.String-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isClassExempt</h4>
<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.374">isClassExempt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;includedClassPrefixes)</pre>
<div class="block">Determines whether the given class should be exempt from being loaded
by this ClassLoader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the class to test.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the class should *not* be loaded by this ClassLoader;
false otherwise.</dd>
</dl>
</li>
</ul>
<a name="loadResourceUsingParentFirst-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>loadResourceUsingParentFirst</h4>
<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#line.398">loadResourceUsingParentFirst</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Determines whether we should attempt to load the given resource using the
parent first before attempting to load the resource using this ClassLoader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the resource to test.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if we should attempt to load the resource using the parent
first; false if we should attempt to load the resource using this
ClassLoader first.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/CoprocessorClassLoader.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">
<li><a href="../../../../../org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/util/DefaultEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" target="_top">Frames</a></li>
<li><a href="CoprocessorClassLoader.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>