Add constructors and Javadoc comments to improve clarity and completeness across server components, including WebSocket and routing classes.
This commit is contained in:
@@ -99,6 +99,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the HTTP methods advertised as allowed in preflight responses.
|
||||||
|
*
|
||||||
* @return the immutable set of allowed HTTP methods
|
* @return the immutable set of allowed HTTP methods
|
||||||
*/
|
*/
|
||||||
public Set<HttpMethod> allowedMethods() {
|
public Set<HttpMethod> allowedMethods() {
|
||||||
@@ -106,6 +108,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the request headers advertised as allowed in preflight responses.
|
||||||
|
*
|
||||||
* @return the immutable set of allowed request headers
|
* @return the immutable set of allowed request headers
|
||||||
*/
|
*/
|
||||||
public Set<String> allowedHeaders() {
|
public Set<String> allowedHeaders() {
|
||||||
@@ -113,6 +117,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the response headers that browsers are permitted to read.
|
||||||
|
*
|
||||||
* @return the immutable set of response headers exposed to the browser
|
* @return the immutable set of response headers exposed to the browser
|
||||||
*/
|
*/
|
||||||
public Set<String> exposedHeaders() {
|
public Set<String> exposedHeaders() {
|
||||||
@@ -120,6 +126,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether credentialed (cookie/authorization) requests are permitted.
|
||||||
|
*
|
||||||
* @return {@code true} if credentialed requests are permitted
|
* @return {@code true} if credentialed requests are permitted
|
||||||
*/
|
*/
|
||||||
public boolean allowCredentials() {
|
public boolean allowCredentials() {
|
||||||
@@ -127,6 +135,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns how long a preflight response may be cached by the browser.
|
||||||
|
*
|
||||||
* @return the preflight cache lifetime in seconds ({@code 0} disables the header)
|
* @return the preflight cache lifetime in seconds ({@code 0} disables the header)
|
||||||
*/
|
*/
|
||||||
public long maxAgeSeconds() {
|
public long maxAgeSeconds() {
|
||||||
@@ -134,6 +144,8 @@ public final class CorsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether requests from any origin are permitted.
|
||||||
|
*
|
||||||
* @return {@code true} if any origin is permitted
|
* @return {@code true} if any origin is permitted
|
||||||
*/
|
*/
|
||||||
public boolean allowAnyOrigin() {
|
public boolean allowAnyOrigin() {
|
||||||
@@ -160,6 +172,13 @@ public final class CorsConfig {
|
|||||||
/** Whether any origin is permitted; defaults to {@code false}. */
|
/** Whether any origin is permitted; defaults to {@code false}. */
|
||||||
private boolean allowAnyOrigin = false;
|
private boolean allowAnyOrigin = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a builder with no origins, methods or headers configured and all flags at
|
||||||
|
* their defaults. Obtain instances via {@link CorsConfig#builder()}.
|
||||||
|
*/
|
||||||
|
public Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds one or more explicit origins to the allow-list.
|
* Adds one or more explicit origins to the allow-list.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -110,6 +110,13 @@ public final class RateLimitConfig {
|
|||||||
/** The global rule, if configured. */
|
/** The global rule, if configured. */
|
||||||
private Rule globalRule;
|
private Rule globalRule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a builder with no rules configured. Obtain instances via
|
||||||
|
* {@link RateLimitConfig#builder()}.
|
||||||
|
*/
|
||||||
|
public Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the global rule applied to every request.
|
* Sets the global rule applied to every request.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ public final class Response {
|
|||||||
/** Response body bytes; defaults to an empty array. */
|
/** Response body bytes; defaults to an empty array. */
|
||||||
private byte[] body = new byte[0];
|
private byte[] body = new byte[0];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an empty response with status {@code 200}, no headers and an empty body, ready to
|
||||||
|
* be populated fluently by a handler.
|
||||||
|
*/
|
||||||
|
public Response() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the HTTP status code.
|
* Sets the HTTP status code.
|
||||||
*
|
*
|
||||||
@@ -106,7 +113,7 @@ public final class Response {
|
|||||||
/**
|
/**
|
||||||
* Returns the response body bytes.
|
* Returns the response body bytes.
|
||||||
*
|
*
|
||||||
* @return the body
|
* @return the body bytes
|
||||||
*/
|
*/
|
||||||
public byte[] body() { return body; }
|
public byte[] body() { return body; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,12 @@ public final class Router {
|
|||||||
/** Middlewares executed in insertion order for every matched request. */
|
/** Middlewares executed in insertion order for every matched request. */
|
||||||
private final List<BiConsumer<Request, Response>> middlewares = new ArrayList<>();
|
private final List<BiConsumer<Request, Response>> middlewares = new ArrayList<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an empty router with no registered routes and no middlewares.
|
||||||
|
*/
|
||||||
|
public Router() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a middleware that runs against every matched request before its handler.
|
* Registers a middleware that runs against every matched request before its handler.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the maximum size of a single WebSocket frame payload.
|
||||||
|
*
|
||||||
* @return the maximum single-frame payload size in bytes
|
* @return the maximum single-frame payload size in bytes
|
||||||
*/
|
*/
|
||||||
public int maxFramePayloadLength() {
|
public int maxFramePayloadLength() {
|
||||||
@@ -87,6 +89,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the maximum size of an aggregated (multi-frame) message.
|
||||||
|
*
|
||||||
* @return the maximum aggregated message size in bytes
|
* @return the maximum aggregated message size in bytes
|
||||||
*/
|
*/
|
||||||
public int maxAggregatedMessageSize() {
|
public int maxAggregatedMessageSize() {
|
||||||
@@ -94,6 +98,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the idle timeout after which inactive connections are closed.
|
||||||
|
*
|
||||||
* @return the idle timeout, or {@code null} if idle connections are never closed
|
* @return the idle timeout, or {@code null} if idle connections are never closed
|
||||||
*/
|
*/
|
||||||
public Duration idleTimeout() {
|
public Duration idleTimeout() {
|
||||||
@@ -101,6 +107,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether connections from any origin are accepted.
|
||||||
|
*
|
||||||
* @return {@code true} if connections from any origin are accepted
|
* @return {@code true} if connections from any origin are accepted
|
||||||
*/
|
*/
|
||||||
public boolean allowAnyOrigin() {
|
public boolean allowAnyOrigin() {
|
||||||
@@ -108,6 +116,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the explicitly allowed origins.
|
||||||
|
*
|
||||||
* @return the immutable set of explicitly allowed origins
|
* @return the immutable set of explicitly allowed origins
|
||||||
*/
|
*/
|
||||||
public Set<String> allowedOrigins() {
|
public Set<String> allowedOrigins() {
|
||||||
@@ -126,6 +136,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether per-message deflate compression is enabled.
|
||||||
|
*
|
||||||
* @return {@code true} if per-message compression is enabled
|
* @return {@code true} if per-message compression is enabled
|
||||||
*/
|
*/
|
||||||
public boolean compression() {
|
public boolean compression() {
|
||||||
@@ -133,6 +145,8 @@ public final class WebSocketConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether the WebSocket path is matched by prefix rather than exact equality.
|
||||||
|
*
|
||||||
* @return {@code true} if the WebSocket path is matched by prefix rather than exactly
|
* @return {@code true} if the WebSocket path is matched by prefix rather than exactly
|
||||||
*/
|
*/
|
||||||
public boolean checkStartsWith() {
|
public boolean checkStartsWith() {
|
||||||
@@ -162,6 +176,13 @@ public final class WebSocketConfig {
|
|||||||
/** Whether path matching uses a prefix check; defaults to {@code false}. */
|
/** Whether path matching uses a prefix check; defaults to {@code false}. */
|
||||||
private boolean checkStartsWith = false;
|
private boolean checkStartsWith = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a builder pre-populated with the default configuration values described
|
||||||
|
* above. Obtain instances via {@link WebSocketConfig#builder()}.
|
||||||
|
*/
|
||||||
|
public Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the maximum single-frame payload size.
|
* Sets the maximum single-frame payload size.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ public final class WebSocketGroup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the name of this group.
|
||||||
|
*
|
||||||
* @return the group name
|
* @return the group name
|
||||||
*/
|
*/
|
||||||
public String name() {
|
public String name() {
|
||||||
@@ -71,6 +73,8 @@ public final class WebSocketGroup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns how many connections are currently in the group.
|
||||||
|
*
|
||||||
* @return the current number of member connections
|
* @return the current number of member connections
|
||||||
*/
|
*/
|
||||||
public int size() {
|
public int size() {
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ public final class WebSocketRouter {
|
|||||||
/** Root of the routing trie. */
|
/** Root of the routing trie. */
|
||||||
private final Node root = new Node();
|
private final Node root = new Node();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an empty WebSocket router with no registered handlers.
|
||||||
|
*/
|
||||||
|
public WebSocketRouter() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a handler at the given path, creating any missing trie nodes. Segments wrapped
|
* Registers a handler at the given path, creating any missing trie nodes. Segments wrapped
|
||||||
* in braces (e.g. {@code /chat/{room}}) are treated as path parameters.
|
* in braces (e.g. {@code /chat/{room}}) are treated as path parameters.
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ public final class WebSocketSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the unique identifier generated for this session.
|
||||||
|
*
|
||||||
* @return the unique session id
|
* @return the unique session id
|
||||||
*/
|
*/
|
||||||
public String id() {
|
public String id() {
|
||||||
@@ -73,6 +75,8 @@ public final class WebSocketSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the path the connection was established on.
|
||||||
|
*
|
||||||
* @return the path the connection was established on
|
* @return the path the connection was established on
|
||||||
*/
|
*/
|
||||||
public String path() {
|
public String path() {
|
||||||
@@ -90,6 +94,8 @@ public final class WebSocketSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Indicates whether the connection is still open.
|
||||||
|
*
|
||||||
* @return {@code true} if the underlying channel is still active (open)
|
* @return {@code true} if the underlying channel is still active (open)
|
||||||
*/
|
*/
|
||||||
public boolean isOpen() {
|
public boolean isOpen() {
|
||||||
@@ -111,6 +117,8 @@ public final class WebSocketSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the underlying Netty channel for advanced, low-level use.
|
||||||
|
*
|
||||||
* @return the underlying Netty channel, for advanced use
|
* @return the underlying Netty channel, for advanced use
|
||||||
*/
|
*/
|
||||||
public Channel channel() {
|
public Channel channel() {
|
||||||
|
|||||||
Reference in New Issue
Block a user