diff --git a/doc/build.xml b/doc/build.xml
index 786ef7f..e1d997d 100644
--- a/doc/build.xml
+++ b/doc/build.xml
@@ -29,6 +29,9 @@
     <pathelement location="${gwt.user.jar}" />
     <pathelement location="${gwt.dev.jar}" />
     <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
+    <pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
+    <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
+    <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
     <pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
   </path>
 
diff --git a/user/src/com/google/gwt/cell/client/AbstractCell.java b/user/src/com/google/gwt/cell/client/AbstractCell.java
index 786dbac..121d36b 100644
--- a/user/src/com/google/gwt/cell/client/AbstractCell.java
+++ b/user/src/com/google/gwt/cell/client/AbstractCell.java
@@ -31,12 +31,12 @@
  * <h3>Examples</h3>
  * <dl>
  * <dt>Read only cell</dt>
- * <dd>{@example com.google.gwt.examples.cell.CellExample}</dd>
- * <dt>Interactive cell</dt> 
- * <dd>{@example com.google.gwt.examples.cell.InteractionCellExample}</dd>
- * <dt>Editable cell</dt> 
- * <dd>{@example com.google.gwt.examples.cell.EditableCellExample}</dd>
- * </dl> 
+ * <dd>TODO example com.google.gwt.examples.cell.CellExample</dd>
+ * <dt>Interactive cell</dt>
+ * <dd>TODO example com.google.gwt.examples.cell.InteractionCellExample</dd>
+ * <dt>Editable cell</dt>
+ * <dd>TODO example com.google.gwt.examples.cell.EditableCellExample</dd>
+ * </dl>
  * </p>
  *
  * @param <C> the type that this Cell represents
diff --git a/user/src/com/google/gwt/cell/client/AbstractEditableCell.java b/user/src/com/google/gwt/cell/client/AbstractEditableCell.java
index 2bac676..90c26f9 100644
--- a/user/src/com/google/gwt/cell/client/AbstractEditableCell.java
+++ b/user/src/com/google/gwt/cell/client/AbstractEditableCell.java
@@ -27,7 +27,7 @@
  *
  * <p>
  * <h3>Example</h3>
- * {@example com.google.gwt.examples.cell.EditableCellExample}
+ * TODO example com.google.gwt.examples.cell.EditableCellExample
  * </p>
  *
  * @param <C> the type that this Cell represents
diff --git a/user/src/com/google/gwt/cell/client/Cell.java b/user/src/com/google/gwt/cell/client/Cell.java
index 364780c..12306f4 100644
--- a/user/src/com/google/gwt/cell/client/Cell.java
+++ b/user/src/com/google/gwt/cell/client/Cell.java
@@ -26,7 +26,7 @@
  *
  * <p>
  * <h3>Example</h3>
- * {@example com.google.gwt.examples.cell.CellExample}
+ * TODO example com.google.gwt.examples.cell.CellExample
  * </p>
  *
  * @param <C> the type that this Cell represents
diff --git a/user/src/com/google/gwt/user/cellview/client/CellBrowser.java b/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
index 9a7b978..10664ca 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellBrowser.java
@@ -74,9 +74,9 @@
  * <h3>Example</h3>
  * <dl>
  * <dt>Trivial example</dt>
- * <dd>{@example com.google.gwt.examples.cellview.CellBrowserExample}</dd>
- * <dt>Complex example</dt> 
- * <dd>{@example com.google.gwt.examples.cellview.CellBrowserExample2}</dd>
+ * <dd>TODO example com.google.gwt.examples.cellview.CellBrowserExample</dd>
+ * <dt>Complex example</dt>
+ * <dd>TODO example com.google.gwt.examples.cellview.CellBrowserExample2</dd>
  * </dl>
  */
 public class CellBrowser extends AbstractCellTree implements ProvidesResize,
@@ -190,7 +190,7 @@
 
   /**
    * A custom version of cell list used by the browser. Visible for testing.
-   * 
+   *
    * @param <T> the data type of list items
    */
   class BrowserCellList<T> extends CellList<T> {
@@ -365,7 +365,7 @@
 
   /**
    * A node in the tree.
-   * 
+   *
    * @param <C> the data type of the children of the node
    */
   class TreeNodeImpl<C> implements TreeNode {
@@ -377,7 +377,7 @@
 
     /**
      * Construct a new {@link TreeNodeImpl}.
-     * 
+     *
      * @param nodeInfo the nodeInfo for the children nodes
      * @param value the value of the node
      * @param display the display associated with the node
@@ -491,7 +491,7 @@
 
     /**
      * Check the child bounds.
-     * 
+     *
      * @param index the index of the child
      * @throws IndexOutOfBoundsException if the child is not in range
      */
@@ -514,7 +514,7 @@
 
     /**
      * Get the index of the open item.
-     * 
+     *
      * @return the index of the open item, or -1 if not found
      */
     private int getOpenIndex() {
@@ -709,7 +709,7 @@
 
   /**
    * Construct a new {@link CellBrowser}.
-   * 
+   *
    * @param <T> the type of data in the root node
    * @param viewModel the {@link TreeViewModel} that backs the tree
    * @param rootValue the hidden root value of the tree
@@ -720,7 +720,7 @@
 
   /**
    * Construct a new {@link CellBrowser} with the specified {@link Resources}.
-   * 
+   *
    * @param <T> the type of data in the root node
    * @param viewModel the {@link TreeViewModel} that backs the tree
    * @param rootValue the hidden root value of the tree
@@ -771,7 +771,7 @@
 
   /**
    * Get the default width of new columns.
-   * 
+   *
    * @return the default width in pixels
    */
   public int getDefaultColumnWidth() {
@@ -780,7 +780,7 @@
 
   /**
    * Get the minimum width of columns.
-   * 
+   *
    * @return the minimum width in pixels
    */
   public int getMinimumColumnWidth() {
@@ -817,7 +817,7 @@
 
   /**
    * Set the default width of new columns.
-   * 
+   *
    * @param width the default width in pixels
    */
   public void setDefaultColumnWidth(int width) {
@@ -834,7 +834,7 @@
 
   /**
    * Set the minimum width of columns.
-   * 
+   *
    * @param minWidth the minimum width in pixels
    */
   public void setMinimumColumnWidth(int minWidth) {
@@ -843,7 +843,7 @@
 
   /**
    * Create a pager to control the list view.
-   * 
+   *
    * @param <C> the item type in the list view
    * @param display the list view to add paging too
    * @return the pager
@@ -872,7 +872,7 @@
   /**
    * Create a new {@link TreeNodeImpl} and append it to the end of the
    * LayoutPanel.
-   * 
+   *
    * @param <C> the data type of the children
    * @param nodeInfo the info about the node
    * @param value the value of the open node
@@ -923,7 +923,7 @@
   /**
    * Create a {@link HasData} that will display items. The {@link HasData} must
    * extend {@link Widget}.
-   * 
+   *
    * @param <C> the item type in the list view
    * @param nodeInfo the node info with child data
    * @param level the level of the list
@@ -939,7 +939,7 @@
 
   /**
    * Get the HTML representation of an image.
-   * 
+   *
    * @param res the {@link ImageResource} to render as HTML
    * @return the rendered HTML
    */
@@ -953,7 +953,7 @@
 
   /**
    * Get the {@link SplitLayoutPanel} used to lay out the views.
-   * 
+   *
    * @return the {@link SplitLayoutPanel}
    */
   private SplitLayoutPanel getSplitLayoutPanel() {
@@ -962,7 +962,7 @@
 
   /**
    * Set the open state of a tree node.
-   * 
+   *
    * @param cellList the CellList that changed state.
    * @param value the value to open
    * @param open true to open, false to close
@@ -1045,7 +1045,7 @@
 
   /**
    * Reduce the number of {@link HasData}s down to the specified level.
-   * 
+   *
    * @param level the level to trim to
    */
   private void trimToLevel(int level) {
diff --git a/user/src/com/google/gwt/user/cellview/client/CellList.java b/user/src/com/google/gwt/user/cellview/client/CellList.java
index 7a2bf21..9412e6e 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellList.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellList.java
@@ -48,13 +48,13 @@
  * <p>
  * <h3>Examples</h3>
  * <p>
- * {@example com.google.gwt.examples.cellview.CellListExample}
+ * TODO example com.google.gwt.examples.cellview.CellListExample
  * </p>
  * <p>
- * {@example com.google.gwt.examples.cellview.CellListValueUpdaterExample}
+ * TODO example com.google.gwt.examples.cellview.CellListValueUpdaterExample
  * </p>
  * <p>
- * {@example com.google.gwt.examples.view.KeyProviderExample}
+ * TODO example com.google.gwt.examples.view.KeyProviderExample
  * </p>
  * </p>
  *
@@ -272,7 +272,7 @@
 
   /**
    * Called when a user action triggers selection.
-   * 
+   *
    * @param event the event that triggered selection
    * @param value the value that was selected
    * @param indexOnPage the index of the value on the page
@@ -483,7 +483,7 @@
 
   /**
    * Called when the user selects a cell with the mouse or tab key.
-   * 
+   *
    * @param event the event
    * @param value the value that is selected
    * @param indexOnPage the index on the page
diff --git a/user/src/com/google/gwt/user/cellview/client/CellTable.java b/user/src/com/google/gwt/user/cellview/client/CellTable.java
index 02e9f70..8c354a4 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellTable.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellTable.java
@@ -56,13 +56,13 @@
  * <p>
  * <h3>Examples</h3>
  * <p>
- * {@example com.google.gwt.examples.cellview.CellTableExample}
+ * TODO example com.google.gwt.examples.cellview.CellTableExample
  * </p>
  * <p>
- * {@example com.google.gwt.examples.cellview.CellTableFieldUpdaterExample}
+ * TODO example com.google.gwt.examples.cellview.CellTableFieldUpdaterExample
  * </p>
  * <p>
- * {@example com.google.gwt.examples.view.KeyProviderExample}
+ * TODO example com.google.gwt.examples.view.KeyProviderExample
  * </p>
  * </p>
  *
diff --git a/user/src/com/google/gwt/user/cellview/client/CellTree.java b/user/src/com/google/gwt/user/cellview/client/CellTree.java
index e1912e1..9c549bf 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellTree.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellTree.java
@@ -57,9 +57,9 @@
  * <h3>Examples</h3>
  * <dl>
  * <dt>Trivial example</dt>
- * <dd>{@example com.google.gwt.examples.cellview.CellTreeExample}</dd>
- * <dt>Complex example</dt> 
- * <dd>{@example com.google.gwt.examples.cellview.CellTreeExample2}</dd>
+ * <dd>TODO example com.google.gwt.examples.cellview.CellTreeExample</dd>
+ * <dt>Complex example</dt>
+ * <dd>TODO example com.google.gwt.examples.cellview.CellTreeExample2</dd>
  * </dl>
  */
 public class CellTree extends AbstractCellTree implements HasAnimation,
diff --git a/user/src/com/google/gwt/user/cellview/client/SimplePager.java b/user/src/com/google/gwt/user/cellview/client/SimplePager.java
index c409b38..dc16193 100644
--- a/user/src/com/google/gwt/user/cellview/client/SimplePager.java
+++ b/user/src/com/google/gwt/user/cellview/client/SimplePager.java
@@ -37,7 +37,7 @@
  *
  * <p>
  * <h3>Example</h3>
- * {@example com.google.gwt.examples.cellview.SimplePagerExample}
+ * TODO example com.google.gwt.examples.cellview.SimplePagerExample
  * </p>
  */
 public class SimplePager extends AbstractPager {
diff --git a/user/src/com/google/gwt/view/client/AsyncDataProvider.java b/user/src/com/google/gwt/view/client/AsyncDataProvider.java
index ebe5994..73cbf88 100644
--- a/user/src/com/google/gwt/view/client/AsyncDataProvider.java
+++ b/user/src/com/google/gwt/view/client/AsyncDataProvider.java
@@ -23,7 +23,7 @@
  *
  * <p>
  * <h3>Example</h3>
- * {@example com.google.gwt.examples.view.AsyncDataProviderExample}
+ * TODO example com.google.gwt.examples.view.AsyncDataProviderExample
  * </p>
  *
  * @param <T> the data type of records in the list
diff --git a/user/src/com/google/gwt/view/client/ListDataProvider.java b/user/src/com/google/gwt/view/client/ListDataProvider.java
index 18aa447..ca6df3b 100644
--- a/user/src/com/google/gwt/view/client/ListDataProvider.java
+++ b/user/src/com/google/gwt/view/client/ListDataProvider.java
@@ -31,7 +31,7 @@
  *
  * <p>
  * <h3>Example</h3>
- * {@example com.google.gwt.examples.view.ListDataProviderExample}
+ * TODO example com.google.gwt.examples.view.ListDataProviderExample
  * </p>
  *
  * @param <T> the data type of the list
