blob: fef38baab6a1b161a42876c4635bfdebb04ccf26 [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>ActivateWrapper (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="ActivateWrapper (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":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/ActivateWrapper.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.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/ActivateWrapper.html" target="_top">Frames</a></li>
<li><a href="ActivateWrapper.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.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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 ActivateWrapper" class="title">Class ActivateWrapper</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>org.apache.river.start.ActivateWrapper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ActivateWrapper</span>
extends <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>
implements <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">A wrapper for activatable objects, providing separation of the import
codebase (where the server classes are loaded from by the activation
group) from the export codebase (where clients should load classes from
for stubs, etc.) as well as providing an independent security policy file
for each activatable object. This functionality allows multiple
activatable objects to be placed in the same activation group, with each
object maintaining a distinct codebase and policy.
<p>
This wrapper class is assumed to be available directly in the activation
group VM; that is, it is assumed to be in the application classloader,
the extension classloader, or the boot classloader, rather than being
downloaded. Since this class also needs considerable permissions, the
easiest thing to do is to make it an installed extension.
<p>
This wrapper class performs a security check to control what
policy files can be used with a given codebase.
It does this by querying the VM's (global) policy for
<a href="../../../../org/apache/river/start/SharedActivationPolicyPermission.html" title="class in org.apache.river.start"><code>SharedActivationPolicyPermission</code></a>
grants. The service's associated
<a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.html#importLocation"><code>ActivateDesc.importLocation</code></a> is used as
the <a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security"><code>CodeSource</code></a>
for selecting the appropriate permission set to
check against. If multiple codebases are used, then all the codebases must
have the necessary <code>SharedActivationPolicyPermission</code> grants.
<p>
An example of how to use this wrapper:
<pre>
URL[] importURLs = new URL[] {new URL("http://myhost:8080/service.jar")};
URL[] exportURLs = new URL[] {new URL("http://myhost:8080/service-dl.jar")};
ActivationID aid
= ActivateWrapper.register(
gid,
new ActivateWrapper.ActivateDesc(
"foo.bar.ServiceImpl",
importURLs,
exportURLs,
"http://myhost:8080/service.policy",
new MarshalledObject(
new String[] { "/tmp/service.config" })
),
true,
activationSystem);
</pre>
<A NAME="serviceConstructor">
Clients of this wrapper service need to implement the following "activation
constructor":
<blockquote><pre>
&lt;impl&gt;(ActivationID activationID, MarshalledObject data)
</blockquote></pre>
where,
<UL>
<LI>activationID - is the object's activation identifier
<LI>data - is the object's activation data
</UL>
Clients of this wrapper service can also implement
<a href="../../../../net/jini/export/ProxyAccessor.html" title="interface in net.jini.export"><code>ProxyAccessor</code></a>, which allows the service
implementation to provide a remote reference of its choosing.
<P>
<A NAME="configEntries">
This implementation of <code>ActivateWrapper</code>
supports the
following <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Security.html?is-external=true" title="class or interface in java.security"><code>Security</code></a> property:
<table summary="Describes the org.apache.river.start.servicePolicyProvider
security property"
border="0" cellpadding="2">
<tr valign="top">
<th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
<th scope="col" align="left" colspan="2"> <font size="+1"><code>
org.apache.river.start.servicePolicyProvider</code></font>
<tr valign="top"> <td> &nbsp <th scope="row" align="right">
Default: <td> <code>
"net.jini.security.policy.DynamicPolicyProvider"
</code>
<tr valign="top"> <td> &nbsp <th scope="row" align="right">
Description: <td> The fully qualified class name of a
dynamic policy provider (see <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a>)
which will be used to "wrap" all service policy files.
The implementation class needs to:
<UL>
<LI> implement the following constructor:
<blockquote><pre>
public &lt;impl&gt;(Policy servicePolicy)
</blockquote></pre>
where,
<UL>
<LI>servicePolicy - is the service policy object to be wrapped
</UL>
<LI> implement <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a>
<LI> be a public, non-interface, non-abstract class
</UL>
<P>
A custom service policy provider can be very useful when trying to
debug security related issues.
<code>org.apache.river.tool.DebugDynamicPolicyProvider</code> is an example
policy provider that provides this functionality and can be located
via the following URL:
<A HREF="http://starterkit-examples.jini.org/">
http://starterkit-examples.jini.org/
</A><BR>
<I>Note:</I>The custom policy implementation is assumed to be
available from the system classloader of the virtual machine
hosting the service. Its codebase should also be granted
<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>.
</table></div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Sun Microsystems, Inc.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/river/start/SharedActivationPolicyPermission.html" title="class in org.apache.river.start"><code>SharedActivationPolicyPermission</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivationID</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/MarshalledObject.html?is-external=true" title="class or interface in java.rmi"><code>MarshalledObject</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi"><code>Remote</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security"><code>CodeSource</code></a>,
<a href="../../../../net/jini/export/ProxyAccessor.html" title="interface in net.jini.export"><code>ProxyAccessor</code></a>,
<a href="../../../../serialized-form.html#org.apache.river.start.ActivateWrapper">Serialized Form</a></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>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.html" title="class in org.apache.river.start">ActivateWrapper.ActivateDesc</a></span></code>
<div class="block">Descriptor for registering a "wrapped" activatable object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.ExportClassLoader.html" title="class in org.apache.river.start">ActivateWrapper.ExportClassLoader</a></span></code>
<div class="block">A simple subclass of <code>PreferredClassLoader</code> that overrides
<code>getURLs</code> to
return the <code>URL</code>s of the provided export codebase.</div>
</td>
</tr>
</table>
</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 static <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>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#actTypes">actTypes</a></span></code>
<div class="block">The parameter types for the "activation constructor".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../org/apache/river/start/AggregatePolicyProvider.html" title="class in org.apache.river.start">AggregatePolicyProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#globalPolicy">globalPolicy</a></span></code>
<div class="block">The <code>Policy</code> object that aggregates the individual
service policy objects.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#impl">impl</a></span></code>
<div class="block">The "wrapped" activatable object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <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/ActivateWrapper.html#initialGlobalPolicy">initialGlobalPolicy</a></span></code>
<div class="block">The <code>Policy</code> object in effect at startup.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#logger">logger</a></span></code>
<div class="block">Configure logger</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <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>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#policyTypes">policyTypes</a></span></code>
<div class="block">The parameter types for the
"custom, service policy constructor".</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/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/river/start/ActivateWrapper.html#servicePolicyProvider">servicePolicyProvider</a></span></code>
<div class="block">Fully qualified name of custom, service policy provider</div>
</td>
</tr>
</table>
</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/ActivateWrapper.html#ActivateWrapper-java.rmi.activation.ActivationID-java.rmi.MarshalledObject-">ActivateWrapper</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/MarshalledObject.html?is-external=true" title="class or interface in java.rmi">MarshalledObject</a>&nbsp;data)</code>
<div class="block">Activatable constructor.</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 static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#checkPolicyPermission-java.lang.String-java.net.URL:A-">checkPolicyPermission</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;policy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>
<div class="block">Checks that all the provided <code>URL</code>s have permission to
use the given policy.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) static <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/ActivateWrapper.html#getServicePolicyProvider-java.security.Policy-">getServicePolicyProvider</a></span>(<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;service_policy)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#register-java.rmi.activation.ActivationGroupID-org.apache.river.start.ActivateWrapper.ActivateDesc-boolean-java.rmi.activation.ActivationSystem-">register</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationGroupID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationGroupID</a>&nbsp;gid,
<a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.html" title="class in org.apache.river.start">ActivateWrapper.ActivateDesc</a>&nbsp;desc,
boolean&nbsp;restart,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationSystem.html?is-external=true" title="class or interface in java.rmi.activation">ActivationSystem</a>&nbsp;sys)</code>
<div class="block">Analog to
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/Activatable.html?is-external=true#register-java.rmi.activation.ActivationDesc-" title="class or interface in java.rmi.activation"><code>Activatable.register()</code></a> for activatable objects that want
to use this wrapper mechanism.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/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/river/start/ActivateWrapper.html#urlsToPath-java.net.URL:A-">urlsToPath</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>
<div class="block">Utility method that converts a <code>URL[]</code>
into a corresponding, space-separated string with
the same array elements.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/ActivateWrapper.html#writeReplace--">writeReplace</a></span>()</code>
<div class="block">Return a reference to service being wrapped in place
of this object.</div>
</td>
</tr>
</table>
<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="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a> logger</pre>
<div class="block">Configure logger</div>
</li>
</ul>
<a name="globalPolicy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>globalPolicy</h4>
<pre>private static&nbsp;<a href="../../../../org/apache/river/start/AggregatePolicyProvider.html" title="class in org.apache.river.start">AggregatePolicyProvider</a> globalPolicy</pre>
<div class="block">The <code>Policy</code> object that aggregates the individual
service policy objects.</div>
</li>
</ul>
<a name="initialGlobalPolicy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialGlobalPolicy</h4>
<pre>private static&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> initialGlobalPolicy</pre>
<div class="block">The <code>Policy</code> object in effect at startup.</div>
</li>
</ul>
<a name="impl">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>impl</h4>
<pre>private final&nbsp;<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> impl</pre>
<div class="block">The "wrapped" activatable object.</div>
</li>
</ul>
<a name="actTypes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>actTypes</h4>
<pre>private static final&nbsp;<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>[] actTypes</pre>
<div class="block">The parameter types for the "activation constructor".</div>
</li>
</ul>
<a name="servicePolicyProvider">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>servicePolicyProvider</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> servicePolicyProvider</pre>
<div class="block">Fully qualified name of custom, service policy provider</div>
</li>
</ul>
<a name="policyTypes">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>policyTypes</h4>
<pre>private static final&nbsp;<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>[] policyTypes</pre>
<div class="block">The parameter types for the
"custom, service policy constructor".</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ActivateWrapper-java.rmi.activation.ActivationID-java.rmi.MarshalledObject-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ActivateWrapper</h4>
<pre>public&nbsp;ActivateWrapper(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/MarshalledObject.html?is-external=true" title="class or interface in java.rmi">MarshalledObject</a>&nbsp;data)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Activatable constructor. This constructor:
<UL>
<LI>Retrieves an <code>ActivateDesc</code> from the
provided <code>data</code> parameter.
<LI>creates an <code>ExportClassLoader</code> using the
import and export codebases obtained from the provided
<code>ActivateDesc</code>,
<LI>checks the import codebase(s) for the required
<code>SharedActivationPolicyPermission</code>
<LI>associates the newly created <code>ExportClassLoader</code>
and the corresponding policy file obtained from the
<code>ActivateDesc</code> with the
<code>AggregatePolicyProvider</code>
<LI>loads the "wrapped" activatable object's class and
calls its activation constructor with the context classloader
set to the newly created <code>ExportClassLoader</code>.
<LI> resets the context class loader to the original
context classloader
</UL>
The first instance of this class will also replace the VM's
existing <code>Policy</code> object, if any,
with a <code>AggregatePolicyProvider</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - The <code>ActivationID</code> of this object</dd>
<dd><code>data</code> - The activation data for this object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/river/start/ActivateWrapper.ExportClassLoader.html" title="class in org.apache.river.start"><code>ActivateWrapper.ExportClassLoader</code></a>,
<a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.html" title="class in org.apache.river.start"><code>ActivateWrapper.ActivateDesc</code></a>,
<a href="../../../../org/apache/river/start/AggregatePolicyProvider.html" title="class in org.apache.river.start"><code>AggregatePolicyProvider</code></a>,
<a href="../../../../org/apache/river/start/SharedActivationPolicyPermission.html" title="class in org.apache.river.start"><code>SharedActivationPolicyPermission</code></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"><code>Policy</code></a></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="writeReplace--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeReplace</h4>
<pre>private&nbsp;<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>&nbsp;writeReplace()
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectStreamException.html?is-external=true" title="class or interface in java.io">ObjectStreamException</a></pre>
<div class="block">Return a reference to service being wrapped in place
of this object.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectStreamException.html?is-external=true" title="class or interface in java.io">ObjectStreamException</a></code></dd>
</dl>
</li>
</ul>
<a name="register-java.rmi.activation.ActivationGroupID-org.apache.river.start.ActivateWrapper.ActivateDesc-boolean-java.rmi.activation.ActivationSystem-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>register</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;register(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationGroupID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationGroupID</a>&nbsp;gid,
<a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.html" title="class in org.apache.river.start">ActivateWrapper.ActivateDesc</a>&nbsp;desc,
boolean&nbsp;restart,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationSystem.html?is-external=true" title="class or interface in java.rmi.activation">ActivationSystem</a>&nbsp;sys)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationException.html?is-external=true" title="class or interface in java.rmi.activation">ActivationException</a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">Analog to
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/Activatable.html?is-external=true#register-java.rmi.activation.ActivationDesc-" title="class or interface in java.rmi.activation"><code>Activatable.register()</code></a> for activatable objects that want
to use this wrapper mechanism.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>activation ID of the registered service</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationException.html?is-external=true" title="class or interface in java.rmi.activation">ActivationException</a></code> - if there was a problem registering
the activatable class with the activation system</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code> - if there was a problem communicating
with the activation system</dd>
</dl>
</li>
</ul>
<a name="checkPolicyPermission-java.lang.String-java.net.URL:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkPolicyPermission</h4>
<pre>private static&nbsp;void&nbsp;checkPolicyPermission(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;policy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</pre>
<div class="block">Checks that all the provided <code>URL</code>s have permission to
use the given policy.</div>
</li>
</ul>
<a name="urlsToPath-java.net.URL:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>urlsToPath</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;urlsToPath(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</pre>
<div class="block">Utility method that converts a <code>URL[]</code>
into a corresponding, space-separated string with
the same array elements.
Note that if the array has zero elements, the return value is
null, not the empty string.</div>
</li>
</ul>
<a name="getServicePolicyProvider-java.security.Policy-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getServicePolicyProvider</h4>
<pre>static&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;getServicePolicyProvider(<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;service_policy)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></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/ActivateWrapper.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/river/start/ActivateWrapper.ActivateDesc.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/ActivateWrapper.html" target="_top">Frames</a></li>
<li><a href="ActivateWrapper.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.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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>