1.1MR C006

svn path=/trunk/; revision=550
diff --git a/spec/chapters/changes.tex b/spec/chapters/changes.tex
index e549206..5d2f198 100644
--- a/spec/chapters/changes.tex
+++ b/spec/chapters/changes.tex
@@ -8,6 +8,7 @@
 \item Section \ref{standard_entity_providers}: requirements on standard entity providers when presented with an empty request entity.
 \item Section \ref{message_body_writer}: add closeness of generic type as secondary sort key.
 \item Section \ref{message_body_reader}: default to application/octet-stream if a request does not contain a content-type header.
+\item Section \ref{resource_field}: add support for static fromString method.
 \end{itemize}
 
 \section{Changes Since Proposed Final Draft}
diff --git a/spec/chapters/resources.tex b/spec/chapters/resources.tex
index 077e353..cde3506 100644
--- a/spec/chapters/resources.tex
+++ b/spec/chapters/resources.tex
@@ -45,7 +45,7 @@
 \begin{enumerate}
 \item Primitive types
 \item\label{stringctor} Types that have a constructor that accepts a single \code{String} argument
-\item\label{valueofmethod} Types that have a static method named \code{valueOf} with a single \code{String} argument
+\item\label{valueofmethod} Types that have a static method named \code{valueOf} or \code{fromString} with a single \code{String} argument - if both methods are present then \code{valueOf} MUST be used unless the type is an enum in which case \code{fromString} MUST be used
 \item \code{List<{\em T}>}, \code{Set<{\em T}>}, or \code{SortedSet<{\em T}>}, where \code{{\em T}} satisfies \ref{stringctor} or \ref{valueofmethod} above.
 \end{enumerate}
 
diff --git a/src/jsr311-api/src/javax/ws/rs/CookieParam.java b/src/jsr311-api/src/javax/ws/rs/CookieParam.java
index a358ed6..e8beda9 100644
--- a/src/jsr311-api/src/javax/ws/rs/CookieParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/CookieParam.java
@@ -36,7 +36,8 @@
  * <li>Be a primitive type</li>
  * <li>Be {@link javax.ws.rs.core.Cookie}</li>
  * <li>Have a constructor that accepts a single String argument</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * String argument (see, for example, {@link Integer#valueOf(String)})
  * <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or 
  * <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above.
diff --git a/src/jsr311-api/src/javax/ws/rs/FormParam.java b/src/jsr311-api/src/javax/ws/rs/FormParam.java
index a5aa84a..96b4d33 100644
--- a/src/jsr311-api/src/javax/ws/rs/FormParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/FormParam.java
@@ -36,7 +36,8 @@
  * <ol>
  * <li>Be a primitive type</li>
  * <li>Have a constructor that accepts a single <code>String</code> argument</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * <code>String</code> argument (see, for example, {@link Integer#valueOf(String)})</li>
  * <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or 
  * <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2 or 3 above.
diff --git a/src/jsr311-api/src/javax/ws/rs/HeaderParam.java b/src/jsr311-api/src/javax/ws/rs/HeaderParam.java
index f451ad2..67c5a5f 100644
--- a/src/jsr311-api/src/javax/ws/rs/HeaderParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/HeaderParam.java
@@ -35,7 +35,8 @@
  * <ol>
  * <li>Be a primitive type</li>
  * <li>Have a constructor that accepts a single <code>String</code> argument</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * <code>String</code> argument (see, for example, {@link Integer#valueOf(String)})</li>
  * <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or 
  * <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2 or 3 above.
diff --git a/src/jsr311-api/src/javax/ws/rs/MatrixParam.java b/src/jsr311-api/src/javax/ws/rs/MatrixParam.java
index 61f5f6e..9acb87b 100644
--- a/src/jsr311-api/src/javax/ws/rs/MatrixParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/MatrixParam.java
@@ -36,7 +36,8 @@
  * <ol>
  * <li>Be a primitive type</li>
  * <li>Have a constructor that accepts a single <code>String</code> argument</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * <code>String</code> argument (see, for example, {@link Integer#valueOf(String)})</li>
  * <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or 
  * <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2 or 3 above.
diff --git a/src/jsr311-api/src/javax/ws/rs/PathParam.java b/src/jsr311-api/src/javax/ws/rs/PathParam.java
index 81dfb08..ff3bd0f 100644
--- a/src/jsr311-api/src/javax/ws/rs/PathParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/PathParam.java
@@ -45,7 +45,8 @@
  * path segments.</li>
  * <li>Be a primitive type.</li>
  * <li>Have a constructor that accepts a single String argument.</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * String argument (see, for example, {@link Integer#valueOf(String)}).
  * </ul>
  * 
diff --git a/src/jsr311-api/src/javax/ws/rs/QueryParam.java b/src/jsr311-api/src/javax/ws/rs/QueryParam.java
index 1cee16f..cbedbb9 100644
--- a/src/jsr311-api/src/javax/ws/rs/QueryParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/QueryParam.java
@@ -36,7 +36,8 @@
  * <ol>
  * <li>Be a primitive type</li>
  * <li>Have a constructor that accepts a single <code>String</code> argument</li>
- * <li>Have a static method named <code>valueOf</code> that accepts a single 
+ * <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ * that accepts a single 
  * <code>String</code> argument (see, for example, {@link Integer#valueOf(String)})</li>
  * <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or 
  * <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2 or 3 above.