All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mockserver.configuration.ClientConfiguration Maven / Gradle / Ivy

package org.mockserver.configuration;

import static org.mockserver.configuration.Configuration.configuration;

@SuppressWarnings("UnusedReturnValue")
public class ClientConfiguration {

    private Configuration serverConfiguration;

    public static ClientConfiguration clientConfiguration() {
        return new ClientConfiguration();
    }

    public static ClientConfiguration clientConfiguration(Configuration configuration) {
        return new ClientConfiguration(configuration);
    }

    public ClientConfiguration() {
    }

    public ClientConfiguration(Configuration serverConfiguration) {
        this.serverConfiguration = serverConfiguration;
        if (serverConfiguration == null) {
            serverConfiguration = configuration();
        }
        webSocketClientEventLoopThreadCount(serverConfiguration.webSocketClientEventLoopThreadCount());
        clientNioEventLoopThreadCount(serverConfiguration.clientNioEventLoopThreadCount());
        maxSocketTimeoutInMillis(serverConfiguration.maxSocketTimeoutInMillis());
        maxFutureTimeoutInMillis(serverConfiguration.maxFutureTimeoutInMillis());
        controlPlaneTLSMutualAuthenticationRequired(serverConfiguration.controlPlaneTLSMutualAuthenticationRequired());
        controlPlaneTLSMutualAuthenticationCAChain(serverConfiguration.controlPlaneTLSMutualAuthenticationCAChain());
        controlPlanePrivateKeyPath(serverConfiguration.controlPlanePrivateKeyPath());
        controlPlaneX509CertificatePath(serverConfiguration.controlPlaneX509CertificatePath());
        controlPlaneJWTAuthenticationRequired(serverConfiguration.controlPlaneJWTAuthenticationRequired());
        controlPlaneJWTAuthenticationJWKSource(serverConfiguration.controlPlaneJWTAuthenticationJWKSource());
    }

    public Configuration toServerConfiguration() {
        if (serverConfiguration == null) {
            serverConfiguration = configuration();
        }
        serverConfiguration.webSocketClientEventLoopThreadCount(this.webSocketClientEventLoopThreadCount);
        serverConfiguration.clientNioEventLoopThreadCount(this.clientNioEventLoopThreadCount);
        serverConfiguration.maxSocketTimeoutInMillis(this.maxSocketTimeoutInMillis);
        serverConfiguration.maxFutureTimeoutInMillis(this.maxFutureTimeoutInMillis);
        serverConfiguration.controlPlaneTLSMutualAuthenticationRequired(this.controlPlaneTLSMutualAuthenticationRequired);
        serverConfiguration.controlPlaneTLSMutualAuthenticationCAChain(this.controlPlaneTLSMutualAuthenticationCAChain);
        serverConfiguration.controlPlanePrivateKeyPath(this.controlPlanePrivateKeyPath);
        serverConfiguration.controlPlaneX509CertificatePath(this.controlPlaneX509CertificatePath);
        serverConfiguration.controlPlaneJWTAuthenticationRequired(this.controlPlaneJWTAuthenticationRequired);
        serverConfiguration.controlPlaneJWTAuthenticationJWKSource(this.controlPlaneJWTAuthenticationJWKSource);
        return serverConfiguration;
    }

    // memory usage
    private Integer maxWebSocketExpectations;

    // scalability
    private Integer webSocketClientEventLoopThreadCount;
    private Integer clientNioEventLoopThreadCount;

    // socket
    private Long maxSocketTimeoutInMillis;
    private Long maxFutureTimeoutInMillis;

    // control plane authentication
    private Boolean controlPlaneTLSMutualAuthenticationRequired;
    private String controlPlaneTLSMutualAuthenticationCAChain;
    private String controlPlanePrivateKeyPath;
    private String controlPlaneX509CertificatePath;
    private Boolean controlPlaneJWTAuthenticationRequired;
    private String controlPlaneJWTAuthenticationJWKSource;

    public Integer maxWebSocketExpectations() {
        if (maxWebSocketExpectations == null) {
            maxWebSocketExpectations = ConfigurationProperties.maxWebSocketExpectations();
        }
        return maxWebSocketExpectations;
    }

    /**
     * 

* Maximum number of remote (not the same JVM) method callbacks (i.e. web sockets) registered for expectations. The web socket client registry entries are stored in a circular queue so once this limit is reach the oldest are overwritten. *

*

* The default is 1500 *

* * @param maxWebSocketExpectations maximum number of method callbacks (i.e. web sockets) registered for expectations */ public ClientConfiguration maxWebSocketExpectations(Integer maxWebSocketExpectations) { this.maxWebSocketExpectations = maxWebSocketExpectations; return this; } public Integer webSocketClientEventLoopThreadCount() { if (webSocketClientEventLoopThreadCount == null) { webSocketClientEventLoopThreadCount = ConfigurationProperties.webSocketClientEventLoopThreadCount(); } return webSocketClientEventLoopThreadCount; } /** *

Client Netty worker thread pool size for handling requests and response. These threads handle deserializing and serialising HTTP requests and responses and some other fast logic.

* *

Default is 5 threads

* * @param webSocketClientEventLoopThreadCount Client Netty worker thread pool size */ public ClientConfiguration webSocketClientEventLoopThreadCount(Integer webSocketClientEventLoopThreadCount) { this.webSocketClientEventLoopThreadCount = webSocketClientEventLoopThreadCount; return this; } public Integer clientNioEventLoopThreadCount() { if (clientNioEventLoopThreadCount == null) { clientNioEventLoopThreadCount = ConfigurationProperties.clientNioEventLoopThreadCount(); } return clientNioEventLoopThreadCount; } /** *

Client Netty worker thread pool size for handling requests and response. These threads handle deserializing and serialising HTTP requests and responses and some other fast logic.

* *

Default is 5 threads

* * @param clientNioEventLoopThreadCount Client Netty worker thread pool size */ public ClientConfiguration clientNioEventLoopThreadCount(Integer clientNioEventLoopThreadCount) { this.clientNioEventLoopThreadCount = clientNioEventLoopThreadCount; return this; } public Long maxSocketTimeoutInMillis() { if (maxSocketTimeoutInMillis == null) { maxSocketTimeoutInMillis = ConfigurationProperties.maxSocketTimeout(); } return maxSocketTimeoutInMillis; } /** * Maximum time in milliseconds allowed for a response from a socket *

* Default is 20,000 ms * * @param maxSocketTimeoutInMillis maximum time in milliseconds allowed */ public ClientConfiguration maxSocketTimeoutInMillis(Long maxSocketTimeoutInMillis) { this.maxSocketTimeoutInMillis = maxSocketTimeoutInMillis; return this; } public Long maxFutureTimeoutInMillis() { if (maxFutureTimeoutInMillis == null) { maxFutureTimeoutInMillis = ConfigurationProperties.maxFutureTimeout(); } return maxFutureTimeoutInMillis; } /** * Maximum time allowed in milliseconds for any future to wait, for example when waiting for a response over a web socket callback. *

* Default is 60,000 ms * * @param maxFutureTimeoutInMillis maximum time allowed in milliseconds */ public ClientConfiguration maxFutureTimeoutInMillis(Long maxFutureTimeoutInMillis) { this.maxFutureTimeoutInMillis = maxFutureTimeoutInMillis; return this; } public Boolean controlPlaneTLSMutualAuthenticationRequired() { if (controlPlaneTLSMutualAuthenticationRequired == null) { controlPlaneTLSMutualAuthenticationRequired = ConfigurationProperties.controlPlaneTLSMutualAuthenticationRequired(); } return controlPlaneTLSMutualAuthenticationRequired; } public ClientConfiguration controlPlaneTLSMutualAuthenticationRequired(Boolean controlPlaneTLSMutualAuthenticationRequired) { this.controlPlaneTLSMutualAuthenticationRequired = controlPlaneTLSMutualAuthenticationRequired; return this; } public String controlPlaneTLSMutualAuthenticationCAChain() { if (controlPlaneTLSMutualAuthenticationCAChain == null) { controlPlaneTLSMutualAuthenticationCAChain = ConfigurationProperties.controlPlaneTLSMutualAuthenticationCAChain(); } return controlPlaneTLSMutualAuthenticationCAChain; } public ClientConfiguration controlPlaneTLSMutualAuthenticationCAChain(String controlPlaneTLSMutualAuthenticationCAChain) { this.controlPlaneTLSMutualAuthenticationCAChain = controlPlaneTLSMutualAuthenticationCAChain; return this; } public String controlPlanePrivateKeyPath() { if (controlPlanePrivateKeyPath == null) { controlPlanePrivateKeyPath = ConfigurationProperties.controlPlanePrivateKeyPath(); } return controlPlanePrivateKeyPath; } public ClientConfiguration controlPlanePrivateKeyPath(String controlPlanePrivateKeyPath) { this.controlPlanePrivateKeyPath = controlPlanePrivateKeyPath; return this; } public String controlPlaneX509CertificatePath() { if (controlPlaneX509CertificatePath == null) { controlPlaneX509CertificatePath = ConfigurationProperties.controlPlaneX509CertificatePath(); } return controlPlaneX509CertificatePath; } public ClientConfiguration controlPlaneX509CertificatePath(String controlPlaneX509CertificatePath) { this.controlPlaneX509CertificatePath = controlPlaneX509CertificatePath; return this; } public Boolean controlPlaneJWTAuthenticationRequired() { if (controlPlaneJWTAuthenticationRequired == null) { controlPlaneJWTAuthenticationRequired = ConfigurationProperties.controlPlaneJWTAuthenticationRequired(); } return controlPlaneJWTAuthenticationRequired; } public ClientConfiguration controlPlaneJWTAuthenticationRequired(Boolean controlPlaneJWTAuthenticationRequired) { this.controlPlaneJWTAuthenticationRequired = controlPlaneJWTAuthenticationRequired; return this; } public String controlPlaneJWTAuthenticationJWKSource() { if (controlPlaneJWTAuthenticationJWKSource == null) { controlPlaneJWTAuthenticationJWKSource = ConfigurationProperties.controlPlaneJWTAuthenticationJWKSource(); } return controlPlaneJWTAuthenticationJWKSource; } public ClientConfiguration controlPlaneJWTAuthenticationJWKSource(String controlPlaneJWTAuthenticationJWKSource) { this.controlPlaneJWTAuthenticationJWKSource = controlPlaneJWTAuthenticationJWKSource; return this; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy