Add FormParam to annotation summary. Fix spec and javadoc to reflect use of Encoded annotation with FormParam.

svn path=/trunk/; revision=426
diff --git a/spec/chapters/annotations.tex b/spec/chapters/annotations.tex
index fd254e6..d34e194 100644
--- a/spec/chapters/annotations.tex
+++ b/spec/chapters/annotations.tex
@@ -24,15 +24,17 @@
 \hline
 \code{QueryParam} & \raggedright Parameter, field or method & \raggedright Specifies that the value of a method parameter, class field, or bean property is to be extracted from a URI query parameter. The value of the annotation identifies the name of a query parameter. \tabularnewline
 \hline
+\code{FormParam} & \raggedright Parameter, field or method & \raggedright Specifies that the value of a method parameter, class field, or bean property is to be extracted from a form parameter in a request entity body. The value of the annotation identifies the name of a form parameter. \tabularnewline
+\hline
 \code{MatrixParam} & \raggedright Parameter, field or method & \raggedright Specifies that the value of a method parameter, class field, or bean property is to be extracted from a URI matrix parameter. The value of the annotation identifies the name of a matrix parameter. \tabularnewline
 \hline
 \code{CookieParam} & \raggedright Parameter, field or method & \raggedright Specifies that the value of a method parameter, class field, or bean property is to be extracted from a HTTP cookie. The value of the annotation identifies the name of a the cookie. \tabularnewline
 \hline
 \code{HeaderParam} & \raggedright Parameter, field or method & \raggedright Specifies that the value of a method parameter, class field, or bean property is to be extracted from a HTTP header. The value of the annotation identifies the name of a HTTP header. \tabularnewline
 \hline
-\code{Encoded} & \raggedright Type, constructor, method, field or parameter & \raggedright Disables automatic URI decoding for path, query and matrix parameters. \tabularnewline
+\code{Encoded} & \raggedright Type, constructor, method, field or parameter & \raggedright Disables automatic URI decoding for path, query, form and matrix parameters. \tabularnewline
 \hline
-\code{DefaultValue} & \raggedright Parameter, field or method & \raggedright Specifies a default value for a method parameter annotated with \QueryParam, \MatrixParam, \CookieParam\ or \HeaderParam. The specified value will be used if the corresponding query or matrix parameter is not present in the request URI, or if the corresponding HTTP header is not included in the request.\tabularnewline
+\code{DefaultValue} & \raggedright Parameter, field or method & \raggedright Specifies a default value for a method parameter annotated with \QueryParam, \MatrixParam, \CookieParam, \FormParam\ or \HeaderParam. The specified value will be used if the corresponding query or matrix parameter is not present in the request URI, if the corresponding form parameter is not in the request entity body, or if the corresponding HTTP header is not included in the request.\tabularnewline
 \hline
 \code{Context} & \raggedright Field, method or parameter & \raggedright Identifies an injection target for one of the types listed in section \ref{contexttypes} or the applicable section of chapter \ref{environment}. \tabularnewline
 \hline
diff --git a/spec/chapters/resources.tex b/spec/chapters/resources.tex
index eeb334f..6f1d814 100644
--- a/spec/chapters/resources.tex
+++ b/spec/chapters/resources.tex
@@ -50,7 +50,7 @@
 \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}
 
-The \code{Default\-Value} annotation may be used to supply a default value for some of the above, see the Javadoc for \code{Default\-Value} for usage details and rules for generating a value in the absence of this annotation and the requested data. The \code{Encoded} annotation may be used to disable automatic URI decoding for \MatrixParam, \QueryParam\ and \PathParam\ annotated fields and properties.
+The \code{Default\-Value} annotation may be used to supply a default value for some of the above, see the Javadoc for \code{Default\-Value} for usage details and rules for generating a value in the absence of this annotation and the requested data. The \code{Encoded} annotation may be used to disable automatic URI decoding for \MatrixParam, \QueryParam, \FormParam\ and \PathParam\ annotated fields and properties.
 
 A \WebAppExc\ thrown during construction of field or property values using \ref{stringctor} or \ref{valueofmethod} above is processed directly as described in section \ref{method_exc}. Other exceptions thrown during construction of field or property values using \ref{stringctor} or \ref{valueofmethod} above are treated as client errors: if the field or property is annotated with \MatrixParam, \QueryParam\ or \PathParam\ then an implementation MUST generate a \WebAppExc\ that wraps the thrown exception with a not found response (404 status) and no entity; if the field or property is annotated with \FormParam, \HeaderParam\ or \CookieParam\ then an implementation MUST generate a \WebAppExc\ that wraps the thrown exception with  a client error response (400 status) and no entity. The \WebAppExc\ MUST be then be processed as described in section \ref{method_exc}.
 
diff --git a/src/jsr311-api/src/javax/ws/rs/FormParam.java b/src/jsr311-api/src/javax/ws/rs/FormParam.java
index 2e0c445..ed59093 100644
--- a/src/jsr311-api/src/javax/ws/rs/FormParam.java
+++ b/src/jsr311-api/src/javax/ws/rs/FormParam.java
@@ -27,9 +27,9 @@
 /**
  * Binds the value(s) of a form parameter contained within a request entity body
  * to a resource method parameter, resource class field, or resource class bean 
- * property.
- * A default value can be specified using the {@link DefaultValue}
- * annotation.
+ * property. Values are URL decoded unless this is disabled using the 
+ * {@link Encoded} annotation. A default value can be specified using the 
+ * {@link DefaultValue} annotation.
  * If the request entity body is absent or is of any media type other than 
  * application/x-www-form-urlencoded, the default value is used.
  * 
@@ -55,6 +55,7 @@
  * parameters.</p>
  *
  * @see DefaultValue
+ * @see Encoded
  */
 @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)