8181832: Broken link in javax/sql/rowset/spi/package-summary.html

Reviewed-by: alanb, mchung
This commit is contained in:
Lance Andersen 2017-06-14 12:46:38 -04:00
parent 3dbda35ef5
commit e5b666c845

View File

@ -38,10 +38,7 @@ questions.
The standard classes and interfaces that a third party vendor has to The standard classes and interfaces that a third party vendor has to
use in its implementation of a synchronization provider. These classes and use in its implementation of a synchronization provider. These classes and
interfaces are referred to as the Service Provider Interface (SPI). A vendor may interfaces are referred to as the Service Provider Interface (SPI). To make it possible
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 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 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
@ -108,19 +105,14 @@ occur.
<P> <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 <code>RowSet</code> object to its underlying data source. The writer does
nothing to check for conflicts. nothing to check for conflicts.
If there is a conflict and the data If there is a conflict and the data
source values are overwritten, the changes other parties have made by to the data source values are overwritten, the changes other parties have made by to the data
source are lost. source are lost.
<P> <P>
The <code>RIXMLProvider</code> implementation uses the lowest level The <code>RIXMLProvider</code> implementation uses the lowest level
of synchronization and just writes <code>RowSet</code> changes to the data source. 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
groups have considered offering XML-based synchronization. For details, see
<PRE>
<a href="http://www.syncml.org">http://www.syncml.org</a>
</PRE>
<P> <P>
For the next level up, the 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,
@ -141,7 +133,7 @@ synchronized.
It is a requirement that all disconnected <code>RowSet</code> objects It is a requirement that all disconnected <code>RowSet</code> objects
(<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>, (<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>,
and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects
from the <code>SyncFactory</code> mechanism. from the <code>SyncFactory</code> mechanism.
<P> <P>
The reference implementation (RI) provides two synchronization providers. The reference implementation (RI) provides two synchronization providers.
<UL> <UL>
@ -164,7 +156,7 @@ The reference implementation (RI) provides two synchronization providers.
<code>RIXMLProvider</code> implementation does no checking at all for <code>RIXMLProvider</code> implementation does no checking at all for
conflicts and simply writes any updated data in the conflicts and simply writes any updated data in the
<code>WebRowSet</code> object to the underlying data source. <code>WebRowSet</code> object to the underlying data source.
<code>WebRowSet</code> objects use this provider when they are <code>WebRowSet</code> objects use this provider when they are
dealing with XML data. dealing with XML data.
</UL> </UL>
@ -198,9 +190,7 @@ specification for further details.
<p> <p>
Vendors may develop a <code>SyncProvider</code> 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 levels of synchronization, thus giving <code>RowSet</code> objects a choice of
synchronization mechanisms. A vendor can make its implementation available by synchronization mechanisms.
registering the fully qualified class name with Oracle Corporation at
<code>jdbc@sun.com</code>. This process is discussed in further detail below.
<h3><a id="arch">2.0 Service Provider Interface Architecture</a></h3> <h3><a id="arch">2.0 Service Provider Interface Architecture</a></h3>
<b>2.1 Overview</b> <b>2.1 Overview</b>
@ -274,7 +264,7 @@ These policies are explored in more detail in the <a href="SyncFactory.html">
A compliant <code>SyncProvider</code> implementation that is fully pluggable A compliant <code>SyncProvider</code> implementation that is fully pluggable
into the <code>SyncFactory</code> <b>must</b> extend and implement all into the <code>SyncFactory</code> <b>must</b> extend and implement all
abstract methods in the <a href="SyncProvider.html"><code>SyncProvider</code></a> abstract methods in the <a href="SyncProvider.html"><code>SyncProvider</code></a>
class. In addition, an implementation <b>must</b> determine the class. In addition, an implementation <b>must</b> determine the
grade, locking and updatable view capabilities defined in the grade, locking and updatable view capabilities defined in the
<code>SyncProvider</code> class definition. One or more of the <code>SyncProvider</code> class definition. One or more of the
<code>SyncProvider</code> description criteria <b>must</b> be supported. It <code>SyncProvider</code> description criteria <b>must</b> be supported. It
@ -405,7 +395,7 @@ synchronization. These operation are shown in the following code fragment.
case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED
// A pessimistic synchronization grade // A pessimistic synchronization grade
break; break;
case: SyncProvider.GRADE_NONE case: SyncProvider.GRADE_NONE
// No synchronization with the originating data source provided // No synchronization with the originating data source provided
break; break;
} }
@ -413,7 +403,7 @@ synchronization. These operation are shown in the following code fragment.
switch (sync.getDataSourcLock() { switch (sync.getDataSourcLock() {
case: SyncProvider.DATASOURCE_DB_LOCK case: SyncProvider.DATASOURCE_DB_LOCK
// A lock is placed on the entire datasource that is used by the // A lock is placed on the entire datasource that is used by the
// <code>RowSet</code> object // <code>RowSet</code> object
break; break;
case: SyncProvider.DATASOURCE_NO_LOCK case: SyncProvider.DATASOURCE_NO_LOCK
@ -490,14 +480,11 @@ The comment for the <code>SyncResolver</code> interface has more detail.
<h3><a id="relspec">5.0 Related Specifications</a></h3> <h3><a id="relspec">5.0 Related Specifications</a></h3>
<ul> <ul>
<li><a href="http://docs.oracle.com/javase/jndi/tutorial/index.html">JNDI</a> <li><a href="http://docs.oracle.com/javase/jndi/tutorial/index.html">JNDI</a>
<li><a href="{@docRoot}/../technotes/guides/logging/index.html">Java Logging <li><a href="{@docRoot}/java/util/logging/package-summary.html">Java Logging
APIs</a> APIs</a>
</ul> </ul>
<h3><a id="reldocs">6.0 Related Documentation</a></h3> <h3><a id="reldocs">6.0 Related Documentation</a></h3>
<ul> <ul>
<li><a href="{@docRoot}/../technotes/tools/index.html#basic">System
properties</a>
<li>Resource Files
<li><a href="http://docs.oracle.com/javase/tutorial/jdbc/">DataSource for JDBC <li><a href="http://docs.oracle.com/javase/tutorial/jdbc/">DataSource for JDBC
Connections</a> Connections</a>
</ul> </ul>