Class SimulatorConfig.Builder
java.lang.Object
com.soklet.SimulatorConfig.Builder
- Enclosing class:
SimulatorConfig
Builds a single-use configuration against fresh off-network transports.
A builder is sealed after a successful build(). Builders are not
thread-safe and must not be retained after building.
-
Method Summary
Modifier and TypeMethodDescriptionbuild()Builds the single-use configuration for one simulator run attempt.configureMcpServer(@NonNull Consumer<@NonNull McpServer.Builder> mcpServerConfigurer) Configures, builds, and adds one fresh simulated MCP server.corsAuthorizer(@Nullable CorsAuthorizer corsAuthorizer) Sets the authorizer for ordinary HTTP and SSE CORS processing.Adds this run's fresh simulated HTTP server.httpServer(@NonNull Consumer<@NonNull HttpServer> httpServerConsumer) Adds this run's fresh simulated HTTP server and supplies that exact server for configuration-time application dependency wiring.instanceProvider(@Nullable InstanceProvider instanceProvider) Sets how Soklet creates application instances for HTTP, SSE, and MCP handlers and application parameter values.lifecycleObserver(@Nullable LifecycleObserver lifecycleObserver) Replaces the configured lifecycle observers with one observer.lifecycleObservers(@Nullable Collection<? extends @NonNull LifecycleObserver> lifecycleObservers) Replaces the configured lifecycle observers in iteration order.lifecyclePolicy(@Nullable LifecyclePolicy lifecyclePolicy) Sets the startup and shutdown deadline policy shared by every configured lifecycle component.metricsCollector(@Nullable MetricsCollector metricsCollector) Sets how Soklet records operational metrics.requestBodyMarshaler(@Nullable RequestBodyMarshaler requestBodyMarshaler) Sets how request bodies are converted to application values.requestInterceptor(@Nullable RequestInterceptor requestInterceptor) Sets the interceptor around application request handling.resourceMethodParameterProvider(@Nullable ResourceMethodParameterProvider resourceMethodParameterProvider) Sets how parameters are supplied for Resource Method invocation.resourceMethodResolver(@Nullable ResourceMethodResolver resourceMethodResolver) Sets how Soklet discovers and resolves Resource Methods.responseMarshaler(@Nullable ResponseMarshaler responseMarshaler) Sets how application response values are converted for transmission.simulatorOptions(@Nullable SimulatorOptions simulatorOptions) Sets simulator request and response behavior options.Adds this run's fresh simulated Server-Sent Events server.Adds this run's fresh simulated Server-Sent Events server and supplies that exact server for configuration-time application dependency wiring.valueConverterRegistry(@Nullable ValueConverterRegistry valueConverterRegistry) Sets the registry used for Java value conversions.
-
Method Details
-
httpServer
Adds this run's fresh simulated HTTP server.- Returns:
- this builder
-
httpServer
public @NonNull SimulatorConfig.Builder httpServer(@NonNull Consumer<@NonNull HttpServer> httpServerConsumer) Adds this run's fresh simulated HTTP server and supplies that exact server for configuration-time application dependency wiring. For access from the simulation body, preferSimulator.getHttpServer(). The consumer runs synchronously during this call and must not retain the server for another configuration.- Parameters:
httpServerConsumer- receives this run's HTTP server- Returns:
- this builder
-
sseServer
Adds this run's fresh simulated Server-Sent Events server.- Returns:
- this builder
-
sseServer
public @NonNull SimulatorConfig.Builder sseServer(@NonNull Consumer<@NonNull SseServer> sseServerConsumer) Adds this run's fresh simulated Server-Sent Events server and supplies that exact server for configuration-time application dependency wiring. For access from the simulation body, preferSimulator.getSseServer(). The consumer runs synchronously during this call and must not retain the server for another configuration.- Parameters:
sseServerConsumer- receives this run's SSE server- Returns:
- this builder
-
configureMcpServer
public @NonNull SimulatorConfig.Builder configureMcpServer(@NonNull Consumer<@NonNull McpServer.Builder> mcpServerConfigurer) Configures, builds, and adds one fresh simulated MCP server. If this builder was created bySimulatorConfig.withSokletConfig(SokletConfig)and the source configuration contains an MCP server, configuration begins with that server's construction settings. Otherwise, configuration begins withMcpServer.withPort(Integer)defaults and logical port0. The logical port may be changed withMcpServer.Builder.port(Integer).The consumer runs synchronously and must only customize the supplied builder. This outer builder owns the call to
McpServer.Builder.build(); calling it from the consumer or retaining the builder for later use is rejected.- Parameters:
mcpServerConfigurer- customizes this configuration's MCP builder- Returns:
- this builder
-
lifecyclePolicy
Sets the startup and shutdown deadline policy shared by every configured lifecycle component. Passingnullrestores the built-in default.- Parameters:
lifecyclePolicy- lifecycle policy, ornullto use the default- Returns:
- this builder
-
instanceProvider
public @NonNull SimulatorConfig.Builder instanceProvider(@Nullable InstanceProvider instanceProvider) Sets how Soklet creates application instances for HTTP, SSE, and MCP handlers and application parameter values. The provider may be called concurrently.- Parameters:
instanceProvider- instance provider, ornullfor the default- Returns:
- this builder
-
valueConverterRegistry
public @NonNull SimulatorConfig.Builder valueConverterRegistry(@Nullable ValueConverterRegistry valueConverterRegistry) Sets the registry used for Java value conversions.- Parameters:
valueConverterRegistry- registry, ornullfor the default- Returns:
- this builder
-
requestBodyMarshaler
public @NonNull SimulatorConfig.Builder requestBodyMarshaler(@Nullable RequestBodyMarshaler requestBodyMarshaler) Sets how request bodies are converted to application values.- Parameters:
requestBodyMarshaler- marshaler, ornullto derive one- Returns:
- this builder
-
resourceMethodResolver
public @NonNull SimulatorConfig.Builder resourceMethodResolver(@Nullable ResourceMethodResolver resourceMethodResolver) Sets how Soklet discovers and resolves Resource Methods.- Parameters:
resourceMethodResolver- resolver, ornullfor the default- Returns:
- this builder
-
resourceMethodParameterProvider
public @NonNull SimulatorConfig.Builder resourceMethodParameterProvider(@Nullable ResourceMethodParameterProvider resourceMethodParameterProvider) Sets how parameters are supplied for Resource Method invocation.- Parameters:
resourceMethodParameterProvider- provider, ornullfor the default- Returns:
- this builder
-
responseMarshaler
public @NonNull SimulatorConfig.Builder responseMarshaler(@Nullable ResponseMarshaler responseMarshaler) Sets how application response values are converted for transmission.- Parameters:
responseMarshaler- marshaler, ornullfor the default- Returns:
- this builder
-
requestInterceptor
public @NonNull SimulatorConfig.Builder requestInterceptor(@Nullable RequestInterceptor requestInterceptor) Sets the interceptor around application request handling.- Parameters:
requestInterceptor- interceptor, ornullfor the default- Returns:
- this builder
-
lifecycleObserver
public @NonNull SimulatorConfig.Builder lifecycleObserver(@Nullable LifecycleObserver lifecycleObserver) Replaces the configured lifecycle observers with one observer.- Parameters:
lifecycleObserver- observer, ornullfor no observers- Returns:
- this builder
-
lifecycleObservers
public @NonNull SimulatorConfig.Builder lifecycleObservers(@Nullable Collection<? extends @NonNull LifecycleObserver> lifecycleObservers) Replaces the configured lifecycle observers in iteration order.- Parameters:
lifecycleObservers- non-null observers, ornullfor no observers; elements must be non-null- Returns:
- this builder
-
metricsCollector
public @NonNull SimulatorConfig.Builder metricsCollector(@Nullable MetricsCollector metricsCollector) Sets how Soklet records operational metrics.- Parameters:
metricsCollector- collector, ornullfor the default- Returns:
- this builder
-
corsAuthorizer
Sets the authorizer for ordinary HTTP and SSE CORS processing.- Parameters:
corsAuthorizer- authorizer, ornullto reject all cross-origin requests- Returns:
- this builder
-
simulatorOptions
public @NonNull SimulatorConfig.Builder simulatorOptions(@Nullable SimulatorOptions simulatorOptions) Sets simulator request and response behavior options.- Parameters:
simulatorOptions- options, ornullfor defaults- Returns:
- this builder
-
build
Builds the single-use configuration for one simulator run attempt.- Returns:
- completed simulator configuration
- Throws:
IllegalStateException- if the builder is sealed, was already built, or has no simulated server
-