8133480: replace some <tt> tags (obsolete in html5) in core-libs docs
Reviewed-by: lancea
This commit is contained in:
parent
1b8b82463e
commit
ea7449a3ad
@ -206,7 +206,7 @@ public class InetSocketAddress
|
||||
* @param hostname the Host name
|
||||
* @param port The port number
|
||||
* @throws IllegalArgumentException if the port parameter is outside the range
|
||||
* of valid port values, or if the hostname parameter is <TT>null</TT>.
|
||||
* of valid port values, or if the hostname parameter is {@code null}.
|
||||
* @throws SecurityException if a security manager is present and
|
||||
* permission to resolve the host name is
|
||||
* denied.
|
||||
@ -244,7 +244,7 @@ public class InetSocketAddress
|
||||
* @param port The port number
|
||||
* @throws IllegalArgumentException if the port parameter is outside
|
||||
* the range of valid port values, or if the hostname
|
||||
* parameter is <TT>null</TT>.
|
||||
* parameter is {@code null}.
|
||||
* @see #isUnresolved()
|
||||
* @return a {@code InetSocketAddress} representing the unresolved
|
||||
* socket address
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Service-provider classes for the <tt>{@link java.net}</tt> package.
|
||||
* Service-provider classes for the {@link java.net} package.
|
||||
*
|
||||
* <p> Only developers who are defining new URL stream handler providers
|
||||
* should need to make direct use of this package.
|
||||
|
@ -39,7 +39,7 @@ import sun.security.jca.GetInstance;
|
||||
* <p> Every implementation of the Java platform is required to support the
|
||||
* following standard {@code SSLContext} protocol:
|
||||
* <ul>
|
||||
* <li><tt>TLSv1</tt></li>
|
||||
* <li>{@code TLSv1}</li>
|
||||
* </ul>
|
||||
* This protocol is described in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#SSLContext">
|
||||
|
@ -53,13 +53,13 @@ class SSLException extends IOException
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>SSLException</code> with the specified
|
||||
* Creates a {@code SSLException} with the specified
|
||||
* detail message and cause.
|
||||
*
|
||||
* @param message the detail message (which is saved for later retrieval
|
||||
* by the {@link #getMessage()} method).
|
||||
* @param cause the cause (which is saved for later retrieval by the
|
||||
* {@link #getCause()} method). (A <tt>null</tt> value is
|
||||
* {@link #getCause()} method). (A {@code null} value is
|
||||
* permitted, and indicates that the cause is nonexistent or
|
||||
* unknown.)
|
||||
* @since 1.5
|
||||
@ -70,13 +70,13 @@ class SSLException extends IOException
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>SSLException</code> with the specified cause
|
||||
* and a detail message of <tt>(cause==null ? null : cause.toString())</tt>
|
||||
* Creates a {@code SSLException} with the specified cause
|
||||
* and a detail message of {@code (cause==null ? null : cause.toString())}
|
||||
* (which typically contains the class and detail message of
|
||||
* <tt>cause</tt>).
|
||||
* {@code cause}).
|
||||
*
|
||||
* @param cause the cause (which is saved for later retrieval by the
|
||||
* {@link #getCause()} method). (A <tt>null</tt> value is
|
||||
* {@link #getCause()} method). (A {@code null} value is
|
||||
* permitted, and indicates that the cause is nonexistent or
|
||||
* unknown.)
|
||||
* @since 1.5
|
||||
|
@ -52,7 +52,7 @@ public abstract class FtpClientProvider {
|
||||
* Initializes a new instance of this class.
|
||||
*
|
||||
* @throws SecurityException if a security manager is installed and it denies
|
||||
* {@link RuntimePermission}<tt>("ftpClientProvider")</tt>
|
||||
* {@link RuntimePermission}{@code ("ftpClientProvider")}
|
||||
*/
|
||||
protected FtpClientProvider() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
@ -108,7 +108,7 @@ public abstract class FtpClientProvider {
|
||||
* <ol>
|
||||
*
|
||||
* <li><p> If the system property
|
||||
* <tt>java.net.FtpClientProvider</tt> is defined then it is
|
||||
* {@code java.net.FtpClientProvider} is defined then it is
|
||||
* taken to be the fully-qualified name of a concrete provider class.
|
||||
* The class is loaded and instantiated; if this process fails then an
|
||||
* unspecified unchecked error or exception is thrown. </p></li>
|
||||
@ -116,8 +116,8 @@ public abstract class FtpClientProvider {
|
||||
* <li><p> If a provider class has been installed in a jar file that is
|
||||
* visible to the system class loader, and that jar file contains a
|
||||
* provider-configuration file named
|
||||
* <tt>java.net.FtpClientProvider</tt> in the resource
|
||||
* directory <tt>META-INF/services</tt>, then the first class name
|
||||
* {@code java.net.FtpClientProvider} in the resource
|
||||
* directory {@code META-INF/services}, then the first class name
|
||||
* specified in that file is taken. The class is loaded and
|
||||
* instantiated; if this process fails then an unspecified unchecked error or exception is
|
||||
* thrown. </p></li>
|
||||
|
@ -56,7 +56,7 @@ import java.util.NoSuchElementException;
|
||||
*
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* <p> The <tt>init</tt> method is invoked by the <tt>PreHashedMap</tt>
|
||||
* <p> The {@code init} method is invoked by the {@code PreHashedMap}
|
||||
* constructor with an object array long enough for the map's rows. The method
|
||||
* must construct the hash chain for each row and store it in the appropriate
|
||||
* element of the array.
|
||||
@ -73,7 +73,7 @@ import java.util.NoSuchElementException;
|
||||
* methods in the {@link java.util.Collections} utility class.
|
||||
*
|
||||
* <p> In the JDK build, subclasses of this class are typically created via the
|
||||
* <tt>Hasher</tt> program in the <tt>make/tools/Hasher</tt> directory.
|
||||
* {@code Hasher} program in the {@code make/tools/Hasher} directory.
|
||||
*
|
||||
* @author Mark Reinhold
|
||||
* @since 1.5
|
||||
@ -95,7 +95,7 @@ public abstract class PreHashedMap<V>
|
||||
* Creates a new map.
|
||||
*
|
||||
* <p> This constructor invokes the {@link #init init} method, passing it a
|
||||
* newly-constructed row array that is <tt>rows</tt> elements long.
|
||||
* newly-constructed row array that is {@code rows} elements long.
|
||||
*
|
||||
* @param rows
|
||||
* The number of rows in the map
|
||||
|
@ -116,8 +116,8 @@ public class Handler extends URLStreamHandler {
|
||||
* Compares the host components of two URLs.
|
||||
* @param u1 the URL of the first host to compare
|
||||
* @param u2 the URL of the second host to compare
|
||||
* @return <tt>true</tt> if and only if they
|
||||
* are equal, <tt>false</tt> otherwise.
|
||||
* @return {@code true} if and only if they
|
||||
* are equal, {@code false} otherwise.
|
||||
*/
|
||||
protected boolean hostsEqual(URL u1, URL u2) {
|
||||
/*
|
||||
|
@ -59,8 +59,8 @@ public class Win32ErrorMode {
|
||||
* Invoke at VM initialization time to disable the critical error message box.
|
||||
* <p>
|
||||
* The critial error message box is disabled unless the system property
|
||||
* <tt>sun.io.allowCriticalErrorMessageBox</tt> is set to something other than
|
||||
* <code>false</code>. This includes the empty string.
|
||||
* {@code sun.io.allowCriticalErrorMessageBox} is set to something other than
|
||||
* {@code false}. This includes the empty string.
|
||||
* <p>
|
||||
* This method does nothing if invoked after VM and class library initialization
|
||||
* has completed.
|
||||
|
@ -134,8 +134,8 @@ public class Handler extends URLStreamHandler {
|
||||
* Compares the host components of two URLs.
|
||||
* @param u1 the URL of the first host to compare
|
||||
* @param u2 the URL of the second host to compare
|
||||
* @return <tt>true</tt> if and only if they
|
||||
* are equal, <tt>false</tt> otherwise.
|
||||
* @return {@code true} if and only if they
|
||||
* are equal, {@code false} otherwise.
|
||||
*/
|
||||
protected boolean hostsEqual(URL u1, URL u2) {
|
||||
/*
|
||||
|
@ -56,7 +56,7 @@ public class RemoteToCorba implements StateFactory {
|
||||
* @param name Ignored
|
||||
* @param ctx The non-null CNCtx whose ORB to use.
|
||||
* @param env Ignored
|
||||
* @return The CORBA object for <tt>orig</tt> or null.
|
||||
* @return The CORBA object for {@code orig} or null.
|
||||
* @exception ConfigurationException If the CORBA object cannot be obtained
|
||||
* due to configuration problems, for instance, if RMI-IIOP not available.
|
||||
* @exception NamingException If some other problem prevented a CORBA
|
||||
|
@ -76,7 +76,7 @@ public class CorbaUtils {
|
||||
*
|
||||
* @param remoteObj The non-null remote object for
|
||||
* @param orb The non-null ORB to connect the remote object to
|
||||
* @return The CORBA Object for remoteObj; null if <tt>remoteObj</tt>
|
||||
* @return The CORBA Object for remoteObj; null if {@code remoteObj}
|
||||
* is a JRMP implementation or JRMP stub.
|
||||
* @exception ConfigurationException The CORBA Object cannot be obtained
|
||||
* because of configuration problems.
|
||||
|
@ -26,11 +26,11 @@
|
||||
package java.rmi;
|
||||
|
||||
/**
|
||||
* A <code>RemoteException</code> is the common superclass for a number of
|
||||
* A {@code RemoteException} is the common superclass for a number of
|
||||
* communication-related exceptions that may occur during the execution of a
|
||||
* remote method call. Each method of a remote interface, an interface that
|
||||
* extends <code>java.rmi.Remote</code>, must list
|
||||
* <code>RemoteException</code> in its throws clause.
|
||||
* extends {@code java.rmi.Remote}, must list
|
||||
* {@code RemoteException} in its throws clause.
|
||||
*
|
||||
* <p>As of release 1.4, this exception has been retrofitted to conform to
|
||||
* the general purpose exception-chaining mechanism. The "wrapped remote
|
||||
@ -40,7 +40,7 @@ package java.rmi;
|
||||
* the aforementioned "legacy field."
|
||||
*
|
||||
* <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
|
||||
* instance of <code>RemoteException</code> always throws {@link
|
||||
* instance of {@code RemoteException} always throws {@link
|
||||
* IllegalStateException}.
|
||||
*
|
||||
* @author Ann Wollrath
|
||||
@ -63,14 +63,14 @@ public class RemoteException extends java.io.IOException {
|
||||
public Throwable detail;
|
||||
|
||||
/**
|
||||
* Constructs a <code>RemoteException</code>.
|
||||
* Constructs a {@code RemoteException}.
|
||||
*/
|
||||
public RemoteException() {
|
||||
initCause(null); // Disallow subsequent initCause
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>RemoteException</code> with the specified
|
||||
* Constructs a {@code RemoteException} with the specified
|
||||
* detail message.
|
||||
*
|
||||
* @param s the detail message
|
||||
@ -81,9 +81,9 @@ public class RemoteException extends java.io.IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>RemoteException</code> with the specified detail
|
||||
* Constructs a {@code RemoteException} with the specified detail
|
||||
* message and cause. This constructor sets the {@link #detail}
|
||||
* field to the specified <code>Throwable</code>.
|
||||
* field to the specified {@code Throwable}.
|
||||
*
|
||||
* @param s the detail message
|
||||
* @param cause the cause
|
||||
@ -113,7 +113,7 @@ public class RemoteException extends java.io.IOException {
|
||||
* Returns the cause of this exception. This method returns the value
|
||||
* of the {@link #detail} field.
|
||||
*
|
||||
* @return the cause, which may be <tt>null</tt>.
|
||||
* @return the cause, which may be {@code null}.
|
||||
* @since 1.4
|
||||
*/
|
||||
public Throwable getCause() {
|
||||
|
@ -36,7 +36,7 @@ package java.rmi.activation;
|
||||
* the aforementioned "legacy field."
|
||||
*
|
||||
* <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
|
||||
* instance of <code>ActivationException</code> always throws {@link
|
||||
* instance of {@code ActivationException} always throws {@link
|
||||
* IllegalStateException}.
|
||||
*
|
||||
* @author Ann Wollrath
|
||||
@ -59,14 +59,14 @@ public class ActivationException extends Exception {
|
||||
private static final long serialVersionUID = -4320118837291406071L;
|
||||
|
||||
/**
|
||||
* Constructs an <code>ActivationException</code>.
|
||||
* Constructs an {@code ActivationException}.
|
||||
*/
|
||||
public ActivationException() {
|
||||
initCause(null); // Disallow subsequent initCause
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs an <code>ActivationException</code> with the specified
|
||||
* Constructs an {@code ActivationException} with the specified
|
||||
* detail message.
|
||||
*
|
||||
* @param s the detail message
|
||||
@ -77,9 +77,9 @@ public class ActivationException extends Exception {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs an <code>ActivationException</code> with the specified
|
||||
* Constructs an {@code ActivationException} with the specified
|
||||
* detail message and cause. This constructor sets the {@link #detail}
|
||||
* field to the specified <code>Throwable</code>.
|
||||
* field to the specified {@code Throwable}.
|
||||
*
|
||||
* @param s the detail message
|
||||
* @param cause the cause
|
||||
@ -109,7 +109,7 @@ public class ActivationException extends Exception {
|
||||
* Returns the cause of this exception. This method returns the value
|
||||
* of the {@link #detail} field.
|
||||
*
|
||||
* @return the cause, which may be <tt>null</tt>.
|
||||
* @return the cause, which may be {@code null}.
|
||||
* @since 1.4
|
||||
*/
|
||||
public Throwable getCause() {
|
||||
|
@ -26,8 +26,8 @@
|
||||
package java.rmi.server;
|
||||
|
||||
/**
|
||||
* A <code>ServerCloneException</code> is thrown if a remote exception occurs
|
||||
* during the cloning of a <code>UnicastRemoteObject</code>.
|
||||
* A {@code ServerCloneException} is thrown if a remote exception occurs
|
||||
* during the cloning of a {@code UnicastRemoteObject}.
|
||||
*
|
||||
* <p>As of release 1.4, this exception has been retrofitted to conform to
|
||||
* the general purpose exception-chaining mechanism. The "nested exception"
|
||||
@ -37,7 +37,7 @@ package java.rmi.server;
|
||||
* the aforementioned "legacy field."
|
||||
*
|
||||
* <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
|
||||
* instance of <code>ServerCloneException</code> always throws {@link
|
||||
* instance of {@code ServerCloneException} always throws {@link
|
||||
* IllegalStateException}.
|
||||
*
|
||||
* @author Ann Wollrath
|
||||
@ -61,7 +61,7 @@ public class ServerCloneException extends CloneNotSupportedException {
|
||||
private static final long serialVersionUID = 6617456357664815945L;
|
||||
|
||||
/**
|
||||
* Constructs a <code>ServerCloneException</code> with the specified
|
||||
* Constructs a {@code ServerCloneException} with the specified
|
||||
* detail message.
|
||||
*
|
||||
* @param s the detail message.
|
||||
@ -72,7 +72,7 @@ public class ServerCloneException extends CloneNotSupportedException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>ServerCloneException</code> with the specified
|
||||
* Constructs a {@code ServerCloneException} with the specified
|
||||
* detail message and cause.
|
||||
*
|
||||
* @param s the detail message.
|
||||
@ -103,7 +103,7 @@ public class ServerCloneException extends CloneNotSupportedException {
|
||||
* Returns the cause of this exception. This method returns the value
|
||||
* of the {@link #detail} field.
|
||||
*
|
||||
* @return the cause, which may be <tt>null</tt>.
|
||||
* @return the cause, which may be {@code null}.
|
||||
* @since 1.4
|
||||
*/
|
||||
public Throwable getCause() {
|
||||
|
@ -26,51 +26,51 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<title>com.sun.rowset Package</title>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
Provides five standard implementations of the standard JDBC <tt>RowSet</tt> implementation
|
||||
interface definitions. These reference implementations are included with the J2SE version
|
||||
1.5 platform and represent the benchmark standard <tt>RowSet</tt> implementations as verified
|
||||
Provides five standard implementations of the standard JDBC <code>RowSet</code> implementation
|
||||
interface definitions. These reference implementations are included with the J2SE version
|
||||
1.5 platform and represent the benchmark standard <code>RowSet</code> implementations as verified
|
||||
by the Test Compatibility Kit (TCK) as mandated by the Java Community Process.
|
||||
<br>
|
||||
|
||||
<br>
|
||||
|
||||
<h3>1.0 Available JDBC RowSet Reference Implementations </h3>
|
||||
The following implementations are provided:<br>
|
||||
|
||||
<blockquote><tt><b>JdbcRowSetImpl</b></tt> - The <tt>javax.sql.rowset.JdbcRowSet</tt>
|
||||
The following implementations are provided:<br>
|
||||
|
||||
<blockquote><code><b>JdbcRowSetImpl</b></code> - The <code>javax.sql.rowset.JdbcRowSet</code>
|
||||
interface reference implementation. <br>
|
||||
<br>
|
||||
<tt><b>CachedRowSetImpl </b></tt>- The <tt>javax.sql.rowset.CachedRowSet</tt> interface
|
||||
<code><b>CachedRowSetImpl</b></code> - The <code>javax.sql.rowset.CachedRowSet</code> interface
|
||||
reference implementation.<br>
|
||||
<br>
|
||||
<tt><b>WebRowSetImpl</b></tt> - The <tt>javax.sql.rowset.WebRowSet</tt> interface
|
||||
<code><b>WebRowSetImpl</b></code> - The <code>javax.sql.rowset.WebRowSet</code> interface
|
||||
reference implementation.<br>
|
||||
<br>
|
||||
<tt><b>FilteredRowSetImpl</b></tt> - The <tt>javax.sql.rowset.FilteredRowSet</tt>
|
||||
<code><b>FilteredRowSetImpl</b></code> - The <code>javax.sql.rowset.FilteredRowSet</code>
|
||||
interface reference implementation.<br>
|
||||
<br>
|
||||
<tt><b>JoinRowSetImpl</b></tt> - The <tt>javax.sql.rowset.JoinRowSet</tt> interface
|
||||
<code><b>JoinRowSetImpl</b></code> - The <code>javax.sql.rowset.JoinRowSet</code> interface
|
||||
reference implementation.<br>
|
||||
</blockquote>
|
||||
|
||||
All details on their expected behavior, including their interactions with the <tt>SyncProvider</tt>
|
||||
SPI and helper classes are provided in the interface definitions in the <tt>javax.sql.rowset</tt>
|
||||
All details on their expected behavior, including their interactions with the <code>SyncProvider</code>
|
||||
SPI and helper classes are provided in the interface definitions in the <code>javax.sql.rowset</code>
|
||||
package specification.<br>
|
||||
|
||||
|
||||
<h3>2.0 Usage</h3>
|
||||
The reference implementations represent robust implementations of the standard
|
||||
<code>RowSet</code> interfaces defined in the <code>javax.sql.rowset</code> package.
|
||||
All disconnected <code>RowSet</code> implementations, such as the <tt>CachedRowSetImpl</tt>
|
||||
and <tt>WebRowSetImpl</tt>, are flexible enough to use the <tt>SyncFactory</tt> SPIs to
|
||||
leverage non-reference implementation <tt>SyncProvider</tt> implementations to obtain
|
||||
differing synchronization semantics. Furthermore, developers and vendors alike are free
|
||||
<code>RowSet</code> interfaces defined in the <code>javax.sql.rowset</code> package.
|
||||
All disconnected <code>RowSet</code> implementations, such as the <code>CachedRowSetImpl</code>
|
||||
and <code>WebRowSetImpl</code>, are flexible enough to use the <code>SyncFactory</code> SPIs to
|
||||
leverage non-reference implementation <code>SyncProvider</code> implementations to obtain
|
||||
differing synchronization semantics. Furthermore, developers and vendors alike are free
|
||||
to use these implementations and integrate them into their products just as they
|
||||
can with to other components of the Java platform.<br>
|
||||
|
||||
|
||||
<h3>3.0 Extending the JDBC RowSet Implementations</h3>
|
||||
|
||||
The JDBC <code>RowSet</code> reference implementations are provided as non-final
|
||||
@ -81,6 +81,6 @@ set to their their particular needs. The website for JDBC Technology will
|
||||
provider a portal where implementations can be listed, similar to the way it
|
||||
provides a site for JDBC drivers.
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
|
||||
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
|
||||
<!--
|
||||
@ -35,21 +35,21 @@ questions.
|
||||
<title>javax.sql.rowset.providers Package</title>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
Repository for the <tt>RowSet</tt> reference implementations of the
|
||||
<tt>SyncProvider</tt> abstract class. These implementations provide a
|
||||
disconnected <code>RowSet</code>
|
||||
object with the ability to synchronize the data in the underlying data
|
||||
source with its data. These implementations are provided as
|
||||
the default <tt>SyncProvider</tt> implementations and are accessible via the
|
||||
<tt>SyncProvider</tt> SPI managed by the <tt>SyncFactory</tt>.
|
||||
Repository for the <code>RowSet</code> reference implementations of the
|
||||
<code>SyncProvider</code> abstract class. These implementations provide a
|
||||
disconnected <code>RowSet</code>
|
||||
object with the ability to synchronize the data in the underlying data
|
||||
source with its data. These implementations are provided as
|
||||
the default <code>SyncProvider</code> implementations and are accessible via the
|
||||
<code>SyncProvider</code> SPI managed by the <code>SyncFactory</code>.
|
||||
|
||||
<h3>1.0 <code>SyncProvider</code> Reference Implementations</h3>
|
||||
The main job of a <tt>SyncProvider</tt> implementation is to manage
|
||||
The main job of a <code>SyncProvider</code> implementation is to manage
|
||||
the reader and writer mechanisms.
|
||||
The <tt>SyncProvider</tt> SPI, as specified in the <tt>javax.sql.rowset.spi</tt>
|
||||
package, provides a pluggable mechanism by which <tt>javax.sql.RowSetReader</tt>
|
||||
and <tt>javax.sql.RowSetWriter</tt> implementations can be supplied to a disconnected
|
||||
<tt>RowSet</tt> object.
|
||||
The <code>SyncProvider</code> SPI, as specified in the <code>javax.sql.rowset.spi</code>
|
||||
package, provides a pluggable mechanism by which <code>javax.sql.RowSetReader</code>
|
||||
and <code>javax.sql.RowSetWriter</code> implementations can be supplied to a disconnected
|
||||
<code>RowSet</code> object.
|
||||
<P>
|
||||
A reader, a <code>javax.sql.RowSetReader</code>
|
||||
object, does the work necessary to populate a <code>RowSet</code> object with data.
|
||||
@ -100,24 +100,24 @@ implementations of the <code>SyncProvider</code> class:
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<b><tt>RIOptimisticProvider </tt></b>- provides the <tt>javax.sql.RowSetReader</tt>
|
||||
and <tt>javax.sql.RowSetWriter</tt> interface implementations and provides
|
||||
<b><code>RIOptimisticProvider</code></b> - provides the <code>javax.sql.RowSetReader</code>
|
||||
and <code>javax.sql.RowSetWriter</code> interface implementations and provides
|
||||
an optimistic concurrency model for synchronization. This model assumes that there
|
||||
will be few conflicts and therefore uses a relatively low grade of synchronization.
|
||||
If no other provider is available, this is the default provider that the
|
||||
<code>SyncFactory</code> will supply to a <code>RowSet</code> object.
|
||||
<br>
|
||||
<LI>
|
||||
<b><tt>RIXMLProvider </tt></b>- provides the <tt>XmlReader</tt> (an extension
|
||||
of the <tt>javax.sql.RowSetReader</tt> interface) and the <tt>XmlWriter</tt>
|
||||
(an extension of the <tt>javax.sql.RowSetWriter</tt> interface) to enable
|
||||
<tt>WebRowSet</tt> objects to write their state to a
|
||||
well formed XML document according to the <tt>WebRowSet</tt> XML schema
|
||||
<b><code>RIXMLProvider</code></b> - provides the <code>XmlReader</code> (an extension
|
||||
of the <code>javax.sql.RowSetReader</code> interface) and the <code>XmlWriter</code>
|
||||
(an extension of the <code>javax.sql.RowSetWriter</code> interface) to enable
|
||||
<code>WebRowSet</code> objects to write their state to a
|
||||
well formed XML document according to the <code>WebRowSet</code> XML schema
|
||||
definition.<br>
|
||||
</UL>
|
||||
|
||||
<h3>2.0 Basics in RowSet Population & Synchronization</h3>
|
||||
A rowset's first task is to populate itself with rows of column values.
|
||||
A rowset's first task is to populate itself with rows of column values.
|
||||
Generally, these rows will come from a relational database, so a rowset
|
||||
has properties that supply what is necessary for making a connection to
|
||||
a database and executing a query. A rowset that does not need to establish
|
||||
@ -127,28 +127,28 @@ properties set. The vast majority of RowSets, however, do need to set these
|
||||
properties. The general rule is that a RowSet is required to set only the
|
||||
properties that it uses.<br>
|
||||
<br>
|
||||
The <tt>command</tt> property contains the query that determines what
|
||||
The <code>command</code> property contains the query that determines what
|
||||
data a <code>RowSet</code> will contain. Rowsets have methods for setting a query's
|
||||
parameter(s), which means that a query can be executed multiple times with
|
||||
different parameters to produce different result sets. Or the query can be
|
||||
changed to something completely new to get a new result set.
|
||||
<p>Once a rowset contains the rows from a <tt>ResultSet</tt> object or some
|
||||
other data source, its column values can be updated, and its rows can be
|
||||
inserted or deleted. Any method that causes a change in the rowset's values
|
||||
or cursor position also notifies any object that has been registered as
|
||||
a listener with the rowset. So, for example, a table that displays the rowset's
|
||||
data in an applet can be notified of changes and make updates as they
|
||||
occur.<br>
|
||||
<p>Once a rowset contains the rows from a <code>ResultSet</code> object or some
|
||||
other data source, its column values can be updated, and its rows can be
|
||||
inserted or deleted. Any method that causes a change in the rowset's values
|
||||
or cursor position also notifies any object that has been registered as
|
||||
a listener with the rowset. So, for example, a table that displays the rowset's
|
||||
data in an applet can be notified of changes and make updates as they
|
||||
occur.<br>
|
||||
<br>
|
||||
The changes made to a rowset can be propagated back to the original data
|
||||
source to keep the rowset and its data source synchronized. Although this
|
||||
involves many operations behind the scenes, it is completely transparent
|
||||
to the application programmer and remains the concern of the RowSet provider
|
||||
developer. All an application has to do is invoke the method <tt>acceptChanges</tt>,
|
||||
and the data source backing the rowset will be updated to match the current
|
||||
values in the rowset. </p>
|
||||
|
||||
<p>A disconnected rowset, such as a <tt>CachedRowSet</tt> or <tt>WebRowSet</tt>
|
||||
The changes made to a rowset can be propagated back to the original data
|
||||
source to keep the rowset and its data source synchronized. Although this
|
||||
involves many operations behind the scenes, it is completely transparent
|
||||
to the application programmer and remains the concern of the RowSet provider
|
||||
developer. All an application has to do is invoke the method <code>acceptChanges</code>,
|
||||
and the data source backing the rowset will be updated to match the current
|
||||
values in the rowset. </p>
|
||||
|
||||
<p>A disconnected rowset, such as a <code>CachedRowSet</code> or <code>WebRowSet</code>
|
||||
object, establishes a connection to populate itself with data from a database
|
||||
and then closes the connection. The <code>RowSet</code> object will remain
|
||||
disconnected until it wants to propagate changes back to its database table,
|
||||
@ -156,9 +156,9 @@ a listener with the rowset. So, for example, a table that displays the rowset's
|
||||
the database), the rowset establishes a connection, write the changes, and then
|
||||
once again disconnects itself.<br>
|
||||
</p>
|
||||
|
||||
|
||||
<h3> 3.0 Other Possible Implementations</h3>
|
||||
There are many other possible implementations of the <tt>SyncProvider</tt> abstract
|
||||
There are many other possible implementations of the <code>SyncProvider</code> abstract
|
||||
class. One possibility is to employ a more robust synchronization model, which
|
||||
would give a <code>RowSet</code> object increased trust in the provider's
|
||||
ability to get any updates back to the original data source. Another possibility
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<!--
|
||||
@ -53,40 +53,40 @@ This package specifies five standard JDBC <code>RowSet</code> interfaces.
|
||||
All five extend the
|
||||
<a href="../RowSet.html">RowSet</a> interface described in the JDBC 3.0
|
||||
specification. It is anticipated that additional definitions
|
||||
of more specialized JDBC <code>RowSet</code> types will emerge as this technology
|
||||
matures. Future definitions <i>should</i> be specified as subinterfaces using
|
||||
of more specialized JDBC <code>RowSet</code> types will emerge as this technology
|
||||
matures. Future definitions <i>should</i> be specified as subinterfaces using
|
||||
inheritance similar to the way it is used in this specification.
|
||||
<p>
|
||||
<i>Note:</i> The interface definitions provided in this package form the basis for
|
||||
all compliant JDBC <code>RowSet</code> implementations. Vendors and more advanced
|
||||
developers who intend to provide their own compliant <code>RowSet</code> implementations
|
||||
developers who intend to provide their own compliant <code>RowSet</code> implementations
|
||||
should pay particular attention to the assertions detailed in specification
|
||||
interfaces.
|
||||
|
||||
<h3><a name="stdrowset">2.0 Standard RowSet Definitions</a></h3>
|
||||
<ul>
|
||||
<li><a href="JdbcRowSet.html"><b><code>JdbcRowSet</code></b></a> - A wrapper around
|
||||
a <tt>ResultSet</tt> object that makes it possible to use the result set as a
|
||||
<li><a href="JdbcRowSet.html"><b><code>JdbcRowSet</code></b></a> - A wrapper around
|
||||
a <code>ResultSet</code> object that makes it possible to use the result set as a
|
||||
JavaBeans™ component. Thus,
|
||||
a <tt>JdbcRowSet</tt> object can be a Bean that any tool
|
||||
a <code>JdbcRowSet</code> object can be a Bean that any tool
|
||||
makes available for assembling an application as part of a component based
|
||||
architecture . A <tt>JdbcRowSet</tt> object is a connected <code>RowSet</code>
|
||||
architecture. A <code>JdbcRowSet</code> object is a connected <code>RowSet</code>
|
||||
object, that is, it
|
||||
<b>must</b> continually maintain its connection to its data source using a JDBC
|
||||
technology-enabled driver ("JDBC driver"). In addition, a <code>JdbcRowSet</code>
|
||||
object provides a fully updatable and scrollable tabular
|
||||
object provides a fully updatable and scrollable tabular
|
||||
data structure as defined in the JDBC 3.0 specification.
|
||||
|
||||
<li><a href="CachedRowSet.html">
|
||||
<b><code>CachedRowSet</code>™</b></a>
|
||||
- A <tt>CachedRowSet</tt> object is a JavaBeans™
|
||||
- A <code>CachedRowSet</code> object is a JavaBeans™
|
||||
component that is scrollable, updatable, serializable, and generally disconnected from
|
||||
the source of its data. A <tt>CachedRowSet</tt> object
|
||||
the source of its data. A <code>CachedRowSet</code> object
|
||||
typically contains rows from a result set, but it can also contain rows from any
|
||||
file with a tabular format, such as a spreadsheet. <tt>CachedRowSet</tt> implementations
|
||||
<b>must</b> use the <tt>SyncFactory</tt> to manage and obtain pluggable
|
||||
file with a tabular format, such as a spreadsheet. <code>CachedRowSet</code> implementations
|
||||
<b>must</b> use the <code>SyncFactory</code> to manage and obtain pluggable
|
||||
<code>SyncProvider</code> objects to provide synchronization between the
|
||||
disconnected <code>RowSet</code> object and the originating data source.
|
||||
disconnected <code>RowSet</code> object and the originating data source.
|
||||
Typically a <code>SyncProvider</code> implementation relies upon a JDBC
|
||||
driver to obtain connectivity to a particular data source.
|
||||
Further details on this mechanism are discussed in the <a
|
||||
@ -94,13 +94,13 @@ href="spi/package-summary.html"><code>javax.sql.rowset.spi</code></a> package
|
||||
specification.
|
||||
|
||||
<li><a href="WebRowSet.html"><b><code>WebRowSet</code></b></a> - A
|
||||
<code>WebRowSet</code> object is an extension of <tt>CachedRowSet</tt>
|
||||
<code>WebRowSet</code> object is an extension of <code>CachedRowSet</code>
|
||||
that can read and write a <code>RowSet</code> object in a well formed XML format.
|
||||
This class calls an <a href="spi/XmlReader.html"><code>XmlReader</code></a> object
|
||||
This class calls an <a href="spi/XmlReader.html"><code>XmlReader</code></a> object
|
||||
(an extension of the <a href="../RowSetReader.html"><code>RowSetReader</code></a>
|
||||
interface) to read a rowset in XML format. It calls an
|
||||
<a href="spi/XmlWriter.html"><code>XmlWriter</code></a> object (an extension of the
|
||||
<a href="../RowSetWriter.html"><code>RowSetWriter</code></a> interface)
|
||||
<a href="spi/XmlWriter.html"><code>XmlWriter</code></a> object (an extension of the
|
||||
<a href="../RowSetWriter.html"><code>RowSetWriter</code></a> interface)
|
||||
to write a rowset in XML format. The reader and writer required by
|
||||
<code>WebRowSet</code> objects are provided by the
|
||||
<code>SyncFactory</code> in the form of <code>SyncProvider</code>
|
||||
@ -110,14 +110,14 @@ Schema is defined and published at
|
||||
<code>http://java.sun.com/xml/ns/jdbc/webrowset.xsd</code></a>.
|
||||
|
||||
<li><a href="FilteredRowSet.html"><b><code>FilteredRowSet</code></b></a> - A
|
||||
<tt>FilteredRowSet</tt> object provides filtering functionality in a programmatic
|
||||
and extensible way. There are many instances when a <tt>RowSet</tt> <code>object</code>
|
||||
<code>FilteredRowSet</code> object provides filtering functionality in a programmatic
|
||||
and extensible way. There are many instances when a <code>RowSet</code> <code>object</code>
|
||||
has a need to provide filtering in its contents without sacrificing the disconnected
|
||||
environment, thus saving the expense of having to create a connection to the data source.
|
||||
Solutions to this need vary from providing heavyweight full scale
|
||||
SQL query abilities, to portable components, to more lightweight
|
||||
approaches. A <code>FilteredRowSet</code> object consumes
|
||||
an implementation of the <a href="Predicate.html"><code>Predicate</code></a>
|
||||
an implementation of the <a href="Predicate.html"><code>Predicate</code></a>
|
||||
interface, which <b>may</b> define a filter at run time. In turn, a
|
||||
<code>FilteredRowSet</code> object is tasked with enforcing the set filter for both
|
||||
inbound and outbound read and write operations. That is, all filters can be
|
||||
@ -125,19 +125,19 @@ considered as bi-directional. No standard filters are defined;
|
||||
however, sufficient mechanics are specified to permit any required filter to be
|
||||
implemented.
|
||||
|
||||
<li><a href="JoinRowSet.html"><b><code>JoinRowSet</code></b></a> - The <tt>JoinRowSet</tt>
|
||||
interface describes a mechanism by which relationships can be established between
|
||||
two or more standard <code>RowSet</code> implementations. Any number of <tt>RowSet</tt>
|
||||
objects can be added to a <tt>JoinRowSet</tt> object provided the <tt>RowSet</tt>objects
|
||||
can be related in a SQL <tt>JOIN</tt> like fashion. By definition, the SQL <tt>JOIN</tt>
|
||||
<li><a href="JoinRowSet.html"><b><code>JoinRowSet</code></b></a> - The <code>JoinRowSet</code>
|
||||
interface describes a mechanism by which relationships can be established between
|
||||
two or more standard <code>RowSet</code> implementations. Any number of <code>RowSet</code>
|
||||
objects can be added to a <code>JoinRowSet</code> object provided the <code>RowSet</code>objects
|
||||
can be related in a SQL <code>JOIN</code> like fashion. By definition, the SQL <code>JOIN</code>
|
||||
statement is used to combine the data contained in two (<i>or more</i>) relational
|
||||
database tables based upon a common attribute. By establishing and then enforcing
|
||||
column matches, a <tt>JoinRowSet</tt> object establishes relationships between
|
||||
<tt>RowSet</tt> instances without the need to touch the originating data source.
|
||||
column matches, a <code>JoinRowSet</code> object establishes relationships between
|
||||
<code>RowSet</code> instances without the need to touch the originating data source.
|
||||
</ul>
|
||||
|
||||
<h3><a name="impl">3.0 Implementer's Guide</a></h3>
|
||||
Compliant implementations of JDBC <code>RowSet</code> Implementations
|
||||
Compliant implementations of JDBC <code>RowSet</code> Implementations
|
||||
<b>must</b> follow the assertions described in this specification. In accordance
|
||||
with the terms of the <a href="http://www.jcp.org">Java Community Process</a>, a
|
||||
Test Compatibility Kit (TCK) can be licensed to ensure compatibility with the
|
||||
@ -155,24 +155,24 @@ no-argument constructor.
|
||||
</li>
|
||||
<li><b>3.2 Role of the <code>BaseRowSet</code> Class</b>
|
||||
<p>
|
||||
A compliant JDBC <code>RowSet</code> implementation <b>must</b> implement one or more
|
||||
standard interfaces specified in this package and <b>may</b> extend the
|
||||
<a href="BaseRowSet.html"><code>BaseRowSet</code></a> abstract class. For example, a
|
||||
A compliant JDBC <code>RowSet</code> implementation <b>must</b> implement one or more
|
||||
standard interfaces specified in this package and <b>may</b> extend the
|
||||
<a href="BaseRowSet.html"><code>BaseRowSet</code></a> abstract class. For example, a
|
||||
<code>CachedRowSet</code> implementation must implement the <code>CachedRowSet</code>
|
||||
interface and extend the <code>BaseRowSet</code> abstract class. The
|
||||
<code>BaseRowSet</code> class provides the standard architecture on which all
|
||||
<code>RowSet</code> implementations should be built, regardless of whether the
|
||||
<code>RowSet</code> objects exist in a connected or disconnected environment.
|
||||
The <tt>BaseRowSet</tt> abstract class provides any <tt>RowSet</tt> implementation
|
||||
The <code>BaseRowSet</code> abstract class provides any <code>RowSet</code> implementation
|
||||
with its base functionality, including property manipulation and event notification
|
||||
that is fully compliant with <a href="http://java.sun.com/products/javabeans">JavaBeans</a>
|
||||
that is fully compliant with <a href="http://java.sun.com/products/javabeans">JavaBeans</a>
|
||||
component requirements. As an example, all implementations provided in the
|
||||
reference implementations (contained in the <tt>com.sun.rowset</tt> package) use
|
||||
the <tt>BaseRowSet</tt> class as a basis for their implementations.
|
||||
reference implementations (contained in the <code>com.sun.rowset</code> package) use
|
||||
the <code>BaseRowSet</code> class as a basis for their implementations.
|
||||
<P>
|
||||
The following table illustrates the features that the <code>BaseRowSet</code>
|
||||
abstract class provides.
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<table cellpadding="2" cellspacing="2" border="1" width="75%">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -185,8 +185,8 @@ abstract class provides.
|
||||
<td valign="top">Properties<br>
|
||||
</td>
|
||||
<td valign="top">Provides standard JavaBeans property manipulation
|
||||
mechanisms to allow applications to get and set <code>RowSet</code> command and
|
||||
property values. Refer to the documentation of the <tt>javax.sql.RowSet</tt>
|
||||
mechanisms to allow applications to get and set <code>RowSet</code> command and
|
||||
property values. Refer to the documentation of the <code>javax.sql.RowSet</code>
|
||||
interface (available in the JDBC 3.0 specification) for more details on
|
||||
the standard <code>RowSet</code> properties.<br>
|
||||
</td>
|
||||
@ -195,9 +195,9 @@ the standard <code>RowSet</code> properties.<br>
|
||||
<td valign="top">Event notification<br>
|
||||
</td>
|
||||
<td valign="top">Provides standard JavaBeans event notifications
|
||||
to registered event listeners. Refer to the documentation of <tt>javax.sql.RowSetEvent
|
||||
</tt> interface (available in the JDBC 3.0 specification) for
|
||||
more details on how to register and handle standard RowSet events generated
|
||||
to registered event listeners. Refer to the documentation of <code>javax.sql.RowSetEvent</code>
|
||||
interface (available in the JDBC 3.0 specification) for
|
||||
more details on how to register and handle standard RowSet events generated
|
||||
by compliant implementations.<br>
|
||||
</td>
|
||||
</tr>
|
||||
@ -223,8 +223,8 @@ by compliant implementations.<br>
|
||||
<p>
|
||||
The <code>JdbcRowSet</code> describes a <code>RowSet</code> object that <b>must</b> always
|
||||
be connected to the originating data source. Implementations of the <code>JdbcRowSet</code>
|
||||
should ensure that this connection is provided solely by a JDBC driver.
|
||||
Furthermore, <code>RowSet</code> objects that are implementations of the
|
||||
should ensure that this connection is provided solely by a JDBC driver.
|
||||
Furthermore, <code>RowSet</code> objects that are implementations of the
|
||||
<code>JdbcRowSet</code> interface and are therefore operating in a connected environment
|
||||
do not use the <code>SyncFactory</code> to obtain a <code>RowSetReader</code> object
|
||||
or a <code>RowSetWriter</code> object. They can safely rely on the JDBC driver to
|
||||
@ -234,24 +234,24 @@ supply their needs by virtue of the presence of an underlying updatable and scro
|
||||
<li>
|
||||
<b>3.4 Disconnected RowSet Requirements</b>
|
||||
<p>
|
||||
A disconnected <code>RowSet</code> object, such as a <code>CachedRowSet</code> object,
|
||||
A disconnected <code>RowSet</code> object, such as a <code>CachedRowSet</code> object,
|
||||
<b>should</b> delegate
|
||||
connection management to a <code>SyncProvider</code> object provided by the
|
||||
<code>SyncFactory</code>. To ensure fully disconnected semantics, all
|
||||
connection management to a <code>SyncProvider</code> object provided by the
|
||||
<code>SyncFactory</code>. To ensure fully disconnected semantics, all
|
||||
disconnected <code>RowSet</code> objects <b>must</b> ensure
|
||||
that the original connection made to the data source to populate the <code>RowSet</code>
|
||||
that the original connection made to the data source to populate the <code>RowSet</code>
|
||||
object is closed to permit the garbage collector to recover and release resources. The
|
||||
<code>SyncProvider</code> object ensures that the critical JDBC properties are
|
||||
maintained in order to re-establish a connection to the data source when a
|
||||
synchronization is required. A disconnected <code>RowSet</code> object should
|
||||
therefore ensure that no
|
||||
<code>SyncProvider</code> object ensures that the critical JDBC properties are
|
||||
maintained in order to re-establish a connection to the data source when a
|
||||
synchronization is required. A disconnected <code>RowSet</code> object should
|
||||
therefore ensure that no
|
||||
extraneous references remain on the <code>Connection</code> object.
|
||||
|
||||
<li><b>3.5 Role of RowSetMetaDataImpl</b>
|
||||
<p>
|
||||
The <code>RowsetMetaDataImpl</code> class is a utility class that provides an implementation of the
|
||||
<a href="../RowSetMetaData.html">RowSetMetaData</a> interface, supplying standard setter
|
||||
method implementations for metadata for both connected and disconnected
|
||||
method implementations for metadata for both connected and disconnected
|
||||
<code>RowSet</code> objects. All implementations are free to use this standard
|
||||
implementation but are not required to do so.
|
||||
|
||||
@ -261,10 +261,10 @@ The <code>RowSetWarning</code> class provides warnings that can be set
|
||||
on <code>RowSet</code> implementations.
|
||||
Similar to <a href="../../../java/sql/SQLWarning.html">SQLWarning</a> objects,
|
||||
<code>RowSetWarning</code> objects are silently chained to the object whose method
|
||||
caused the warning to be thrown. All <code>RowSet</code> implementations <b>should</b>
|
||||
caused the warning to be thrown. All <code>RowSet</code> implementations <b>should</b>
|
||||
ensure that this chaining occurs if a warning is generated and also ensure that the
|
||||
warnings are available via the <code>getRowSetWarnings</code> method defined in either
|
||||
the <code>JdbcRowSet</code> interface or the <code>CachedRowSet</code> interface.
|
||||
the <code>JdbcRowSet</code> interface or the <code>CachedRowSet</code> interface.
|
||||
After a warning has been retrieved with one of the
|
||||
<code>getRowSetWarnings</code> methods, the <code>RowSetWarning</code> method
|
||||
<code>getNextWarning</code> can be called on it to retrieve any warnings that might
|
||||
@ -273,10 +273,10 @@ on it, and so on until there are no more warnings.
|
||||
|
||||
<li><b>3.7 The Joinable Interface</b>
|
||||
<P>
|
||||
The <code>Joinable</code> interface provides both connected and disconnected
|
||||
<code>RowSet</code> objects with the capability to be added to a
|
||||
The <code>Joinable</code> interface provides both connected and disconnected
|
||||
<code>RowSet</code> objects with the capability to be added to a
|
||||
<code>JoinRowSet</code> object in an SQL <code>JOIN</code> operation.
|
||||
A <code>RowSet</code> object that has implemented the <code>Joinable</code>
|
||||
A <code>RowSet</code> object that has implemented the <code>Joinable</code>
|
||||
interface can set a match column, retrieve a match column, or unset a match column.
|
||||
A <code>JoinRowSet</code> object can then use the <code>RowSet</code> object's
|
||||
match column as a basis for adding the <code>RowSet</code> object.
|
||||
@ -298,7 +298,7 @@ match column as a basis for adding the <code>RowSet</code> object.
|
||||
<h3><a name="reldocs">5.0 Related Documentation</a></h3>
|
||||
<ul>
|
||||
<li><a href="http://docs.oracle.com/javase/tutorial/jdbc/basics/rowset.html">
|
||||
JDBC RowSet Tutorial</a>
|
||||
JDBC RowSet Tutorial</a>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
|
||||
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
|
||||
<!--
|
||||
@ -36,52 +36,52 @@ questions.
|
||||
<body bgcolor="#ffffff">
|
||||
Provides utility classes to allow serializable mappings between SQL types
|
||||
and data types in the Java programming language.
|
||||
<p> Standard JDBC <code>RowSet</code> implementations may use these utility
|
||||
<p> Standard JDBC <code>RowSet</code> implementations may use these utility
|
||||
classes to
|
||||
assist in the serialization of disconnected <code>RowSet</code> objects.
|
||||
assist in the serialization of disconnected <code>RowSet</code> objects.
|
||||
This is useful
|
||||
when transmitting a disconnected <tt>RowSet</tt> object over the wire to
|
||||
when transmitting a disconnected <code>RowSet</code> object over the wire to
|
||||
a different VM or across layers within an application.<br>
|
||||
</p>
|
||||
|
||||
<h3>1.0 SerialArray</h3>
|
||||
A serializable mapping in the Java programming language of an SQL ARRAY
|
||||
A serializable mapping in the Java programming language of an SQL ARRAY
|
||||
value. <br>
|
||||
<br>
|
||||
The <tt>SerialArray </tt>class provides a constructor for creating a <tt>SerialArray
|
||||
</tt>instance from an Array object, methods for getting the base type and
|
||||
The <code>SerialArray</code> class provides a constructor for creating a <code>SerialArray</code>
|
||||
instance from an Array object, methods for getting the base type and
|
||||
the SQL name for the base type, and methods for copying all or part of a
|
||||
<tt>SerialArray </tt>object. <br>
|
||||
<code>SerialArray</code> object. <br>
|
||||
|
||||
<h3>2.0 SerialBlob</h3>
|
||||
A serializable mapping in the Java programming language of an SQL BLOB
|
||||
value. <br>
|
||||
<br>
|
||||
The <tt>SerialBlob </tt>class provides a constructor for creating an instance
|
||||
The <code>SerialBlob</code>class provides a constructor for creating an instance
|
||||
from a Blob object. Note that the Blob object should have brought the SQL
|
||||
BLOB value's data over to the client before a <tt>SerialBlob </tt>object
|
||||
BLOB value's data over to the client before a <code>SerialBlob</code>object
|
||||
is constructed from it. The data of an SQL BLOB value can be materialized
|
||||
on the client as an array of bytes (using the method <tt>Blob.getBytes</tt>)
|
||||
or as a stream of uninterpreted bytes (using the method <tt>Blob.getBinaryStream</tt>).
|
||||
on the client as an array of bytes (using the method <code>Blob.getBytes</code>)
|
||||
or as a stream of uninterpreted bytes (using the method <code>Blob.getBinaryStream</code>).
|
||||
<br>
|
||||
<br>
|
||||
<tt>SerialBlob </tt>methods make it possible to make a copy of a <tt>SerialBlob
|
||||
</tt>object as an array of bytes or as a stream. They also make it possible
|
||||
to locate a given pattern of bytes or a <tt>Blob </tt>object within a <tt>SerialBlob
|
||||
</tt>object. <br>
|
||||
<code>SerialBlob</code> methods make it possible to make a copy of a <code>SerialBlob</code>
|
||||
object as an array of bytes or as a stream. They also make it possible
|
||||
to locate a given pattern of bytes or a <code>Blob</code> object within a <code>SerialBlob</code>
|
||||
object. <br>
|
||||
|
||||
<h3>3.0 SerialClob</h3>
|
||||
A serializable mapping in the Java programming language of an SQL CLOB
|
||||
value. <br>
|
||||
<br>
|
||||
The <tt>SerialClob </tt>class provides a constructor for creating an instance
|
||||
from a <tt>Clob </tt>object. Note that the <tt>Clob </tt>object should have
|
||||
brought the SQL CLOB value's data over to the client before a <tt>SerialClob
|
||||
</tt>object is constructed from it. The data of an SQL CLOB value can be
|
||||
The <code>SerialClob</code> class provides a constructor for creating an instance
|
||||
from a <code>Clob</code> object. Note that the <code>Clob</code> object should have
|
||||
brought the SQL CLOB value's data over to the client before a <code>SerialClob</code>
|
||||
object is constructed from it. The data of an SQL CLOB value can be
|
||||
materialized on the client as a stream of Unicode characters. <br>
|
||||
<br>
|
||||
<tt>SerialClob </tt>methods make it possible to get a substring from a
|
||||
<tt>SerialClob </tt>object or to locate the start of a pattern of characters.
|
||||
<code>SerialClob</code> methods make it possible to get a substring from a
|
||||
<code>SerialClob</code> object or to locate the start of a pattern of characters.
|
||||
<br>
|
||||
|
||||
<h3>5.0 SerialDatalink</h3>
|
||||
@ -89,11 +89,11 @@ A serializable mapping in the Java programming language of an SQL DATALINK
|
||||
value. A DATALINK value references a file outside of the underlying data source
|
||||
that the originating data source manages. <br>
|
||||
<br>
|
||||
<code>RowSet</code> implementations can use the method <tt>RowSet.getURL() </tt>to retrieve
|
||||
<code>RowSet</code> implementations can use the method <code>RowSet.getURL()</code> to retrieve
|
||||
a <code>java.net.URL</code> object, which can be used to manipulate the external data.
|
||||
<br>
|
||||
<br>
|
||||
<tt> java.net.URL url = rowset.getURL(1);</tt><br>
|
||||
<code> java.net.URL url = rowset.getURL(1);</code><br>
|
||||
|
||||
<h3>6.0 SerialJavaObject</h3>
|
||||
A serializable mapping in the Java programming language of an SQL JAVA_OBJECT
|
||||
@ -103,16 +103,16 @@ this simply wraps the serialization process. <br>
|
||||
If however, the serialization is not possible in the case where the Java
|
||||
object is not immediately serializable, this class will attempt to serialize
|
||||
all non static members to permit the object instance state to be serialized.
|
||||
Static or transient fields cannot be serialized and attempting to do so
|
||||
will result in a <tt>SerialException </tt>being thrown. <br>
|
||||
Static or transient fields cannot be serialized and attempting to do so
|
||||
will result in a <code>SerialException</code> being thrown. <br>
|
||||
|
||||
<h3>7.0 SerialRef</h3>
|
||||
A serializable mapping between the SQL REF type and the Java programming
|
||||
language. <br>
|
||||
<br>
|
||||
The <tt>SerialRef </tt>class provides a constructor for creating a <tt>SerialRef
|
||||
</tt>instance from a <tt>Ref</tt> type and provides methods for getting
|
||||
and setting the <tt>Ref</tt> object type. <br>
|
||||
The <code>SerialRef</code> class provides a constructor for creating a <code>SerialRef</code>
|
||||
instance from a <code>Ref</code> type and provides methods for getting
|
||||
and setting the <code>Ref</code> object type. <br>
|
||||
|
||||
<h3>8.0 SerialStruct</h3>
|
||||
A serializable mapping in the Java programming language of an SQL structured
|
||||
@ -121,58 +121,58 @@ form, and if an attribute is itself a structured type, each of its attributes
|
||||
that is not already serializable is mapped to a serializable form. <br>
|
||||
<br>
|
||||
In addition, if a <code>Map</code> object is passed to one of the constructors or
|
||||
to the method <code>getAttributes</code>, the structured type is custom mapped
|
||||
to the method <code>getAttributes</code>, the structured type is custom mapped
|
||||
according to the mapping specified in the <code>Map</code> object.
|
||||
<br>
|
||||
The <tt>SerialStruct </tt>class provides a constructor for creating an
|
||||
instance from a <tt>Struct</tt> object, a method for retrieving the SQL
|
||||
<br>
|
||||
The <code>SerialStruct</code> class provides a constructor for creating an
|
||||
instance from a <code>Struct</code> object, a method for retrieving the SQL
|
||||
type name of the SQL structured type in the database, and methods for retrieving
|
||||
its attribute values. <br>
|
||||
|
||||
|
||||
<h3>9.0 SQLInputImpl</h3>
|
||||
An input stream used for custom mapping user-defined types (UDTs). An
|
||||
<tt>SQLInputImpl</tt> object is an input stream that contains a stream of
|
||||
An input stream used for custom mapping user-defined types (UDTs). An
|
||||
<code>SQLInputImpl</code> object is an input stream that contains a stream of
|
||||
values that are
|
||||
the attributes of a UDT. This class is used by the driver behind the scenes
|
||||
when the method <tt>getObject</tt> is called on an SQL structured or distinct
|
||||
type that has a custom mapping; a programmer never invokes <tt>SQLInputImpl
|
||||
</tt> methods directly. <br>
|
||||
when the method <code>getObject</code> is called on an SQL structured or distinct
|
||||
type that has a custom mapping; a programmer never invokes <code>SQLInputImpl</code>
|
||||
methods directly. <br>
|
||||
<br>
|
||||
The <tt>SQLInputImpl</tt> class provides a set of reader methods
|
||||
analogous to the <tt>ResultSet</tt> getter methods. These methods make it
|
||||
possible to read the values in an <tt>SQLInputImpl</tt> object. The method
|
||||
The <code>SQLInputImpl</code> class provides a set of reader methods
|
||||
analogous to the <code>ResultSet</code> getter methods. These methods make it
|
||||
possible to read the values in an <code>SQLInputImpl</code> object. The method
|
||||
<code>wasNull</code> is used to determine whether the last value read was SQL NULL.
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
When a constructor or getter method that takes a <code>Map</code> object is called,
|
||||
When a constructor or getter method that takes a <code>Map</code> object is called,
|
||||
the JDBC driver calls the method
|
||||
<tt>SQLData.getSQLType</tt> to determine the SQL type of the UDT being custom
|
||||
<code>SQLData.getSQLType</code> to determine the SQL type of the UDT being custom
|
||||
mapped. The driver creates an instance of <code>SQLInputImpl</code>, populating it with
|
||||
the attributes of the UDT. The driver then passes the input stream to the
|
||||
method <tt>SQLData.readSQL</tt>, which in turn calls the <tt>SQLInputImpl</tt>
|
||||
method <code>SQLData.readSQL</code>, which in turn calls the <code>SQLInputImpl</code>
|
||||
methods to read the attributes from the input stream. <br>
|
||||
|
||||
|
||||
<h3>10.0 SQLOutputImpl</h3>
|
||||
The output stream for writing the attributes of a custom mapped user-defined
|
||||
type (UDT) back to the database. The driver uses this interface internally,
|
||||
and its methods are never directly invoked by an application programmer.
|
||||
<br>
|
||||
<br>
|
||||
When an application calls the method <tt>PreparedStatement.setObject, </tt>the
|
||||
driver checks to see whether the value to be written is a UDT with a custom
|
||||
mapping. If it is, there will be an entry in a type map containing the Class
|
||||
object for the class that implements <tt>SQLData </tt>for this UDT. If the
|
||||
value to be written is an instance of <tt>SQLData</tt>, the driver will
|
||||
create an instance of <code>SQLOutputImpl</code> and pass it to the method
|
||||
<tt>SQLData.writeSQL</tt>.
|
||||
The method <code>writeSQL</code> in turn calls the appropriate <tt>SQLOutputImpl</tt>
|
||||
writer methods to write data from the <code>SQLData</code> object to the
|
||||
When an application calls the method <code>PreparedStatement.setObject</code>, the
|
||||
driver checks to see whether the value to be written is a UDT with a custom
|
||||
mapping. If it is, there will be an entry in a type map containing the Class
|
||||
object for the class that implements <code>SQLData</code> for this UDT. If the
|
||||
value to be written is an instance of <code>SQLData</code>, the driver will
|
||||
create an instance of <code>SQLOutputImpl</code> and pass it to the method
|
||||
<code>SQLData.writeSQL</code>.
|
||||
The method <code>writeSQL</code> in turn calls the appropriate <code>SQLOutputImpl</code>
|
||||
writer methods to write data from the <code>SQLData</code> object to the
|
||||
<code>SQLOutputImpl</code>
|
||||
output stream as the representation of an SQL user-defined type.
|
||||
|
||||
output stream as the representation of an SQL user-defined type.
|
||||
|
||||
<h3>Custom Mapping</h3>
|
||||
The JDBC API provides mechanisms for mapping an SQL structured type or DISTINCT
|
||||
type to the Java programming language. Typically, a structured type is mapped
|
||||
The JDBC API provides mechanisms for mapping an SQL structured type or DISTINCT
|
||||
type to the Java programming language. Typically, a structured type is mapped
|
||||
to a class, and its attributes are mapped to fields in the class.
|
||||
(A DISTINCT type can thought of as having one attribute.) However, there are
|
||||
many other possibilities, and there may be any number of different mappings.
|
||||
@ -181,7 +181,7 @@ A programmer defines the mapping by implementing the interface <code>SQLData</co
|
||||
For example, if an SQL structured type named AUTHORS has the attributes NAME,
|
||||
TITLE, and PUBLISHER, it could be mapped to a Java class named Authors. The
|
||||
Authors class could have the fields name, title, and publisher, to which the
|
||||
attributes of AUTHORS are mapped. In such a case, the implementation of
|
||||
attributes of AUTHORS are mapped. In such a case, the implementation of
|
||||
<code>SQLData</code> could look like the following:
|
||||
<PRE>
|
||||
public class Authors implements SQLData {
|
||||
@ -213,27 +213,27 @@ attributes of AUTHORS are mapped. In such a case, the implementation of
|
||||
A <code>java.util.Map</code> object is used to associate the SQL structured
|
||||
type with its mapping to the class <code>Authors</code>. The following code fragment shows
|
||||
how a <code>Map</code> object might be created and given an entry associating
|
||||
<code>AUTHORS</code> and <code>Authors</code>.
|
||||
<code>AUTHORS</code> and <code>Authors</code>.
|
||||
<PRE>
|
||||
java.util.Map map = new java.util.HashMap();
|
||||
map.put("SCHEMA_NAME.AUTHORS", Class.forName("Authors");
|
||||
</PRE>
|
||||
|
||||
The <code>Map</code> object <i>map</i> now contains an entry with the
|
||||
|
||||
The <code>Map</code> object <i>map</i> now contains an entry with the
|
||||
fully qualified name of the SQL structured type and the <code>Class</code>
|
||||
object for the class <code>Authors</code>. It can be passed to a method
|
||||
to tell the driver how to map <code>AUTHORS</code> to <code>Authors</code>.
|
||||
to tell the driver how to map <code>AUTHORS</code> to <code>Authors</code>.
|
||||
<P>
|
||||
For a disconnected <code>RowSet</code> object, custom mapping can be done
|
||||
only when a <code>Map</code> object is passed to the method or constructor
|
||||
that will be doing the custom mapping. The situation is different for
|
||||
connected <code>RowSet</code> objects because they maintain a connection
|
||||
with the data source. A method that does custom mapping and is called by
|
||||
with the data source. A method that does custom mapping and is called by
|
||||
a disconnected <code>RowSet</code> object may use the <code>Map</code>
|
||||
object that is associated with the <code>Connection</code> object being
|
||||
used. So, in other words, if no map is specified, the connection's type
|
||||
used. So, in other words, if no map is specified, the connection's type
|
||||
map can be used by default.
|
||||
|
||||
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -37,14 +37,14 @@ questions.
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
The standard classes and interfaces that a third party vendor has to
|
||||
use in its implementation of a synchronization provider. These classes and
|
||||
interfaces are referred to as the Service Provider Interface (SPI). A vendor may
|
||||
use in its implementation of a synchronization provider. These classes and
|
||||
interfaces are referred to as the Service Provider Interface (SPI). A vendor may
|
||||
have its implementation included on the JDBC web page that lists available
|
||||
<code>SyncProvider</code> implementations by sending email to <code>jdbc@sun.com</code>.
|
||||
Doing this helps make developers aware of the implementation. To make it possible
|
||||
for a <code>RowSet</code> object to use an implementation, the vendor must register
|
||||
it with the <code>SyncFactory</code> singleton. (See the class comment for
|
||||
<code>SyncProvider</code> for a full explanation of the registration process and
|
||||
<code>SyncProvider</code> for a full explanation of the registration process and
|
||||
the naming convention to be used.)
|
||||
|
||||
<h2>Table of Contents</h2>
|
||||
@ -81,10 +81,10 @@ A <code>SyncProvider</code> implementation provides a disconnected <code>RowSet<
|
||||
object with the mechanisms for reading data into it and for writing data that has been
|
||||
modified in it
|
||||
back to the underlying data source. A <i>reader</i>, a <code>RowSetReader</code> or
|
||||
<code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the
|
||||
<code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code>
|
||||
<code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the
|
||||
<code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code>
|
||||
are called. A <i>writer</i>, a <code>RowSetWriter</code> or <code>XMLWriter</code>
|
||||
object, writes changes back to the underlying data source when the
|
||||
object, writes changes back to the underlying data source when the
|
||||
<code>CachedRowSet</code> method <code>acceptChanges</code> is called.
|
||||
<P>
|
||||
The process of writing changes in a <code>RowSet</code> object to its data source
|
||||
@ -96,9 +96,9 @@ referred to as <i>grades</i>.
|
||||
The lower grades of synchronization are
|
||||
known as <i>optimistic</i> concurrency levels because they optimistically
|
||||
assume that there will be no conflicts or very few conflicts. A conflict exists when
|
||||
the same data modified in the <code>RowSet</code> object has also been modified
|
||||
the same data modified in the <code>RowSet</code> object has also been modified
|
||||
in the data source. Using the optimistic concurrency model means that if there
|
||||
is a conflict, modifications to either the data source or the <code>RowSet</code>
|
||||
is a conflict, modifications to either the data source or the <code>RowSet</code>
|
||||
object will be lost.
|
||||
<P>
|
||||
Higher grades of synchronization are called <i>pessimistic</i> because they assume
|
||||
@ -106,7 +106,7 @@ that others will be accessing the data source and making modifications. These
|
||||
grades set varying levels of locks to increase the chances that no conflicts
|
||||
occur.
|
||||
<P>
|
||||
The lowest level of synchronization is simply writing any changes made to the
|
||||
The lowest level of synchronization is simply writing any changes made to the
|
||||
<code>RowSet</code> object to its underlying data source. The writer does
|
||||
nothing to check for conflicts.
|
||||
If there is a conflict and the data
|
||||
@ -116,69 +116,69 @@ source are lost.
|
||||
The <code>RIXMLProvider</code> implementation uses the lowest level
|
||||
of synchronization and just writes <code>RowSet</code> changes to the data source.
|
||||
This is true because typically XML data sources do not enable transaction
|
||||
techniques for maintaining the integrity of data. However, specific standards
|
||||
techniques for maintaining the integrity of data. However, specific standards
|
||||
groups have considered offering XML-based synchronization. For details, see
|
||||
<PRE>
|
||||
<a href="http://www.syncml.org">http://www.syncml.org</a>
|
||||
</PRE>
|
||||
<P>
|
||||
For the next level up, the
|
||||
writer checks to see if there are any conflicts, and if there are,
|
||||
writer checks to see if there are any conflicts, and if there are,
|
||||
it does not write anything to the data source. The problem with this concurrency
|
||||
level is that if another party has modified the corresponding data in the data source
|
||||
level is that if another party has modified the corresponding data in the data source
|
||||
since the <code>RowSet</code> object got its data,
|
||||
the changes made to the <code>RowSet</code> object are lost. The
|
||||
<code>RIOptimisticProvider</code> implementation uses this level of synchronization.
|
||||
<P>
|
||||
At higher levels of synchronization, referred to as pessimistic concurrency,
|
||||
the writer take steps to avoid conflicts by setting locks. Setting locks
|
||||
can vary from setting a lock on a single row to setting a lock on a table
|
||||
or the entire data source. The level of synchronization is therefore a tradeoff
|
||||
can vary from setting a lock on a single row to setting a lock on a table
|
||||
or the entire data source. The level of synchronization is therefore a tradeoff
|
||||
between the ability of users to access the data source concurrently and the ability
|
||||
of the writer to keep the data in the <code>RowSet</code> object and its data source
|
||||
synchronized.
|
||||
<P>
|
||||
It is a requirement that all disconnected <code>RowSet</code> objects
|
||||
(<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>,
|
||||
It is a requirement that all disconnected <code>RowSet</code> objects
|
||||
(<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>,
|
||||
and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects
|
||||
from the <code>SyncFactory</code> mechanism.
|
||||
<P>
|
||||
The reference implementation (RI) provides two synchronization providers.
|
||||
<UL>
|
||||
<LI><b><tt>RIOptimisticProvider</tt></b> <br>
|
||||
<UL>
|
||||
<LI><b><code>RIOptimisticProvider</code></b> <br>
|
||||
The default provider that the <code>SyncFactory</code> instance will
|
||||
supply to a disconnected <code>RowSet</code> object when no provider
|
||||
implementation is specified.<BR>
|
||||
This synchronization provider uses an optimistic concurrency model,
|
||||
assuming that there will be few conflicts among users
|
||||
assuming that there will be few conflicts among users
|
||||
who are accessing the same data in a database. It avoids
|
||||
using locks; rather, it checks to see if there is a conflict
|
||||
before trying to synchronize the <code>RowSet</code> object and the
|
||||
data source. If there is a conflict, it does nothing, meaning that
|
||||
changes to the <code>RowSet</code> object are not persisted to the data
|
||||
source.
|
||||
<LI><B><tt>RIXMLProvider</tt></B> <BR>
|
||||
<LI><B><code>RIXMLProvider</code></B> <BR>
|
||||
A synchronization provider that can be used with a
|
||||
<code>WebRowSet</code> object, which is a rowset that can be written
|
||||
in XML format or read from XML format. The
|
||||
<code>WebRowSet</code> object, which is a rowset that can be written
|
||||
in XML format or read from XML format. The
|
||||
<code>RIXMLProvider</code> implementation does no checking at all for
|
||||
conflicts and simply writes any updated data in the
|
||||
<code>WebRowSet</code> object to the underlying data source.
|
||||
<code>WebRowSet</code> objects use this provider when they are
|
||||
dealing with XML data.
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
These <code>SyncProvider</code> implementations
|
||||
are bundled with the reference implementation, which makes them always available to
|
||||
<code>RowSet</code> implementations.
|
||||
<code>RowSet</code> implementations.
|
||||
<code>SyncProvider</code> implementations make themselves available by being
|
||||
registered with the <code>SyncFactory</code> singleton. When a <code>RowSet</code>
|
||||
registered with the <code>SyncFactory</code> singleton. When a <code>RowSet</code>
|
||||
object requests a provider, by specifying it in the constructor or as an argument to the
|
||||
<code>CachedRowSet</code> method <code>setSyncProvider</code>,
|
||||
<code>CachedRowSet</code> method <code>setSyncProvider</code>,
|
||||
the <code>SyncFactory</code> singleton
|
||||
checks to see if the requested provider has been registered with it.
|
||||
If it has, the <code>SyncFactory</code> creates an instance of it and passes it to the
|
||||
requesting <code>RowSet</code> object.
|
||||
requesting <code>RowSet</code> object.
|
||||
If the <code>SyncProvider</code> implementation that is specified has not been registered,
|
||||
the <code>SyncFactory</code> singleton causes a <code>SyncFactoryException</code> object
|
||||
to be thrown. If no provider is specified,
|
||||
@ -189,18 +189,18 @@ and pass it to the requesting <code>RowSet</code> object.
|
||||
<P>
|
||||
If a <code>WebRowSet</code> object does not specify a provider in its constructor, the
|
||||
<code>SyncFactory</code> will give it an instance of <code>RIOptimisticProvider</code>.
|
||||
However, the constructor for <code>WebRowSet</code> is implemented to set the provider
|
||||
However, the constructor for <code>WebRowSet</code> is implemented to set the provider
|
||||
to the <code>RIXMLProvider</code>, which reads and writes a <code>RowSet</code> object
|
||||
in XML format.
|
||||
<P>
|
||||
See the <a href="SyncProvider.html">SyncProvider</a> class
|
||||
specification for further details.
|
||||
<p>
|
||||
Vendors may develop a <tt>SyncProvider</tt> implementation with any one of the possible
|
||||
Vendors may develop a <code>SyncProvider</code> implementation with any one of the possible
|
||||
levels of synchronization, thus giving <code>RowSet</code> objects a choice of
|
||||
synchronization mechanisms. A vendor can make its implementation available by
|
||||
synchronization mechanisms. A vendor can make its implementation available by
|
||||
registering the fully qualified class name with Oracle Corporation at
|
||||
<code>jdbc@sun.com</code>. This process is discussed in further detail below.
|
||||
<code>jdbc@sun.com</code>. This process is discussed in further detail below.
|
||||
|
||||
<h3><a name="arch">2.0 Service Provider Interface Architecture</a></h3>
|
||||
<b>2.1 Overview</b>
|
||||
@ -208,7 +208,7 @@ registering the fully qualified class name with Oracle Corporation at
|
||||
The Service Provider Interface provides a pluggable mechanism by which
|
||||
<code>SyncProvider</code> implementations can be registered and then generated when
|
||||
required. The lazy reference mechanism employed by the <code>SyncFactory</code> limits
|
||||
unnecessary resource consumption by not creating an instance until it is
|
||||
unnecessary resource consumption by not creating an instance until it is
|
||||
required by a disconnected
|
||||
<code>RowSet</code> object. The <code>SyncFactory</code> class also provides
|
||||
a standard API to configure logging options and streams that <b>may</b> be provided
|
||||
@ -216,11 +216,11 @@ by a particular <code>SyncProvider</code> implementation.
|
||||
<p>
|
||||
<b>2.2 Registering with the <code>SyncFactory</code></b>
|
||||
<p>
|
||||
A third party <code>SyncProvider</code> implementation must be registered with the
|
||||
<code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object
|
||||
to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and
|
||||
A third party <code>SyncProvider</code> implementation must be registered with the
|
||||
<code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object
|
||||
to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and
|
||||
<code>javax.sql.RowSetWriter</code>
|
||||
implementations. The following registration mechanisms are available to all
|
||||
implementations. The following registration mechanisms are available to all
|
||||
<code>SyncProvider</code> implementations:
|
||||
<ul>
|
||||
<li><b>System properties</b> - Properties set at the command line. These
|
||||
@ -235,9 +235,9 @@ reference implementation of this technology includes a standard property
|
||||
file than can be edited to add additional <code>SyncProvider</code> objects.
|
||||
|
||||
<li><b>JNDI Context</b> - Available providers can be registered on a JNDI
|
||||
context. The <tt>SyncFactory</tt> will attempt to load <tt>SyncProvider</tt>
|
||||
context. The <code>SyncFactory</code> will attempt to load <code>SyncProvider</code>
|
||||
objects bound to the context and register them with the factory. This
|
||||
context must be supplied to the <code>SyncFactory</code> for the mechanism to
|
||||
context must be supplied to the <code>SyncFactory</code> for the mechanism to
|
||||
function correctly.
|
||||
</ul>
|
||||
<p>
|
||||
@ -250,11 +250,11 @@ and how to configure the JNDI Context are explained in detail in the
|
||||
The <code>SyncFactory</code> generates a requested <code>SyncProvider</code>
|
||||
object if the provider has been correctly registered. The
|
||||
following policies are adhered to when either a disconnected <code>RowSet</code> object
|
||||
is instantiated with a specified <code>SyncProvider</code> implementation or is
|
||||
is instantiated with a specified <code>SyncProvider</code> implementation or is
|
||||
reconfigured at runtime with an alternative <code>SyncProvider</code> object.
|
||||
<ul>
|
||||
<li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
|
||||
contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is
|
||||
contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is
|
||||
thrown.
|
||||
|
||||
<li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
|
||||
@ -294,13 +294,13 @@ object. These grades are listed from the lowest quality of service to the highes
|
||||
<li><b>GRADE_NONE</b> - No synchronization with the originating data source is
|
||||
provided. A <code>SyncProvider</code> implementation returning this grade will simply
|
||||
attempt to write any data that has changed in the <code>RowSet</code> object to the
|
||||
underlying data source, overwriting whatever is there. No attempt is made to compare
|
||||
original values with current values to see if there is a conflict. The
|
||||
underlying data source, overwriting whatever is there. No attempt is made to compare
|
||||
original values with current values to see if there is a conflict. The
|
||||
<code>RIXMLProvider</code> is implemented with this grade.
|
||||
|
||||
<li><b>GRADE_CHECK_MODIFIED_AT_COMMIT</b> - A low grade of optimistic synchronization.
|
||||
A <code>SyncProvider</code> implementation returning this grade
|
||||
will check for conflicts in rows that have changed between the last synchronization
|
||||
will check for conflicts in rows that have changed between the last synchronization
|
||||
and the current synchronization under way. Any changes in the originating data source
|
||||
that have been modified will not be reflected in the disconnected <code>RowSet</code>
|
||||
object. If there are no conflicts, changes in the <code>RowSet</code> object will be
|
||||
@ -333,16 +333,16 @@ placed on a <code>RowSet</code> object's underlying data source and, if so,
|
||||
on which constructs the locks are placed. These locks will remain on the data
|
||||
source while the <code>RowSet</code> object is disconnected from the data source.
|
||||
<P>
|
||||
These constants <b>should</b> be considered complementary to the
|
||||
These constants <b>should</b> be considered complementary to the
|
||||
grade constants. The default setting for the majority of grade settings requires
|
||||
that no data source locks remain when a <code>RowSet</code> object is disconnected
|
||||
that no data source locks remain when a <code>RowSet</code> object is disconnected
|
||||
from its data source.
|
||||
The grades <code>GRADE_LOCK_WHEN_MODIFIED</code> and
|
||||
<code>GRADE_LOCK_WHEN_LOADED</code> allow a disconnected <code>RowSet</code> object
|
||||
to have a fine-grained control over the degree of locking.
|
||||
<ul>
|
||||
<li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source.
|
||||
This is the default lock setting for all <code>SyncProvider</code> implementations
|
||||
<li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source.
|
||||
This is the default lock setting for all <code>SyncProvider</code> implementations
|
||||
unless otherwise directed by a <code>RowSet</code> object.
|
||||
|
||||
<li><b>DATASOURCE_ROW_LOCK</b> - A lock is placed on the rows that are touched by
|
||||
@ -364,26 +364,26 @@ update data in the table or tables from which the <code>VIEW</code> was derived.
|
||||
<ul>
|
||||
<li><b>UPDATABLE_VIEW_SYNC</b>
|
||||
Indicates that a <code>SyncProvider</code> implementation supports synchronization
|
||||
to the table or tables from which the SQL <code>VIEW</code> used to populate a
|
||||
to the table or tables from which the SQL <code>VIEW</code> used to populate
|
||||
a <code>RowSet</code> object is derived.
|
||||
|
||||
<li><b>NONUPDATABLE_VIEW_SYNC</b>
|
||||
Indicates that a <code>SyncProvider</code> implementation does <b>not</b> support
|
||||
synchronization to the table or tables from which the SQL <code>VIEW</code>
|
||||
synchronization to the table or tables from which the SQL <code>VIEW</code>
|
||||
used to populate a <code>RowSet</code> object is derived.
|
||||
</ul>
|
||||
<p>
|
||||
<b>3.5 Usage of <code>SyncProvider</code> Grading and Locking</b>
|
||||
<p>
|
||||
In the example below, the reference <tt>CachedRowSetImpl</tt> implementation
|
||||
reconfigures its current <tt>SyncProvider</tt> object by calling the
|
||||
<tt>setSyncProvider</tt> method.<br>
|
||||
In the example below, the reference <code>CachedRowSetImpl</code> implementation
|
||||
reconfigures its current <code>SyncProvider</code> object by calling the
|
||||
<code>setSyncProvider</code> method.<br>
|
||||
|
||||
<PRE>
|
||||
CachedRowSetImpl crs = new CachedRowSetImpl();
|
||||
crs.setSyncProvider("com.foo.bar.HASyncProvider");
|
||||
</PRE>
|
||||
An application can retrieve the <tt>SyncProvider</tt> object currently in use
|
||||
An application can retrieve the <code>SyncProvider</code> object currently in use
|
||||
by a disconnected <code>RowSet</code> object. It can also retrieve the
|
||||
grade of synchronization with which the provider was implemented and the degree of
|
||||
locking currently in use. In addition, an application has the flexibility to set
|
||||
@ -396,14 +396,14 @@ synchronization. These operation are shown in the following code fragment.
|
||||
case: SyncProvider.GRADE_CHECK_ALL_AT_COMMIT
|
||||
//A high grade of optimistic synchronization
|
||||
break;
|
||||
case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT
|
||||
//A low grade of optimistic synchronization
|
||||
case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT
|
||||
//A low grade of optimistic synchronization
|
||||
break;
|
||||
case: SyncProvider.GRADE_LOCK_WHEN_LOADED
|
||||
// A pessimistic synchronization grade
|
||||
case: SyncProvider.GRADE_LOCK_WHEN_LOADED
|
||||
// A pessimistic synchronization grade
|
||||
break;
|
||||
case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED
|
||||
// A pessimistic synchronization grade
|
||||
case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED
|
||||
// A pessimistic synchronization grade
|
||||
break;
|
||||
case: SyncProvider.GRADE_NONE
|
||||
// No synchronization with the originating data source provided
|
||||
@ -421,13 +421,13 @@ synchronization. These operation are shown in the following code fragment.
|
||||
break;
|
||||
|
||||
case: SyncProvider.DATASOURCE_ROW_LOCK
|
||||
// A lock is placed on the rows that are touched by the original
|
||||
// A lock is placed on the rows that are touched by the original
|
||||
// SQL statement used to populate
|
||||
// the RowSet object that is using the SyncProvider
|
||||
break;
|
||||
|
||||
case: DATASOURCE_TABLE_LOCK
|
||||
// A lock is placed on all tables that are touched by the original
|
||||
// A lock is placed on all tables that are touched by the original
|
||||
// SQL statement used to populated
|
||||
// the RowSet object that is using the SyncProvider
|
||||
break;
|
||||
@ -450,12 +450,12 @@ method <code>acceptChanges</code> finishes and has detected one or more conflict
|
||||
it throws a <code>SyncProviderException</code> object. An application can
|
||||
catch the exception and
|
||||
have it retrieve a <code>SyncResolver</code> object by calling the method
|
||||
<code>SyncProviderException.getSyncResolver()</code>.
|
||||
<code>SyncProviderException.getSyncResolver()</code>.
|
||||
<P>
|
||||
A <code>SyncResolver</code> object, which is a special kind of
|
||||
A <code>SyncResolver</code> object, which is a special kind of
|
||||
<code>CachedRowSet</code> object or
|
||||
a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code>
|
||||
interface, examines the conflicts row by row. It is a duplicate of the
|
||||
a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code>
|
||||
interface, examines the conflicts row by row. It is a duplicate of the
|
||||
<code>RowSet</code> object being synchronized except that it contains only the data
|
||||
from the data source this is causing a conflict. All of the other column values are
|
||||
set to <code>null</code>. To navigate from one conflict value to another, a
|
||||
@ -472,18 +472,18 @@ provides methods for doing the following:
|
||||
to be changed
|
||||
</UL>
|
||||
<P>
|
||||
When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it
|
||||
When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it
|
||||
delegates to the <code>RowSet</code> object's <code>SyncProvider</code> object.
|
||||
How the writer provided by that <code>SyncProvider</code> object is implemented
|
||||
determines what level (grade) of checking for conflicts will be done. After all
|
||||
determines what level (grade) of checking for conflicts will be done. After all
|
||||
checking for conflicts is completed and one or more conflicts has been found, the method
|
||||
<code>acceptChanges</code> throws a <code>SyncProviderException</code> object. The
|
||||
application can catch the exception and use it to obtain a <code>SyncResolver</code> object.
|
||||
application can catch the exception and use it to obtain a <code>SyncResolver</code> object.
|
||||
<P>
|
||||
The application can then use <code>SyncResolver</code> methods to get information
|
||||
about each conflict and decide what to do. If the application logic or the user
|
||||
decides that a value in the <code>RowSet</code> object should be the one to
|
||||
persist, the application or user can overwrite the data source value with it.
|
||||
persist, the application or user can overwrite the data source value with it.
|
||||
<P>
|
||||
The comment for the <code>SyncResolver</code> interface has more detail.
|
||||
|
||||
|
@ -31,43 +31,43 @@ import sun.misc.SharedSecrets;
|
||||
import sun.misc.JavaLangAccess;
|
||||
|
||||
/**
|
||||
* <P>A thin wrapper around <code>java.util.Date</code> that allows
|
||||
* the JDBC API to identify this as an SQL <code>TIMESTAMP</code> value.
|
||||
* <P>A thin wrapper around {@code java.util.Date} that allows
|
||||
* the JDBC API to identify this as an SQL {@code TIMESTAMP} value.
|
||||
* It adds the ability
|
||||
* to hold the SQL <code>TIMESTAMP</code> fractional seconds value, by allowing
|
||||
* to hold the SQL {@code TIMESTAMP} fractional seconds value, by allowing
|
||||
* the specification of fractional seconds to a precision of nanoseconds.
|
||||
* A Timestamp also provides formatting and
|
||||
* parsing operations to support the JDBC escape syntax for timestamp values.
|
||||
*
|
||||
* <p>The precision of a Timestamp object is calculated to be either:
|
||||
* <ul>
|
||||
* <li><code>19 </code>, which is the number of characters in yyyy-mm-dd hh:mm:ss
|
||||
* <li> <code> 20 + s </code>, which is the number
|
||||
* of characters in the yyyy-mm-dd hh:mm:ss.[fff...] and <code>s</code> represents the scale of the given Timestamp,
|
||||
* <li>{@code 19 }, which is the number of characters in yyyy-mm-dd hh:mm:ss
|
||||
* <li> {@code 20 + s }, which is the number
|
||||
* of characters in the yyyy-mm-dd hh:mm:ss.[fff...] and {@code s} represents the scale of the given Timestamp,
|
||||
* its fractional seconds precision.
|
||||
*</ul>
|
||||
*
|
||||
* <P><B>Note:</B> This type is a composite of a <code>java.util.Date</code> and a
|
||||
* <P><B>Note:</B> This type is a composite of a {@code java.util.Date} and a
|
||||
* separate nanoseconds value. Only integral seconds are stored in the
|
||||
* <code>java.util.Date</code> component. The fractional seconds - the nanos - are
|
||||
* separate. The <code>Timestamp.equals(Object)</code> method never returns
|
||||
* <code>true</code> when passed an object
|
||||
* that isn't an instance of <code>java.sql.Timestamp</code>,
|
||||
* {@code java.util.Date} component. The fractional seconds - the nanos - are
|
||||
* separate. The {@code Timestamp.equals(Object)} method never returns
|
||||
* {@code true} when passed an object
|
||||
* that isn't an instance of {@code java.sql.Timestamp},
|
||||
* because the nanos component of a date is unknown.
|
||||
* As a result, the <code>Timestamp.equals(Object)</code>
|
||||
* As a result, the {@code Timestamp.equals(Object)}
|
||||
* method is not symmetric with respect to the
|
||||
* <code>java.util.Date.equals(Object)</code>
|
||||
* method. Also, the <code>hashCode</code> method uses the underlying
|
||||
* <code>java.util.Date</code>
|
||||
* {@code java.util.Date.equals(Object)}
|
||||
* method. Also, the {@code hashCode} method uses the underlying
|
||||
* {@code java.util.Date}
|
||||
* implementation and therefore does not include nanos in its computation.
|
||||
* <P>
|
||||
* Due to the differences between the <code>Timestamp</code> class
|
||||
* and the <code>java.util.Date</code>
|
||||
* Due to the differences between the {@code Timestamp} class
|
||||
* and the {@code java.util.Date}
|
||||
* class mentioned above, it is recommended that code not view
|
||||
* <code>Timestamp</code> values generically as an instance of
|
||||
* <code>java.util.Date</code>. The
|
||||
* inheritance relationship between <code>Timestamp</code>
|
||||
* and <code>java.util.Date</code> really
|
||||
* {@code Timestamp} values generically as an instance of
|
||||
* {@code java.util.Date}. The
|
||||
* inheritance relationship between {@code Timestamp}
|
||||
* and {@code java.util.Date} really
|
||||
* denotes implementation inheritance, and not type inheritance.
|
||||
*/
|
||||
public class Timestamp extends java.util.Date {
|
||||
@ -75,7 +75,7 @@ public class Timestamp extends java.util.Date {
|
||||
private static final JavaLangAccess jla = SharedSecrets.getJavaLangAccess();
|
||||
|
||||
/**
|
||||
* Constructs a <code>Timestamp</code> object initialized
|
||||
* Constructs a {@code Timestamp} object initialized
|
||||
* with the given values.
|
||||
*
|
||||
* @param year the year minus 1900
|
||||
@ -85,7 +85,7 @@ public class Timestamp extends java.util.Date {
|
||||
* @param minute 0 to 59
|
||||
* @param second 0 to 59
|
||||
* @param nano 0 to 999,999,999
|
||||
* @deprecated instead use the constructor <code>Timestamp(long millis)</code>
|
||||
* @deprecated instead use the constructor {@code Timestamp(long millis)}
|
||||
* @exception IllegalArgumentException if the nano argument is out of bounds
|
||||
*/
|
||||
@Deprecated
|
||||
@ -99,11 +99,11 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>Timestamp</code> object
|
||||
* Constructs a {@code Timestamp} object
|
||||
* using a milliseconds time value. The
|
||||
* integral seconds are stored in the underlying date value; the
|
||||
* fractional seconds are stored in the <code>nanos</code> field of
|
||||
* the <code>Timestamp</code> object.
|
||||
* fractional seconds are stored in the {@code nanos} field of
|
||||
* the {@code Timestamp} object.
|
||||
*
|
||||
* @param time milliseconds since January 1, 1970, 00:00:00 GMT.
|
||||
* A negative number is the number of milliseconds before
|
||||
@ -120,8 +120,8 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets this <code>Timestamp</code> object to represent a point in time that is
|
||||
* <tt>time</tt> milliseconds after January 1, 1970 00:00:00 GMT.
|
||||
* Sets this {@code Timestamp} object to represent a point in time that is
|
||||
* {@code time} milliseconds after January 1, 1970 00:00:00 GMT.
|
||||
*
|
||||
* @param time the number of milliseconds.
|
||||
* @see #getTime
|
||||
@ -139,7 +139,7 @@ public class Timestamp extends java.util.Date {
|
||||
|
||||
/**
|
||||
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
|
||||
* represented by this <code>Timestamp</code> object.
|
||||
* represented by this {@code Timestamp} object.
|
||||
*
|
||||
* @return the number of milliseconds since January 1, 1970, 00:00:00 GMT
|
||||
* represented by this date.
|
||||
@ -157,16 +157,16 @@ public class Timestamp extends java.util.Date {
|
||||
private int nanos;
|
||||
|
||||
/**
|
||||
* Converts a <code>String</code> object in JDBC timestamp escape format to a
|
||||
* <code>Timestamp</code> value.
|
||||
* Converts a {@code String} object in JDBC timestamp escape format to a
|
||||
* {@code Timestamp} value.
|
||||
*
|
||||
* @param s timestamp in format <code>yyyy-[m]m-[d]d hh:mm:ss[.f...]</code>. The
|
||||
* fractional seconds may be omitted. The leading zero for <code>mm</code>
|
||||
* and <code>dd</code> may also be omitted.
|
||||
* @param s timestamp in format {@code yyyy-[m]m-[d]d hh:mm:ss[.f...]}. The
|
||||
* fractional seconds may be omitted. The leading zero for {@code mm}
|
||||
* and {@code dd} may also be omitted.
|
||||
*
|
||||
* @return corresponding <code>Timestamp</code> value
|
||||
* @return corresponding {@code Timestamp} value
|
||||
* @exception java.lang.IllegalArgumentException if the given argument
|
||||
* does not have the format <code>yyyy-[m]m-[d]d hh:mm:ss[.f...]</code>
|
||||
* does not have the format {@code yyyy-[m]m-[d]d hh:mm:ss[.f...]}
|
||||
*/
|
||||
public static Timestamp valueOf(String s) {
|
||||
final int YEAR_LENGTH = 4;
|
||||
@ -258,11 +258,11 @@ public class Timestamp extends java.util.Date {
|
||||
|
||||
/**
|
||||
* Formats a timestamp in JDBC timestamp escape format.
|
||||
* <code>yyyy-mm-dd hh:mm:ss.fffffffff</code>,
|
||||
* where <code>ffffffffff</code> indicates nanoseconds.
|
||||
* {@code yyyy-mm-dd hh:mm:ss.fffffffff},
|
||||
* where {@code ffffffffff} indicates nanoseconds.
|
||||
*
|
||||
* @return a <code>String</code> object in
|
||||
* <code>yyyy-mm-dd hh:mm:ss.fffffffff</code> format
|
||||
* @return a {@code String} object in
|
||||
* {@code yyyy-mm-dd hh:mm:ss.fffffffff} format
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public String toString() {
|
||||
@ -315,9 +315,9 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets this <code>Timestamp</code> object's <code>nanos</code> value.
|
||||
* Gets this {@code Timestamp} object's {@code nanos} value.
|
||||
*
|
||||
* @return this <code>Timestamp</code> object's fractional seconds component
|
||||
* @return this {@code Timestamp} object's fractional seconds component
|
||||
* @see #setNanos
|
||||
*/
|
||||
public int getNanos() {
|
||||
@ -325,7 +325,7 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets this <code>Timestamp</code> object's <code>nanos</code> field
|
||||
* Sets this {@code Timestamp} object's {@code nanos} field
|
||||
* to the given value.
|
||||
*
|
||||
* @param n the new fractional seconds component
|
||||
@ -341,13 +341,13 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests to see if this <code>Timestamp</code> object is
|
||||
* equal to the given <code>Timestamp</code> object.
|
||||
* Tests to see if this {@code Timestamp} object is
|
||||
* equal to the given {@code Timestamp} object.
|
||||
*
|
||||
* @param ts the <code>Timestamp</code> value to compare with
|
||||
* @return <code>true</code> if the given <code>Timestamp</code>
|
||||
* object is equal to this <code>Timestamp</code> object;
|
||||
* <code>false</code> otherwise
|
||||
* @param ts the {@code Timestamp} value to compare with
|
||||
* @return {@code true} if the given {@code Timestamp}
|
||||
* object is equal to this {@code Timestamp} object;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean equals(Timestamp ts) {
|
||||
if (super.equals(ts)) {
|
||||
@ -362,22 +362,22 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests to see if this <code>Timestamp</code> object is
|
||||
* Tests to see if this {@code Timestamp} object is
|
||||
* equal to the given object.
|
||||
*
|
||||
* This version of the method <code>equals</code> has been added
|
||||
* This version of the method {@code equals} has been added
|
||||
* to fix the incorrect
|
||||
* signature of <code>Timestamp.equals(Timestamp)</code> and to preserve backward
|
||||
* signature of {@code Timestamp.equals(Timestamp)} and to preserve backward
|
||||
* compatibility with existing class files.
|
||||
*
|
||||
* Note: This method is not symmetric with respect to the
|
||||
* <code>equals(Object)</code> method in the base class.
|
||||
* {@code equals(Object)} method in the base class.
|
||||
*
|
||||
* @param ts the <code>Object</code> value to compare with
|
||||
* @return <code>true</code> if the given <code>Object</code> is an instance
|
||||
* of a <code>Timestamp</code> that
|
||||
* is equal to this <code>Timestamp</code> object;
|
||||
* <code>false</code> otherwise
|
||||
* @param ts the {@code Object} value to compare with
|
||||
* @return {@code true} if the given {@code Object} is an instance
|
||||
* of a {@code Timestamp} that
|
||||
* is equal to this {@code Timestamp} object;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean equals(java.lang.Object ts) {
|
||||
if (ts instanceof Timestamp) {
|
||||
@ -388,40 +388,40 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether this <code>Timestamp</code> object is
|
||||
* earlier than the given <code>Timestamp</code> object.
|
||||
* Indicates whether this {@code Timestamp} object is
|
||||
* earlier than the given {@code Timestamp} object.
|
||||
*
|
||||
* @param ts the <code>Timestamp</code> value to compare with
|
||||
* @return <code>true</code> if this <code>Timestamp</code> object is earlier;
|
||||
* <code>false</code> otherwise
|
||||
* @param ts the {@code Timestamp} value to compare with
|
||||
* @return {@code true} if this {@code Timestamp} object is earlier;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean before(Timestamp ts) {
|
||||
return compareTo(ts) < 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether this <code>Timestamp</code> object is
|
||||
* later than the given <code>Timestamp</code> object.
|
||||
* Indicates whether this {@code Timestamp} object is
|
||||
* later than the given {@code Timestamp} object.
|
||||
*
|
||||
* @param ts the <code>Timestamp</code> value to compare with
|
||||
* @return <code>true</code> if this <code>Timestamp</code> object is later;
|
||||
* <code>false</code> otherwise
|
||||
* @param ts the {@code Timestamp} value to compare with
|
||||
* @return {@code true} if this {@code Timestamp} object is later;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean after(Timestamp ts) {
|
||||
return compareTo(ts) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares this <code>Timestamp</code> object to the given
|
||||
* <code>Timestamp</code> object.
|
||||
* Compares this {@code Timestamp} object to the given
|
||||
* {@code Timestamp} object.
|
||||
*
|
||||
* @param ts the <code>Timestamp</code> object to be compared to
|
||||
* this <code>Timestamp</code> object
|
||||
* @return the value <code>0</code> if the two <code>Timestamp</code>
|
||||
* objects are equal; a value less than <code>0</code> if this
|
||||
* <code>Timestamp</code> object is before the given argument;
|
||||
* and a value greater than <code>0</code> if this
|
||||
* <code>Timestamp</code> object is after the given argument.
|
||||
* @param ts the {@code Timestamp} object to be compared to
|
||||
* this {@code Timestamp} object
|
||||
* @return the value {@code 0} if the two {@code Timestamp}
|
||||
* objects are equal; a value less than {@code 0} if this
|
||||
* {@code Timestamp} object is before the given argument;
|
||||
* and a value greater than {@code 0} if this
|
||||
* {@code Timestamp} object is after the given argument.
|
||||
* @since 1.4
|
||||
*/
|
||||
public int compareTo(Timestamp ts) {
|
||||
@ -439,16 +439,16 @@ public class Timestamp extends java.util.Date {
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares this <code>Timestamp</code> object to the given
|
||||
* <code>Date</code> object.
|
||||
* Compares this {@code Timestamp} object to the given
|
||||
* {@code Date} object.
|
||||
*
|
||||
* @param o the <code>Date</code> to be compared to
|
||||
* this <code>Timestamp</code> object
|
||||
* @return the value <code>0</code> if this <code>Timestamp</code> object
|
||||
* and the given object are equal; a value less than <code>0</code>
|
||||
* if this <code>Timestamp</code> object is before the given argument;
|
||||
* and a value greater than <code>0</code> if this
|
||||
* <code>Timestamp</code> object is after the given argument.
|
||||
* @param o the {@code Date} to be compared to
|
||||
* this {@code Timestamp} object
|
||||
* @return the value {@code 0} if this {@code Timestamp} object
|
||||
* and the given object are equal; a value less than {@code 0}
|
||||
* if this {@code Timestamp} object is before the given argument;
|
||||
* and a value greater than {@code 0} if this
|
||||
* {@code Timestamp} object is after the given argument.
|
||||
*
|
||||
* @since 1.5
|
||||
*/
|
||||
|
@ -35,7 +35,7 @@ import java.io.IOException;
|
||||
/**
|
||||
* A Java virtual machine.
|
||||
*
|
||||
* <p> A <code>VirtualMachine</code> represents a Java virtual machine to which this
|
||||
* <p> A {@code VirtualMachine} represents a Java virtual machine to which this
|
||||
* Java virtual machine has attached. The Java virtual machine to which it is
|
||||
* attached is sometimes called the <i>target virtual machine</i>, or <i>target VM</i>.
|
||||
* An application (typically a tool such as a managemet console or profiler) uses a
|
||||
@ -47,7 +47,7 @@ import java.io.IOException;
|
||||
* with an identifier that identifies the target virtual machine. The identifier is
|
||||
* implementation-dependent but is typically the process identifier (or pid) in
|
||||
* environments where each Java virtual machine runs in its own operating system process.
|
||||
* Alternatively, a <code>VirtualMachine</code> instance is obtained by invoking the
|
||||
* Alternatively, a {@code VirtualMachine} instance is obtained by invoking the
|
||||
* {@link #attach(VirtualMachineDescriptor) attach} method with a {@link
|
||||
* com.sun.tools.attach.VirtualMachineDescriptor VirtualMachineDescriptor} obtained
|
||||
* from the list of virtual machine descriptors returned by the {@link #list list} method.
|
||||
@ -66,7 +66,7 @@ import java.io.IOException;
|
||||
* <p> In addition to loading agents a VirtualMachine provides read access to the
|
||||
* {@link java.lang.System#getProperties() system properties} in the target VM.
|
||||
* This can be useful in some environments where properties such as
|
||||
* <code>java.home</code>, <code>os.name</code>, or <code>os.arch</code> are
|
||||
* {@code java.home}, {@code os.name}, or {@code os.arch} are
|
||||
* used to construct the path to agent that will be loaded into the target VM.
|
||||
*
|
||||
* <p> The following example demonstrates how VirtualMachine may be used:</p>
|
||||
@ -87,7 +87,7 @@ import java.io.IOException;
|
||||
* </pre>
|
||||
*
|
||||
* <p> In this example we attach to a Java virtual machine that is identified by
|
||||
* the process identifier <code>2177</code>. Then the JMX management agent is
|
||||
* the process identifier {@code 2177}. Then the JMX management agent is
|
||||
* started in the target process using the supplied arguments. Finally, the
|
||||
* client detaches from the target VM. </p>
|
||||
*
|
||||
@ -111,7 +111,7 @@ public abstract class VirtualMachine {
|
||||
* The abstract identifier that identifies the Java virtual machine.
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>provider</code> or <code>id</code> is <code>null</code>.
|
||||
* If {@code provider} or {@code id} is {@code null}.
|
||||
*/
|
||||
protected VirtualMachine(AttachProvider provider, String id) {
|
||||
if (provider == null) {
|
||||
@ -160,10 +160,10 @@ public abstract class VirtualMachine {
|
||||
* attachVirtualMachine} method in turn. If a provider successfully
|
||||
* attaches then the iteration terminates, and the VirtualMachine created
|
||||
* by the provider that successfully attached is returned by this method.
|
||||
* If the <code>attachVirtualMachine</code> method of all providers throws
|
||||
* If the {@code attachVirtualMachine} method of all providers throws
|
||||
* {@link com.sun.tools.attach.AttachNotSupportedException AttachNotSupportedException}
|
||||
* then this method also throws <code>AttachNotSupportedException</code>.
|
||||
* This means that <code>AttachNotSupportedException</code> is thrown when
|
||||
* then this method also throws {@code AttachNotSupportedException}.
|
||||
* This means that {@code AttachNotSupportedException} is thrown when
|
||||
* the identifier provided to this method is invalid, or the identifier
|
||||
* corresponds to a Java virtual machine that does not exist, or none
|
||||
* of the providers can attach to it. This exception is also thrown if
|
||||
@ -178,19 +178,19 @@ public abstract class VirtualMachine {
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link com.sun.tools.attach.AttachPermission AttachPermission}
|
||||
* <tt>("attachVirtualMachine")</tt>, or another permission
|
||||
* {@code ("attachVirtualMachine")}, or another permission
|
||||
* required by the implementation.
|
||||
*
|
||||
* @throws AttachNotSupportedException
|
||||
* If the <code>attachVirtualmachine</code> method of all installed
|
||||
* providers throws <code>AttachNotSupportedException</code>, or
|
||||
* If the {@code attachVirtualmachine} method of all installed
|
||||
* providers throws {@code AttachNotSupportedException}, or
|
||||
* there aren't any providers installed.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>id</code> is <code>null</code>.
|
||||
* If {@code id} is {@code null}.
|
||||
*/
|
||||
public static VirtualMachine attach(String id)
|
||||
throws AttachNotSupportedException, IOException
|
||||
@ -231,18 +231,18 @@ public abstract class VirtualMachine {
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link com.sun.tools.attach.AttachPermission AttachPermission}
|
||||
* <tt>("attachVirtualMachine")</tt>, or another permission
|
||||
* {@code ("attachVirtualMachine")}, or another permission
|
||||
* required by the implementation.
|
||||
*
|
||||
* @throws AttachNotSupportedException
|
||||
* If the attach provider's <code>attachVirtualmachine</code>
|
||||
* throws <code>AttachNotSupportedException</code>.
|
||||
* If the attach provider's {@code attachVirtualmachine}
|
||||
* throws {@code AttachNotSupportedException}.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>vmd</code> is <code>null</code>.
|
||||
* If {@code vmd} is {@code null}.
|
||||
*/
|
||||
public static VirtualMachine attach(VirtualMachineDescriptor vmd)
|
||||
throws AttachNotSupportedException, IOException
|
||||
@ -259,7 +259,7 @@ public abstract class VirtualMachine {
|
||||
* loadAgent} for example) is in progress when this method is invoked then
|
||||
* the behaviour is implementation dependent. In other words, it is
|
||||
* implementation specific if the operation completes or throws
|
||||
* <tt>IOException</tt>.
|
||||
* {@code IOException}.
|
||||
*
|
||||
* <p> If already detached from the virtual machine then invoking this
|
||||
* method has no effect. </p>
|
||||
@ -296,26 +296,26 @@ public abstract class VirtualMachine {
|
||||
* platform equivalent of a dynamic library. Alternatively, it may be statically linked into the VM.
|
||||
* This method causes the given agent library to be loaded into the target
|
||||
* VM (if not already loaded or if not statically linked into the VM).
|
||||
* It then causes the target VM to invoke the <code>Agent_OnAttach</code> function
|
||||
* or, for a statically linked agent named 'L', the <code>Agent_OnAttach_L</code> function
|
||||
* It then causes the target VM to invoke the {@code Agent_OnAttach} function
|
||||
* or, for a statically linked agent named 'L', the {@code Agent_OnAttach_L} function
|
||||
* as specified in the
|
||||
* <a href="../../../../../../../../technotes/guides/jvmti/index.html"> JVM Tools
|
||||
* Interface</a> specification. Note that the <code>Agent_OnAttach[_L]</code>
|
||||
* Interface</a> specification. Note that the {@code Agent_OnAttach[_L]}
|
||||
* function is invoked even if the agent library was loaded prior to invoking
|
||||
* this method.
|
||||
*
|
||||
* <p> The agent library provided is the name of the agent library. It is interpreted
|
||||
* in the target virtual machine in an implementation-dependent manner. Typically an
|
||||
* implementation will expand the library name into an operating system specific file
|
||||
* name. For example, on UNIX systems, the name <tt>L</tt> might be expanded to
|
||||
* <tt>libL.so</tt>, and located using the search path specified by the
|
||||
* <tt>LD_LIBRARY_PATH</tt> environment variable. If the agent named 'L' is
|
||||
* name. For example, on UNIX systems, the name {@code L} might be expanded to
|
||||
* {@code libL.so}, and located using the search path specified by the
|
||||
* {@code LD_LIBRARY_PATH} environment variable. If the agent named 'L' is
|
||||
* statically linked into the VM then the VM must export a function named
|
||||
* <code>Agent_OnAttach_L</code>.</p>
|
||||
* {@code Agent_OnAttach_L}.</p>
|
||||
*
|
||||
* <p> If the <code>Agent_OnAttach[_L]</code> function in the agent library returns
|
||||
* <p> If the {@code Agent_OnAttach[_L]} function in the agent library returns
|
||||
* an error then an {@link com.sun.tools.attach.AgentInitializationException} is
|
||||
* thrown. The return value from the <code>Agent_OnAttach[_L]</code> can then be
|
||||
* thrown. The return value from the {@code Agent_OnAttach[_L]} can then be
|
||||
* obtained by invoking the {@link
|
||||
* com.sun.tools.attach.AgentInitializationException#returnValue() returnValue}
|
||||
* method on the exception. </p>
|
||||
@ -324,8 +324,8 @@ public abstract class VirtualMachine {
|
||||
* The name of the agent library.
|
||||
*
|
||||
* @param options
|
||||
* The options to provide to the <code>Agent_OnAttach[_L]</code>
|
||||
* function (can be <code>null</code>).
|
||||
* The options to provide to the {@code Agent_OnAttach[_L]}
|
||||
* function (can be {@code null}).
|
||||
*
|
||||
* @throws AgentLoadException
|
||||
* If the agent library does not exist, the agent library is not
|
||||
@ -333,13 +333,13 @@ public abstract class VirtualMachine {
|
||||
* loaded for another reason.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>Agent_OnAttach[_L]</code> function returns an error.
|
||||
* If the {@code Agent_OnAttach[_L]} function returns an error.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agentLibrary</code> is <code>null</code>.
|
||||
* If {@code agentLibrary} is {@code null}.
|
||||
*
|
||||
* @see com.sun.tools.attach.AgentInitializationException#returnValue()
|
||||
*/
|
||||
@ -351,9 +351,9 @@ public abstract class VirtualMachine {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking:
|
||||
*
|
||||
* <blockquote><tt>
|
||||
* <blockquote><code>
|
||||
* {@link #loadAgentLibrary(String, String) loadAgentLibrary}(agentLibrary, null);
|
||||
* </tt></blockquote>
|
||||
* </code></blockquote>
|
||||
*
|
||||
* @param agentLibrary
|
||||
* The name of the agent library.
|
||||
@ -364,13 +364,13 @@ public abstract class VirtualMachine {
|
||||
* loaded for another reason.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>Agent_OnAttach[_L]</code> function returns an error.
|
||||
* If the {@code Agent_OnAttach[_L]} function returns an error.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agentLibrary</code> is <code>null</code>.
|
||||
* If {@code agentLibrary} is {@code null}.
|
||||
*/
|
||||
public void loadAgentLibrary(String agentLibrary)
|
||||
throws AgentLoadException, AgentInitializationException, IOException
|
||||
@ -389,18 +389,18 @@ public abstract class VirtualMachine {
|
||||
* linked with the VM. The parsing of the agentPath parameter into
|
||||
* a statically linked library name is done in a platform
|
||||
* specific manner in the VM. For example, in UNIX, an agentPath parameter
|
||||
* of <code>/a/b/libL.so</code> would name a library 'L'.
|
||||
* of {@code /a/b/libL.so} would name a library 'L'.
|
||||
*
|
||||
* See the JVM TI Specification for more details.
|
||||
*
|
||||
* This method causes the given agent library to be loaded into the target
|
||||
* VM (if not already loaded or if not statically linked into the VM).
|
||||
* It then causes the target VM to invoke the <code>Agent_OnAttach</code>
|
||||
* It then causes the target VM to invoke the {@code Agent_OnAttach}
|
||||
* function or, for a statically linked agent named 'L', the
|
||||
* <code>Agent_OnAttach_L</code> function as specified in the
|
||||
* {@code Agent_OnAttach_L} function as specified in the
|
||||
* <a href="../../../../../../../../technotes/guides/jvmti/index.html"> JVM Tools
|
||||
* Interface</a> specification.
|
||||
* Note that the <code>Agent_OnAttach[_L]</code>
|
||||
* Note that the {@code Agent_OnAttach[_L]}
|
||||
* function is invoked even if the agent library was loaded prior to invoking
|
||||
* this method.
|
||||
*
|
||||
@ -408,9 +408,9 @@ public abstract class VirtualMachine {
|
||||
* agent library. Unlike {@link #loadAgentLibrary loadAgentLibrary}, the library name
|
||||
* is not expanded in the target virtual machine. </p>
|
||||
*
|
||||
* <p> If the <code>Agent_OnAttach[_L]</code> function in the agent library returns
|
||||
* <p> If the {@code Agent_OnAttach[_L]} function in the agent library returns
|
||||
* an error then an {@link com.sun.tools.attach.AgentInitializationException} is
|
||||
* thrown. The return value from the <code>Agent_OnAttach[_L]</code> can then be
|
||||
* thrown. The return value from the {@code Agent_OnAttach[_L]} can then be
|
||||
* obtained by invoking the {@link
|
||||
* com.sun.tools.attach.AgentInitializationException#returnValue() returnValue}
|
||||
* method on the exception. </p>
|
||||
@ -419,8 +419,8 @@ public abstract class VirtualMachine {
|
||||
* The full path of the agent library.
|
||||
*
|
||||
* @param options
|
||||
* The options to provide to the <code>Agent_OnAttach[_L]</code>
|
||||
* function (can be <code>null</code>).
|
||||
* The options to provide to the {@code Agent_OnAttach[_L]}
|
||||
* function (can be {@code null}).
|
||||
*
|
||||
* @throws AgentLoadException
|
||||
* If the agent library does not exist, the agent library is not
|
||||
@ -428,13 +428,13 @@ public abstract class VirtualMachine {
|
||||
* loaded for another reason.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>Agent_OnAttach[_L]</code> function returns an error.
|
||||
* If the {@code Agent_OnAttach[_L]} function returns an error.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agentPath</code> is <code>null</code>.
|
||||
* If {@code agentPath} is {@code null}.
|
||||
*
|
||||
* @see com.sun.tools.attach.AgentInitializationException#returnValue()
|
||||
*/
|
||||
@ -446,9 +446,9 @@ public abstract class VirtualMachine {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking:
|
||||
*
|
||||
* <blockquote><tt>
|
||||
* <blockquote><code>
|
||||
* {@link #loadAgentPath(String, String) loadAgentPath}(agentLibrary, null);
|
||||
* </tt></blockquote>
|
||||
* </code></blockquote>
|
||||
*
|
||||
* @param agentPath
|
||||
* The full path to the agent library.
|
||||
@ -459,13 +459,13 @@ public abstract class VirtualMachine {
|
||||
* loaded for another reason.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>Agent_OnAttach[_L]</code> function returns an error.
|
||||
* If the {@code Agent_OnAttach[_L]} function returns an error.
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agentPath</code> is <code>null</code>.
|
||||
* If {@code agentPath} is {@code null}.
|
||||
*/
|
||||
public void loadAgentPath(String agentPath)
|
||||
throws AgentLoadException, AgentInitializationException, IOException
|
||||
@ -482,29 +482,29 @@ public abstract class VirtualMachine {
|
||||
* machine where it is interpreted. The target virtual machine attempts to start
|
||||
* the agent as specified by the {@link java.lang.instrument} specification.
|
||||
* That is, the specified JAR file is added to the system class path (of the target
|
||||
* virtual machine), and the <code>agentmain</code> method of the agent class, specified
|
||||
* by the <code>Agent-Class</code> attribute in the JAR manifest, is invoked. This
|
||||
* method completes when the <code>agentmain</code> method completes.
|
||||
* virtual machine), and the {@code agentmain} method of the agent class, specified
|
||||
* by the {@code Agent-Class} attribute in the JAR manifest, is invoked. This
|
||||
* method completes when the {@code agentmain} method completes.
|
||||
*
|
||||
* @param agent
|
||||
* Path to the JAR file containing the agent.
|
||||
*
|
||||
* @param options
|
||||
* The options to provide to the agent's <code>agentmain</code>
|
||||
* method (can be <code>null</code>).
|
||||
* The options to provide to the agent's {@code agentmain}
|
||||
* method (can be {@code null}).
|
||||
*
|
||||
* @throws AgentLoadException
|
||||
* If the agent does not exist, or cannot be started in the manner
|
||||
* specified in the {@link java.lang.instrument} specification.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>agentmain</code> throws an exception
|
||||
* If the {@code agentmain} throws an exception
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agent</code> is <code>null</code>.
|
||||
* If {@code agent} is {@code null}.
|
||||
*/
|
||||
public abstract void loadAgent(String agent, String options)
|
||||
throws AgentLoadException, AgentInitializationException, IOException;
|
||||
@ -514,9 +514,9 @@ public abstract class VirtualMachine {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking:
|
||||
*
|
||||
* <blockquote><tt>
|
||||
* <blockquote><code>
|
||||
* {@link #loadAgent(String, String) loadAgent}(agent, null);
|
||||
* </tt></blockquote>
|
||||
* </code></blockquote>
|
||||
*
|
||||
* @param agent
|
||||
* Path to the JAR file containing the agent.
|
||||
@ -526,13 +526,13 @@ public abstract class VirtualMachine {
|
||||
* specified in the {@link java.lang.instrument} specification.
|
||||
*
|
||||
* @throws AgentInitializationException
|
||||
* If the <code>agentmain</code> throws an exception
|
||||
* If the {@code agentmain} throws an exception
|
||||
*
|
||||
* @throws IOException
|
||||
* If an I/O error occurs
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <code>agent</code> is <code>null</code>.
|
||||
* If {@code agent} is {@code null}.
|
||||
*/
|
||||
public void loadAgent(String agent)
|
||||
throws AgentLoadException, AgentInitializationException, IOException
|
||||
@ -544,16 +544,16 @@ public abstract class VirtualMachine {
|
||||
* Returns the current system properties in the target virtual machine.
|
||||
*
|
||||
* <p> This method returns the system properties in the target virtual
|
||||
* machine. Properties whose key or value is not a <tt>String</tt> are
|
||||
* machine. Properties whose key or value is not a {@code String} are
|
||||
* omitted. The method is approximately equivalent to the invocation of the
|
||||
* method {@link java.lang.System#getProperties System.getProperties}
|
||||
* in the target virtual machine except that properties with a key or
|
||||
* value that is not a <tt>String</tt> are not included.
|
||||
* value that is not a {@code String} are not included.
|
||||
*
|
||||
* <p> This method is typically used to decide which agent to load into
|
||||
* the target virtual machine with {@link #loadAgent loadAgent}, or
|
||||
* {@link #loadAgentLibrary loadAgentLibrary}. For example, the
|
||||
* <code>java.home</code> or <code>user.dir</code> properties might be
|
||||
* {@code java.home} or {@code user.dir} properties might be
|
||||
* use to create the path to the agent library or JAR file.
|
||||
*
|
||||
* @return The system properties
|
||||
@ -586,7 +586,7 @@ public abstract class VirtualMachine {
|
||||
* agent might create an agent property for its transport address.
|
||||
*
|
||||
* <p> This method returns the agent properties whose key and value is a
|
||||
* <tt>String</tt>. Properties whose key or value is not a <tt>String</tt>
|
||||
* {@code String}. Properties whose key or value is not a {@code String}
|
||||
* are omitted. If there are no agent properties maintained in the target
|
||||
* virtual machine then an empty property list is returned.
|
||||
*
|
||||
@ -686,7 +686,7 @@ public abstract class VirtualMachine {
|
||||
* Tests this VirtualMachine for equality with another object.
|
||||
*
|
||||
* <p> If the given object is not a VirtualMachine then this
|
||||
* method returns <tt>false</tt>. For two VirtualMachines to
|
||||
* method returns {@code false}. For two VirtualMachines to
|
||||
* be considered equal requires that they both reference the same
|
||||
* provider, and their {@link VirtualMachineDescriptor#id() identifiers} are equal. </p>
|
||||
*
|
||||
@ -695,7 +695,7 @@ public abstract class VirtualMachine {
|
||||
*
|
||||
* @param ob The object to which this object is to be compared
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, the given object is
|
||||
* @return {@code true} if, and only if, the given object is
|
||||
* a VirtualMachine that is equal to this
|
||||
* VirtualMachine.
|
||||
*/
|
||||
@ -715,7 +715,7 @@ public abstract class VirtualMachine {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string representation of the <code>VirtualMachine</code>.
|
||||
* Returns the string representation of the {@code VirtualMachine}.
|
||||
*/
|
||||
public String toString() {
|
||||
return provider.toString() + ": " + id;
|
||||
|
@ -30,7 +30,7 @@ import com.sun.tools.attach.spi.AttachProvider;
|
||||
/**
|
||||
* Describes a Java virtual machine.
|
||||
*
|
||||
* <p> A <code>VirtualMachineDescriptor</code> is a container class used to
|
||||
* <p> A {@code VirtualMachineDescriptor} is a container class used to
|
||||
* describe a Java virtual machine. It encapsulates an identifier that identifies
|
||||
* a target virtual machine, and a reference to the {@link
|
||||
* com.sun.tools.attach.spi.AttachProvider AttachProvider} that should be used
|
||||
@ -39,15 +39,15 @@ import com.sun.tools.attach.spi.AttachProvider;
|
||||
* environments where each Java virtual machine runs in its own operating system
|
||||
* process. </p>
|
||||
*
|
||||
* <p> A <code>VirtualMachineDescriptor</code> also has a {@link #displayName() displayName}.
|
||||
* <p> A {@code VirtualMachineDescriptor} also has a {@link #displayName() displayName}.
|
||||
* The display name is typically a human readable string that a tool might
|
||||
* display to a user. For example, a tool that shows a list of Java
|
||||
* virtual machines running on a system might use the display name rather
|
||||
* than the identifier. A <code>VirtualMachineDescriptor</code> may be
|
||||
* than the identifier. A {@code VirtualMachineDescriptor} may be
|
||||
* created without a <i>display name</i>. In that case the identifier is
|
||||
* used as the <i>display name</i>.
|
||||
*
|
||||
* <p> <code>VirtualMachineDescriptor</code> instances are typically created by
|
||||
* <p> {@code VirtualMachineDescriptor} instances are typically created by
|
||||
* invoking the {@link com.sun.tools.attach.VirtualMachine#list VirtualMachine.list()}
|
||||
* method. This returns the complete list of descriptors to describe the
|
||||
* Java virtual machines known to all installed {@link
|
||||
@ -72,7 +72,7 @@ public class VirtualMachineDescriptor {
|
||||
* @param displayName The display name.
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If any of the arguments are <code>null</code>
|
||||
* If any of the arguments are {@code null}
|
||||
*/
|
||||
public VirtualMachineDescriptor(AttachProvider provider, String id, String displayName) {
|
||||
if (provider == null) {
|
||||
@ -95,10 +95,10 @@ public class VirtualMachineDescriptor {
|
||||
* <p> This convenience constructor works as if by invoking the
|
||||
* three-argument constructor as follows:
|
||||
*
|
||||
* <blockquote><tt>
|
||||
* <blockquote><code>
|
||||
* new {@link #VirtualMachineDescriptor(AttachProvider, String, String)
|
||||
* VirtualMachineDescriptor}(provider, id, id);
|
||||
* </tt></blockquote>
|
||||
* </code></blockquote>
|
||||
*
|
||||
* <p> That is, it creates a virtual machine descriptor such that
|
||||
* the <i>display name</i> is the same as the virtual machine
|
||||
@ -108,16 +108,16 @@ public class VirtualMachineDescriptor {
|
||||
* @param id The virtual machine identifier.
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>provider</tt> or <tt>id</tt> is <tt>null</tt>.
|
||||
* If {@code provider} or {@code id} is {@code null}.
|
||||
*/
|
||||
public VirtualMachineDescriptor(AttachProvider provider, String id) {
|
||||
this(provider, id, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the <code>AttachProvider</code> that this descriptor references.
|
||||
* Return the {@code AttachProvider} that this descriptor references.
|
||||
*
|
||||
* @return The <code>AttachProvider</code> that this descriptor references.
|
||||
* @return The {@code AttachProvider} that this descriptor references.
|
||||
*/
|
||||
public AttachProvider provider() {
|
||||
return provider;
|
||||
@ -161,7 +161,7 @@ public class VirtualMachineDescriptor {
|
||||
* Tests this VirtualMachineDescriptor for equality with another object.
|
||||
*
|
||||
* <p> If the given object is not a VirtualMachineDescriptor then this
|
||||
* method returns <tt>false</tt>. For two VirtualMachineDescriptors to
|
||||
* method returns {@code false}. For two VirtualMachineDescriptors to
|
||||
* be considered equal requires that they both reference the same
|
||||
* provider, and their {@link #id() identifiers} are equal. </p>
|
||||
*
|
||||
@ -170,7 +170,7 @@ public class VirtualMachineDescriptor {
|
||||
*
|
||||
* @param ob The object to which this object is to be compared
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, the given object is
|
||||
* @return {@code true} if, and only if, the given object is
|
||||
* a VirtualMachineDescriptor that is equal to this
|
||||
* VirtualMachineDescriptor.
|
||||
*/
|
||||
@ -190,7 +190,7 @@ public class VirtualMachineDescriptor {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string representation of the <code>VirtualMachineDescriptor</code>.
|
||||
* Returns the string representation of the {@code VirtualMachineDescriptor}.
|
||||
*/
|
||||
public String toString() {
|
||||
String s = provider.toString() + ": " + id;
|
||||
|
@ -142,7 +142,7 @@ public abstract class HttpServerProvider {
|
||||
* visible to the system class loader, and that jar file contains a
|
||||
* provider-configuration file named
|
||||
* {@code com.sun.net.httpserver.HttpServerProvider} in the resource
|
||||
* directory <tt>META-INF/services</tt>, then the first class name
|
||||
* directory {@code META-INF/services}, then the first class name
|
||||
* specified in that file is taken. The class is loaded and
|
||||
* instantiated; if this process fails then an unspecified unchecked error
|
||||
* or exception is thrown. </p></li>
|
||||
|
@ -197,8 +197,8 @@ import java.io.IOException;
|
||||
* in a jar file that is visible to the defining class loader of
|
||||
* the {@link com.sun.jdi.connect.Connector} type,
|
||||
* and that jar file contains a provider configuration file named
|
||||
* <tt>com.sun.jdi.connect.Connector</tt> in the resource directory
|
||||
* <tt>META-INF/services</tt>, and the provider configuration file
|
||||
* {@code com.sun.jdi.connect.Connector} in the resource directory
|
||||
* {@code META-INF/services}, and the provider configuration file
|
||||
* lists the full-qualified class name of the Connector
|
||||
* implementation. A Connector is a class that implements the
|
||||
* {@link com.sun.jdi.connect.Connector Connector} interface. More
|
||||
@ -209,7 +209,7 @@ import java.io.IOException;
|
||||
* LaunchingConnector}. The format of the provider configuration file
|
||||
* is one fully-qualified class name per line. Space and tab characters
|
||||
* surrounding each class, as well as blank lines are ignored. The
|
||||
* comment character is <tt>'#'</tt> (<tt>0x23</tt>), and on each
|
||||
* comment character is {@code '#'} ({@code 0x23}), and on each
|
||||
* line all characters following the first comment character are
|
||||
* ignored. The file must be encoded in UTF-8.
|
||||
*
|
||||
@ -227,8 +227,8 @@ import java.io.IOException;
|
||||
* visible to the defining class loader for the
|
||||
* {@link com.sun.jdi.connect.spi.TransportService} type, and that jar
|
||||
* file contains a provider configuration file named
|
||||
* <tt>com.sun.jdi.connect.spi.TransportService</tt> in the resource
|
||||
* directory <tt>META-INF/services</tt>, and the provider
|
||||
* {@code com.sun.jdi.connect.spi.TransportService} in the resource
|
||||
* directory {@code META-INF/services}, and the provider
|
||||
* configuration file lists the full-qualified class name of the
|
||||
* TransportService implementation. A TransportService is a concrete
|
||||
* sub-class of {@link com.sun.jdi.connect.spi.TransportService
|
||||
@ -245,12 +245,12 @@ import java.io.IOException;
|
||||
* com.sun.jdi.connect.Transport Transport} that in turn
|
||||
* encapsulates the TransportService.
|
||||
* The AttachingConnector will be named based on the name of the
|
||||
* transport service concatenated with the string <tt>Attach</tt>.
|
||||
* transport service concatenated with the string {@code Attach}.
|
||||
* For example, if the transport service {@link
|
||||
* com.sun.jdi.connect.spi.TransportService#name() name()} method
|
||||
* returns <tt>telepathic</tt> then the AttachingConnector will
|
||||
* be named <tt>telepathicAttach</tt>. Similiarly the ListeningConnector
|
||||
* will be named with the string <tt>Listen</tt> tagged onto the
|
||||
* returns {@code telepathic} then the AttachingConnector will
|
||||
* be named {@code telepathicAttach}. Similiarly the ListeningConnector
|
||||
* will be named with the string {@code Listen} tagged onto the
|
||||
* name of the transport service. The {@link
|
||||
* com.sun.jdi.connect.Connector#description() description()} method
|
||||
* of both the AttachingConnector, and the ListeningConnector, will
|
||||
@ -259,10 +259,10 @@ import java.io.IOException;
|
||||
* the AttachingConnector and the ListeningConnector will have two
|
||||
* Connector {@link com.sun.jdi.connect.Connector$Argument Arguments}.
|
||||
* A {@link com.sun.jdi.connect.Connector$StringArgument StringArgument}
|
||||
* named <tt>address</tt> is the connector argument to specify the
|
||||
* named {@code address} is the connector argument to specify the
|
||||
* address to attach too, or to listen on. A
|
||||
* {@link com.sun.jdi.connect.Connector$IntegerArgument IntegerArgument}
|
||||
* named <tt>timeout</tt> is the connector argument to specify the
|
||||
* named {@code timeout} is the connector argument to specify the
|
||||
* timeout when attaching, or accepting. The timeout connector may be
|
||||
* ignored depending on if the transport service supports an attach
|
||||
* timeout or accept timeout.
|
||||
@ -372,13 +372,13 @@ public interface VirtualMachineManager {
|
||||
* A Connector can then use this method to create a virtual machine
|
||||
* mirror to represent the composite state of the target VM.
|
||||
*
|
||||
* <p> The <tt>process</tt> argument specifies the
|
||||
* <p> The {@code process} argument specifies the
|
||||
* {@link java.lang.Process} object for the taget VM. It may be
|
||||
* specified as <tt>null</tt>. If the target VM is launched
|
||||
* specified as {@code null}. If the target VM is launched
|
||||
* by a {@link com.sun.jdi.connect.LaunchingConnector
|
||||
* LaunchingConnector} the <tt>process</tt> argument should be
|
||||
* LaunchingConnector} the {@code process} argument should be
|
||||
* specified, otherwise calling {@link com.sun.jdi.VirtualMachine#process()}
|
||||
* on the created virtual machine will return <tt>null</tt>.
|
||||
* on the created virtual machine will return {@code null}.
|
||||
*
|
||||
* <p> This method exists so that Connectors may create
|
||||
* a virtual machine mirror when a connection is established
|
||||
@ -391,7 +391,7 @@ public interface VirtualMachineManager {
|
||||
*
|
||||
* @param process
|
||||
* If launched, the {@link java.lang.Process} object for
|
||||
* the target VM. <tt>null</tt> if not launched.
|
||||
* the target VM. {@code null} if not launched.
|
||||
*
|
||||
* @return new virtual machine representing the target VM.
|
||||
*
|
||||
@ -413,7 +413,7 @@ public interface VirtualMachineManager {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking {@link
|
||||
* #createVirtualMachine(Connection, Process)} method and
|
||||
* specifying <tt>null</tt> as the <tt>process</tt> argument.
|
||||
* specifying {@code null} as the {@code process} argument.
|
||||
*
|
||||
* <p> This method exists so that Connectors may create
|
||||
* a virtual machine mirror when a connection is established
|
||||
|
@ -58,7 +58,7 @@ package com.sun.jdi.connect;
|
||||
public class TransportTimeoutException extends java.io.IOException {
|
||||
private static final long serialVersionUID = 4107035242623365074L;
|
||||
/**
|
||||
* Constructs a <tt>TransportTimeoutException</tt> with no detail
|
||||
* Constructs a {@code TransportTimeoutException} with no detail
|
||||
* message.
|
||||
*/
|
||||
public TransportTimeoutException() {
|
||||
@ -66,7 +66,7 @@ public class TransportTimeoutException extends java.io.IOException {
|
||||
|
||||
|
||||
/**
|
||||
* Constructs a <tt>TransportTimeoutException</tt> with the
|
||||
* Constructs a {@code TransportTimeoutException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param message the detail message pertaining to this exception.
|
||||
|
@ -49,14 +49,14 @@ package com.sun.jdi.connect.spi;
|
||||
public class ClosedConnectionException extends java.io.IOException {
|
||||
private static final long serialVersionUID = 3877032124297204774L;
|
||||
/**
|
||||
* Constructs a <tt>ClosedConnectionException</tt> with no detail
|
||||
* Constructs a {@code ClosedConnectionException} with no detail
|
||||
* message.
|
||||
*/
|
||||
public ClosedConnectionException() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <tt>ClosedConnectionException</tt> with the
|
||||
* Constructs a {@code ClosedConnectionException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param message the detail message pertaining to this exception.
|
||||
|
@ -105,7 +105,7 @@ public abstract class TransportService {
|
||||
* multiple concurrent connections to a single address that
|
||||
* it is listening on.
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this transport
|
||||
* @return {@code true} if, and only if, this transport
|
||||
* service supports multiple connections.
|
||||
*/
|
||||
public abstract boolean supportsMultipleConnections();
|
||||
@ -115,7 +115,7 @@ public abstract class TransportService {
|
||||
* Tell whether or not this transport service supports a timeout
|
||||
* when attaching to a target VM.
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this transport
|
||||
* @return {@code true} if, and only if, this transport
|
||||
* service supports attaching with a timeout.
|
||||
*
|
||||
* @see #attach(String,long,long)
|
||||
@ -126,7 +126,7 @@ public abstract class TransportService {
|
||||
* Tell whether or not this transport service supports a
|
||||
* timeout while waiting for a target VM to connect.
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this transport
|
||||
* @return {@code true} if, and only if, this transport
|
||||
* service supports timeout while waiting for
|
||||
* a target VM to connect.
|
||||
*
|
||||
@ -138,7 +138,7 @@ public abstract class TransportService {
|
||||
* Tells whether or not this transport service supports a
|
||||
* timeout when handshaking with the target VM.
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this transport
|
||||
* @return {@code true} if, and only if, this transport
|
||||
* service supports a timeout while handshaking
|
||||
* with the target VM.
|
||||
*
|
||||
@ -176,15 +176,15 @@ public abstract class TransportService {
|
||||
*
|
||||
* @param attachTimeout
|
||||
* If this transport service supports an attach timeout,
|
||||
* and if <tt>attachTimeout</tt> is positive, then it specifies
|
||||
* and if {@code attachTimeout} is positive, then it specifies
|
||||
* the timeout, in milliseconds (more or less), to use
|
||||
* when attaching to the target VM. If the transport service
|
||||
* does not support an attach timeout, or if <tt>attachTimeout</tt>
|
||||
* does not support an attach timeout, or if {@code attachTimeout}
|
||||
* is specified as zero then attach without any timeout.
|
||||
*
|
||||
* @param handshakeTimeout
|
||||
* If this transport service supports a handshake timeout,
|
||||
* and if <tt>handshakeTimeout</tt> is positive, then it
|
||||
* and if {@code handshakeTimeout} is positive, then it
|
||||
* specifies the timeout, in milliseconds (more or less), to
|
||||
* use when handshaking with the target VM. The exact
|
||||
* usage of the timeout are specific to the transport service.
|
||||
@ -195,7 +195,7 @@ public abstract class TransportService {
|
||||
* use the handshakeTimeout as a timeout for the duration of the
|
||||
* handshake exchange.
|
||||
* If the transport service does not support a handshake
|
||||
* timeout, or if <tt>handshakeTimeout</tt> is specified
|
||||
* timeout, or if {@code handshakeTimeout} is specified
|
||||
* as zero then the handshake does not timeout if there
|
||||
* isn't a response from the target VM.
|
||||
*
|
||||
@ -221,9 +221,9 @@ public abstract class TransportService {
|
||||
/**
|
||||
* A <i>listen key</i>.
|
||||
*
|
||||
* <p> A <tt>TransportService</tt> may listen on multiple, yet
|
||||
* <p> A {@code TransportService} may listen on multiple, yet
|
||||
* different, addresses at the same time. To uniquely identify
|
||||
* each <tt>listener</tt> a listen key is created each time that
|
||||
* each {@code listener} a listen key is created each time that
|
||||
* {@link #startListening startListening} is called. The listen
|
||||
* key is used in calls to the {@link #accept accept} method
|
||||
* to accept inbound connections to that listener. A listen
|
||||
@ -250,7 +250,7 @@ public abstract class TransportService {
|
||||
*
|
||||
* @param address
|
||||
* The address to start listening for connections,
|
||||
* or <tt>null</tt> to listen on an address chosen
|
||||
* or {@code null} to listen on an address chosen
|
||||
* by the transport service.
|
||||
*
|
||||
* @return a listen key to be used in subsequent calls to be
|
||||
@ -268,8 +268,8 @@ public abstract class TransportService {
|
||||
/**
|
||||
* Listens on an address chosen by the transport service.
|
||||
*
|
||||
* <p> This convenience method works as if by invoking {@link
|
||||
* #startListening(String) startListening(<tt>null</tt>)}. </p>
|
||||
* <p> This convenience method works as if by invoking
|
||||
* {@link #startListening(String) startListening(null)}.
|
||||
*
|
||||
* @return a listen key to be used in subsequent calls to be
|
||||
* {@link #accept accept} or {@link #stopListening
|
||||
@ -327,16 +327,16 @@ public abstract class TransportService {
|
||||
*
|
||||
* @param acceptTimeout
|
||||
* if this transport service supports an accept timeout, and
|
||||
* if <tt>acceptTimeout</tt> is positive then block for up to
|
||||
* <tt>acceptTimeout</tt> milliseconds, more or less, while waiting
|
||||
* if {@code acceptTimeout} is positive then block for up to
|
||||
* {@code acceptTimeout} milliseconds, more or less, while waiting
|
||||
* for the target VM to connect.
|
||||
* If the transport service does not support an accept timeout
|
||||
* or if <tt>acceptTimeout</tt> is zero then block indefinitely
|
||||
* or if {@code acceptTimeout} is zero then block indefinitely
|
||||
* for a target VM to connect.
|
||||
*
|
||||
* @param handshakeTimeout
|
||||
* If this transport service supports a handshake timeout,
|
||||
* and if <tt>handshakeTimeout</tt> is positive, then it
|
||||
* and if {@code handshakeTimeout} is positive, then it
|
||||
* specifies the timeout, in milliseconds (more or less), to
|
||||
* use when handshaking with the target VM. The exact
|
||||
* usage of the timeout is specific to the transport service.
|
||||
@ -347,7 +347,7 @@ public abstract class TransportService {
|
||||
* use the timeout as a timeout for the duration of the
|
||||
* handshake exchange.
|
||||
* If the transport service does not support a handshake
|
||||
* timeout, of if <tt>handshakeTimeout</tt> is specified
|
||||
* timeout, of if {@code handshakeTimeout} is specified
|
||||
* as zero then the handshake does not timeout if there
|
||||
* isn't a response from the target VM.
|
||||
*
|
||||
|
@ -42,26 +42,26 @@ import java.net.*;
|
||||
* to the string <em>local://localhost</em>. The components of the
|
||||
* HostIdentifier are:
|
||||
* <ul>
|
||||
* <li><p><tt>protocol</tt> - The communications protocol. If omitted,
|
||||
* <li><p>{@code protocol} - The communications protocol. If omitted,
|
||||
* and a hostname is not specified, then default local protocol,
|
||||
* <em>local:</em>, is assumed. If the protocol is omitted and a
|
||||
* hostname is specified then the default remote protocol,
|
||||
* <em>rmi:</em> is assumed.
|
||||
* </p></li>
|
||||
* <li><p><tt>hostname</tt> - The hostname. If omitted, then
|
||||
* <li><p>{@code hostname} - The hostname. If omitted, then
|
||||
* <em>localhost</em> is assumed. If the protocol is also omitted,
|
||||
* then default local protocol <em>local:</em> is also assumed.
|
||||
* If the hostname is not omitted but the protocol is omitted,
|
||||
* then the default remote protocol, <em>rmi:</em> is assumed.
|
||||
* </p></li>
|
||||
* <li><p><tt>port</tt> - The port for the communications protocol.
|
||||
* Treatment of the <tt>port</tt> parameter is implementation
|
||||
* <li><p>{@code port} - The port for the communications protocol.
|
||||
* Treatment of the {@code port} parameter is implementation
|
||||
* (protocol) specific. It is unused by the default local protocol,
|
||||
* <em>local:</em>. For the default remote protocol, <em>rmi:</em>,
|
||||
* <tt>port</tt> indicates the port number of the <em>rmiregistry</em>
|
||||
* {@code port} indicates the port number of the <em>rmiregistry</em>
|
||||
* on the target host and defaults to port 1099.
|
||||
* </p></li>
|
||||
* <li><p><tt>servername</tt> - The treatment of the Path, Query, and
|
||||
* <li><p>{@code servername} - The treatment of the Path, Query, and
|
||||
* Fragment components of the HostIdentifier are implementation
|
||||
* (protocol) dependent. These components are ignored by the
|
||||
* default local protocol, <em>local:</em>. For the default remote
|
||||
|
@ -94,7 +94,7 @@ public abstract class MonitoredHost {
|
||||
|
||||
/**
|
||||
* Factory method to construct MonitoredHost instances to manage
|
||||
* connections to the host indicated by <tt>hostIdString</tt>
|
||||
* connections to the host indicated by {@code hostIdString}
|
||||
*
|
||||
* @param hostIdString a String representation of a {@link HostIdentifier}
|
||||
* @return MonitoredHost - the MonitoredHost instance for communicating
|
||||
@ -113,7 +113,7 @@ public abstract class MonitoredHost {
|
||||
|
||||
/**
|
||||
* Factory method to construct a MonitoredHost instance to manage the
|
||||
* connection to the Java Virtual Machine indicated by <tt>vmid</tt>.
|
||||
* connection to the Java Virtual Machine indicated by {@code vmid}.
|
||||
*
|
||||
* This method provide a convenient short cut for attaching to a specific
|
||||
* instrumented Java Virtual Machine. The information in the VmIdentifier
|
||||
@ -142,7 +142,7 @@ public abstract class MonitoredHost {
|
||||
|
||||
/**
|
||||
* Factory method to construct a MonitoredHost instance to manage the
|
||||
* connection to the host indicated by <tt>hostId</tt>.
|
||||
* connection to the host indicated by {@code hostId}.
|
||||
*
|
||||
* @param hostId the identifier for the target host.
|
||||
* @return MonitoredHost - The MonitoredHost object needed to attach to
|
||||
@ -269,7 +269,7 @@ public abstract class MonitoredHost {
|
||||
* Get the last exception encountered while polling this MonitoredHost.
|
||||
*
|
||||
* @return Exception - the last exception occurred while polling this
|
||||
* MonitoredHost, or <tt>null</tt> if no exception
|
||||
* MonitoredHost, or {@code null} if no exception
|
||||
* has occurred or the exception has been cleared,
|
||||
*/
|
||||
public Exception getLastException() {
|
||||
|
@ -29,7 +29,7 @@ public interface MonitoredHostService {
|
||||
|
||||
/**
|
||||
* Construct a MonitoredHost instance to manage the
|
||||
* connection to the host indicated by <tt>hostId</tt>.
|
||||
* connection to the host indicated by {@code hostId}.
|
||||
*
|
||||
* @param hostId the identifier for the target host.
|
||||
* @return MonitoredHost - The MonitoredHost object needed to attach to
|
||||
|
@ -55,12 +55,12 @@ public interface MonitoredVm {
|
||||
* instrumentation exported by this Java Virtual Machine. If an
|
||||
* instrumentation object with the given name exists, a Monitor interface
|
||||
* to that object will be return. Otherwise, the method returns
|
||||
* <tt>null</tt>.
|
||||
* {@code null}.
|
||||
*
|
||||
* @param name the name of the Instrumentation object to find.
|
||||
* @return Monitor - the {@link Monitor} object that can be used to
|
||||
* monitor the named instrumentation object, or
|
||||
* <tt>null</tt> if the named object doesn't exist.
|
||||
* {@code null} if the named object doesn't exist.
|
||||
* @throws MonitorException Thrown if an error occurs while communicating
|
||||
* with the target Java Virtual Machine.
|
||||
*/
|
||||
@ -99,7 +99,7 @@ public interface MonitoredVm {
|
||||
/* ---- Methods to support polled MonitoredVm Implementations ---- */
|
||||
|
||||
/**
|
||||
* Set the polling interval to <code>interval</code> milliseconds.
|
||||
* Set the polling interval to {@code interval} milliseconds.
|
||||
*
|
||||
* Polling based monitoring implementations need to refresh the
|
||||
* instrumentation data on a periodic basis. This interface allows
|
||||
@ -136,10 +136,10 @@ public interface MonitoredVm {
|
||||
* Get the last exception encountered while polling this MonitoredVm.
|
||||
*
|
||||
* Returns the last exception observed by the implementation dependent
|
||||
* polling task or <tt>null</tt> if no such error has occurred.
|
||||
* polling task or {@code null} if no such error has occurred.
|
||||
*
|
||||
* @return Exception - the last exception that occurred during polling
|
||||
* or <tt>null</tt> if no error condition exists.
|
||||
* or {@code null} if no error condition exists.
|
||||
* @see #isErrored
|
||||
* @see #setLastException
|
||||
*/
|
||||
|
@ -87,12 +87,12 @@ public abstract class AbstractPerfDataBuffer {
|
||||
* instrumentation exported by this Java Virtual Machine. If an
|
||||
* instrumentation object with the given name exists, a Monitor interface
|
||||
* to that object will be return. Otherwise, the method returns
|
||||
* <tt>null</tt>.
|
||||
* {@code null}.
|
||||
*
|
||||
* @param name the name of the Instrumentation object to find.
|
||||
* @return Monitor - the {@link Monitor} object that can be used to
|
||||
* monitor the named instrumentation object, or
|
||||
* <tt>null</tt> if the named object doesn't exist.
|
||||
* {@code null} if the named object doesn't exist.
|
||||
* @throws MonitorException Thrown if an error occurs while communicating
|
||||
* with the target Java Virtual Machine.
|
||||
*/
|
||||
|
@ -98,7 +98,7 @@ public class PerfByteArrayMonitor extends AbstractMonitor
|
||||
* Get the current value of an element of the byte array instrument.
|
||||
*
|
||||
* @return byte - a copy of the current value of the element at index
|
||||
* <tt>index</tt> of the byte array instrument.
|
||||
* {@code index} of the byte array instrument.
|
||||
*/
|
||||
public byte byteAt(int index) {
|
||||
bb.position(index);
|
||||
|
@ -222,7 +222,7 @@ public abstract class PerfDataBufferImpl {
|
||||
* instrumentation exported by this Java Virtual Machine. If an
|
||||
* instrumentation object with the given name exists, a Monitor interface
|
||||
* to that object will be return. Otherwise, the method returns
|
||||
* <tt>null</tt>. The method will map requests for instrumention objects
|
||||
* {@code null}. The method will map requests for instrumention objects
|
||||
* using old names to their current names, if applicable.
|
||||
*
|
||||
*
|
||||
@ -230,7 +230,7 @@ public abstract class PerfDataBufferImpl {
|
||||
* @param name the name of the Instrumentation object to find.
|
||||
* @return Monitor - the {@link Monitor} object that can be used to
|
||||
* monitor the named instrumentation object, or
|
||||
* <tt>null</tt> if the named object doesn't exist.
|
||||
* {@code null} if the named object doesn't exist.
|
||||
* @throws MonitorException Thrown if an error occurs while communicating
|
||||
* with the target Java Virtual Machine.
|
||||
*/
|
||||
|
@ -66,7 +66,7 @@ public class MonitoredHostProvider extends MonitoredHost {
|
||||
* {@inheritDoc}.
|
||||
* <p>
|
||||
* Note - the <em>file:</em> protocol silently ignores the
|
||||
* <tt>interval</tt> parameter.
|
||||
* {@code interval} parameter.
|
||||
*/
|
||||
public MonitoredVm getMonitoredVm(VmIdentifier vmid, int interval)
|
||||
throws MonitorException {
|
||||
|
@ -84,7 +84,7 @@ public class PerfDataFile {
|
||||
* for the JVM identified by the given local Vm Identifier.
|
||||
* <p>
|
||||
* This method looks for the most up to date backing store file for
|
||||
* the given <tt>lvmid</tt>. It will search all the user specific
|
||||
* the given {@code lvmid}. It will search all the user specific
|
||||
* directories in the temporary directory for the host operating
|
||||
* system, which may be influenced by platform specific environment
|
||||
* variables.
|
||||
|
@ -40,7 +40,7 @@ The <em>local:</em> protocol is the default protocol for the PerfData
|
||||
implementation. It utilizes a name shared memory mechanism, identified
|
||||
by a backing store file in the file system name space. The location of
|
||||
the backing store file is platform specific and is dictated primarily by
|
||||
the JVM implementation. However, the <tt>java.io.tmpdir</em> system
|
||||
the JVM implementation. However, the <code>java.io.tmpdir</code> system
|
||||
property generally contains the location of the files, with the exception
|
||||
of the Solaris implementation, as the SDK and HotSpot JVM use different
|
||||
locations for their temporary file storage. The HotSpot JVM uses the
|
||||
|
@ -44,16 +44,16 @@ public interface GarbageCollectorMXBean
|
||||
/**
|
||||
* Returns the GC information about the most recent GC.
|
||||
* This method returns a {@link GcInfo}.
|
||||
* If no GC information is available, <tt>null</tt> is returned.
|
||||
* If no GC information is available, {@code null} is returned.
|
||||
* The collector-specific attributes, if any, can be obtained
|
||||
* via the {@link CompositeData CompositeData} interface.
|
||||
* <p>
|
||||
* <b>MBeanServer access:</b>
|
||||
* The mapped type of <tt>GcInfo</tt> is <tt>CompositeData</tt>
|
||||
* The mapped type of {@code GcInfo} is {@code CompositeData}
|
||||
* with attributes specified in {@link GcInfo#from GcInfo}.
|
||||
*
|
||||
* @return a <tt>GcInfo</tt> object representing
|
||||
* the most GC information; or <tt>null</tt> if no GC
|
||||
* @return a {@code GcInfo} object representing
|
||||
* the most GC information; or {@code null} if no GC
|
||||
* information available.
|
||||
*/
|
||||
public GcInfo getLastGcInfo();
|
||||
|
@ -33,10 +33,10 @@ import java.lang.management.PlatformManagedObject;
|
||||
* <p>The diagnostic MBean is registered to the platform MBeanServer
|
||||
* as are other platform MBeans.
|
||||
*
|
||||
* <p>The <tt>ObjectName</tt> for uniquely identifying the diagnostic
|
||||
* <p>The {@code ObjectName} for uniquely identifying the diagnostic
|
||||
* MXBean within an MBeanServer is:
|
||||
* <blockquote>
|
||||
* <tt>com.sun.management:type=HotSpotDiagnostic</tt>
|
||||
* {@code com.sun.management:type=HotSpotDiagnostic}
|
||||
* </blockquote>
|
||||
.*
|
||||
* It can be obtained by calling the
|
||||
@ -50,22 +50,22 @@ import java.lang.management.PlatformManagedObject;
|
||||
@jdk.Exported
|
||||
public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
|
||||
/**
|
||||
* Dumps the heap to the <tt>outputFile</tt> file in the same
|
||||
* Dumps the heap to the {@code outputFile} file in the same
|
||||
* format as the hprof heap dump.
|
||||
* <p>
|
||||
* If this method is called remotely from another process,
|
||||
* the heap dump output is written to a file named <tt>outputFile</tt>
|
||||
* the heap dump output is written to a file named {@code outputFile}
|
||||
* on the machine where the target VM is running. If outputFile is
|
||||
* a relative path, it is relative to the working directory where
|
||||
* the target VM was started.
|
||||
*
|
||||
* @param outputFile the system-dependent filename
|
||||
* @param live if <tt>true</tt> dump only <i>live</i> objects
|
||||
* @param live if {@code true} dump only <i>live</i> objects
|
||||
* i.e. objects that are reachable from others
|
||||
* @throws IOException if the <tt>outputFile</tt>
|
||||
* @throws IOException if the {@code outputFile}
|
||||
* cannot be created, opened, or written to.
|
||||
* @throws UnsupportedOperationException if this operation is not supported.
|
||||
* @throws NullPointerException if <tt>outputFile</tt> is <tt>null</tt>.
|
||||
* @throws NullPointerException if {@code outputFile} is {@code null}.
|
||||
* @throws SecurityException
|
||||
* If a security manager exists and its {@link
|
||||
* java.lang.SecurityManager#checkWrite(java.lang.String)}
|
||||
@ -75,21 +75,21 @@ public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
|
||||
public void dumpHeap(String outputFile, boolean live) throws java.io.IOException;
|
||||
|
||||
/**
|
||||
* Returns a list of <tt>VMOption</tt> objects for all diagnostic options.
|
||||
* Returns a list of {@code VMOption} objects for all diagnostic options.
|
||||
* A diagnostic option is a {@link VMOption#isWriteable writeable}
|
||||
* VM option that can be set dynamically mainly for troubleshooting
|
||||
* and diagnosis.
|
||||
*
|
||||
* @return a list of <tt>VMOption</tt> objects for all diagnostic options.
|
||||
* @return a list of {@code VMOption} objects for all diagnostic options.
|
||||
*/
|
||||
public java.util.List<VMOption> getDiagnosticOptions();
|
||||
|
||||
/**
|
||||
* Returns a <tt>VMOption</tt> object for a VM option of the given
|
||||
* Returns a {@code VMOption} object for a VM option of the given
|
||||
* name.
|
||||
*
|
||||
* @return a <tt>VMOption</tt> object for a VM option of the given name.
|
||||
* @throws NullPointerException if name is <tt>null</tt>.
|
||||
* @return a {@code VMOption} object for a VM option of the given name.
|
||||
* @throws NullPointerException if name is {@code null}.
|
||||
* @throws IllegalArgumentException if a VM option of the given name
|
||||
* does not exist.
|
||||
*/
|
||||
@ -97,10 +97,10 @@ public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
|
||||
|
||||
/**
|
||||
* Sets a VM option of the given name to the specified value.
|
||||
* The new value will be reflected in a new <tt>VMOption</tt>
|
||||
* The new value will be reflected in a new {@code VMOption}
|
||||
* object returned by the {@link #getVMOption} method or
|
||||
* the {@link #getDiagnosticOptions} method. This method does
|
||||
* not change the value of this <tt>VMOption</tt> object.
|
||||
* not change the value of this {@code VMOption} object.
|
||||
*
|
||||
* @param name Name of a VM option
|
||||
* @param value New value of the VM option to be set
|
||||
@ -109,7 +109,7 @@ public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
|
||||
* does not exist.
|
||||
* @throws IllegalArgumentException if the new value is invalid.
|
||||
* @throws IllegalArgumentException if the VM option is not writable.
|
||||
* @throws NullPointerException if name or value is <tt>null</tt>.
|
||||
* @throws NullPointerException if name or value is {@code null}.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* if a security manager exists and the caller does not have
|
||||
|
@ -30,7 +30,7 @@ package com.sun.management;
|
||||
* on which the Java virtual machine is running.
|
||||
*
|
||||
* <p>
|
||||
* The <tt>OperatingSystemMXBean</tt> object returned by
|
||||
* The {@code OperatingSystemMXBean} object returned by
|
||||
* {@link java.lang.management.ManagementFactory#getOperatingSystemMXBean()}
|
||||
* is an instance of the implementation class of this interface
|
||||
* or {@link UnixOperatingSystemMXBean} interface depending on
|
||||
@ -46,11 +46,11 @@ public interface OperatingSystemMXBean extends
|
||||
/**
|
||||
* Returns the amount of virtual memory that is guaranteed to
|
||||
* be available to the running process in bytes,
|
||||
* or <tt>-1</tt> if this operation is not supported.
|
||||
* or {@code -1} if this operation is not supported.
|
||||
*
|
||||
* @return the amount of virtual memory that is guaranteed to
|
||||
* be available to the running process in bytes,
|
||||
* or <tt>-1</tt> if this operation is not supported.
|
||||
* or {@code -1} if this operation is not supported.
|
||||
*/
|
||||
public long getCommittedVirtualMemorySize();
|
||||
|
||||
@ -72,11 +72,11 @@ public interface OperatingSystemMXBean extends
|
||||
* Returns the CPU time used by the process on which the Java
|
||||
* virtual machine is running in nanoseconds. The returned value
|
||||
* is of nanoseconds precision but not necessarily nanoseconds
|
||||
* accuracy. This method returns <tt>-1</tt> if the
|
||||
* accuracy. This method returns {@code -1} if the
|
||||
* the platform does not support this operation.
|
||||
*
|
||||
* @return the CPU time used by the process in nanoseconds,
|
||||
* or <tt>-1</tt> if this operation is not supported.
|
||||
* or {@code -1} if this operation is not supported.
|
||||
*/
|
||||
public long getProcessCpuTime();
|
||||
|
||||
|
@ -125,7 +125,7 @@ public class DnsContext extends ComponentDirContext {
|
||||
* Returns a clone of a DNS context. The context's modifiable
|
||||
* private state is independent of the original's (so closing one
|
||||
* context, for example, won't close the other). The two contexts
|
||||
* share <tt>environment</tt>, but it's copy-on-write so there's
|
||||
* share {@code environment}, but it's copy-on-write so there's
|
||||
* no conflict.
|
||||
*/
|
||||
private DnsContext(DnsContext ctx) {
|
||||
|
@ -34,7 +34,7 @@ import javax.naming.*;
|
||||
|
||||
|
||||
/**
|
||||
* <tt>DnsName</tt> implements compound names for DNS as specified by
|
||||
* {@code DnsName} implements compound names for DNS as specified by
|
||||
* RFCs 1034 and 1035, and as updated and clarified by RFCs 1123 and 2181.
|
||||
*
|
||||
* <p> The labels in a domain name correspond to JNDI atomic names.
|
||||
@ -57,45 +57,45 @@ import javax.naming.*;
|
||||
* <p> DNS does not specify an encoding (such as UTF-8) to use for
|
||||
* octets with non-ASCII values. As of this writing there is some
|
||||
* work going on in this area, but it is not yet finalized.
|
||||
* <tt>DnsName</tt> currently converts any non-ASCII octets into
|
||||
* {@code DnsName} currently converts any non-ASCII octets into
|
||||
* characters using ISO-LATIN-1 encoding, in effect taking the
|
||||
* value of each octet and storing it directly into the low-order byte
|
||||
* of a Java character and <i>vice versa</i>. As a consequence, no
|
||||
* character in a DNS name will ever have a non-zero high-order byte.
|
||||
* When the work on internationalizing domain names has stabilized
|
||||
* (see for example <i>draft-ietf-idn-idna-10.txt</i>), <tt>DnsName</tt>
|
||||
* (see for example <i>draft-ietf-idn-idna-10.txt</i>), {@code DnsName}
|
||||
* may be updated to conform to that work.
|
||||
*
|
||||
* <p> Backslash (<tt>\</tt>) is used as the escape character in the
|
||||
* <p> Backslash ({@code \}) is used as the escape character in the
|
||||
* textual representation of a domain name. The character sequence
|
||||
* `<tt>\DDD</tt>', where <tt>DDD</tt> is a 3-digit decimal number
|
||||
* `{@code \DDD}', where {@code DDD} is a 3-digit decimal number
|
||||
* (with leading zeros if needed), represents the octet whose value
|
||||
* is <tt>DDD</tt>. The character sequence `<tt>\C</tt>', where
|
||||
* <tt>C</tt> is a character other than <tt>'0'</tt> through
|
||||
* <tt>'9'</tt>, represents the octet whose value is that of
|
||||
* <tt>C</tt> (again using ISO-LATIN-1 encoding); this is particularly
|
||||
* useful for escaping <tt>'.'</tt> or backslash itself. Backslash is
|
||||
* is {@code DDD}. The character sequence `{@code \C}', where
|
||||
* {@code C} is a character other than {@code '0'} through
|
||||
* {@code '9'}, represents the octet whose value is that of
|
||||
* {@code C} (again using ISO-LATIN-1 encoding); this is particularly
|
||||
* useful for escaping {@code '.'} or backslash itself. Backslash is
|
||||
* otherwise not allowed in a domain name. Note that escape characters
|
||||
* are interpreted when a name is parsed. So, for example, the character
|
||||
* sequences `<tt>S</tt>', `<tt>\S</tt>', and `<tt>\083</tt>' each
|
||||
* represent the same one-octet name. The <tt>toString()</tt> method
|
||||
* sequences `{@code S}', `{@code \S}', and `{@code \083}' each
|
||||
* represent the same one-octet name. The {@code toString()} method
|
||||
* does not generally insert escape sequences except where necessary.
|
||||
* If, however, the <tt>DnsName</tt> was constructed using unneeded
|
||||
* escapes, those escapes may appear in the <tt>toString</tt> result.
|
||||
* If, however, the {@code DnsName} was constructed using unneeded
|
||||
* escapes, those escapes may appear in the {@code toString} result.
|
||||
*
|
||||
* <p> Atomic names passed as parameters to methods of
|
||||
* <tt>DnsName</tt>, and those returned by them, are unescaped. So,
|
||||
* for example, <tt>(new DnsName()).add("a.b")</tt> creates an
|
||||
* object representing the one-label domain name <tt>a\.b</tt>, and
|
||||
* calling <tt>get(0)</tt> on this object returns <tt>"a.b"</tt>.
|
||||
* {@code DnsName}, and those returned by them, are unescaped. So,
|
||||
* for example, <code>(new DnsName()).add("a.b")</code> creates an
|
||||
* object representing the one-label domain name {@code a\.b}, and
|
||||
* calling {@code get(0)} on this object returns {@code "a.b"}.
|
||||
*
|
||||
* <p> While DNS names are case-preserving, comparisons between them
|
||||
* are case-insensitive. When comparing names containing non-ASCII
|
||||
* octets, <tt>DnsName</tt> uses case-insensitive comparison
|
||||
* octets, {@code DnsName} uses case-insensitive comparison
|
||||
* between pairs of ASCII values, and exact binary comparison
|
||||
* otherwise.
|
||||
|
||||
* <p> A <tt>DnsName</tt> instance is not synchronized against
|
||||
* <p> A {@code DnsName} instance is not synchronized against
|
||||
* concurrent access by multiple threads.
|
||||
*
|
||||
* @author Scott Seligman
|
||||
@ -119,16 +119,16 @@ public final class DnsName implements Name {
|
||||
|
||||
|
||||
/**
|
||||
* Constructs a <tt>DnsName</tt> representing the empty domain name.
|
||||
* Constructs a {@code DnsName} representing the empty domain name.
|
||||
*/
|
||||
public DnsName() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <tt>DnsName</tt> representing a given domain name.
|
||||
* Constructs a {@code DnsName} representing a given domain name.
|
||||
*
|
||||
* @param name the domain name to parse
|
||||
* @throws InvalidNameException if <tt>name</tt> does not conform
|
||||
* @throws InvalidNameException if {@code name} does not conform
|
||||
* to DNS syntax.
|
||||
*/
|
||||
public DnsName(String name) throws InvalidNameException {
|
||||
|
@ -38,7 +38,7 @@ import java.util.Hashtable;
|
||||
* <p> A node may be addressed from another by giving a DnsName
|
||||
* consisting of the sequence of labels from one node to the other.
|
||||
*
|
||||
* <p> Each node also has an <tt>isZoneCut</tt> flag, used to indicate
|
||||
* <p> Each node also has an {@code isZoneCut} flag, used to indicate
|
||||
* if the node is a zone cut. A zone cut is a node with an NS record
|
||||
* that is contained in one zone, but that actually belongs to a child zone.
|
||||
*
|
||||
@ -115,7 +115,7 @@ class NameNode {
|
||||
/*
|
||||
* Returns the node at the end of a path, or null if the
|
||||
* node does not exist.
|
||||
* The path is specified by the labels of <tt>name</tt>, beginning
|
||||
* The path is specified by the labels of {@code name}, beginning
|
||||
* at index idx.
|
||||
*/
|
||||
NameNode get(DnsName name, int idx) {
|
||||
@ -129,7 +129,7 @@ class NameNode {
|
||||
/*
|
||||
* Returns the node at the end of a path, creating it and any
|
||||
* intermediate nodes as needed.
|
||||
* The path is specified by the labels of <tt>name</tt>, beginning
|
||||
* The path is specified by the labels of {@code name}, beginning
|
||||
* at index idx.
|
||||
*/
|
||||
NameNode add(DnsName name, int idx) {
|
||||
|
@ -160,7 +160,7 @@ class Resolver {
|
||||
}
|
||||
|
||||
/*
|
||||
* Finds the name servers of a zone. <tt>zone</tt> is a fully-qualified
|
||||
* Finds the name servers of a zone. {@code zone} is a fully-qualified
|
||||
* domain name at the top of a zone.
|
||||
* If recursion is true, recursion is requested on the query.
|
||||
*/
|
||||
|
@ -154,7 +154,7 @@ class ZoneNode extends NameNode {
|
||||
}
|
||||
|
||||
/*
|
||||
* Set this zone's data to expire in <tt>secsToExpiration</tt> seconds.
|
||||
* Set this zone's data to expire in {@code secsToExpiration} seconds.
|
||||
*/
|
||||
private void setExpiration(long secsToExpiration) {
|
||||
expiration = new Date(System.currentTimeMillis() +
|
||||
|
Loading…
Reference in New Issue
Block a user