diff --git a/build-spring-framework/resources/changelog.txt b/build-spring-framework/resources/changelog.txt index b786d6550c9aa8cc32b9c0e4d020e54785a45f80..e4183ac6f0653b20d553f0eb9e535381d8dd2c44 100644 --- a/build-spring-framework/resources/changelog.txt +++ b/build-spring-framework/resources/changelog.txt @@ -6,6 +6,7 @@ http://www.springsource.org Changes in version 3.0.1 (2010-02-18) ------------------------------------- +* changed HttpStatus.REQUEST_TOO_LONG constant to REQUEST_ENTITY_TOO_LARGE * upgraded to AspectJ 1.6.8 * full support for JPA 2.0 persistence schema and PersistenceUnitInfo SPI * support for JPA PersistenceContext/Unit injection on Google App Engine diff --git a/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java b/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java index 3acebabb7942382cb3d0eeb04336c18a9cae3c3e..c8f62a35edad51b991fd9b6916b1e0d7ea19cef7 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java +++ b/org.springframework.web/src/main/java/org/springframework/http/HttpStatus.java @@ -23,63 +23,304 @@ package org.springframework.http; * * @author Arjen Poutsma * @see HttpStatus.Series + * @see HTTP Status Code Registry */ public enum HttpStatus { // 1xx Informational + /** + * {@code 100 Continue}. + * @see HTTP/1.1 + */ CONTINUE(100), + /** + * {@code 101 Switching Protocols}. + * @see HTTP/1.1 + */ SWITCHING_PROTOCOLS(101), + /** + * {@code 102 Processing}. + * @see WebDAV + */ + PROCESSING(102), // 2xx Success + /** + * {@code 200 OK}. + * @see HTTP/1.1 + */ OK(200), + /** + * {@code 201 Created}. + * @see HTTP/1.1 + */ CREATED(201), + /** + * {@code 202 Accepted}. + * @see HTTP/1.1 + */ ACCEPTED(202), + /** + * {@code 203 Non-Authoritative Information}. + * @see HTTP/1.1 + */ NON_AUTHORITATIVE_INFORMATION(203), + /** + * {@code 204 No Content}. + * @see HTTP/1.1 + */ NO_CONTENT(204), + /** + * {@code 205 Reset Content}. + * @see HTTP/1.1 + */ RESET_CONTENT(205), + /** + * {@code 206 Partial Content}. + * @see HTTP/1.1 + */ PARTIAL_CONTENT(206), + /** + * {@code 207 Multi-Status}. + * @see WebDAV + */ + MULTI_STATUS(207), + /** + * {@code 208 Already Reported}. + * @see WebDAV Binding Extensions + */ + ALREADY_REPORTED(208), + /** + * {@code 226 IM Used}. + * @see Delta encoding in HTTP + */ + IM_USED(226), // 3xx Redirection + /** + * {@code 300 Multiple Choices}. + * @see HTTP/1.1 + */ MULTIPLE_CHOICES(300), + /** + * {@code 301 Moved Permanently}. + * @see HTTP/1.1 + */ MOVED_PERMANENTLY(301), + /** + * {@code 302 Found}. + * @see HTTP/1.1 + */ + FOUND(302), + /** + * {@code 302 Moved Temporarily}. + * @see HTTP/1.0 + */ MOVED_TEMPORARILY(302), + /** + * {@code 303 See Other}. + * @see HTTP/1.1 + */ SEE_OTHER(303), + /** + * {@code 304 Not Modified}. + * @see HTTP/1.1 + */ NOT_MODIFIED(304), + /** + * {@code 305 Use Proxy}. + * @see HTTP/1.1 + */ USE_PROXY(305), + /** + * {@code 307 Temporary Redirect}. + * @see HTTP/1.1 + */ TEMPORARY_REDIRECT(307), // --- 4xx Client Error --- + /** + * {@code 400 Bad Request}. + * @see HTTP/1.1 + */ BAD_REQUEST(400), + /** + * {@code 401 Unauthorized}. + * @see HTTP/1.1 + */ UNAUTHORIZED(401), + /** + * {@code 402 Payment Required}. + * @see HTTP/1.1 + */ PAYMENT_REQUIRED(402), + /** + * {@code 403 Forbidden}. + * @see HTTP/1.1 + */ FORBIDDEN(403), + /** + * {@code 404 Not Found}. + * @see HTTP/1.1 + */ NOT_FOUND(404), + /** + * {@code 405 Method Not Allowed}. + * @see HTTP/1.1 + */ METHOD_NOT_ALLOWED(405), + /** + * {@code 406 Not Acceptable}. + * @see HTTP/1.1 + */ NOT_ACCEPTABLE(406), + /** + * {@code 407 Proxy Authentication Required}. + * @see HTTP/1.1 + */ PROXY_AUTHENTICATION_REQUIRED(407), + /** + * {@code 408 Request Timeout}. + * @see HTTP/1.1 + */ REQUEST_TIMEOUT(408), + /** + * {@code 409 Conflict}. + * @see HTTP/1.1 + */ CONFLICT(409), + /** + * {@code 410 Gone}. + * @see HTTP/1.1 + */ GONE(410), + /** + * {@code 411 Length Required}. + * @see HTTP/1.1 + */ LENGTH_REQUIRED(411), + /** + * {@code 412 Precondition failed}. + * @see HTTP/1.1 + */ PRECONDITION_FAILED(412), - REQUEST_TOO_LONG(413), + /** + * {@code 413 Request Entity Too Large}. + * @see HTTP/1.1 + */ + REQUEST_ENTITY_TOO_LARGE(413), + /** + * {@code 414 Request-URI Too Long}. + * @see HTTP/1.1 + */ REQUEST_URI_TOO_LONG(414), + /** + * {@code 415 Unsupported Media Type}. + * @see HTTP/1.1 + */ UNSUPPORTED_MEDIA_TYPE(415), + /** + * {@code 416 Requested Range Not Satisfiable}. + * @see HTTP/1.1 + */ REQUESTED_RANGE_NOT_SATISFIABLE(416), + /** + * {@code 417 Expectation Failed}. + * @see HTTP/1.1 + */ EXPECTATION_FAILED(417), + /** + * {@code 419 Insufficient Space on Resource}. + * @see WebDAV Draft + */ + INSUFFICIENT_SPACE_ON_RESOURCE(419), + /** + * {@code 420 Method Failure}. + * @see WebDAV Draft + */ + METHOD_FAILURE(420), + /** + * {@code 421 Destination Locked}. + * @see WebDAV Draft + */ + DESTINATION_LOCKED(421), + /** + * {@code 422 Unprocessable Entity}. + * @see WebDAV + */ + UNPROCESSABLE_ENTITY(422), + /** + * {@code 423 Locked}. + * @see WebDAV + */ + LOCKED(423), + /** + * {@code 424 Failed Dependency}. + * @see WebDAV + */ + FAILED_DEPENDENCY(424), + /** + * {@code 426 Upgrade Required}. + * @see Upgrading to TLS Within HTTP/1.1 + */ + UPGRADE_REQUIRED(426), // --- 5xx Server Error --- + /** + * {@code 500 Internal Server Error}. + * @see HTTP/1.1 + */ INTERNAL_SERVER_ERROR(500), + /** + * {@code 501 Not Implemented}. + * @see HTTP/1.1 + */ NOT_IMPLEMENTED(501), + /** + * {@code 502 Bad Gateway}. + * @see HTTP/1.1 + */ BAD_GATEWAY(502), + /** + * {@code 503 Service Unavailable}. + * @see HTTP/1.1 + */ SERVICE_UNAVAILABLE(503), + /** + * {@code 504 Gateway Timeout}. + * @see HTTP/1.1 + */ GATEWAY_TIMEOUT(504), - HTTP_VERSION_NOT_SUPPORTED(505); + /** + * {@code 505 HTTP Version Not Supported}. + * @see HTTP/1.1 + */ + HTTP_VERSION_NOT_SUPPORTED(505), + /** + * {@code 506 Variant Also Negotiates} + * @see Transparent Content Negotiation + */ + VARIANT_ALSO_NEGOTIATES(506), + /** + * {@code 507 Insufficient Storage} + * @see WebDAV + */ + INSUFFICIENT_STORAGE(507), + /** + * {@code 508 Loop Detected} + * @see WebDAV Binding Extensions + */ + LOOP_DETECTED(508), + /** + * {@code 510 Not Extended} + * @see HTTP Extension Framework + */ + NOT_EXTENDED(510); private final int value; diff --git a/org.springframework.web/src/test/java/org/springframework/http/HttpStatusTests.java b/org.springframework.web/src/test/java/org/springframework/http/HttpStatusTests.java new file mode 100644 index 0000000000000000000000000000000000000000..4fbe093e7691aa3da0502c027950aac8a1096afb --- /dev/null +++ b/org.springframework.web/src/test/java/org/springframework/http/HttpStatusTests.java @@ -0,0 +1,53 @@ +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.http; + +import static org.junit.Assert.*; +import org.junit.Test; + +/** @author Arjen Poutsma */ +public class HttpStatusTests { + + private int[] registryValues = + new int[]{100, 101, 102, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, + 307, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 422, + 423, 424, 426, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510,}; + + private String[] registryDescriptions = + new String[]{"CONTINUE", "SWITCHING_PROTOCOLS", "PROCESSING", "OK", "CREATED", "ACCEPTED", + "NON_AUTHORITATIVE_INFORMATION", "NO_CONTENT", "RESET_CONTENT", "PARTIAL_CONTENT", "MULTI_STATUS", + "ALREADY_REPORTED", "IM_USED", "MULTIPLE_CHOICES", "MOVED_PERMANENTLY", "FOUND", "SEE_OTHER", + "NOT_MODIFIED", "USE_PROXY", "TEMPORARY_REDIRECT", "BAD_REQUEST", "UNAUTHORIZED", + "PAYMENT_REQUIRED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "NOT_ACCEPTABLE", + "PROXY_AUTHENTICATION_REQUIRED", "REQUEST_TIMEOUT", "CONFLICT", "GONE", "LENGTH_REQUIRED", + "PRECONDITION_FAILED", "REQUEST_ENTITY_TOO_LARGE", "REQUEST_URI_TOO_LONG", "UNSUPPORTED_MEDIA_TYPE", + "REQUESTED_RANGE_NOT_SATISFIABLE", "EXPECTATION_FAILED", "UNPROCESSABLE_ENTITY", "LOCKED", + "FAILED_DEPENDENCY", "UPGRADE_REQUIRED", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "BAD_GATEWAY", + "SERVICE_UNAVAILABLE", "GATEWAY_TIMEOUT", "HTTP_VERSION_NOT_SUPPORTED", "VARIANT_ALSO_NEGOTIATES", + "INSUFFICIENT_STORAGE", "LOOP_DETECTED", "NOT_EXTENDED",}; + + @Test + public void registryValues() { + for (int i = 0; i < registryValues.length; i++) { + HttpStatus status = HttpStatus.valueOf(registryValues[i]); + assertEquals("Invalid value", registryValues[i], status.value()); + assertEquals("Invalid descripion", registryDescriptions[i], status.name()); + } + + } + +}