You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ps...@apache.org on 2004/03/06 18:29:05 UTC
cvs commit: jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/state package.html
psteitz 2004/03/06 09:29:05
Modified: id/src/java/org/apache/commons/id/uuid package.html
id/src/java/org/apache/commons/id/uuid/clock package.html
id/src/java/org/apache/commons/id/uuid/state package.html
Log:
Added package html for uuid and subpackages.
Contributed by: Tim Reilly
PR # 27488
Revision Changes Path
1.4 +15 -3 jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/package.html
Index: package.html
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/package.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- package.html 4 Mar 2004 03:17:44 -0000 1.3
+++ package.html 6 Mar 2004 17:29:04 -0000 1.4
@@ -15,8 +15,20 @@
-->
<body>
<p>
- This package contains contains implementations of the
- <a href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-02.txt">
- IETF Draft UUID specification</a>.
+ <p>
+ This package contains UUID (Universally Unique Identifier)
+ generator implementations and supporting classes. A UUID is 128-bits
+ long and can provide an extremely high likelihood of uniqueness. For more
+ information see the Internet Engineering Task Force
+ <a href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-02.txt">
+ IETF Draft UUID specification</a>.
</p>
+ <p>
+ The version 1 uuid generator collaborates with various interfaces that
+ allow for custom implementations in solving some challenges relating to:
+ where and how to retrieve the node identifier (usually the MAC-address), how
+ to persist generator data, and how to resolve uuid timestamps. Default
+ implementations are provided in this package and sub-packages.
+ </p>
+ </p>
</body>
1.2 +25 -3 jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/clock/package.html
Index: package.html
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/clock/package.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- package.html 4 Mar 2004 03:17:45 -0000 1.1
+++ package.html 6 Mar 2004 17:29:05 -0000 1.2
@@ -16,8 +16,30 @@
<body>
<p>
- This package contains contains clock implementations for generating uuid timestamps per
- <a href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-02.txt">
- IETF Draft UUID specification</a>.
+ This package contains the Clock interface and implementations for
+ generating UUID timestamps. UUID timestamps are measured in 100-nano
+ second intervals since the Gregorian changeover epoch (00:00:00.00,
+ 15 October 1582.) Due to several factors relating to time precision and
+ time resolution on Windows <sup>tm</sup> and in Java <sup>tm</sup> in
+ general; the Clock interface is introduced to allow different or custom
+ strategies in timestamp generation. The IETF (Internet Engineering Task Force)
+ specification details some of these approaches. For more information see
+ <a href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-02.txt">
+ IETF Draft UUID specification</a>.
</p>
+ <p>
+ Two provided implementation are:
+ <ul>
+ <li><code>SystemClockImpl</code> - uses System.currentTimeMillis() and an
+ artificial counter to allow up to 10,000 ticks per millisecond interval.
+ </li>
+ <li><code>ThreadClockImpl</code> - time resolution on certain operating
+ systems may not be 1-millisecond intervals. Windows <sup>tm</sup> according
+ to some reports to have time resolution in the 1-ms to 54-ms range. Using a
+ thread to provide a clock that increments it's counter at 10-ms intervals is
+ one means of compensating for this. <em>(Due to bug parade issue:
+ 4500388 10-ms and not 1-ms intervals are used in this implementation.)</em>
+ </li>
+ </ul>
+ </p>
</body>
1.2 +25 -4 jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/state/package.html
Index: package.html
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/id/src/java/org/apache/commons/id/uuid/state/package.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- package.html 4 Mar 2004 03:17:45 -0000 1.1
+++ package.html 6 Mar 2004 17:29:05 -0000 1.2
@@ -16,9 +16,30 @@
<body>
<p>
- This package contains contains state implementations for persisting stateful data
- related to the generation of UUID's based on the:
- <a href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-02.txt">
- IETF Draft UUID specification</a>.
+ This package contains persistent and non-persistent state
+ implementations for data related to the generation of version 1 UUIDs. Not
+ all containers allow I/O; however when generating version 1 UUIDs it is best
+ to persist the node identifier (MAC address), clock sequence, and last
+ timestamp generated combination to stable storage. This allows the generator
+ to determine if the time has been set backwards so that a different clock
+ sequence is used to reduce the likelihood of duplicate identifiers.
+ </p>
+ <p>
+ Three provided implementation are:
+ <ul>
+ <li><code>ReadOnlyResourceStateImpl</code> - loads one of the data points
+ (node id) using the Classloader's getSystemResource method. Useful for
+ containers that allow reading resources but that don't allow writing to file.
+ The clock sequence is always initialized to a random short.
+ </li>
+ <li><code>ReadWriteFileStateImpl</code> - when possible a version one
+ generator should persist to stable storage. This implementation extends
+ ReadOnlyResourceStateImpl but also writes to the state configuration file.
+ </li>
+ <li><code>InMemoryStateImpl</code> - all data points are strictly managed
+ in memory with no long-term storage. The node identifier is created from a
+ MD5 hash of System properties.
+ </li>
+ </ul>
</p>
</body>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org