You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by bu...@apache.org on 2010/12/24 21:19:05 UTC
svn commit: r781458 [4/5] -
/websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/
Added: websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/DebugDynamicPolicyProvider.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/DebugDynamicPolicyProvider.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/DebugDynamicPolicyProvider.html Fri Dec 24 20:19:04 2010
@@ -0,0 +1,474 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:09 EST 2010 -->
+<TITLE>
+DebugDynamicPolicyProvider (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.tool.DebugDynamicPolicyProvider class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DebugDynamicPolicyProvider (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DebugDynamicPolicyProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/sun/jini/tool/ComputeHttpmdCodebase.html" title="class in com.sun.jini.tool"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/sun/jini/tool/JarWrapper.html" title="class in com.sun.jini.tool"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/sun/jini/tool/DebugDynamicPolicyProvider.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DebugDynamicPolicyProvider.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.sun.jini.tool</FONT>
+<BR>
+Class DebugDynamicPolicyProvider</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html" title="class or interface in java.security">java.security.Policy</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">net.jini.security.policy.DynamicPolicyProvider</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sun.jini.tool.DebugDynamicPolicyProvider</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>DebugDynamicPolicyProvider</B><DT>extends <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</A></DL>
+</PRE>
+
+<P>
+Defines a <A HREF="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> that logs information about missing
+ permissions, and optionally grants all permissions, which is <b>FOR
+ DEBUGGING ONLY</b>. Do not use this security policy provider to grant
+ all permissions in a production environment. <p>
+
+ This class is intended to simplify the process of deciding what security
+ permissions to grant to run an application. While it is generally
+ acceptable to grant all permissions to local, trusted code, downloaded
+ code should typically be granted the least permission possible. <p>
+
+ The usual approach to choosing which permissions to grant is to start by
+ running the application with a security policy file that grants all
+ permissions to local, trusted code. When the application fails with an
+ exception message that identifies a missing permission, add that
+ permission to the security policy file, and repeat the process. Although
+ straight forward, this process can be time consuming if the application
+ requires many permission grants. <p>
+
+ Another approach is to set the value of the
+ <code>"java.security.debug"</code> system property to
+ <code>"access,failure"</code>, which produces debugging output that
+ describes permission grants and failures. Unfortunately, this approach
+ produces voluminous output, making it difficult to determine which
+ permission grants are needed. <p>
+
+ This security policy provider permits another, hopefully more
+ convenient, approach. When this class is specified as the security
+ policy provider, and granting all permissions is enabled, it uses the
+ standard dynamic security policy to determine what permissions are
+ granted. If a permission is not granted by the standard policy, though,
+ then rather than denying permission, this class logs the missing
+ permission in the form required by the security policy file, and grants
+ the permission, allowing the program to continue. In this way,
+ developers can determine the complete set of security permissions
+ required by the application. <p>
+
+ Note that the information printed by this security policy provider may
+ not be in the form you wish to use in your policy file. In particular,
+ using system property substitutions and <code>KeyStore</code> aliases
+ may produce a more portable file than one containing the exact entries
+ logged. Note, too, that the information printed for
+ <code>signedBy</code> fields specifies the principal name for
+ <code>X.509</code> certificates, rather than the <code>KeyStore</code>
+ alias, which is not a valid security policy file format. <p>
+
+ Using this security policy provider without granting all permissions is
+ also useful since it prints information about security exceptions that
+ were caught, but that might have an affect on program behavior. <p>
+
+ This class uses uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>net.jini.security.policy</code> to log information at the following
+ levels: <ul>
+
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#WARNING" title="class or interface in java.util.logging"><CODE>WARNING</CODE></A> - Permissions that were needed but not
+ granted by the policy file.
+
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A> - Also include stack traces.
+
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINER" title="class or interface in java.util.logging"><CODE>FINER</CODE></A> - All permissions granted, with stack traces
+ for ones not granted by the policy file, and dynamic grants.
+
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> - All permissions granted, with all stack
+ traces, and dynamic grants. </ul>
+
+ To use this security policy provider, do the following: <ul>
+
+ <li> Copy the <code>jsk-policy.jar</code> file from the <code>lib-ext</code>
+ subdirectory of the Apache River release
+ installation to the extensions directory of the Java(TM) 2 SDK (or JRE)
+ installation, and copy the <code>jsk-debug-policy.jar</code> file
+ from the <code>lib</code> subdirectory of the Apache River release installation to
+ the extensions directory of the Java 2 SDK (or JRE) installation.
+
+ <li> Specify this class as the security policy provider. Create a copy of
+ the file <code>jre/lib/security/security/java.security</code>, modify the
+ file to contain the line:
+
+ <blockquote>
+ <pre>
+ policy.provider=com.sun.jini.tool.DebugDynamicPolicyProvider
+ </pre>
+ </blockquote>
+
+ and then specify this new file as the value of the
+ <code>java.security.properties</code> system property.
+
+ <li> Specify whether all permissions should be granted by setting the
+ <code>com.sun.jini.tool.DebugDynamicPolicyProvider.grantAll</code> security
+ property to <code>true</code> by adding the following line to the security
+ properties file:
+
+ <blockquote>
+ <pre>
+ com.sun.jini.tool.DebugDynamicPolicyProvider.grantAll=true
+ </pre>
+ </blockquote> </ul> <p>
+
+ Granting all permissions is disabled by default. <p>
+
+ Make sure to specify a security manager, either by setting the
+ <code>java.security.manager</code> system property, or putting the following
+ code in the main method of the application:
+
+ <blockquote>
+ <pre>
+ if (System.getSecurityManager() == null) {
+ System.setSecurityManager(new SecurityManager());
+ }
+ </pre>
+ </blockquote>
+
+ <p>This provider can be used in conjunction with the provider
+ <code>com.sun.jini.start.AggregatePolicyProvider</code> by setting the
+ <code>com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass</code>
+ system property to the fully qualified name of this class. If this
+ provider is used with the <code>AggregatePolicyProvider</code>, then the
+ JAR file <code>jsk-debug-policy.jar</code> needs to be in the
+ application's class path, and this class needs to be granted all
+ permissions.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Sun Microsystems, Inc.</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html#DebugDynamicPolicyProvider()">DebugDynamicPolicyProvider</A></B>()</CODE>
+
+<BR>
+ Creates an instance of this class that wraps a default underlying
+ policy, as specified by <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#DynamicPolicyProvider()"><CODE>DynamicPolicyProvider()</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html#DebugDynamicPolicyProvider(java.security.Policy)">DebugDynamicPolicyProvider</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html" title="class or interface in java.security">Policy</A> basePolicy)</CODE>
+
+<BR>
+ Creates an instance of this class that wraps around the given
+ non-<code>null</code> base policy object.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])">grant</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A> cl,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Principal.html" title="class or interface in java.security">Principal</A>[] principals,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[] permissions)</CODE>
+
+<BR>
+ Log calls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html#implies(java.security.ProtectionDomain, java.security.Permission)">implies</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/ProtectionDomain.html" title="class or interface in java.security">ProtectionDomain</A> pd,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A> perm)</CODE>
+
+<BR>
+ Always returns true, but logs unique requests</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_net.jini.security.policy.DynamicPolicyProvider"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class net.jini.security.policy.<A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getGrants(java.lang.Class, java.security.Principal[])">getGrants</A>, <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getPermissions(java.security.CodeSource)">getPermissions</A>, <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getPermissions(java.security.ProtectionDomain)">getPermissions</A>, <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#grantSupported()">grantSupported</A>, <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#refresh()">refresh</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.security.Policy"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.security.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html" title="class or interface in java.security">Policy</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html#getPolicy()" title="class or interface in java.security">getPolicy</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html#setPolicy(java.security.Policy)" title="class or interface in java.security">setPolicy</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://
java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DebugDynamicPolicyProvider()"><!-- --></A><H3>
+DebugDynamicPolicyProvider</H3>
+<PRE>
+public <B>DebugDynamicPolicyProvider</B>()
+ throws <A HREF="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</A></PRE>
+<DL>
+<DD>Creates an instance of this class that wraps a default underlying
+ policy, as specified by <A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#DynamicPolicyProvider()"><CODE>DynamicPolicyProvider()</CODE></A>.
+<P>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</A></CODE> - if unable to construct the base
+ policy
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if there is a security manager and the calling
+ context does not have adequate permissions to read the <code>
+ net.jini.security.policy.DynamicPolicyProvider.basePolicyClass
+ </code> security property, or if the calling context does not
+ have adequate permissions to access the base policy class</DL>
+</DL>
+<HR>
+
+<A NAME="DebugDynamicPolicyProvider(java.security.Policy)"><!-- --></A><H3>
+DebugDynamicPolicyProvider</H3>
+<PRE>
+public <B>DebugDynamicPolicyProvider</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Policy.html" title="class or interface in java.security">Policy</A> basePolicy)</PRE>
+<DL>
+<DD>Creates an instance of this class that wraps around the given
+ non-<code>null</code> base policy object.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>basePolicy</CODE> - base policy object containing information about
+ non-dynamic grants
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>basePolicy</code> is
+ <code>null</code></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><!-- --></A><H3>
+grant</H3>
+<PRE>
+public void <B>grant</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A> cl,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Principal.html" title="class or interface in java.security">Principal</A>[] principals,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[] permissions)</PRE>
+<DL>
+<DD>Log calls.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicy.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])">grant</A></CODE> in interface <CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])">grant</A></CODE> in class <CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cl</CODE> - class to grant permissions to the class loader of, or
+ <code>null</code> if granting across all class loaders<DD><CODE>principals</CODE> - if non-<code>null</code>, minimum set of principals
+ to which grants apply<DD><CODE>permissions</CODE> - if non-<code>null</code>, permissions to grant</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="implies(java.security.ProtectionDomain, java.security.Permission)"><!-- --></A><H3>
+implies</H3>
+<PRE>
+public boolean <B>implies</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/ProtectionDomain.html" title="class or interface in java.security">ProtectionDomain</A> pd,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A> perm)</PRE>
+<DL>
+<DD>Always returns true, but logs unique requests
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html#implies(java.security.ProtectionDomain, java.security.Permission)">implies</A></CODE> in class <CODE><A HREF="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DebugDynamicPolicyProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/sun/jini/tool/ComputeHttpmdCodebase.html" title="class in com.sun.jini.tool"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/sun/jini/tool/JarWrapper.html" title="class in com.sun.jini.tool"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/sun/jini/tool/DebugDynamicPolicyProvider.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DebugDynamicPolicyProvider.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, 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.
+</BODY>
+</HTML>
Added: websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/JarWrapper.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/JarWrapper.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/com/sun/jini/tool/JarWrapper.html Fri Dec 24 20:19:04 2010
@@ -0,0 +1,617 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:09 EST 2010 -->
+<TITLE>
+JarWrapper (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.tool.JarWrapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="JarWrapper (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/JarWrapper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html" title="class in com.sun.jini.tool"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/sun/jini/tool/PreferredListGen.html" title="class in com.sun.jini.tool"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/sun/jini/tool/JarWrapper.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JarWrapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.sun.jini.tool</FONT>
+<BR>
+Class JarWrapper</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sun.jini.tool.JarWrapper</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>JarWrapper</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+A tool for generating "wrapper" JAR files. A wrapper JAR file contains a
+ <code>Class-Path</code> manifest attribute listing a group of JAR files to
+ be loaded from a common codebase. It may also, depending on applicability
+ and selected options, contain a JAR index file, a preferred class list
+ and/or a <code>Main-Class</code> manifest entry for the grouped JAR files.
+ <p>
+ The following items are discussed below:
+ <ul>
+ <li> <a href="#applicability">Applicability</a>
+ <li> <a href="#running">Using the Tool</a>
+ <li> <a href="#logging">Logging</a>
+ <li> <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])">Processing Options</A>
+ </ul>
+ <p>
+ <a name="applicability"><h3>Applicability</h3></a>
+ <p>
+ The <code>JarWrapper</code> tool is applicable in the following deployment
+ situations, which may overlap:
+ <ul>
+ <li> If a codebase contains multiple JAR files which declare preferred
+ resources, <code>JarWrapper</code> can be used to produce a wrapper
+ JAR file with a combined preferred list. Preferred resources are
+ described in the documentation for the <A HREF="../../../../net/jini/loader/pref/package-summary.html"><CODE>net.jini.loader.pref</CODE></A>
+ package.
+ <p>
+ <li> If a codebase contains multiple JAR files and requires integrity
+ protection, <code>JarWrapper</code> can be used to produce a wrapper
+ JAR file with a <code>Class-Path</code> attribute that uses HTTPMD
+ URLs. HTTPMD URLs are described in the documentation for the
+ <A HREF="../../../../net/jini/url/httpmd/package-summary.html"><CODE>net.jini.url.httpmd</CODE></A> package.
+ <p>
+ <li> If an application or service packaged as an executable JAR file
+ refers to classes specified at deployment time (e.g., via a
+ <A HREF="../../../../net/jini/config/Configuration.html" title="interface in net.jini.config"><CODE>Configuration</CODE></A>) which are not
+ present in the JAR file or its <code>Class-Path</code>,
+ <code>JarWrapper</code> can be used to produce a wrapper JAR file
+ which includes the extra classes in its <code>Class-Path</code> while
+ retaining the original <code>Main-Class</code> declaration; the
+ wrapper JAR file can then be executed in place of the original JAR
+ file.
+ </ul>
+ <p>
+ <a name="running"><h3>Using the Tool</h3></a>
+ <code>JarWrapper</code> can be run directly from the
+ <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])">command line</A> or can be invoked programmatically using the
+ <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean)"><CODE>wrap</CODE></A> method.
+ <p>
+ To run the tool on UNIX platforms:
+ <blockquote><pre>
+ java -jar <var><b>install_dir</b></var>/lib/jarwrapper.jar <var><b>processing_options</b></var>
+ </pre></blockquote>
+ To run the tool on Microsoft Windows platforms:
+ <blockquote><pre>
+ java -jar <var><b>install_dir</b></var>\lib\jarwrapper.jar <var><b>processing_options</b></var>
+ </pre></blockquote>
+ <p>
+ A more specific example with options for running directly from a Unix command
+ line might be:
+ <blockquote><pre>
+ % java -jar <var><b>install_dir</b></var>/lib/jarwrapper.jar \
+ -httpmd=SHA-1 wrapper.jar base_dir src1.jar src2.jar
+ </pre></blockquote>
+ where <var><b>install_dir</b></var> is the directory where the Apache
+ River release is installed. This command line would result in the creation
+ of a wrapper JAR file, <code>wrapper.jar</code>, in the current working
+ directory, whose contents would be based on the source JAR files
+ <code>src1.jar</code> and <code>src2.jar</code> (as well as any other JAR
+ files referenced transitively through their <code>Class-Path</code>
+ attributes or JAR indexes). The paths for <code>src1.jar</code> and
+ <code>src2.jar</code>, as well as any transitively referenced JAR files,
+ would be resolved relative to the <code>base_dir</code> directory. The
+ <code>Class-Path</code> attribute of <code>wrapper.jar</code> would use
+ HTTPMD URLs with SHA-1 digests. If any of the HTTPMD URLs encountered is
+ found to be invalid and can not be resolved, the <code>JarWrapper</code>
+ operation will fail.
+ <p>
+ The equivalent programmatic invocation of <code>JarWrapper</code> would be:
+ <blockquote><pre>
+ JarWrapper.wrap("wrapper.jar", "base_dir", new String[]{ "src1.jar", "src2.jar" }, "SHA-1", true, "manifest.mf" );
+ </pre></blockquote>
+
+ <p>
+ <a name="logging"><h3>Logging</h3></a>
+ <p>
+ <code>JarWrapper</code> uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>com.sun.jini.tool.JarWrapper</code> to log information at the
+ following logging levels:
+ <p>
+ <table border="1" cellpadding="5"
+ summary="Describes logging performed by JarWrapper at different
+ logging levels">
+ <caption halign="center" valign="top"><b><code>
+ com.sun.jini.tool.JarWrapper</code></b></caption>
+
+ <tr> <th scope="col"> Level <th scope="col"> Description </tr>
+ <tr>
+ <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#WARNING" title="class or interface in java.util.logging"><CODE>WARNING</CODE></A>
+ <td> Generated JAR index entries that do not end in <code>".jar"</code>
+ </tr>
+ <tr>
+ <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A>
+ <td> Names of processed source JAR files and output wrapper JAR file
+ </tr>
+ <tr>
+ <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINER" title="class or interface in java.util.logging"><CODE>FINER</CODE></A>
+ <td> Processing of <code>Main-Class</code> and <code>Class-Path</code>
+ attributes, and presence of preferred lists and JAR indexes
+ </tr>
+ <tr>
+ <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A>
+ <td> Processing and compilation of preferred lists and JAR indexes
+ </tr>
+ </table>
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+ <DD>2.0</DD>
+<DT><B>Author:</B></DT>
+ <DD>Sun Microsystems, Inc.</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])">main</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] args)</CODE>
+
+<BR>
+ Generates a wrapper JAR file for the specified JAR files.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest, java.util.List)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html" title="class or interface in java.util">List</A> apiClasses)</CODE>
+
+<BR>
+ Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index)</CODE>
+
+<BR>
+ Invokes <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest)"><CODE>wrap</CODE></A> with the provided values and a <code>null</code> manifest.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf)</CODE>
+
+<BR>
+ Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest, java.util.List)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html" title="class or interface in java.util">List</A> apiClasses)</CODE>
+
+<BR>
+ Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://
java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] args)</PRE>
+<DL>
+<DD>Generates a wrapper JAR file for the specified JAR files. The command
+ line arguments are:
+ <pre>
+ [ <var>options</var> ] <var>dest-jar</var> <var>base-dir</var> <var>src-jar</var> [ <var>src-jar</var> ...]
+ </pre>
+ The <var>dest-jar</var> argument specifies the name of the wrapper JAR
+ file to generate. The <var>base-dir</var> argument specifies the base
+ directory from which to locate source JAR files to wrap. The
+ <var>src-jar</var> arguments are non-absolute URLs to "top-level" source
+ JAR files relative to <var>base-dir</var>; they also constitute the
+ basis of the <code>Class-Path</code> attribute included in the generated
+ wrapper JAR file. JAR files not present in the command line but
+ indirectly referenced via JAR index or <code>Class-Path</code> entries
+ in source JAR files will themselves be used as source JAR files, and
+ will appear alongside the top-level source JAR files in the
+ <code>Class-Path</code> attribute of the wrapper JAR file in depth-first
+ order, with JAR index references appearing before
+ <code>Class-Path</code> references. This utility does not modify any
+ source JAR files.
+ <p>
+ If any of the top-level source JAR files contain preferred resources (as
+ indicated by a preferred list in the JAR file), then a preferred list
+ describing resource preferences across all source JAR files will be
+ included in the wrapper JAR file. The preferred list of a top-level
+ source JAR file is interpreted as applying to that JAR file along with
+ all JAR files transitively referenced by it through JAR index or
+ <code>Class-Path</code> entries, excluding JAR files that have already
+ been encountered in the processing of preceding top-level JAR files. If
+ a given top-level source JAR file does not contain a preferred list,
+ then all resources contained in it and its transitively referenced JAR
+ files (again, excluding those previously encountered) are considered not
+ preferred. Preferred lists are described further in the documentation
+ for <A HREF="../../../../net/jini/loader/pref/PreferredClassLoader.html" title="class in net.jini.loader.pref"><CODE>PreferredClassLoader</CODE></A>.
+ <p>
+ If any of the top-level source JAR files declare a
+ <code>Main-Class</code> manifest entry, then the wrapper JAR file will
+ include a <code>Main-Class</code> manifest entry whose value is that of
+ the first top-level source JAR file listed on the command line which
+ defines a <code>Main-Class</code> entry.
+ <p>
+ Note that attribute values generated by this utility, such as those for
+ the <code>Class-Path</code> and <code>Main-Class</code> attributes
+ described above, do not take precedence over values for the same
+ attributes contained in a manifest file explicitly specified using the
+ <code>-manifest</code> option (described below).
+ <p>
+ Supported options for this tool include:
+ <p>
+ <dl>
+ <dt> <code>-verbose</code>
+ <dd> Sets the level of the <code>com.sun.jini.tool.JarWrapper</code>
+ logger to <code>Level.FINER</code>.
+ <p>
+ <dt> <code>-httpmd[=algorithm]</code>
+ <dd> Use (relative) HTTPMD URLs in the <code>Class-Path</code>
+ attribute of the generated wrapper JAR file. The default is to
+ use HTTP URLs. Digests for HTTPMD URLs are calculated using the
+ given algorithm, or SHA-1 if none is specified.
+ <p>
+ <dt> <code>-noindex</code>
+ <dd> Do not include a JAR index in the generated wrapper JAR file. The
+ default is to compile an index based on the contents of the
+ source JAR files.
+ <p>
+ <dt> <code>-manifest=<I>file</I></code>
+ <dd> Specifies a manifest file containing attribute values to include
+ in the manifest file inside the generated wrapper JAR file.
+ This allows enables users to add additional metadata or
+ override JarWrapper's generated values to customize the resulting
+ manifest. The values contained in this optional file take
+ precedence over the generated content. This flag is conceptually
+ similar to the jar utilities <code>m</code> flag. In the current
+ version there are four possible attributes that can be overridden
+ in the target Manifest. These are
+ <code>Name.MANIFEST_VERSION</code>,
+ <code>Name("Created-By")</code>, <code>Name.CLASS_PATH</code> and
+ <code>Name.MAIN_CLASS</code>. Any additonal attributes beyond
+ these four will be appended to the manifest attribute list and
+ will appear in the resultant <code>MANIFEST.MF</code> file.
+ </dl>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+public static void <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index)
+ throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Invokes <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest)"><CODE>wrap</CODE></A> with the provided values and a <code>null</code> manifest.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>destJar</CODE> - name of the wrapper JAR file to generate<DD><CODE>baseDir</CODE> - base directory from which to locate source JAR
+ files to wrap<DD><CODE>srcJars</CODE> - list of top-level source JAR files to process<DD><CODE>httpmdAlg</CODE> - name of algorithm to use for generating HTTPMD URLs, or
+ <code>null</code> if plain HTTP URLs should be used<DD><CODE>index</CODE> - if <code>true</code>, generate a JAR index; if
+ <code>false</code>, do not generate one
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - if an I/O error occurs while processing source JAR
+ files or generating the wrapper JAR file
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the provided values are invalid
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>destJar</code>,
+ <code>baseDir</code>, <code>srcJars</code>, or any element of
+ <code>srcJars</code> is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+public static void <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf)
+ throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>. The only
+ difference between this method and <code>main</code> is that it receives
+ its values as explicit arguments instead of in a command line, and
+ indicates failure by throwing an exception.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>destJar</CODE> - name of the wrapper JAR file to generate<DD><CODE>baseDir</CODE> - base directory from which to locate source JAR
+ files to wrap<DD><CODE>srcJars</CODE> - list of top-level source JAR files to process<DD><CODE>httpmdAlg</CODE> - name of algorithm to use for generating HTTPMD URLs, or
+ <code>null</code> if plain HTTP URLs should be used<DD><CODE>index</CODE> - if <code>true</code>, generate a JAR index; if
+ <code>false</code>, do not generate one<DD><CODE>mf</CODE> - manifest containing values to include in the manifest file
+ of the generated wrapper JAR file
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - if an I/O error occurs while processing source JAR
+ files or generating the wrapper JAR file
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the provided values are invalid
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>destJar</code>,
+ <code>baseDir</code>, <code>srcJars</code>, or any element of
+ <code>srcJars</code> is <code>null</code><DT><B>Since:</B></DT>
+ <DD>2.1</DD>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wrap(java.lang.String, java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest, java.util.List)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+public static void <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> baseDir,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html" title="class or interface in java.util">List</A> apiClasses)
+ throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>. The only
+ difference between this method and <code>main</code> is that it receives
+ its values as explicit arguments instead of in a command line, and
+ indicates failure by throwing an exception.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>destJar</CODE> - name of the wrapper JAR file to generate<DD><CODE>baseDir</CODE> - base directory from which to locate source JAR
+ files to wrap<DD><CODE>srcJars</CODE> - list of top-level source JAR files to process<DD><CODE>httpmdAlg</CODE> - name of algorithm to use for generating HTTPMD URLs, or
+ <code>null</code> if plain HTTP URLs should be used<DD><CODE>index</CODE> - if <code>true</code>, generate a JAR index; if
+ <code>false</code>, do not generate one<DD><CODE>mf</CODE> - manifest containing values to include in the manifest file
+ of the generated wrapper JAR file<DD><CODE>apiClasses</CODE> - list of binary class names (type <code>String</code>)
+ that must be considered API classes in case a preferences conflict
+ arises during wrapping of the JAR files, or <code>null</code> in case
+ no such list is available
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - if an I/O error occurs while processing source JAR
+ files or generating the wrapper JAR file
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the provided values are invalid
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>destJar</code>,
+ <code>baseDir</code>, <code>srcJars</code>, or any element of
+ <code>srcJars</code> is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wrap(java.lang.String, java.lang.String[], java.lang.String, boolean, java.util.jar.Manifest, java.util.List)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+public static void <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> destJar,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] srcJars,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> httpmdAlg,
+ boolean index,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/jar/Manifest.html" title="class or interface in java.util.jar">Manifest</A> mf,
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html" title="class or interface in java.util">List</A> apiClasses)
+ throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Generates a wrapper JAR file based on the provided values in the same
+ manner as described in the documentation for <A HREF="../../../../com/sun/jini/tool/JarWrapper.html#main(java.lang.String[])"><CODE>main(java.lang.String[])</CODE></A>.
+ <p>
+ The difference between this method and the 6 and 7-arg <code>wrap</code>
+ method is that the source JAR files must be specified by an absolute path
+ and that for processing the classpath will be flattened, i.e. each source
+ JAR file will be considered as relative to its parent directory (that
+ will serve as a virtual base directory) for the assembly of the
+ <code>Class-Path</code> entry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>destJar</CODE> - name of the wrapper JAR file to generate<DD><CODE>srcJars</CODE> - list of top-level source JAR files to process, must be
+ absolute paths<DD><CODE>httpmdAlg</CODE> - name of algorithm to use for generating HTTPMD URLs, or
+ <code>null</code> if plain HTTP URLs should be used<DD><CODE>index</CODE> - if <code>true</code>, generate a JAR index; if
+ <code>false</code>, do not generate one<DD><CODE>mf</CODE> - manifest containing values to include in the manifest file
+ of the generated wrapper JAR file<DD><CODE>apiClasses</CODE> - list of binary class names (type <code>String</code>)
+ that must be considered API classes in case a preferences conflict
+ arises during wrapping of the JAR files, or <code>null</code> in case
+ no such list is available
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - if an I/O error occurs while processing source JAR
+ files or generating the wrapper JAR file
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the provided values are invalid
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>destJar</code>,
+ <code>srcJars</code>, or any element of <code>srcJars</code> is
+ <code>null</code></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/JarWrapper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/sun/jini/tool/DebugDynamicPolicyProvider.html" title="class in com.sun.jini.tool"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/sun/jini/tool/PreferredListGen.html" title="class in com.sun.jini.tool"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/sun/jini/tool/JarWrapper.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JarWrapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, 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.
+</BODY>
+</HTML>