blob: 7cc5d8b123b506235367b37dac4adbf03e0ce642 [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 (1.8.0) on Sun Aug 28 20:43:00 EST 2016 -->
<title>LoaderSplitPolicyProvider (Apache River v3.0.0 API Documentation (internals))</title>
<meta name="date" content="2016-08-28">
<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="LoaderSplitPolicyProvider (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"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/LoaderSplitPolicyProvider.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/river/start/LifeCycle.html" title="interface in org.apache.river.start"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/start/NonActivatableServiceDescriptor.html" title="class in org.apache.river.start"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/start/LoaderSplitPolicyProvider.html" target="_top">Frames</a></li>
<li><a href="LoaderSplitPolicyProvider.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><a href="#nested.classes.inherited.from.class.java.security.Policy">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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.river.start</div>
<h2 title="Class LoaderSplitPolicyProvider" class="title">Class LoaderSplitPolicyProvider</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/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="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">java.security.Policy</a></li>
<li>
<ul class="inheritance">
<li>org.apache.river.start.LoaderSplitPolicyProvider</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">LoaderSplitPolicyProvider</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>
implements <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></pre>
<div class="block">Security policy provider which handles permission queries and grants by
delegating to different policy providers depending on the class loader
involved. Each <code>LoaderSplitPolicyProvider</code> instance wraps two
underlying policy providers:
<ul>
<li>a class-loader specific policy provider, consulted for permission
queries/grants pertaining to that class loader, any child class loaders that
delegate to it, or the <code>null</code> class loader, and
<li>a default policy provider, consulted for all other operations (aside
from <a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#refresh--"><code>refresh()</code></a>, which applies to both policies).
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Sun Microsystems, Inc.</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.Parameters.html?is-external=true" title="class or interface in java.security">Policy.Parameters</a></code></li>
</ul>
</li>
</ul>
<!-- =========== 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 <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#defaultPolicy">defaultPolicy</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#delegateMap">delegateMap</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#loader">loader</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#loaderPolicy">loaderPolicy</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#myDomain">myDomain</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#UNSUPPORTED_EMPTY_COLLECTION" title="class or interface in java.security">UNSUPPORTED_EMPTY_COLLECTION</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#LoaderSplitPolicyProvider-java.lang.ClassLoader-java.security.Policy-java.security.Policy-">LoaderSplitPolicyProvider</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;loaderPolicy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;defaultPolicy)</code>
<div class="block">Creates a new <code>LoaderSplitPolicyProvider</code> instance which
delegates to <code>loaderPolicy</code> any permission query/grant
operations involving protection domains or classes with the given class
loader, any child class loader of the given class loader, or the
<code>null</code> class loader; all other operations are delegated to
<code>defaultPolicy</code> (with the exception of <code>refresh</code>,
which applies to both policies).</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>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#ensureDependenciesResolved--">ensureDependenciesResolved</a></span>()</code>
<div class="block">Ensures that any classes depended on by this policy provider are
resolved.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#getClassLoader-java.lang.Class-">getClassLoader</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#getDelegate-java.lang.ClassLoader-">getDelegate</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#getGrants-java.lang.Class-java.security.Principal:A-">getGrants</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals)</code>
<div class="block">If both underlying policy providers support dynamic grants, delegates to
the <code>getGrants</code> method of the underlying policy associated
with the loader of the given class (the loader-specific policy if the
class loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#getPermissions-java.security.CodeSource-">getPermissions</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security">CodeSource</a>&nbsp;source)</code>
<div class="block">Delegates to the corresponding <code>getPermissions</code> method of the
underlying default policy.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#getPermissions-java.security.ProtectionDomain-">getPermissions</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</code>
<div class="block">If the given protection domain is the protection domain of this class,
then a newly-created <code>PermissionCollection</code> containing <a href="http://docs.oracle.com/javase/6/docs/api/java/security/AllPermission.html?is-external=true" title="class or interface in java.security"><code>AllPermission</code></a> is returned.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">grant</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;permissions)</code>
<div class="block">If both underlying policy providers support dynamic grants, delegates to
the <code>grant</code> method of the underlying policy associated with
the loader of the given class (the loader-specific policy if the class
loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise).</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#grantSupported--">grantSupported</a></span>()</code>
<div class="block">Returns <code>true</code> if both of the underlying policy providers
implement <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a> and return <code>true</code> from calls
to <code>grantSupported</code>; returns <code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#implies-java.security.ProtectionDomain-java.security.Permission-">implies</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>&nbsp;permission)</code>
<div class="block">If the given protection domain is the protection domain of this class,
then <code>true</code> is returned.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/LoaderSplitPolicyProvider.html#refresh--">refresh</a></span>()</code>
<div class="block">Invokes <code>refresh</code> on both the loader-specific and default
underlying policy providers.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-java.security.Provider-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-java.lang.String-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getParameters--" title="class or interface in java.security">getParameters</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPolicy--" title="class or interface in java.security">getPolicy</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getProvider--" title="class or interface in java.security">getProvider</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getType--" title="class or interface in java.security">getType</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#setPolicy-java.security.Policy-" title="class or interface in java.security">setPolicy</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="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/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="myDomain">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>myDomain</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a> myDomain</pre>
</li>
</ul>
<a name="loader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loader</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a> loader</pre>
</li>
</ul>
<a name="loaderPolicy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loaderPolicy</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a> loaderPolicy</pre>
</li>
</ul>
<a name="defaultPolicy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defaultPolicy</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a> defaultPolicy</pre>
</li>
</ul>
<a name="delegateMap">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>delegateMap</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt; delegateMap</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="LoaderSplitPolicyProvider-java.lang.ClassLoader-java.security.Policy-java.security.Policy-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LoaderSplitPolicyProvider</h4>
<pre>public&nbsp;LoaderSplitPolicyProvider(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;loaderPolicy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;defaultPolicy)</pre>
<div class="block">Creates a new <code>LoaderSplitPolicyProvider</code> instance which
delegates to <code>loaderPolicy</code> any permission query/grant
operations involving protection domains or classes with the given class
loader, any child class loader of the given class loader, or the
<code>null</code> class loader; all other operations are delegated to
<code>defaultPolicy</code> (with the exception of <code>refresh</code>,
which applies to both policies).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loader</code> - class loader for which associated permission query/grant
operations should be forwarded to <code>loaderPolicy</code></dd>
<dd><code>loaderPolicy</code> - class loader-specific security policy provider</dd>
<dd><code>defaultPolicy</code> - default security policy provider</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if <code>loader</code>,
<code>loaderPolicy</code> or <code>defaultPolicy</code> is
<code>null</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPermissions-java.security.CodeSource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissions</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a>&nbsp;getPermissions(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security">CodeSource</a>&nbsp;source)</pre>
<div class="block">Delegates to the corresponding <code>getPermissions</code> method of the
underlying default policy.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPermissions-java.security.CodeSource-" title="class or interface in java.security">getPermissions</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - code source for which to look up permissions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of permissions allowed for the given code source</dd>
</dl>
</li>
</ul>
<a name="getPermissions-java.security.ProtectionDomain-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissions</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a>&nbsp;getPermissions(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</pre>
<div class="block">If the given protection domain is the protection domain of this class,
then a newly-created <code>PermissionCollection</code> containing <a href="http://docs.oracle.com/javase/6/docs/api/java/security/AllPermission.html?is-external=true" title="class or interface in java.security"><code>AllPermission</code></a> is returned. If not, delegates to the corresponding
<code>getPermissions</code> method of the underlying policy associated
with the loader of the given class (the loader-specific policy if the
class loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPermissions-java.security.ProtectionDomain-" title="class or interface in java.security">getPermissions</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>domain</code> - protection domain for which to look up permissions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of permissions allowed for given protection domain</dd>
</dl>
</li>
</ul>
<a name="implies-java.security.ProtectionDomain-java.security.Permission-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>implies</h4>
<pre>public&nbsp;boolean&nbsp;implies(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>&nbsp;permission)</pre>
<div class="block">If the given protection domain is the protection domain of this class,
then <code>true</code> is returned. If not, delegates to the
<code>implies</code> method of the underlying policy associated with the
loader of the given class (the loader-specific policy if the class
loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#implies-java.security.ProtectionDomain-java.security.Permission-" title="class or interface in java.security">implies</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>domain</code> - protection domain in which to check implication</dd>
<dd><code>permission</code> - permission to test implication of</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if permission is implied by permissions of
given protection domain, <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="refresh--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre>public&nbsp;void&nbsp;refresh()</pre>
<div class="block">Invokes <code>refresh</code> on both the loader-specific and default
underlying policy providers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#refresh--" title="class or interface in java.security">refresh</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
</dl>
</li>
</ul>
<a name="grantSupported--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grantSupported</h4>
<pre>public&nbsp;boolean&nbsp;grantSupported()</pre>
<div class="block">Returns <code>true</code> if both of the underlying policy providers
implement <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a> and return <code>true</code> from calls
to <code>grantSupported</code>; returns <code>false</code> otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#grantSupported--">grantSupported</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if policy supports dynamic permission grants
under current context, <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grant</h4>
<pre>public&nbsp;void&nbsp;grant(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;permissions)</pre>
<div class="block">If both underlying policy providers support dynamic grants, delegates to
the <code>grant</code> method of the underlying policy associated with
the loader of the given class (the loader-specific policy if the class
loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise). If at least one of the underlying policy providers does not
support dynamic grants, throws an
<code>UnsupportedOperationException</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">grant</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cl</code> - class to grant permissions to the class loader of, or
<code>null</code> if granting across all class loaders</dd>
<dd><code>principals</code> - if non-<code>null</code>, minimum set of principals
to which grants apply</dd>
<dd><code>permissions</code> - if non-<code>null</code>, permissions to grant</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if policy does not support
dynamic grants, or if <code>cl</code> is non-<code>null</code>
and belongs to a protection domain with a <code>null</code>
class loader other than the system domain</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - if a security manager is installed and the
calling context does not have sufficient permissions to grant
the given permissions</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if any element of the principals or
permissions arrays is <code>null</code></dd>
</dl>
</li>
</ul>
<a name="getGrants-java.lang.Class-java.security.Principal:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGrants</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;getGrants(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals)</pre>
<div class="block">If both underlying policy providers support dynamic grants, delegates to
the <code>getGrants</code> method of the underlying policy associated
with the loader of the given class (the loader-specific policy if the
class loader is <code>null</code>, the same as or a child of the loader
specified in the constructor for this instance, or the default loader
otherwise). If at least one of the underlying policy providers does not
support dynamic grants, throws an
<code>UnsupportedOperationException</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#getGrants-java.lang.Class-java.security.Principal:A-">getGrants</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cl</code> - class to query the permissions dynamically granted to the
class loader of, or <code>null</code> if querying permissions
granted across all class loaders</dd>
<dd><code>principals</code> - if non-<code>null</code>, principals to query
dynamic grants for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>new array containing the permissions dynamically granted to the
indicated class loader (if any) and principals</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if policy does not support
dynamic grants, or if <code>cl</code> is non-<code>null</code>
and belongs to a protection domain with a <code>null</code>
class loader other than the system domain</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if any element of the principals array is
<code>null</code></dd>
</dl>
</li>
</ul>
<a name="ensureDependenciesResolved--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ensureDependenciesResolved</h4>
<pre>private&nbsp;void&nbsp;ensureDependenciesResolved()</pre>
<div class="block">Ensures that any classes depended on by this policy provider are
resolved. This is to preclude lazy resolution of such classes during
operation of the provider, which can result in deadlock as described by
bug 4911907.</div>
</li>
</ul>
<a name="getDelegate-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDelegate</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;getDelegate(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr)</pre>
</li>
</ul>
<a name="getClassLoader-java.lang.Class-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;getClassLoader(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl)</pre>
</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/LoaderSplitPolicyProvider.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/river/start/LifeCycle.html" title="interface in org.apache.river.start"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/start/NonActivatableServiceDescriptor.html" title="class in org.apache.river.start"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/start/LoaderSplitPolicyProvider.html" target="_top">Frames</a></li>
<li><a href="LoaderSplitPolicyProvider.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><a href="#nested.classes.inherited.from.class.java.security.Policy">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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright 2007-2013, multiple authors.<br>Licensed under the <a href=http://www.apache.org/licenses/LICENSE-2.0 target=child >Apache License, Version 2.0</a>, see the <a href=../../../../doc-files/NOTICE target=child >NOTICE</a> file for attributions.</small></p>
</body>
</html>