├── .buildkite
├── buildkite.md
└── pipeline.yml
├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── dependabot.yml
└── workflows
│ ├── build-docker-image.yml
│ └── codeql-analysis.yml
├── .gitignore
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .run
├── All Unit Tests.run.xml
├── All in mockserver-client-java.run.xml
├── All in mockserver-core.run.xml
├── All in mockserver-examples.run.xml
├── All in mockserver-junit-jupiter.run.xml
├── All in mockserver-junit-rule.run.xml
├── All in mockserver-netty.run.xml
├── All in mockserver-proxy-war.run.xml
├── All in mockserver-spring-test-listener.run.xml
├── All in mockserver-war.run.xml
├── Main (1080 - initialiser).run.xml
├── Main (1080 - property file).run.xml
├── Main (1080 plain).run.xml
├── Main (1090 plain).run.xml
├── Main (8443 trace).run.xml
├── gradle_integration_tests.sh.run.xml
├── mockserver [dependency_tree].run.xml
└── mockserver-netty [single integration test].run.xml
├── CONTRIBUTING.md
├── DEBUGGING.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── changelog.md
├── checkstyle.xml
├── container_integration_tests
├── README.md
├── client_docker_images
│ └── CurlClientDockerfile
├── docker-compose.sh
├── docker_compose_forward_with_override
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_remote_host_and_port_by_environment_variable
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_server_port_by_command
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_server_port_by_environment_variable_long_name
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_server_port_by_environment_variable_short_name
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_with_expectation_initialiser
│ ├── config
│ │ └── expectationInitialiser.json
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_with_persisted_expectations
│ ├── .gitignore
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_with_server_port_from_custom_properties_file
│ ├── config
│ │ └── mockserver.custom.properties
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_with_server_port_from_default_properties_file
│ ├── config
│ │ └── mockserver.properties
│ ├── docker-compose.yml
│ └── integration_test.sh
├── docker_compose_without_server_port
│ ├── docker-compose.yml
│ └── integration_test.sh
├── helm-deploy.sh
├── helm_custom_server_port
│ └── integration_test.sh
├── helm_default_config
│ └── integration_test.sh
├── helm_local_docker_container
│ └── integration_test.sh
├── helm_remote_host_and_port
│ └── integration_test.sh
├── integration_tests.sh
├── kind-config.yaml
└── logging.sh
├── docker
├── Dockerfile
├── README.md
├── docker-compose
│ ├── configure_by_command
│ │ └── docker-compose.yml
│ ├── configure_by_environment_properties
│ │ └── docker-compose.yml
│ └── configure_by_volume_mount
│ │ ├── docker-compose.yml
│ │ ├── initializerJson.json
│ │ └── mockserver.properties
├── local
│ ├── Dockerfile
│ ├── local_docker_build.sh
│ ├── local_docker_cadvisor_run.sh
│ └── local_docker_run.sh
├── root-snapshot
│ └── Dockerfile
├── root
│ └── Dockerfile
└── snapshot
│ └── Dockerfile
├── docker_build
├── grunt
│ ├── Dockerfile
│ └── chrome-xvfb
├── maven
│ ├── Dockerfile
│ └── settings.xml
└── performance
│ └── Dockerfile
├── helm
├── charts
│ ├── index.yaml
│ ├── mockserver-5.10.0.tgz
│ ├── mockserver-5.11.0.tgz
│ ├── mockserver-5.11.1.tgz
│ ├── mockserver-5.11.2.tgz
│ ├── mockserver-5.12.0.tgz
│ ├── mockserver-5.13.0.tgz
│ ├── mockserver-5.13.1.tgz
│ ├── mockserver-5.13.2.tgz
│ ├── mockserver-5.14.0.tgz
│ ├── mockserver-5.15.0.tgz
│ ├── mockserver-5.3.0.tgz
│ ├── mockserver-5.4.1.tgz
│ ├── mockserver-5.5.0.tgz
│ ├── mockserver-5.5.1.tgz
│ ├── mockserver-5.5.4.tgz
│ ├── mockserver-5.6.0.tgz
│ ├── mockserver-5.6.1.tgz
│ ├── mockserver-5.7.0.tgz
│ ├── mockserver-5.7.1.tgz
│ ├── mockserver-5.7.2.tgz
│ ├── mockserver-5.8.0.tgz
│ ├── mockserver-5.8.1.tgz
│ └── mockserver-5.9.0.tgz
├── mockserver-config
│ ├── Chart.yaml
│ ├── README.md
│ ├── static
│ │ ├── initializerJson.json
│ │ └── mockserver.properties
│ └── templates
│ │ └── configmap.yaml
└── mockserver
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── README.md
│ ├── requirements.yaml
│ ├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service-test.yaml
│ └── service.yaml
│ └── values.yaml
├── jekyll-www.mock-server.com
├── .gitignore
├── .well-known
│ ├── keybase.txt
│ └── security.txt
├── Gemfile
├── README.md
├── _config.yml
├── _includes
│ ├── footer.html
│ ├── head.html
│ └── header.html
├── _layouts
│ ├── default.html
│ └── page.html
├── _plugins
│ └── IncludeSubPage.rb
├── _sass
│ ├── _accordion.scss
│ ├── _prettify.scss
│ └── _styles.scss
├── _unused_plugins
│ ├── JsMinify.rb
│ └── compressor.rb
├── apple-touch-icon.png
├── css
│ ├── main.scss
│ └── yahoo-pure-min-0.3.0.css
├── error403.html
├── favicon.ico
├── feed.xml
├── google2b19680b073ab17b.html
├── images
│ ├── ActiveExpectationsUISection.png
│ ├── GitHub_Logo-md.png
│ ├── GitHub_Logo.png
│ ├── Join_Gitter_Chat.svg
│ ├── LogMessageUIExpectationNotMatched.png
│ ├── LogMessageUISection.png
│ ├── MockServerScenarios.pptx
│ ├── ProxiedRequestUISection.png
│ ├── ReceivedRequestsUISection.png
│ ├── expectation_callback_action.png
│ ├── expectation_error_action.png
│ ├── expectation_forward_action.png
│ ├── expectation_response_action.png
│ ├── forkme_right_red.png
│ ├── https_tls.png
│ ├── https_tls_configuration.png
│ ├── isolate_single_service_with_mockserver.png
│ ├── mac_proxy_configuration
│ │ ├── network_secure_web_proxy.png
│ │ ├── network_socks_proxy.png
│ │ ├── network_web_proxy.png
│ │ ├── system_preferences.png
│ │ └── system_preferences_network.png
│ ├── mockserver-icon.png
│ ├── more_detail_available_message.png
│ ├── more_detail_available_message.psd
│ ├── p99vsparallelclients.png
│ ├── recording_requests_with_mockserver_proxy.png
│ ├── retrieve_logs.png
│ ├── single_page_application.png
│ ├── slack-button.png
│ ├── slack-logo-slim-md.png
│ ├── slack-logo-slim.png
│ ├── slack-logo.png
│ ├── system_in_production.png
│ ├── system_under_test_with_mockserver.png
│ ├── system_under_test_with_mockserver_cropped.png
│ ├── system_under_test_with_mockserver_cropped.psd
│ ├── system_under_test_with_mockserver_proxy.png
│ ├── system_under_test_with_mockserver_proxy_different_numbering.png
│ ├── trello_badge-md.png
│ ├── trello_badge.png
│ └── verification.png
├── index.html
├── jekyll_server.sh
├── mock_server
│ ├── CORS_support.html
│ ├── HTTPS_TLS.html
│ ├── _includes
│ │ ├── clustering.html
│ │ ├── control_plane_authentication_configuration.html
│ │ ├── control_plane_authentication_jwt_configuration.html
│ │ ├── control_plane_authentication_mtls_configuration.html
│ │ ├── cors_configuration.html
│ │ ├── creating_expectations.html
│ │ ├── error_action_code_examples.html
│ │ ├── forward_action_code_examples.html
│ │ ├── helm_chart.html
│ │ ├── initializer_persistence_configuration.html
│ │ ├── logging_configuration.html
│ │ ├── openapi_request_matcher_code_examples.html
│ │ ├── performance_configuration.html
│ │ ├── request_matcher_code_examples.html
│ │ ├── response_action_code_examples.html
│ │ ├── retrieve_code_example.html
│ │ ├── running_docker_container.html
│ │ ├── running_mock_server_detail.html
│ │ ├── running_mock_server_summary.html
│ │ ├── running_npm_module.html
│ │ ├── template_restriction_configuration.html
│ │ ├── tls_configuration.html
│ │ └── verification_summary.html
│ ├── clearing_and_resetting.html
│ ├── configuration_properties.html
│ ├── control_plane_authorisation.html
│ ├── creating_expectations.html
│ ├── debugging_issues.html
│ ├── getting_started.html
│ ├── initializing_expectations.html
│ ├── isolating_single_service.html
│ ├── mockserver_clients.html
│ ├── mockserver_ui.html
│ ├── performance.html
│ ├── persisting_expectations.html
│ ├── response_templates.html
│ ├── running_mock_server.html
│ ├── running_tests_in_parallel.html
│ ├── using_openapi.html
│ └── verification.html
├── proxy
│ ├── _includes
│ │ └── analysing_behaviour.html
│ ├── configuring_sut.html
│ ├── getting_started.html
│ ├── record_and_replay.html
│ └── verification.html
├── robots.txt
├── scripts
│ ├── accordion.js
│ ├── google_analytics.js
│ └── toggle_menu.js
├── sitemap.html
├── sitemap.xml
└── where
│ ├── docker.html
│ ├── downloads.html
│ ├── github.html
│ ├── kubernetes.html
│ ├── maven_central.html
│ ├── npm.html
│ ├── slack.html
│ └── trello.html
├── mockserver-client-java
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── mockserver
│ │ └── client
│ │ ├── ClientException.java
│ │ ├── ForwardChainExpectation.java
│ │ ├── MockServerClient.java
│ │ ├── MockServerEventBus.java
│ │ └── initialize
│ │ ├── ExpectationInitializer.java
│ │ └── PluginExpectationInitializer.java
│ └── test
│ └── java
│ └── org
│ └── mockserver
│ ├── client
│ ├── ForwardChainExpectationTest.java
│ ├── MockServerClientErrorsTest.java
│ ├── MockServerClientIntegrationTest.java
│ ├── MockServerClientServerValidationErrorsTest.java
│ ├── MockServerClientTest.java
│ └── MockServerEventBusTest.java
│ └── javaserialization
│ └── CompileGeneratedJavaCodeTest.java
├── mockserver-core
├── pom.xml
└── src
│ ├── main
│ ├── java-templates
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── version
│ │ │ └── Version.java
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ ├── authentication
│ │ │ ├── AuthenticationException.java
│ │ │ ├── AuthenticationHandler.java
│ │ │ ├── ChainedAuthenticationHandler.java
│ │ │ ├── jwt
│ │ │ │ ├── JWKGenerator.java
│ │ │ │ ├── JWTAuthenticationException.java
│ │ │ │ ├── JWTAuthenticationHandler.java
│ │ │ │ ├── JWTGenerator.java
│ │ │ │ ├── JWTKeyNotFoundAuthenticationException.java
│ │ │ │ └── JWTValidator.java
│ │ │ └── mtls
│ │ │ │ └── MTLSAuthenticationHandler.java
│ │ │ ├── cache
│ │ │ ├── Entry.java
│ │ │ └── LRUCache.java
│ │ │ ├── character
│ │ │ └── Character.java
│ │ │ ├── closurecallback
│ │ │ ├── websocketclient
│ │ │ │ ├── WebSocketClient.java
│ │ │ │ ├── WebSocketClientHandler.java
│ │ │ │ └── WebSocketException.java
│ │ │ └── websocketregistry
│ │ │ │ ├── LocalCallbackRegistry.java
│ │ │ │ ├── WebSocketClientRegistry.java
│ │ │ │ ├── WebSocketRequestCallback.java
│ │ │ │ └── WebSocketResponseCallback.java
│ │ │ ├── codec
│ │ │ ├── BodyDecoderEncoder.java
│ │ │ ├── BodyServletDecoderEncoder.java
│ │ │ ├── ExpandedParameterDecoder.java
│ │ │ ├── JsonSchemaBodyDecoder.java
│ │ │ ├── MockServerBinaryClientCodec.java
│ │ │ ├── MockServerBinaryToNettyBinaryRequestEncoder.java
│ │ │ ├── MockServerHttpClientCodec.java
│ │ │ ├── MockServerHttpServerCodec.java
│ │ │ ├── MockServerHttpToNettyHttpRequestEncoder.java
│ │ │ ├── MockServerHttpToNettyHttpResponseEncoder.java
│ │ │ ├── NettyBinaryToMockServerBinaryResponseDecoder.java
│ │ │ ├── NettyHttpToMockServerHttpRequestDecoder.java
│ │ │ ├── NettyHttpToMockServerHttpResponseDecoder.java
│ │ │ ├── PathParametersDecoder.java
│ │ │ └── PreserveHeadersNettyRemoves.java
│ │ │ ├── collections
│ │ │ ├── CircularConcurrentLinkedDeque.java
│ │ │ ├── CircularHashMap.java
│ │ │ ├── CircularPriorityQueue.java
│ │ │ ├── ImmutableEntry.java
│ │ │ ├── Keyed.java
│ │ │ ├── NottableStringHashMap.java
│ │ │ ├── NottableStringMultiMap.java
│ │ │ └── SubSetMatcher.java
│ │ │ ├── configuration
│ │ │ ├── ClientConfiguration.java
│ │ │ ├── Configuration.java
│ │ │ ├── ConfigurationProperties.java
│ │ │ └── IntegerStringListParser.java
│ │ │ ├── cors
│ │ │ └── CORSHeaders.java
│ │ │ ├── echo
│ │ │ ├── basic
│ │ │ │ └── FixedResponseServer.java
│ │ │ ├── http
│ │ │ │ ├── EchoServer.java
│ │ │ │ ├── EchoServerHandler.java
│ │ │ │ ├── EchoServerHttpOrHttp2Initializer.java
│ │ │ │ ├── EchoServerInitializer.java
│ │ │ │ ├── EchoWebSocketServerHandler.java
│ │ │ │ └── ErrorHandler.java
│ │ │ └── tls
│ │ │ │ └── UniqueCertificateChainSSLContextBuilder.java
│ │ │ ├── exception
│ │ │ └── ExceptionHandling.java
│ │ │ ├── file
│ │ │ ├── FileCreator.java
│ │ │ ├── FilePath.java
│ │ │ └── FileReader.java
│ │ │ ├── filters
│ │ │ └── HopByHopHeaderFilter.java
│ │ │ ├── formatting
│ │ │ └── StringFormatter.java
│ │ │ ├── httpclient
│ │ │ ├── Http2SettingsHandler.java
│ │ │ ├── HttpClientConnectionErrorHandler.java
│ │ │ ├── HttpClientHandler.java
│ │ │ ├── HttpClientInitializer.java
│ │ │ ├── HttpOrHttp2Initializer.java
│ │ │ ├── NettyHttpClient.java
│ │ │ ├── SocketCommunicationException.java
│ │ │ └── SocketConnectionException.java
│ │ │ ├── java
│ │ │ └── JDKVersion.java
│ │ │ ├── keys
│ │ │ ├── AsymmetricKeyConverter.java
│ │ │ ├── AsymmetricKeyGenerator.java
│ │ │ ├── AsymmetricKeyPair.java
│ │ │ └── AsymmetricKeyPairAlgorithm.java
│ │ │ ├── log
│ │ │ ├── MockServerEventLog.java
│ │ │ └── model
│ │ │ │ ├── ExpectationLogEntry.java
│ │ │ │ ├── LogEntry.java
│ │ │ │ ├── LogEntryMessages.java
│ │ │ │ └── RequestAndExpectationId.java
│ │ │ ├── logging
│ │ │ ├── BasicLogger.java
│ │ │ ├── BinaryArrayFormatter.java
│ │ │ ├── LoggingHandler.java
│ │ │ ├── MockServerLogger.java
│ │ │ └── StandardOutConsoleHandler.java
│ │ │ ├── mappers
│ │ │ ├── FullHttpRequestToMockServerHttpRequest.java
│ │ │ ├── FullHttpResponseToMockServerHttpResponse.java
│ │ │ ├── HttpServletRequestToMockServerHttpRequestDecoder.java
│ │ │ ├── JDKCertificateToMockServerX509Certificate.java
│ │ │ ├── MockServerHttpRequestToFullHttpRequest.java
│ │ │ ├── MockServerHttpResponseToFullHttpResponse.java
│ │ │ └── MockServerHttpResponseToHttpServletResponseEncoder.java
│ │ │ ├── matchers
│ │ │ ├── AbstractHttpRequestMatcher.java
│ │ │ ├── BinaryMatcher.java
│ │ │ ├── BodyMatcher.java
│ │ │ ├── BooleanMatcher.java
│ │ │ ├── ExactStringMatcher.java
│ │ │ ├── HashMapMatcher.java
│ │ │ ├── HttpRequestMatcher.java
│ │ │ ├── HttpRequestPropertiesMatcher.java
│ │ │ ├── HttpRequestsPropertiesMatcher.java
│ │ │ ├── JsonPathMatcher.java
│ │ │ ├── JsonSchemaMatcher.java
│ │ │ ├── JsonStringMatcher.java
│ │ │ ├── MatchDifference.java
│ │ │ ├── MatchDifferenceCount.java
│ │ │ ├── MatchType.java
│ │ │ ├── Matcher.java
│ │ │ ├── MatcherBuilder.java
│ │ │ ├── MultiValueMapMatcher.java
│ │ │ ├── NotMatcher.java
│ │ │ ├── ParameterStringMatcher.java
│ │ │ ├── RegexStringMatcher.java
│ │ │ ├── SubStringMatcher.java
│ │ │ ├── TimeToLive.java
│ │ │ ├── Times.java
│ │ │ ├── XPathMatcher.java
│ │ │ ├── XmlSchemaMatcher.java
│ │ │ └── XmlStringMatcher.java
│ │ │ ├── memory
│ │ │ ├── Detail.java
│ │ │ ├── MemoryMonitoring.java
│ │ │ └── Summary.java
│ │ │ ├── metrics
│ │ │ ├── BuildInfoCollector.java
│ │ │ ├── Metrics.java
│ │ │ └── MetricsHandler.java
│ │ │ ├── mock
│ │ │ ├── Expectation.java
│ │ │ ├── HttpState.java
│ │ │ ├── OpenAPIExpectation.java
│ │ │ ├── RequestMatchers.java
│ │ │ ├── SortableExpectationId.java
│ │ │ ├── action
│ │ │ │ ├── ExpectationCallback.java
│ │ │ │ ├── ExpectationForwardAndResponseCallback.java
│ │ │ │ ├── ExpectationForwardCallback.java
│ │ │ │ ├── ExpectationResponseCallback.java
│ │ │ │ └── http
│ │ │ │ │ ├── HttpActionHandler.java
│ │ │ │ │ ├── HttpErrorActionHandler.java
│ │ │ │ │ ├── HttpForwardAction.java
│ │ │ │ │ ├── HttpForwardActionHandler.java
│ │ │ │ │ ├── HttpForwardActionResult.java
│ │ │ │ │ ├── HttpForwardClassCallbackActionHandler.java
│ │ │ │ │ ├── HttpForwardObjectCallbackActionHandler.java
│ │ │ │ │ ├── HttpForwardTemplateActionHandler.java
│ │ │ │ │ ├── HttpOverrideForwardedRequestActionHandler.java
│ │ │ │ │ ├── HttpResponseActionHandler.java
│ │ │ │ │ ├── HttpResponseClassCallbackActionHandler.java
│ │ │ │ │ ├── HttpResponseObjectCallbackActionHandler.java
│ │ │ │ │ └── HttpResponseTemplateActionHandler.java
│ │ │ └── listeners
│ │ │ │ ├── MockServerEventLogNotifier.java
│ │ │ │ ├── MockServerLogListener.java
│ │ │ │ ├── MockServerMatcherListener.java
│ │ │ │ └── MockServerMatcherNotifier.java
│ │ │ ├── model
│ │ │ ├── Action.java
│ │ │ ├── BinaryBody.java
│ │ │ ├── BinaryMessage.java
│ │ │ ├── BinaryProxyListener.java
│ │ │ ├── Body.java
│ │ │ ├── BodyWithContentType.java
│ │ │ ├── ClearType.java
│ │ │ ├── ConnectionOptions.java
│ │ │ ├── Cookie.java
│ │ │ ├── Cookies.java
│ │ │ ├── CookiesModifier.java
│ │ │ ├── Delay.java
│ │ │ ├── ExpectationId.java
│ │ │ ├── Format.java
│ │ │ ├── Header.java
│ │ │ ├── Headers.java
│ │ │ ├── HeadersModifier.java
│ │ │ ├── HttpClassCallback.java
│ │ │ ├── HttpError.java
│ │ │ ├── HttpForward.java
│ │ │ ├── HttpMessage.java
│ │ │ ├── HttpObjectCallback.java
│ │ │ ├── HttpOverrideForwardedRequest.java
│ │ │ ├── HttpRequest.java
│ │ │ ├── HttpRequestAndHttpResponse.java
│ │ │ ├── HttpRequestModifier.java
│ │ │ ├── HttpResponse.java
│ │ │ ├── HttpResponseModifier.java
│ │ │ ├── HttpStatusCode.java
│ │ │ ├── HttpTemplate.java
│ │ │ ├── JsonBody.java
│ │ │ ├── JsonPathBody.java
│ │ │ ├── JsonSchemaBody.java
│ │ │ ├── KeyAndValue.java
│ │ │ ├── KeyMatchStyle.java
│ │ │ ├── KeyToMultiValue.java
│ │ │ ├── KeysAndValues.java
│ │ │ ├── KeysAndValuesModifier.java
│ │ │ ├── KeysToMultiValues.java
│ │ │ ├── KeysToMultiValuesModifier.java
│ │ │ ├── LogEntryBody.java
│ │ │ ├── LogEventRequestAndResponse.java
│ │ │ ├── MediaType.java
│ │ │ ├── Message.java
│ │ │ ├── Not.java
│ │ │ ├── NottableOptionalString.java
│ │ │ ├── NottableSchemaString.java
│ │ │ ├── NottableString.java
│ │ │ ├── ObjectWithJsonToString.java
│ │ │ ├── ObjectWithReflectiveEqualsHashCodeToString.java
│ │ │ ├── OpenAPIDefinition.java
│ │ │ ├── Parameter.java
│ │ │ ├── ParameterBody.java
│ │ │ ├── ParameterStyle.java
│ │ │ ├── Parameters.java
│ │ │ ├── PathModifier.java
│ │ │ ├── PortBinding.java
│ │ │ ├── Protocol.java
│ │ │ ├── QueryParametersModifier.java
│ │ │ ├── RegexBody.java
│ │ │ ├── RequestDefinition.java
│ │ │ ├── RetrieveType.java
│ │ │ ├── SocketAddress.java
│ │ │ ├── StringBody.java
│ │ │ ├── X509Certificate.java
│ │ │ ├── XPathBody.java
│ │ │ ├── XmlBody.java
│ │ │ └── XmlSchemaBody.java
│ │ │ ├── openapi
│ │ │ ├── OpenAPIConverter.java
│ │ │ ├── OpenAPIParser.java
│ │ │ ├── OpenAPISerialiser.java
│ │ │ └── examples
│ │ │ │ ├── ExampleBuilder.java
│ │ │ │ ├── JsonExampleDeserializer.java
│ │ │ │ ├── JsonNodeExampleSerializer.java
│ │ │ │ ├── XmlExampleSerializer.java
│ │ │ │ └── models
│ │ │ │ ├── AbstractExample.java
│ │ │ │ ├── ArrayExample.java
│ │ │ │ ├── BigIntegerExample.java
│ │ │ │ ├── BooleanExample.java
│ │ │ │ ├── DecimalExample.java
│ │ │ │ ├── DoubleExample.java
│ │ │ │ ├── Example.java
│ │ │ │ ├── FloatExample.java
│ │ │ │ ├── IntegerExample.java
│ │ │ │ ├── LongExample.java
│ │ │ │ ├── ObjectExample.java
│ │ │ │ └── StringExample.java
│ │ │ ├── persistence
│ │ │ ├── ExpectationFileSystemPersistence.java
│ │ │ ├── ExpectationFileWatcher.java
│ │ │ └── FileWatcher.java
│ │ │ ├── proxyconfiguration
│ │ │ └── ProxyConfiguration.java
│ │ │ ├── responsewriter
│ │ │ └── ResponseWriter.java
│ │ │ ├── scheduler
│ │ │ └── Scheduler.java
│ │ │ ├── serialization
│ │ │ ├── Base64Converter.java
│ │ │ ├── ExpectationIdSerializer.java
│ │ │ ├── ExpectationSerializer.java
│ │ │ ├── HttpRequestAndHttpResponseSerializer.java
│ │ │ ├── HttpRequestSerializer.java
│ │ │ ├── HttpResponseSerializer.java
│ │ │ ├── JsonArraySerializer.java
│ │ │ ├── LogEntrySerializer.java
│ │ │ ├── LogEventRequestAndResponseSerializer.java
│ │ │ ├── ObjectMapperFactory.java
│ │ │ ├── OpenAPIExpectationSerializer.java
│ │ │ ├── PortBindingSerializer.java
│ │ │ ├── RequestDefinitionSerializer.java
│ │ │ ├── Serializer.java
│ │ │ ├── VerificationSequenceSerializer.java
│ │ │ ├── VerificationSerializer.java
│ │ │ ├── WebSocketMessageSerializer.java
│ │ │ ├── curl
│ │ │ │ └── HttpRequestToCurlSerializer.java
│ │ │ ├── deserializers
│ │ │ │ ├── body
│ │ │ │ │ ├── BodyDTODeserializer.java
│ │ │ │ │ ├── BodyWithContentTypeDTODeserializer.java
│ │ │ │ │ └── StrictBodyDTODeserializer.java
│ │ │ │ ├── collections
│ │ │ │ │ ├── CookiesDeserializer.java
│ │ │ │ │ ├── HeadersDeserializer.java
│ │ │ │ │ ├── KeysToMultiValuesDeserializer.java
│ │ │ │ │ └── ParametersDeserializer.java
│ │ │ │ ├── condition
│ │ │ │ │ ├── TimeToLiveDTODeserializer.java
│ │ │ │ │ └── VerificationTimesDTODeserializer.java
│ │ │ │ ├── expectation
│ │ │ │ │ └── OpenAPIExpectationDTODeserializer.java
│ │ │ │ ├── request
│ │ │ │ │ └── RequestDefinitionDTODeserializer.java
│ │ │ │ └── string
│ │ │ │ │ └── NottableStringDeserializer.java
│ │ │ ├── java
│ │ │ │ ├── ConnectionOptionsToJavaSerializer.java
│ │ │ │ ├── CookieToJavaSerializer.java
│ │ │ │ ├── DelayToJavaSerializer.java
│ │ │ │ ├── ExpectationToJavaSerializer.java
│ │ │ │ ├── HeaderToJavaSerializer.java
│ │ │ │ ├── HttpClassCallbackToJavaSerializer.java
│ │ │ │ ├── HttpErrorToJavaSerializer.java
│ │ │ │ ├── HttpForwardToJavaSerializer.java
│ │ │ │ ├── HttpOverrideForwardedRequestToJavaSerializer.java
│ │ │ │ ├── HttpRequestModifierToJavaSerializer.java
│ │ │ │ ├── HttpRequestToJavaSerializer.java
│ │ │ │ ├── HttpResponseModifierToJavaSerializer.java
│ │ │ │ ├── HttpResponseToJavaSerializer.java
│ │ │ │ ├── HttpTemplateToJavaSerializer.java
│ │ │ │ ├── MultiValueToJavaSerializer.java
│ │ │ │ ├── NottableStringToJavaSerializer.java
│ │ │ │ ├── OpenAPIMatcherToJavaSerializer.java
│ │ │ │ ├── ParameterToJavaSerializer.java
│ │ │ │ ├── SocketAddressToJavaSerializer.java
│ │ │ │ ├── TimeToLiveToJavaSerializer.java
│ │ │ │ ├── TimesToJavaSerializer.java
│ │ │ │ └── ToJavaSerializer.java
│ │ │ ├── model
│ │ │ │ ├── BinaryBodyDTO.java
│ │ │ │ ├── BodyDTO.java
│ │ │ │ ├── BodyWithContentTypeDTO.java
│ │ │ │ ├── ConnectionOptionsDTO.java
│ │ │ │ ├── CookieDTO.java
│ │ │ │ ├── CookiesModifierDTO.java
│ │ │ │ ├── DTO.java
│ │ │ │ ├── DelayDTO.java
│ │ │ │ ├── ExpectationDTO.java
│ │ │ │ ├── HeaderDTO.java
│ │ │ │ ├── HeadersModifierDTO.java
│ │ │ │ ├── HttpClassCallbackDTO.java
│ │ │ │ ├── HttpErrorDTO.java
│ │ │ │ ├── HttpForwardDTO.java
│ │ │ │ ├── HttpObjectCallbackDTO.java
│ │ │ │ ├── HttpOverrideForwardedRequestDTO.java
│ │ │ │ ├── HttpRequestAndHttpResponseDTO.java
│ │ │ │ ├── HttpRequestDTO.java
│ │ │ │ ├── HttpRequestModifierDTO.java
│ │ │ │ ├── HttpRequestPrettyPrintedDTO.java
│ │ │ │ ├── HttpResponseDTO.java
│ │ │ │ ├── HttpResponseModifierDTO.java
│ │ │ │ ├── HttpTemplateDTO.java
│ │ │ │ ├── JsonBodyDTO.java
│ │ │ │ ├── JsonPathBodyDTO.java
│ │ │ │ ├── JsonSchemaBodyDTO.java
│ │ │ │ ├── KeyAndValueDTO.java
│ │ │ │ ├── KeyToMultiValueDTO.java
│ │ │ │ ├── KeysAndValuesModifierDTO.java
│ │ │ │ ├── KeysToMultiValuesModifierDTO.java
│ │ │ │ ├── LogEntryBodyDTO.java
│ │ │ │ ├── LogEventRequestAndResponseDTO.java
│ │ │ │ ├── NotDTO.java
│ │ │ │ ├── OpenAPIDefinitionDTO.java
│ │ │ │ ├── OpenAPIExpectationDTO.java
│ │ │ │ ├── ParameterBodyDTO.java
│ │ │ │ ├── ParameterDTO.java
│ │ │ │ ├── QueryParametersModifierDTO.java
│ │ │ │ ├── RegexBodyDTO.java
│ │ │ │ ├── RequestDefinitionDTO.java
│ │ │ │ ├── StringBodyDTO.java
│ │ │ │ ├── TimeToLiveDTO.java
│ │ │ │ ├── TimesDTO.java
│ │ │ │ ├── VerificationDTO.java
│ │ │ │ ├── VerificationSequenceDTO.java
│ │ │ │ ├── VerificationTimesDTO.java
│ │ │ │ ├── WebSocketClientIdDTO.java
│ │ │ │ ├── WebSocketErrorDTO.java
│ │ │ │ ├── WebSocketMessageDTO.java
│ │ │ │ ├── XPathBodyDTO.java
│ │ │ │ ├── XmlBodyDTO.java
│ │ │ │ └── XmlSchemaBodyDTO.java
│ │ │ └── serializers
│ │ │ │ ├── body
│ │ │ │ ├── BinaryBodyDTOSerializer.java
│ │ │ │ ├── BinaryBodySerializer.java
│ │ │ │ ├── JsonBodyDTOSerializer.java
│ │ │ │ ├── JsonBodySerializer.java
│ │ │ │ ├── JsonPathBodyDTOSerializer.java
│ │ │ │ ├── JsonPathBodySerializer.java
│ │ │ │ ├── JsonSchemaBodyDTOSerializer.java
│ │ │ │ ├── JsonSchemaBodySerializer.java
│ │ │ │ ├── LogEntryBodyDTOSerializer.java
│ │ │ │ ├── LogEntryBodySerializer.java
│ │ │ │ ├── ParameterBodyDTOSerializer.java
│ │ │ │ ├── ParameterBodySerializer.java
│ │ │ │ ├── RegexBodyDTOSerializer.java
│ │ │ │ ├── RegexBodySerializer.java
│ │ │ │ ├── StringBodyDTOSerializer.java
│ │ │ │ ├── StringBodySerializer.java
│ │ │ │ ├── XPathBodyDTOSerializer.java
│ │ │ │ ├── XPathBodySerializer.java
│ │ │ │ ├── XmlBodyDTOSerializer.java
│ │ │ │ ├── XmlBodySerializer.java
│ │ │ │ ├── XmlSchemaBodyDTOSerializer.java
│ │ │ │ └── XmlSchemaBodySerializer.java
│ │ │ │ ├── certificate
│ │ │ │ ├── CertificateSerializer.java
│ │ │ │ └── X509CertificateSerializer.java
│ │ │ │ ├── collections
│ │ │ │ ├── CookiesSerializer.java
│ │ │ │ ├── HeadersSerializer.java
│ │ │ │ ├── KeysToMultiValuesSerializer.java
│ │ │ │ └── ParametersSerializer.java
│ │ │ │ ├── condition
│ │ │ │ ├── VerificationTimesDTOSerializer.java
│ │ │ │ └── VerificationTimesSerializer.java
│ │ │ │ ├── expectation
│ │ │ │ ├── OpenAPIExpectationDTOSerializer.java
│ │ │ │ └── OpenAPIExpectationSerializer.java
│ │ │ │ ├── log
│ │ │ │ └── LogEntrySerializer.java
│ │ │ │ ├── matcher
│ │ │ │ ├── HttpRequestPropertiesMatcherSerializer.java
│ │ │ │ └── HttpRequestsPropertiesMatcherSerializer.java
│ │ │ │ ├── request
│ │ │ │ ├── HttpRequestDTOSerializer.java
│ │ │ │ ├── HttpRequestSerializer.java
│ │ │ │ ├── OpenAPIDefinitionDTOSerializer.java
│ │ │ │ └── OpenAPIDefinitionSerializer.java
│ │ │ │ ├── response
│ │ │ │ ├── HttpResponseDTOSerializer.java
│ │ │ │ ├── HttpResponseSerializer.java
│ │ │ │ ├── TimeToLiveDTOSerializer.java
│ │ │ │ ├── TimeToLiveSerializer.java
│ │ │ │ ├── TimesDTOSerializer.java
│ │ │ │ └── TimesSerializer.java
│ │ │ │ ├── schema
│ │ │ │ ├── AbstractSchemaSerializer.java
│ │ │ │ ├── ArraySchemaSerializer.java
│ │ │ │ ├── BinarySchemaSerializer.java
│ │ │ │ ├── BooleanSchemaSerializer.java
│ │ │ │ ├── ByteArraySchemaSerializer.java
│ │ │ │ ├── ComposedSchemaSerializer.java
│ │ │ │ ├── DateSchemaSerializer.java
│ │ │ │ ├── DateTimeSchemaSerializer.java
│ │ │ │ ├── EmailSchemaSerializer.java
│ │ │ │ ├── FileSchemaSerializer.java
│ │ │ │ ├── IntegerSchemaSerializer.java
│ │ │ │ ├── MapSchemaSerializer.java
│ │ │ │ ├── NumberSchemaSerializer.java
│ │ │ │ ├── ObjectSchemaSerializer.java
│ │ │ │ ├── PasswordSchemaSerializer.java
│ │ │ │ ├── SchemaSerializer.java
│ │ │ │ ├── StringSchemaSerializer.java
│ │ │ │ └── UUIDSchemaSerializer.java
│ │ │ │ └── string
│ │ │ │ └── NottableStringSerializer.java
│ │ │ ├── server
│ │ │ └── initialize
│ │ │ │ ├── ExpectationInitializer.java
│ │ │ │ └── ExpectationInitializerLoader.java
│ │ │ ├── servlet
│ │ │ └── responsewriter
│ │ │ │ └── ServletResponseWriter.java
│ │ │ ├── socket
│ │ │ ├── PortFactory.java
│ │ │ └── tls
│ │ │ │ ├── ForwardProxyTLSX509CertificatesTrustManager.java
│ │ │ │ ├── KeyAndCertificateFactory.java
│ │ │ │ ├── KeyAndCertificateFactoryFactory.java
│ │ │ │ ├── KeyAndCertificateFactorySupplier.java
│ │ │ │ ├── KeyStoreFactory.java
│ │ │ │ ├── NettySslContextFactory.java
│ │ │ │ ├── PEMToFile.java
│ │ │ │ ├── SniHandler.java
│ │ │ │ └── bouncycastle
│ │ │ │ └── BCKeyAndCertificateFactory.java
│ │ │ ├── stop
│ │ │ ├── Stop.java
│ │ │ └── Stoppable.java
│ │ │ ├── streams
│ │ │ └── IOStreamUtils.java
│ │ │ ├── templates
│ │ │ ├── ResponseTemplateTester.java
│ │ │ └── engine
│ │ │ │ ├── TemplateEngine.java
│ │ │ │ ├── TemplateFunctions.java
│ │ │ │ ├── javascript
│ │ │ │ ├── JavaScriptTemplateEngine.java
│ │ │ │ └── bindings
│ │ │ │ │ └── ScriptBindings.java
│ │ │ │ ├── model
│ │ │ │ └── HttpRequestTemplateObject.java
│ │ │ │ ├── mustache
│ │ │ │ ├── ExtendedCollector.java
│ │ │ │ └── MustacheTemplateEngine.java
│ │ │ │ ├── serializer
│ │ │ │ └── HttpTemplateOutputDeserializer.java
│ │ │ │ └── velocity
│ │ │ │ ├── VelocityTemplateEngine.java
│ │ │ │ └── directives
│ │ │ │ └── Ifnull.java
│ │ │ ├── time
│ │ │ ├── EpochService.java
│ │ │ └── TimeService.java
│ │ │ ├── url
│ │ │ └── URLParser.java
│ │ │ ├── uuid
│ │ │ └── UUIDService.java
│ │ │ ├── validator
│ │ │ ├── Validator.java
│ │ │ ├── jsonschema
│ │ │ │ ├── JsonSchemaExpectationIdValidator.java
│ │ │ │ ├── JsonSchemaExpectationValidator.java
│ │ │ │ ├── JsonSchemaHttpRequestAndHttpResponseValidator.java
│ │ │ │ ├── JsonSchemaHttpRequestValidator.java
│ │ │ │ ├── JsonSchemaHttpResponseValidator.java
│ │ │ │ ├── JsonSchemaOpenAPIExpectationValidator.java
│ │ │ │ ├── JsonSchemaRequestDefinitionValidator.java
│ │ │ │ ├── JsonSchemaValidator.java
│ │ │ │ ├── JsonSchemaVerificationSequenceValidator.java
│ │ │ │ └── JsonSchemaVerificationValidator.java
│ │ │ └── xmlschema
│ │ │ │ └── XmlSchemaValidator.java
│ │ │ ├── verify
│ │ │ ├── Verification.java
│ │ │ ├── VerificationSequence.java
│ │ │ └── VerificationTimes.java
│ │ │ └── xml
│ │ │ ├── StringToXmlDocumentParser.java
│ │ │ └── XPathEvaluator.java
│ └── resources
│ │ └── org
│ │ └── mockserver
│ │ ├── authentication
│ │ └── jwk.json
│ │ ├── model
│ │ └── schema
│ │ │ ├── body.json
│ │ │ ├── bodyWithContentType.json
│ │ │ ├── connectionOptions.json
│ │ │ ├── delay.json
│ │ │ ├── draft-07.json
│ │ │ ├── expectation.json
│ │ │ ├── expectationId.json
│ │ │ ├── expectations.json
│ │ │ ├── httpClassCallback.json
│ │ │ ├── httpError.json
│ │ │ ├── httpForward.json
│ │ │ ├── httpObjectCallback.json
│ │ │ ├── httpOverrideForwardedRequest.json
│ │ │ ├── httpRequest.json
│ │ │ ├── httpRequestAndHttpResponse.json
│ │ │ ├── httpResponse.json
│ │ │ ├── httpTemplate.json
│ │ │ ├── keyToMultiValue.json
│ │ │ ├── keyToValue.json
│ │ │ ├── openAPIDefinition.json
│ │ │ ├── openAPIExpectation.json
│ │ │ ├── ports.json
│ │ │ ├── protocol.json
│ │ │ ├── requestDefinition.json
│ │ │ ├── socketAddress.json
│ │ │ ├── stringOrJsonSchema.json
│ │ │ ├── timeToLive.json
│ │ │ ├── times.json
│ │ │ ├── verification.json
│ │ │ ├── verificationSequence.json
│ │ │ └── verificationTimes.json
│ │ ├── openapi
│ │ └── mock-server-openapi-embedded-model.yaml
│ │ └── socket
│ │ ├── CertificateAuthorityCertificate.pem
│ │ ├── CertificateAuthorityPrivateKey.pem
│ │ ├── PKCS1CertificateAuthorityPrivateKey.pem
│ │ └── PKCS8CertificateAuthorityPrivateKey.pem
│ └── test
│ ├── java
│ └── org
│ │ └── mockserver
│ │ ├── authentication
│ │ ├── ChainedAuthenticationHandlerTest.java
│ │ ├── jwt
│ │ │ └── JWTAuthenticationHandlerTest.java
│ │ └── mtls
│ │ │ └── MTLSAuthenticationHandlerTest.java
│ │ ├── cache
│ │ └── LRUCacheTest.java
│ │ ├── codec
│ │ ├── BodyDecoderEncoderTest.java
│ │ ├── BodyServletDecoderEncoderTest.java
│ │ ├── ExpandedParameterDecoderTest.java
│ │ ├── MockServerHttpToNettyHttpRequestEncoderBasicMappingTest.java
│ │ ├── MockServerHttpToNettyHttpRequestEncoderContentTypeTest.java
│ │ ├── MockServerHttpToNettyHttpResponseEncoderBasicMappingTest.java
│ │ ├── MockServerHttpToNettyHttpResponseEncoderContentLengthTest.java
│ │ ├── MockServerHttpToNettyHttpResponseEncoderContentTypeTest.java
│ │ ├── MockServerHttpToNettyHttpResponseEncoderCookieHeaderTest.java
│ │ ├── NettyHttpToMockServerHttpRequestDecoderTest.java
│ │ ├── NettyHttpToMockServerHttpResponseDecoderTest.java
│ │ ├── PathParametersDecoderTest.java
│ │ └── PreserveHeadersNettyRemovesTest.java
│ │ ├── collections
│ │ ├── CircularConcurrentLinkedDequeTest.java
│ │ ├── CircularHashMapTest.java
│ │ ├── CircularPriorityQueueTest.java
│ │ ├── SubSetMatcherTest.java
│ │ └── nottablestring
│ │ │ ├── hashmap
│ │ │ └── NottableStringHashMapContainAllTest.java
│ │ │ └── multimap
│ │ │ └── NottableStringMultiMapContainAllTest.java
│ │ ├── configuration
│ │ └── ConfigurationTest.java
│ │ ├── cors
│ │ └── CORSHeadersTest.java
│ │ ├── exception
│ │ └── ExceptionHandlingTest.java
│ │ ├── filters
│ │ └── HopByHopHeaderFilterTest.java
│ │ ├── formatting
│ │ └── StringFormatterTest.java
│ │ ├── httpclient
│ │ └── netty
│ │ │ ├── NettyHttpClientErrorHandlingTest.java
│ │ │ └── NettyHttpClientTest.java
│ │ ├── java
│ │ └── VersionTest.java
│ │ ├── log
│ │ ├── MockServerEventLogRequestLogEntryVerificationSequenceTest.java
│ │ ├── MockServerEventLogRequestLogEntryVerificationTest.java
│ │ └── MockServerEventLogTest.java
│ │ ├── logging
│ │ ├── BinaryArrayFormatterTest.java
│ │ └── MockServerLoggerTest.java
│ │ ├── mappers
│ │ ├── HttpServletRequestToMockServerHttpRequestDecoderTest.java
│ │ ├── MockServerHttpResponseToHttpServletResponseEncoderBasicMappingTest.java
│ │ ├── MockServerHttpResponseToHttpServletResponseEncoderContentTypeTest.java
│ │ └── MockServerHttpResponseToHttpServletResponseEncoderCookieHeaderTest.java
│ │ ├── matchers
│ │ ├── BinaryMatcherTest.java
│ │ ├── BooleanMatcherTest.java
│ │ ├── CookieMatcherControlPlaneTest.java
│ │ ├── CookieMatcherTest.java
│ │ ├── ExactStringMatcherTest.java
│ │ ├── HashMapMatcherTest.java
│ │ ├── HashMapMatcherWithNottedStringsTest.java
│ │ ├── HeaderMatcherControlPlaneTest.java
│ │ ├── HeaderMatcherTest.java
│ │ ├── HttpRequestPropertiesMatcherLogTest.java
│ │ ├── HttpRequestPropertiesMatcherTest.java
│ │ ├── HttpRequestsPropertiesMatcherTest.java
│ │ ├── JsonPathMatcherTest.java
│ │ ├── JsonSchemaMatcherTest.java
│ │ ├── JsonStringMatcherTest.java
│ │ ├── MapMatcherTest.java
│ │ ├── MatcherBuilderTest.java
│ │ ├── ParameterStringMatcherTest.java
│ │ ├── QueryParameterMatcherTest.java
│ │ ├── RegexStringMatcherControlPlaneTest.java
│ │ ├── RegexStringMatcherTest.java
│ │ ├── SubStringMatcherTest.java
│ │ ├── TimeToLiveTest.java
│ │ ├── TimesTest.java
│ │ ├── XPathMatcherTest.java
│ │ ├── XmlSchemaMatcherTest.java
│ │ └── XmlStringMatcherTest.java
│ │ ├── mock
│ │ ├── ExpectationTest.java
│ │ ├── HttpStateTest.java
│ │ ├── MockServerMatcherBasicResponsesTest.java
│ │ ├── MockServerMatcherClearAndResetTest.java
│ │ ├── MockServerMatcherManageExpectationsTest.java
│ │ ├── MockServerMatcherNotificationAndMetricsTest.java
│ │ ├── MockServerMatcherOverlappingRequestsTest.java
│ │ ├── MockServerMatcherSequentialResponsesTest.java
│ │ ├── MockServerMatcherUpdateExpectationsTest.java
│ │ └── action
│ │ │ └── http
│ │ │ ├── HttpActionHandlerTest.java
│ │ │ ├── HttpErrorActionHandlerTest.java
│ │ │ ├── HttpForwardActionHandlerTest.java
│ │ │ ├── HttpForwardClassCallbackActionHandlerTest.java
│ │ │ ├── HttpForwardObjectCallbackActionHandlerTest.java
│ │ │ ├── HttpForwardTemplateActionHandlerTest.java
│ │ │ ├── HttpResponseActionHandlerTest.java
│ │ │ ├── HttpResponseClassCallbackActionHandlerTest.java
│ │ │ ├── HttpResponseObjectCallbackActionHandlerTest.java
│ │ │ └── HttpResponseTemplateActionHandlerTest.java
│ │ ├── model
│ │ ├── BinaryBodyTest.java
│ │ ├── ConnectionOptionsTest.java
│ │ ├── CookieTest.java
│ │ ├── CookiesTest.java
│ │ ├── DelayTest.java
│ │ ├── HeaderTest.java
│ │ ├── HeadersTest.java
│ │ ├── HttpClassCallbackTest.java
│ │ ├── HttpErrorTest.java
│ │ ├── HttpForwardTest.java
│ │ ├── HttpObjectCallbackTest.java
│ │ ├── HttpRequestTest.java
│ │ ├── HttpResponseTest.java
│ │ ├── HttpStatusCodeTest.java
│ │ ├── HttpTemplateTest.java
│ │ ├── JsonBodyTest.java
│ │ ├── JsonSchemaBodyTest.java
│ │ ├── KeyAndValueTest.java
│ │ ├── MediaTypeTest.java
│ │ ├── NottableSchemaStringEqualsTest.java
│ │ ├── NottableSchemaStringMatchesTest.java
│ │ ├── NottableSchemaStringTest.java
│ │ ├── NottableStringCapitaliseTest.java
│ │ ├── NottableStringTest.java
│ │ ├── ObjectWithJsonToStringTest.java
│ │ ├── ObjectWithReflectiveEqualsHashCodeToStringTest.java
│ │ ├── ParameterBodyTest.java
│ │ ├── ParameterTest.java
│ │ ├── PortBindingTest.java
│ │ ├── RegexBodyTest.java
│ │ ├── SocketAddressTest.java
│ │ ├── StringBodyTest.java
│ │ ├── XmlBodyTest.java
│ │ ├── XmlSchemaBodyTest.java
│ │ └── XpathBodyTest.java
│ │ ├── openapi
│ │ └── OpenAPIConverterTest.java
│ │ ├── persistence
│ │ ├── ExpectationFileSystemPersistenceTest.java
│ │ └── ExpectationFileWatcherTest.java
│ │ ├── proxyconfiguration
│ │ └── ProxyConfigurationTest.java
│ │ ├── serialization
│ │ ├── Base64ConverterTest.java
│ │ ├── ExpectationSerializationErrorsTest.java
│ │ ├── ExpectationSerializerIntegrationTest.java
│ │ ├── ExpectationWithErrorSerializerTest.java
│ │ ├── ExpectationWithForwardClassCallbackSerializerTest.java
│ │ ├── ExpectationWithForwardObjectCallbackSerializerTest.java
│ │ ├── ExpectationWithForwardSerializerTest.java
│ │ ├── ExpectationWithForwardTemplateSerializerTest.java
│ │ ├── ExpectationWithOverrideForwardedRequestSerializerTest.java
│ │ ├── ExpectationWithResponseClassCallbackSerializerTest.java
│ │ ├── ExpectationWithResponseObjectCallbackSerializerTest.java
│ │ ├── ExpectationWithResponseSerializerTest.java
│ │ ├── ExpectationWithResponseTemplateSerializerTest.java
│ │ ├── HttpRequestAndHttpResponseSerializationErrorsTest.java
│ │ ├── HttpRequestAndHttpResponseSerializerIntegrationTest.java
│ │ ├── HttpRequestAndHttpResponseSerializerTest.java
│ │ ├── HttpRequestSerializationErrorsTest.java
│ │ ├── HttpRequestSerializerIntegrationTest.java
│ │ ├── HttpRequestSerializerTest.java
│ │ ├── HttpResponseSerializationErrorsTest.java
│ │ ├── HttpResponseSerializerIntegrationTest.java
│ │ ├── HttpResponseSerializerTest.java
│ │ ├── JsonArraySerializationTest.java
│ │ ├── ObjectMapperFactoryTest.java
│ │ ├── OpenAPIExpectationSerializationErrorsTest.java
│ │ ├── OpenAPIExpectationSerializerIntegrationTest.java
│ │ ├── OpenAPIExpectationSerializerTest.java
│ │ ├── PortBindingSerializerIntegrationTest.java
│ │ ├── PortBindingSerializerTest.java
│ │ ├── VerificationSequenceSerializationErrorsTest.java
│ │ ├── VerificationSequenceSerializerIntegrationTest.java
│ │ ├── VerificationSequenceSerializerTest.java
│ │ ├── VerificationSerializationErrorsTest.java
│ │ ├── VerificationSerializerIntegrationTest.java
│ │ ├── VerificationSerializerTest.java
│ │ ├── WebSocketMessageSerializerTest.java
│ │ ├── curl
│ │ │ └── HttpRequestToCurlSerializerTest.java
│ │ ├── deserializers
│ │ │ ├── body
│ │ │ │ ├── BodyDTODeserializerTest.java
│ │ │ │ ├── BodyWithContentTypeDTODeserializerTest.java
│ │ │ │ ├── ParameterBodyDTODeserializerTest.java
│ │ │ │ └── StrictBodyDTODeserializerTest.java
│ │ │ ├── collections
│ │ │ │ ├── CookiesDeserializerTest.java
│ │ │ │ ├── HeadersDeserializerTest.java
│ │ │ │ └── ParametersDeserializerTest.java
│ │ │ ├── condition
│ │ │ │ ├── TimeToLiveDeserializerTest.java
│ │ │ │ └── VerificationTimesDTODeserializerTest.java
│ │ │ ├── expectation
│ │ │ │ └── OpenAPIExpectationDTODeserializerTest.java
│ │ │ ├── request
│ │ │ │ └── RequestDefinitionDTODeserializerTest.java
│ │ │ └── string
│ │ │ │ └── NottableStringDeserializerTest.java
│ │ ├── java
│ │ │ ├── ConnectionOptionsToJavaSerializerTest.java
│ │ │ ├── CookieToJavaSerializerTest.java
│ │ │ ├── DelayToJavaSerializerTest.java
│ │ │ ├── ExpectationToJavaSerializerTest.java
│ │ │ ├── HeaderToJavaSerializerTest.java
│ │ │ ├── HttpClassCallbackToJavaSerializerTest.java
│ │ │ ├── HttpErrorToJavaSerializerTest.java
│ │ │ ├── HttpForwardToJavaSerializerTest.java
│ │ │ ├── HttpOverrideForwardedRequestToJavaSerializerTest.java
│ │ │ ├── HttpRequestToJavaSerializerTest.java
│ │ │ ├── HttpResponseToJavaSerializerTest.java
│ │ │ ├── HttpTemplateToJavaSerializerTest.java
│ │ │ ├── NottableStringToJavaSerializerTest.java
│ │ │ ├── ParameterToJavaSerializerTest.java
│ │ │ ├── SocketAddressToJavaSerializerTest.java
│ │ │ ├── TimeToLiveToJavaSerializerTest.java
│ │ │ └── TimesToJavaSerializerTest.java
│ │ ├── model
│ │ │ ├── BinaryBodyDTOTest.java
│ │ │ ├── ConnectionOptionsDTOTest.java
│ │ │ ├── CookieDTOTest.java
│ │ │ ├── DelayDTOTest.java
│ │ │ ├── ExpectationDTOTest.java
│ │ │ ├── HeaderDTOTest.java
│ │ │ ├── HttpClassCallbackDTOTest.java
│ │ │ ├── HttpErrorDTOTest.java
│ │ │ ├── HttpForwardDTOTest.java
│ │ │ ├── HttpObjectCallbackDTOTest.java
│ │ │ ├── HttpOverrideForwardedRequestDTOTest.java
│ │ │ ├── HttpRequestAndHttpResponseDTOTest.java
│ │ │ ├── HttpRequestDTOTest.java
│ │ │ ├── HttpResponseDTOTest.java
│ │ │ ├── HttpTemplateDTOTest.java
│ │ │ ├── JsonBodyDTOTest.java
│ │ │ ├── JsonPathBodyDTOTest.java
│ │ │ ├── JsonSchemaBodyDTOTest.java
│ │ │ ├── ParameterBodyDTOTest.java
│ │ │ ├── ParameterDTOTest.java
│ │ │ ├── RegexBodyDTOTest.java
│ │ │ ├── StringBodyDTOTest.java
│ │ │ ├── TimeToLiveDTOTest.java
│ │ │ ├── TimesDTOTest.java
│ │ │ ├── VerificationDTOTest.java
│ │ │ ├── VerificationSequenceDTOTest.java
│ │ │ ├── VerificationTimesDTOTest.java
│ │ │ ├── WebSocketMessageDTOTest.java
│ │ │ ├── XPathBodyDTOTest.java
│ │ │ ├── XmlBodyDTOTest.java
│ │ │ └── XmlSchemaBodyDTOTest.java
│ │ └── serializers
│ │ │ ├── body
│ │ │ ├── BinaryBodyDTOSerializerTest.java
│ │ │ ├── BinaryBodySerializerTest.java
│ │ │ ├── JsonBodyDTOSerializerTest.java
│ │ │ ├── JsonBodySerializerTest.java
│ │ │ ├── JsonPathBodyDTOSerializerTest.java
│ │ │ ├── JsonPathBodySerializerTest.java
│ │ │ ├── JsonSchemaBodyDTOSerializerTest.java
│ │ │ ├── JsonSchemaBodySerializerTest.java
│ │ │ ├── ParameterBodyDTOSerializerTest.java
│ │ │ ├── ParameterBodySerializerTest.java
│ │ │ ├── RegexBodyDTOSerializerTest.java
│ │ │ ├── RegexBodySerializerTest.java
│ │ │ ├── StringBodyDTOSerializerTest.java
│ │ │ ├── StringBodySerializerTest.java
│ │ │ ├── XPathBodyDTOSerializerTest.java
│ │ │ ├── XPathBodySerializerTest.java
│ │ │ ├── XmlBodyDTOSerializerTest.java
│ │ │ ├── XmlBodySerializerTest.java
│ │ │ ├── XmlSchemaBodyDTOSerializerTest.java
│ │ │ └── XmlSchemaBodySerializerTest.java
│ │ │ ├── collections
│ │ │ ├── CookiesSerializerTest.java
│ │ │ ├── HeadersSerializerTest.java
│ │ │ └── ParametersSerializerTest.java
│ │ │ ├── condition
│ │ │ ├── VerificationTimesDTOSerializerTest.java
│ │ │ └── VerificationTimesSerializerTest.java
│ │ │ ├── expectation
│ │ │ ├── OpenAPIExpectationDTOSerializerTest.java
│ │ │ └── OpenAPIExpectationSerializerTest.java
│ │ │ ├── request
│ │ │ ├── HttpRequestDTOSerializerTest.java
│ │ │ ├── HttpRequestSerializerTest.java
│ │ │ ├── OpenAPIDefinitionDTOSerializerTest.java
│ │ │ └── OpenAPIDefinitionSerializerTest.java
│ │ │ ├── response
│ │ │ ├── HttpResponseDTOSerializerTest.java
│ │ │ ├── HttpResponseSerializerTest.java
│ │ │ ├── TimeToLiveDTOSerializerTest.java
│ │ │ ├── TimeToLiveSerializerTest.java
│ │ │ └── TimesSerializerTest.java
│ │ │ └── string
│ │ │ └── NottableStringSerializerTest.java
│ │ ├── server
│ │ ├── ServletResponseWriterTest.java
│ │ └── initialize
│ │ │ ├── ExpectationInitializerExample.java
│ │ │ └── ExpectationInitializerLoaderTest.java
│ │ ├── socket
│ │ ├── PortFactoryTest.java
│ │ └── tls
│ │ │ ├── CustomKeyAndCertificateFactorySupplierTest.java
│ │ │ └── bouncycastle
│ │ │ └── BCKeyAndCertificateFactoryTest.java
│ │ ├── streams
│ │ └── IOStreamUtilsTest.java
│ │ ├── templates
│ │ └── engine
│ │ │ ├── javascript
│ │ │ └── JavaScriptTemplateEngineTest.java
│ │ │ ├── mustache
│ │ │ └── MustacheTemplateEngineTest.java
│ │ │ └── velocity
│ │ │ └── VelocityTemplateEngineTest.java
│ │ ├── url
│ │ └── URLParserTest.java
│ │ ├── validator
│ │ ├── jsonschema
│ │ │ ├── JsonSchemaExpectationValidatorIntegrationTest.java
│ │ │ ├── JsonSchemaHttpRequestAndHttpResponseValidatorIntegrationTest.java
│ │ │ ├── JsonSchemaHttpRequestValidatorIntegrationTest.java
│ │ │ ├── JsonSchemaHttpResponseValidatorIntegrationTest.java
│ │ │ ├── JsonSchemaValidatorTest.java
│ │ │ ├── JsonSchemaVerificationSequenceValidatorIntegrationTest.java
│ │ │ └── JsonSchemaVerificationValidatorIntegrationTest.java
│ │ └── xmlschema
│ │ │ └── XmlSchemaValidatorTest.java
│ │ ├── verify
│ │ ├── VerificationSequenceTest.java
│ │ ├── VerificationTest.java
│ │ └── VerificationTimesTest.java
│ │ └── xml
│ │ └── XPathEvaluatorTest.java
│ └── resources
│ └── org
│ └── mockserver
│ ├── authentication
│ └── mtls
│ │ ├── ca-csr.json
│ │ ├── ca-key-pkcs8.pem
│ │ ├── ca-key.pem
│ │ ├── ca.pem
│ │ ├── csr.json
│ │ ├── generate_custom_certificates.md
│ │ ├── leaf-cert-chain.pem
│ │ ├── leaf-cert.pem
│ │ ├── leaf-key-pkcs8.pem
│ │ ├── leaf-key.pem
│ │ └── separateca
│ │ ├── ca-csr.json
│ │ ├── ca-key-pkcs8.pem
│ │ ├── ca-key.pem
│ │ ├── ca.pem
│ │ ├── csr.json
│ │ ├── leaf-cert-chain.pem
│ │ ├── leaf-cert.pem
│ │ ├── leaf-key-pkcs8.pem
│ │ └── leaf-key.pem
│ ├── model
│ ├── testJsonSchema.json
│ └── testXmlSchema.xsd
│ ├── openapi
│ ├── openapi_circular_reference_example.json
│ ├── openapi_petstore_example.json
│ ├── openapi_petstore_example.yaml
│ ├── openapi_petstore_example.yml
│ ├── openapi_petstore_example_with_examples.json
│ ├── openapi_petstore_example_with_examples.yaml
│ ├── openapi_petstore_example_with_no_path_prefix.yaml
│ ├── openapi_petstore_example_with_operation_server.yaml
│ ├── openapi_petstore_example_with_server_url_variables.yaml
│ ├── openapi_simple_example.json
│ ├── openapi_simple_example.yaml
│ └── openapi_with_json_string_example.yaml
│ ├── serialization
│ └── forkme_right_red.png
│ ├── server
│ └── initialize
│ │ ├── initializerJson.json
│ │ ├── initializerJsonOne.json
│ │ ├── initializerJsonThree.json
│ │ └── initializerJsonTwo.json
│ └── validator
│ └── xmlschema
│ ├── embedded.xsd
│ ├── example.xml
│ └── parent.xsd
├── mockserver-examples
├── README.md
├── curl_examples.md
├── docker_compose_examples
│ ├── docker_compose_forward_with_override
│ │ └── docker-compose.yml
│ ├── docker_compose_remote_host_and_port_by_environment_variable
│ │ └── docker-compose.yml
│ ├── docker_compose_server_port_by_command
│ │ └── docker-compose.yml
│ ├── docker_compose_server_port_by_environment_variable_long_name
│ │ └── docker-compose.yml
│ ├── docker_compose_server_port_by_environment_variable_short_name
│ │ └── docker-compose.yml
│ ├── docker_compose_with_expectation_initialiser
│ │ ├── config
│ │ │ └── expectationInitialiser.json
│ │ └── docker-compose.yml
│ ├── docker_compose_with_persisted_expectations
│ │ ├── .gitignore
│ │ └── docker-compose.yml
│ ├── docker_compose_with_server_port_from_custom_properties_file
│ │ ├── config
│ │ │ └── mockserver.custom.properties
│ │ └── docker-compose.yml
│ ├── docker_compose_with_server_port_from_default_properties_file
│ │ ├── config
│ │ │ └── mockserver.properties
│ │ └── docker-compose.yml
│ └── docker_compose_without_server_port
│ │ └── docker-compose.yml
├── json_examples.md
├── node_examples
│ ├── .gitignore
│ ├── README.md
│ ├── add_array_of_expectations
│ │ ├── package.json
│ │ └── server.js
│ ├── callback_action_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── client_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── error_action_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── forward_action_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── openapi_expectations_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── openapi_request_matcher_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── request_properties_matcher_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── response_action_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── retrieve_active_expectations_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── retrieve_recorded_expectations_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── retrieve_recorded_requests_and_responses_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── retrieve_recorded_requests_examples
│ │ ├── package.json
│ │ └── server.js
│ ├── reverse_proxy_example
│ │ ├── package.json
│ │ └── server.js
│ ├── run_mockserver
│ │ ├── package.json
│ │ └── server.js
│ └── run_mockserver_and_add_expectations
│ │ ├── package.json
│ │ └── server.js
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── examples
│ │ │ ├── mockserver
│ │ │ ├── CallbackActionExamples.java
│ │ │ ├── DashboardExamples.java
│ │ │ ├── ErrorActionExamples.java
│ │ │ ├── ExpectationInitializerExamples.java
│ │ │ ├── ExpectationsNotification.java
│ │ │ ├── ForwardActionExamples.java
│ │ │ ├── MockServerClientExamples.java
│ │ │ ├── OpenAPIExpectationExamples.java
│ │ │ ├── OpenAPIRequestMatcherExamples.java
│ │ │ ├── ProxyClientExamples.java
│ │ │ ├── RedirectBetweenMultiMockServerInstances.java
│ │ │ ├── RequestPropertiesMatcherExamples.java
│ │ │ ├── ResponseActionExamples.java
│ │ │ ├── ResponseTemplateTesterExamples.java
│ │ │ ├── RetrieveActiveExpectationsExample.java
│ │ │ ├── RetrieveRecordedExpectationsExample.java
│ │ │ ├── RetrieveRecordedLogMessagesExample.java
│ │ │ ├── RetrieveRecordedRequestsExample.java
│ │ │ └── initializer
│ │ │ │ └── ExpectationInitializerExample.java
│ │ │ └── proxy
│ │ │ ├── configuration
│ │ │ └── RootConfiguration.java
│ │ │ ├── json
│ │ │ └── ObjectMapperFactory.java
│ │ │ ├── model
│ │ │ └── Book.java
│ │ │ ├── service
│ │ │ ├── BookService.java
│ │ │ ├── ExampleNettySslContextFactory.java
│ │ │ ├── apacheclient
│ │ │ │ ├── ApacheHttpClientConfiguration.java
│ │ │ │ └── BookServiceApacheHttpClient.java
│ │ │ ├── googleclient
│ │ │ │ ├── http
│ │ │ │ │ ├── BookServiceGoogleHttpClient.java
│ │ │ │ │ └── GoogleHttpClientConfigurationHttpProxy.java
│ │ │ │ └── socks
│ │ │ │ │ ├── BookServiceGoogleHttpClient.java
│ │ │ │ │ └── GoogleHttpClientConfigurationSocksProxy.java
│ │ │ ├── javaclient
│ │ │ │ ├── http
│ │ │ │ │ ├── BookServiceJavaHttpClient.java
│ │ │ │ │ └── JavaHttpClientConfigurationHttpProxy.java
│ │ │ │ ├── https
│ │ │ │ │ ├── BookServiceJavaHttpClient.java
│ │ │ │ │ └── JavaHttpClientConfigurationHttpsProxy.java
│ │ │ │ └── socks
│ │ │ │ │ ├── BookServiceJavaHttpClient.java
│ │ │ │ │ └── JavaHttpClientConfigurationSocksProxy.java
│ │ │ ├── jerseyclient
│ │ │ │ ├── BookServiceJerseyClient.java
│ │ │ │ └── JerseyClientConfiguration.java
│ │ │ ├── jettyclient
│ │ │ │ ├── BookServiceJettyHttpClient.java
│ │ │ │ └── JettyHttpClientConfiguration.java
│ │ │ ├── springresttemplate
│ │ │ │ ├── BookServiceSpringRestTemplate.java
│ │ │ │ └── SpringRestTemplateConfiguration.java
│ │ │ └── springwebclient
│ │ │ │ └── https
│ │ │ │ ├── BookServiceSpringWebClient.java
│ │ │ │ └── SpringWebClientConfigurationHttpsProxy.java
│ │ │ ├── servicebackend
│ │ │ ├── BackEndServiceConfiguration.java
│ │ │ ├── BookServer.java
│ │ │ └── books.js
│ │ │ └── web
│ │ │ ├── configuration
│ │ │ └── WebMvcConfiguration.java
│ │ │ └── controller
│ │ │ └── BooksPageController.java
│ ├── resources
│ │ ├── application.properties
│ │ ├── org
│ │ │ └── mockserver
│ │ │ │ └── examples
│ │ │ │ └── mockserver
│ │ │ │ ├── test.png
│ │ │ │ ├── testJsonSchema.json
│ │ │ │ └── testXmlSchema.xsd
│ │ └── view
│ │ │ ├── book.ftl
│ │ │ └── books.ftl
│ └── webapp
│ │ ├── WEB-INF
│ │ └── web.xml
│ │ └── resources
│ │ └── css
│ │ └── example.css
│ └── test
│ └── java
│ └── org
│ └── mockserver
│ └── examples
│ ├── mockserver
│ └── ExampleTestClass.java
│ └── proxy
│ ├── AnalyseSystemExampleTestClass.java
│ └── web
│ └── controller
│ ├── BooksPageControllerTest.java
│ ├── BooksPageEndToEndIntegrationTest.java
│ ├── BooksPageIntegrationTest.java
│ ├── apacheclient
│ ├── BooksPageApacheClientEndToEndIntegrationTest.java
│ └── BooksPageApacheClientIntegrationTest.java
│ ├── googleclient
│ ├── BooksPageGoogleClientHTTPProxyEndToEndIntegrationTest.java
│ ├── BooksPageGoogleClientHTTPProxyIntegrationTest.java
│ ├── BooksPageGoogleClientSOCKSProxyEndToEndIntegrationTest.java
│ └── BooksPageGoogleClientSOCKSProxyIntegrationTest.java
│ ├── javaclient
│ ├── BooksPageJavaClientHTTPProxyEndToEndIntegrationTest.java
│ ├── BooksPageJavaClientHTTPProxyIntegrationTest.java
│ ├── BooksPageJavaClientHTTPSProxyIntegrationTest.java
│ ├── BooksPageJavaClientSOCKSProxyEndToEndIntegrationTest.java
│ └── BooksPageJavaClientSOCKSProxyIntegrationTest.java
│ ├── jerseyclient
│ ├── BooksPageJerseyClientEndToEndIntegrationTest.java
│ └── BooksPageJerseyClientIntegrationTest.java
│ ├── jettyclient
│ ├── BooksPageJettyClientEndToEndIntegrationTest.java
│ └── BooksPageJettyClientIntegrationTest.java
│ ├── pageobjects
│ ├── BookPage.java
│ └── BooksPage.java
│ ├── springresttemplate
│ ├── BooksPageSpringRestTemplateEndToEndIntegrationTest.java
│ └── BooksPageSpringRestTemplateIntegrationTest.java
│ └── springwebclient
│ └── BooksPageSpringWebClientHTTPSProxyIntegrationTest.java
├── mockserver-integration-testing
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── testing
│ │ │ ├── closurecallback
│ │ │ └── ViaWebSocket.java
│ │ │ ├── integration
│ │ │ ├── callback
│ │ │ │ ├── PrecannedTestExpectationForwardCallbackRequest.java
│ │ │ │ ├── PrecannedTestExpectationForwardCallbackRequestAndResponse.java
│ │ │ │ ├── PrecannedTestExpectationResponseCallback.java
│ │ │ │ └── StaticTestExpectationResponseCallback.java
│ │ │ ├── mock
│ │ │ │ ├── AbstractBasicMockingIntegrationTest.java
│ │ │ │ ├── AbstractBasicMockingSameJVMIntegrationTest.java
│ │ │ │ ├── AbstractExtendedMockingIntegrationTest.java
│ │ │ │ ├── AbstractExtendedSameJVMMockingIntegrationTest.java
│ │ │ │ └── AbstractMockingIntegrationTestBase.java
│ │ │ └── proxy
│ │ │ │ └── AbstractProxyIntegrationTest.java
│ │ │ └── tls
│ │ │ └── SSLSocketFactory.java
│ └── resources
│ │ ├── org
│ │ └── mockserver
│ │ │ └── openapi
│ │ │ ├── openapi_petstore_example.json
│ │ │ └── openapi_petstore_example_with_array_parameters.json
│ │ ├── test.pdf
│ │ └── test.png
│ └── test
│ └── resources
│ └── org
│ └── mockserver
│ └── model
│ └── testXmlSchema.xsd
├── mockserver-junit-jupiter
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── mockserver
│ │ └── junit
│ │ └── jupiter
│ │ ├── MockServerExtension.java
│ │ └── MockServerSettings.java
│ └── test
│ ├── java
│ └── org
│ │ └── mockserver
│ │ ├── junit
│ │ └── jupiter
│ │ │ ├── ExtendedMockServerPerTestSuite.java
│ │ │ ├── InheritedMockServerSettings.java
│ │ │ ├── MockServerExtensionConstructorInjectionClientAndServerTest.java
│ │ │ ├── MockServerExtensionConstructorInjectionTest.java
│ │ │ ├── MockServerExtensionConstructorInjectionWithSettingsInheritedSinglePortTest.java
│ │ │ ├── MockServerExtensionConstructorInjectionWithSettingsMultiplePortTest.java
│ │ │ ├── MockServerExtensionConstructorInjectionWithSettingsSinglePortTest.java
│ │ │ ├── MockServerExtensionLifecycleMethodInjectionTest.java
│ │ │ ├── MockServerExtensionParallelSafetyTest.java
│ │ │ ├── MockServerExtensionTestMethodInjectionTest.java
│ │ │ └── integration
│ │ │ ├── AbstractBasicMockingIntegrationTest.java
│ │ │ ├── AbstractMockingIntegrationTestBase.java
│ │ │ ├── ExtendedMockServerExtension.java
│ │ │ ├── JUnitJupiterExtendedExtensionConstructorParameterIntegrationTest.java
│ │ │ ├── JUnitJupiterExtensionBeforeAllParameterIntegrationTest.java
│ │ │ ├── JUnitJupiterExtensionBeforeEachParameterIntegrationTest.java
│ │ │ └── JUnitJupiterExtensionConstructorParameterIntegrationTest.java
│ │ └── test
│ │ └── TestLoggerExtension.java
│ └── resources
│ └── mockito-extensions
│ └── org.mockito.plugins.MockMaker
├── mockserver-junit-rule
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── mockserver
│ │ └── junit
│ │ └── MockServerRule.java
│ └── test
│ └── java
│ └── org
│ └── mockserver
│ └── junit
│ ├── MockServerClassRuleTestWithMocks.java
│ ├── MockServerRuleClientGetterTest.java
│ ├── MockServerRuleSubClassTest.java
│ ├── MockServerRuleSuperClass.java
│ ├── MockServerRuleTest.java
│ ├── MockServerRuleTestWithMocks.java
│ └── integration
│ ├── JUnitClassRuleIntegrationTest.java
│ └── JUnitRuleIntegrationTest.java
├── mockserver-netty
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── integration-tests
│ ├── gradle-netty-no-dependencies-dependencies
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mockserver
│ │ │ ├── ClientAndServerMockTest.java
│ │ │ └── ClientAndServerProxyTest.java
│ ├── gradle-netty-shaded-dependencies
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mockserver
│ │ │ ├── ClientAndServerMockTest.java
│ │ │ └── ClientAndServerProxyTest.java
│ ├── gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ └── gradlew.bat
│ ├── gradle_integration_tests.sh
│ ├── logging.sh
│ ├── maven-netty-jar-with-dependencies-dependency
│ │ ├── invoker.properties
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mockserver
│ │ │ ├── ClientAndServerMockTest.java
│ │ │ └── ClientAndServerProxyTest.java
│ ├── maven-netty-no-dependencies-dependency
│ │ ├── invoker.properties
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mockserver
│ │ │ ├── ClientAndServerMockTest.java
│ │ │ └── ClientAndServerProxyTest.java
│ ├── maven-netty-shaded-dependency
│ │ ├── invoker.properties
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mockserver
│ │ │ ├── ClientAndServerMockTest.java
│ │ │ └── ClientAndServerProxyTest.java
│ └── settings.xml
│ ├── main
│ ├── assembly
│ │ ├── brew-tar
│ │ │ ├── brew-tar.xml
│ │ │ ├── build_notes.md
│ │ │ └── run_mockserver.sh
│ │ └── jar-with-dependencies
│ │ │ └── jar-with-dependencies.xml
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ ├── cli
│ │ │ └── Main.java
│ │ │ ├── dashboard
│ │ │ ├── DashboardHandler.java
│ │ │ ├── DashboardWebSocketHandler.java
│ │ │ ├── model
│ │ │ │ ├── DashboardLogEntryDTO.java
│ │ │ │ └── DashboardLogEntryDTOGroup.java
│ │ │ └── serializers
│ │ │ │ ├── DashboardLogEntryDTOGroupSerializer.java
│ │ │ │ ├── DashboardLogEntryDTOSerializer.java
│ │ │ │ ├── Description.java
│ │ │ │ ├── DescriptionProcessor.java
│ │ │ │ ├── DescriptionSerializer.java
│ │ │ │ ├── LogMessageDescription.java
│ │ │ │ ├── RequestDefinitionDescription.java
│ │ │ │ ├── RequestDefinitionObjectDescription.java
│ │ │ │ └── ThrowableSerializer.java
│ │ │ ├── integration
│ │ │ └── ClientAndServer.java
│ │ │ ├── lifecycle
│ │ │ ├── ExpectationsListener.java
│ │ │ └── LifeCycle.java
│ │ │ └── netty
│ │ │ ├── HttpRequestHandler.java
│ │ │ ├── MockServer.java
│ │ │ ├── MockServerUnificationInitializer.java
│ │ │ ├── proxy
│ │ │ ├── BinaryRequestProxyingHandler.java
│ │ │ ├── connect
│ │ │ │ └── HttpConnectHandler.java
│ │ │ ├── relay
│ │ │ │ ├── DownstreamProxyRelayHandler.java
│ │ │ │ ├── RelayConnectHandler.java
│ │ │ │ └── UpstreamProxyRelayHandler.java
│ │ │ └── socks
│ │ │ │ ├── Socks4ConnectHandler.java
│ │ │ │ ├── Socks4ProxyHandler.java
│ │ │ │ ├── Socks5ConnectHandler.java
│ │ │ │ ├── Socks5ProxyHandler.java
│ │ │ │ ├── SocksConnectHandler.java
│ │ │ │ ├── SocksDetector.java
│ │ │ │ └── SocksProxyHandler.java
│ │ │ ├── responsewriter
│ │ │ └── NettyResponseWriter.java
│ │ │ ├── unification
│ │ │ ├── HttpContentLengthRemover.java
│ │ │ ├── PortBinding.java
│ │ │ └── PortUnificationHandler.java
│ │ │ └── websocketregistry
│ │ │ └── CallbackWebSocketServerHandler.java
│ ├── package
│ │ ├── .dput.cf
│ │ ├── control
│ │ │ └── control
│ │ ├── dput.sh
│ │ ├── etc
│ │ │ ├── init.d
│ │ │ │ └── mockserver
│ │ │ └── init
│ │ │ │ └── mockserver.conf
│ │ └── lintian.sh
│ └── resources
│ │ ├── example_logging_configuration.properties
│ │ └── org
│ │ └── mockserver
│ │ └── dashboard
│ │ ├── AveriaSansLibre-Regular.ttf
│ │ ├── AveriaSansLibre-Regular.woff2
│ │ ├── apple-touch-icon.png
│ │ ├── asset-manifest.json
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── precache-manifest.7e5b6099c96247cc327e95964d344a55.js
│ │ ├── service-worker.js
│ │ └── static
│ │ ├── css
│ │ ├── main.66fded09.chunk.css
│ │ └── main.66fded09.chunk.css.map
│ │ └── js
│ │ ├── 2.d40871cb.chunk.js
│ │ ├── 2.d40871cb.chunk.js.map
│ │ ├── main.defc53a6.chunk.js
│ │ ├── main.defc53a6.chunk.js.map
│ │ ├── runtime~main.26e8d0d9.js
│ │ └── runtime~main.26e8d0d9.js.map
│ └── test
│ ├── java
│ └── org
│ │ └── mockserver
│ │ ├── cli
│ │ └── MainTest.java
│ │ ├── clientandserver
│ │ └── ClientAndServerListenerTest.java
│ │ ├── cors
│ │ └── OverridePreFlightRequestIntegrationTest.java
│ │ ├── dashboard
│ │ ├── DashboardWebSocketHandlerTest.java
│ │ └── serializers
│ │ │ ├── DashboardLogEntryDTOGroupSerializerTest.java
│ │ │ ├── DashboardLogEntryDTOSerializerTest.java
│ │ │ └── DescriptionProcessorTest.java
│ │ ├── lifecycle
│ │ ├── PortBindingIntegrationTest.java
│ │ └── StopIntegrationTest.java
│ │ └── netty
│ │ ├── HttpRequestHandlerTest.java
│ │ ├── MockServerListenerTest.java
│ │ ├── integration
│ │ ├── ShadedJarRunner.java
│ │ ├── authenticatedcontrolplane
│ │ │ ├── AuthenticatedControlPlaneUsingJWTClientNotAuthenticatedIntegrationTest.java
│ │ │ ├── AuthenticatedControlPlaneUsingJWTViaOverrideClientMockingIntegrationTest.java
│ │ │ ├── AuthenticatedControlPlaneUsingJWTViaSupplierClientMockingIntegrationTest.java
│ │ │ ├── AuthenticatedControlPlaneUsingMTLSClientMockingIntegrationTest.java
│ │ │ └── AuthenticatedControlPlaneUsingMTLSClientNotAuthenticatedIntegrationTest.java
│ │ ├── mock
│ │ │ ├── AbstractExtendedNettyMockingIntegrationTest.java
│ │ │ ├── ClientAndServerMockingIntegrationTest.java
│ │ │ ├── ConcurrencyBasicResponseMockingIntegrationTest.java
│ │ │ ├── ConcurrencyResponseWebSocketMockingIntegrationTest.java
│ │ │ ├── CustomNonStandardHTTPMethodsIntegrationTest.java
│ │ │ ├── ExpectationFileSystemPersistenceIntegrationTest.java
│ │ │ ├── ExpectationFileWatcherIntegrationTest.java
│ │ │ ├── ExpectationInitializerIntegrationTest.java
│ │ │ ├── ExtendedNettyMockingIntegrationTest.java
│ │ │ ├── ExtendedShadedJarMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpProxyMockingIntegrationTest.java
│ │ │ ├── ForwardViaSocksProxyMockingIntegrationTest.java
│ │ │ ├── HTTP2MockingIntegrationTest.java
│ │ │ ├── MainMethodMockingIntegrationTest.java
│ │ │ ├── MultiplePortMockingIntegrationTest.java
│ │ │ ├── NoProxyHostMockingIntegrationTest.java
│ │ │ ├── PortForwardingMockingIntegrationTest.java
│ │ │ ├── PreAllocatedPortMockingIntegrationTest.java
│ │ │ ├── SecureClientMockingIntegrationTest.java
│ │ │ ├── TestClasspathTestExpectationResponseCallback.java
│ │ │ ├── WebsocketCallbackRegistryIntegrationTest.java
│ │ │ └── initializer
│ │ │ │ └── ExpectationInitializerIntegrationExample.java
│ │ ├── proxy
│ │ │ ├── ForwardWithCustomClientCertificateIntegrationTest.java
│ │ │ ├── ProxyToInvalidSocketIntegrationTest.java
│ │ │ ├── direct
│ │ │ │ ├── DirectProxyViaLoadBalanceIntegrationTest.java
│ │ │ │ ├── NettyAssymetricBinaryForwardingIntegrationTest.java
│ │ │ │ ├── NettyPortForwardingProxyIntegrationTest.java
│ │ │ │ └── NettyPortForwardingSecureProxyIntegrationTest.java
│ │ │ ├── http
│ │ │ │ ├── BinaryProxyIntegrationTest.java
│ │ │ │ ├── HttpProxyChainedIntegrationTest.java
│ │ │ │ ├── HttpProxyContentLengthIntegrationTest.java
│ │ │ │ ├── HttpProxyViaLoadBalanceIntegrationTest.java
│ │ │ │ ├── NettyHttpProxyIntegrationTest.java
│ │ │ │ ├── NettyHttpsProxyIntegrationTest.java
│ │ │ │ └── NettyHttpsProxyShadedJarIntegrationTest.java
│ │ │ └── socks
│ │ │ │ └── NettyHttpProxySOCKSIntegrationTest.java
│ │ └── tls
│ │ │ ├── inbound
│ │ │ ├── AbstractClientAuthenticationMockingIntegrationTest.java
│ │ │ ├── ClientAuthenticationAdditionalCertificateChainMockingIntegrationTest.java
│ │ │ ├── ClientAuthenticationCustomCertificateAuthorityMockingIntegrationTest.java
│ │ │ ├── ClientAuthenticationCustomPrivateKeyAndCertificateMockingIntegrationTest.java
│ │ │ ├── ClientAuthenticationDynamicCAMockingIntegrationTest.java
│ │ │ ├── ClientAuthenticationMockingIntegrationTest.java
│ │ │ ├── CustomCertificateAuthorityMockingIntegrationTest.java
│ │ │ ├── CustomPrivateKeyAndCertificateWithECKeysMockingIntegrationTest.java
│ │ │ └── CustomTLSProtocolsMockingIntegrationTest.java
│ │ │ └── outbound
│ │ │ ├── AbstractForwardViaHttpsProxyMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpAndHttpsProxyMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpsProxyWithAnyTrustManagerMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpsProxyWithCustomTrustManagerWithCustomCAMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpsProxyWithCustomTrustManagerWithMockServerCAMockingIntegrationTest.java
│ │ │ ├── ForwardViaHttpsProxyWithJVMTrustManagerMockingIntegrationTest.java
│ │ │ ├── ForwardWithAnyTrustManagerMockingIntegrationTest.java
│ │ │ ├── ForwardWithCustomTrustManagerWithCustomCAMockingIntegrationTest.java
│ │ │ ├── ForwardWithCustomTrustManagerWithMockServerCAMockingIntegrationTest.java
│ │ │ └── ForwardWithJVMTrustManagerMockingIntegrationTest.java
│ │ ├── proxy
│ │ ├── direct
│ │ │ └── DirectProxyUnificationHandlerTest.java
│ │ ├── http
│ │ │ ├── HttpProxyUnificationInitializerSOCKSErrorTest.java
│ │ │ └── HttpProxyUnificationInitializerTest.java
│ │ └── socks
│ │ │ └── SocksDetectorTest.java
│ │ └── responsewriter
│ │ └── NettyResponseWriterTest.java
│ └── resources
│ └── org
│ └── mockserver
│ ├── model
│ └── testXmlSchema.xsd
│ └── netty
│ └── integration
│ ├── mock
│ └── initializer
│ │ ├── initializerJson.json
│ │ └── openAPIExpectionInitializerJson.json
│ └── tls
│ ├── ca-csr.json
│ ├── ca-key-pkcs8.pem
│ ├── ca-key.pem
│ ├── ca.pem
│ ├── csr.json
│ ├── ec
│ ├── ca-csr.json
│ ├── ca-key-pkcs8.pem
│ ├── ca-key.pem
│ ├── ca.pem
│ ├── csr.json
│ ├── generate_custom_certificates.md
│ ├── leaf-cert-chain.pem
│ ├── leaf-cert.pem
│ ├── leaf-key-pkcs8.pem
│ └── leaf-key.pem
│ ├── generate_custom_certificates.md
│ ├── leaf-cert-chain.pem
│ ├── leaf-cert.pem
│ ├── leaf-key-pkcs8.pem
│ ├── leaf-key.pem
│ └── separateca
│ ├── ca-csr.json
│ ├── ca-key-pkcs8.pem
│ ├── ca-key.pem
│ ├── ca.pem
│ ├── csr.json
│ ├── leaf-cert-chain.pem
│ ├── leaf-cert.pem
│ ├── leaf-key-pkcs8.pem
│ └── leaf-key.pem
├── mockserver-proxy-war
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── proxyservlet
│ │ │ └── ProxyServlet.java
│ └── webapp
│ │ └── WEB-INF
│ │ └── web.xml
│ └── test
│ ├── java
│ └── org
│ │ └── mockserver
│ │ └── proxyservlet
│ │ ├── ProxyServletTest.java
│ │ └── integration
│ │ ├── ServletProxyIntegrationTest.java
│ │ └── ServletProxyWithContextPathIntegrationTest.java
│ └── resources
│ └── org
│ └── apache
│ └── catalina
│ └── startup
│ └── catalina.properties
├── mockserver-spring-test-listener
├── dependency-reduced-pom.xml
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── springtest
│ │ │ ├── MockServerPort.java
│ │ │ ├── MockServerPropertyCustomizer.java
│ │ │ ├── MockServerTest.java
│ │ │ ├── MockServerTestCustomizerFactory.java
│ │ │ ├── MockServerTestExecutionListener.java
│ │ │ └── package-info.java
│ └── resources
│ │ └── META-INF
│ │ └── spring.factories
│ └── test
│ └── java
│ └── org
│ └── mockserver
│ └── springtest
│ ├── MockServerPropertyCustomizerAbstractTest.java
│ ├── MockServerPropertyCustomizerEqualityTest.java
│ ├── MockServerPropertyCustomizerTest.java
│ ├── MockServerTestExecutionListenerTest.java
│ ├── MockServerTestFullSampleTest.java
│ └── integration
│ └── MockServerTestExecutionListenerIntegrationTest.java
├── mockserver-testing
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── mockserver
│ │ └── test
│ │ ├── Assert.java
│ │ ├── IsDebug.java
│ │ ├── PrintOutCurrentTestRunListener.java
│ │ ├── Retries.java
│ │ └── TempFileWriter.java
│ └── test
│ └── java
│ └── org
│ └── mockserver
│ └── test
│ └── AssertTest.java
├── mockserver-war
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── mockserver
│ │ │ └── mockservlet
│ │ │ └── MockServerServlet.java
│ └── webapp
│ │ └── WEB-INF
│ │ └── web.xml
│ └── test
│ ├── java
│ └── org
│ │ └── mockserver
│ │ └── mockservlet
│ │ ├── MockServerServletTest.java
│ │ ├── RunServletEmbeddedExample.java
│ │ └── integration
│ │ ├── AbstractExtendedDeployableWARMockingIntegrationTest.java
│ │ ├── ClientServerWarWithContextPathIntegrationTest.java
│ │ ├── ExtendedWARMockingIntegrationTest.java
│ │ ├── TestClasspathTestExpectationForwardCallback.java
│ │ ├── TestClasspathTestExpectationForwardCallbackWithResponseOverride.java
│ │ └── TestClasspathTestExpectationResponseCallback.java
│ └── resources
│ └── org
│ ├── apache
│ └── catalina
│ │ └── startup
│ │ └── catalina.properties
│ └── mockserver
│ └── model
│ └── testXmlSchema.xsd
├── mockserver.example.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── scripts
├── MockServer_TalendAPITester.json
├── bash_functions.sh
├── buildkite_deploy_snapshot.sh
├── buildkite_quick_build.sh
├── deploy.md
├── download_maven_jars.sh
├── install_ca_certificate.sh
├── jekyll_server.sh
├── local_build_module_by_module.sh
├── local_buildkite_build.sh
├── local_deploy_snapshot.sh
├── local_docker_launch.sh
├── local_docker_push_tag.sh
├── local_generate_web_site.sh
├── local_javadoc_build_all_versions.sh
├── local_list_versions.sh
├── local_online_build.sh
├── local_quick_build.sh
├── local_release.sh
├── local_single_module.sh
├── local_single_test.sh
├── log_event_size_test_docker.sh
├── log_event_size_test_intellij.sh
├── log_event_size_test_intellij_tls.sh
├── log_event_size_test_intellij_tls_load.sh
├── release_steps.md
├── s3_buckets.md
└── stop_MockServer.sh
/.buildkite/pipeline.yml:
--------------------------------------------------------------------------------
1 | steps:
2 | - label: "update docker image"
3 | command: "docker pull mockserver/mockserver:maven"
4 |
5 | - wait
6 |
7 | - label: "build"
8 | command: "docker run -v $(pwd):/build/mockserver -w /build/mockserver -a stdout -a stderr -e BUILDKITE_BRANCH=$BUILDKITE_BRANCH mockserver/mockserver:maven /build/mockserver/scripts/buildkite_quick_build.sh"
9 | artifact_paths:
10 | - "**/*.log"
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the issue**
11 | Description of the issue
12 |
13 | **What you are trying to do**
14 | Description of what you are trying to do so we can understand the context of the problem
15 |
16 | **MockServer version**
17 | The version you are using
18 |
19 | **To Reproduce**
20 | Steps to reproduce the issue:
21 |
22 | 1. How you are running MockServer (i.e maven plugin, docker, etc)
23 | 2. Code you used to create expectations
24 | 3. What error you saw
25 |
26 | **Expected behaviour**
27 | What you expected to happen
28 |
29 | **MockServer Log**
30 | Log output, as INFO level (or lower)
31 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the feature request**
11 | Description of the new feature,
12 |
13 | **What you are trying to do**
14 | Description of what you are trying to do so we can understand the context of the feature request
15 |
16 | **The solution you'd like**
17 | If you know, describe how you think the feature should be implemented / or should work
18 |
19 | **Describe alternatives you've considered**
20 | If they exist, describe any alternative solutions you've considered.
21 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "maven"
4 | directory: "/"
5 | schedule:
6 | interval: "daily"
7 | - package-ecosystem: "github-actions"
8 | directory: "/"
9 | schedule:
10 | interval: "daily"
11 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.0/apache-maven-3.9.0-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
3 |
--------------------------------------------------------------------------------
/.run/All Unit Tests.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.run/All in mockserver-client-java.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-core.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.run/All in mockserver-examples.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-junit-jupiter.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-junit-rule.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-netty.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-proxy-war.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-spring-test-listener.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/All in mockserver-war.run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.run/Main (1080 plain).run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.run/Main (1090 plain).run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | | Version | Supported |
6 | |----------| ------------------ |
7 | | 5.15.0 | :white_check_mark: |
8 | | < 5.15.0 | :x: |
9 |
10 | ## Reporting a Vulnerability
11 |
12 | Reporting a vulnerabilities is very helpful.
13 |
14 | Please report a vulnerability via Slack in a direct message to James Bloom.
15 |
16 | If that does not received a response fast enough please raise a github issue with your contact details.
17 |
--------------------------------------------------------------------------------
/container_integration_tests/client_docker_images/CurlClientDockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:20.04
2 |
3 | RUN apt-get update && apt-get install -y \
4 | curl \
5 | nghttp2 \
6 | jq
7 |
8 | CMD ["sleep", "86400"]
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_forward_with_override/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | MOCKSERVER_SERVER_PORT: 1234
17 | mockserver_target:
18 | image: mockserver/mockserver:integration_testing
19 | networks:
20 | - test-network
21 | environment:
22 | MOCKSERVER_LOG_LEVEL: TRACE
23 | MOCKSERVER_SERVER_PORT: 4567
24 |
25 | networks:
26 | test-network:
27 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_remote_host_and_port_by_environment_variable/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver-target:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_SERVER_PORT: 4567
17 | mockserver:
18 | image: mockserver/mockserver:integration_testing
19 | networks:
20 | - test-network
21 | environment:
22 | MOCKSERVER_LOG_LEVEL: DEBUG
23 | MOCKSERVER_SERVER_PORT: 1234
24 | PROXY_REMOTE_HOST: mockserver-target
25 | PROXY_REMOTE_PORT: 4567
26 |
27 | networks:
28 | test-network:
29 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_server_port_by_command/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | command:
17 | - "-serverPort"
18 | - "1234"
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_server_port_by_environment_variable_long_name/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_SERVER_PORT: 1234
17 |
18 | networks:
19 | test-network:
20 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_server_port_by_environment_variable_short_name/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | SERVER_PORT: 1234
17 |
18 | networks:
19 | test-network:
20 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_expectation_initialiser/config/expectationInitialiser.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "httpRequest" : {
3 | "path" : "/some/path"
4 | },
5 | "httpResponse" : {
6 | "body" : "some_response_body"
7 | }
8 | } ]
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_expectation_initialiser/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_INITIALIZATION_JSON_PATH: /config/expectationInitialiser.json
17 | volumes:
18 | - ./config:/config
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_expectation_initialiser/integration_test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
6 | source "${SCRIPT_DIR}/../docker-compose.sh"
7 | source "${SCRIPT_DIR}/../logging.sh"
8 |
9 | printMessage "Start: \"${SCRIPT_DIR/\//}\""
10 |
11 | function integration_test() {
12 | start-up
13 | TEST_EXIT_CODE=0
14 | sleep 3
15 | RESPONSE_BODY=$(docker-exec-client "curl -v -s -X PUT 'http://mockserver:1080/some/path'")
16 |
17 | if [[ "${RESPONSE_BODY}" != "some_response_body" ]]; then
18 | printFailureMessage "Failed to retrieve response body for expectation matched by path, found: \"${RESPONSE_BODY}\""
19 | TEST_EXIT_CODE=1
20 | fi
21 |
22 | logTestResult "${TEST_EXIT_CODE}" "${TEST_CASE}"
23 | # tear-down
24 | return ${TEST_EXIT_CODE}
25 | }
26 |
27 | integration_test
28 |
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_persisted_expectations/.gitignore:
--------------------------------------------------------------------------------
1 | config
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_persisted_expectations/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_PERSIST_EXPECTATIONS: "true"
17 | MOCKSERVER_PERSISTED_EXPECTATIONS_PATH: /config/persistedExpectations.json
18 | volumes:
19 | - ./config:/config
20 |
21 | networks:
22 | test-network:
23 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_server_port_from_custom_properties_file/config/mockserver.custom.properties:
--------------------------------------------------------------------------------
1 | ###############################
2 | # MockServer & Proxy Settings #
3 | ###############################
4 |
5 | # Logging
6 |
7 | mockserver.logLevel=DEBUG
8 |
9 | # Server Port
10 |
11 | mockserver.serverPort=1090
12 |
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_server_port_from_custom_properties_file/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | MOCKSERVER_PROPERTY_FILE: "/config/mockserver.custom.properties"
17 | volumes:
18 | - ./config:/config
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_server_port_from_default_properties_file/config/mockserver.properties:
--------------------------------------------------------------------------------
1 | ###############################
2 | # MockServer & Proxy Settings #
3 | ###############################
4 |
5 | # Logging
6 |
7 | mockserver.logLevel=DEBUG
8 |
9 | # Server Port
10 |
11 | mockserver.serverPort=1090
12 |
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_with_server_port_from_default_properties_file/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | volumes:
17 | - ./config:/config
18 |
19 | networks:
20 | test-network:
21 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/docker_compose_without_server_port/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client_curl
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 |
17 | networks:
18 | test-network:
19 | driver: bridge
--------------------------------------------------------------------------------
/container_integration_tests/kind-config.yaml:
--------------------------------------------------------------------------------
1 | kind: Cluster
2 | apiVersion: kind.x-k8s.io/v1alpha4
3 | nodes:
4 | - role: control-plane
5 | extraPortMappings:
6 | - containerPort: 1080
7 | hostPort: 1080
8 |
--------------------------------------------------------------------------------
/docker/docker-compose/configure_by_command/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | mockServer:
4 | image: mockserver/mockserver:mockserver-5.7.2
5 | command: -logLevel DEBUG -serverPort 1090 -proxyRemotePort 80 -proxyRemoteHost www.mock-server.com
6 | ports:
7 | - 1080:1090
--------------------------------------------------------------------------------
/docker/docker-compose/configure_by_environment_properties/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | mockServer:
4 | image: mockserver/mockserver:mockserver-5.15.0
5 | ports:
6 | - 1080:1090
7 | environment:
8 | MOCKSERVER_LOG_LEVEL: TRACE
9 | MOCKSERVER_MAX_EXPECTATIONS: 100
10 | MOCKSERVER_MAX_HEADER_SIZE: 8192
--------------------------------------------------------------------------------
/docker/docker-compose/configure_by_volume_mount/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | mockServer:
4 | image: mockserver/mockserver:mockserver-snapshot
5 | ports:
6 | - 1080:1080
7 | environment:
8 | MOCKSERVER_PROPERTY_FILE: /config/mockserver.properties
9 | MOCKSERVER_INITIALIZATION_JSON_PATH: /config/initializerJson.json
10 | volumes:
11 | - type: bind
12 | source: .
13 | target: /config
--------------------------------------------------------------------------------
/docker/docker-compose/configure_by_volume_mount/initializerJson.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/firstExampleExpectation"
5 | },
6 | "httpResponse": {
7 | "body": "some response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/secondExampleExpectation"
13 | },
14 | "httpResponse": {
15 | "body": "some response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/docker/local/Dockerfile:
--------------------------------------------------------------------------------
1 | #
2 | # MockServer Dockerfile
3 | #
4 | # https://github.com/mock-server/mockserver
5 | # http://www.mock-server.com
6 | #
7 |
8 | # runtime image https://console.cloud.google.com/gcr/images/distroless/global/java17
9 | FROM gcr.io/distroless/java17:nonroot
10 |
11 | # maintainer details
12 | MAINTAINER James Bloom "jamesdbloom@gmail.com"
13 |
14 | # expose ports.
15 | EXPOSE 1080
16 |
17 | # copy in jar
18 | COPY mockserver-netty-jar-with-dependencies.jar /
19 |
20 | # don't run MockServer as root
21 | USER nonroot
22 |
23 | ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-cp", "/mockserver-netty-jar-with-dependencies.jar:/libs/*", "-Dmockserver.propertyFile=/config/mockserver.properties", "org.mockserver.cli.Main"]
24 |
25 | CMD ["-serverPort", "1080"]
26 |
--------------------------------------------------------------------------------
/docker/local/local_docker_build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | cp /Users/jamesbloom/.m2/repository/org/mock-server/mockserver-netty/5.15.1-SNAPSHOT/mockserver-netty-5.15.1-SNAPSHOT-jar-with-dependencies.jar ./mockserver-netty-jar-with-dependencies.jar
4 | docker build --no-cache -t mockserver/mockserver:local-snapshot .
5 |
--------------------------------------------------------------------------------
/docker/local/local_docker_cadvisor_run.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | docker stop cadvisor || true
4 | docker run \
5 | --rm \
6 | --volume=/:/rootfs:ro \
7 | --volume=/var/run:/var/run:ro \
8 | --volume=/sys:/sys:ro \
9 | --volume=/var/lib/docker/:/var/lib/docker:ro \
10 | --volume=/dev/disk/:/dev/disk:ro \
11 | --publish=8080:8080 \
12 | --detach=true \
13 | --name=cadvisor \
14 | --privileged \
15 | --device=/dev/kmsg \
16 | gcr.io/google-containers/cadvisor:latest
17 |
18 | open http://localhost:8080/
--------------------------------------------------------------------------------
/docker/local/local_docker_run.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # shellcheck disable=SC2046
3 |
4 | docker stop mockserver_local_snapshot || true
5 | docker run \
6 | --rm \
7 | --env MOCKSERVER_OUTPUT_MEMORY_USAGE_CSV=true \
8 | --env MOCKSERVER_MEMORY_USAGE_DIRECTORY=/logs \
9 | -v $(pwd):/logs \
10 | --name mockserver_local_snapshot \
11 | -p 1080:1080 \
12 | mockserver/mockserver:local-snapshot -logLevel INFO -serverPort 1080
13 |
14 |
--------------------------------------------------------------------------------
/docker_build/grunt/chrome-xvfb:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | _kill_procs() {
4 | kill -TERM $chromium
5 | wait $chromium
6 | kill -TERM $xvfb
7 | }
8 |
9 | # Setup a trap to catch SIGTERM and relay it to child processes
10 | trap _kill_procs SIGTERM
11 |
12 | XVFB_WHD=${XVFB_WHD:-1280x720x16}
13 |
14 | # Start Xvfb
15 | Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
16 | xvfb=$!
17 |
18 | export DISPLAY=:99
19 |
20 | chromium --no-sandbox $@ &
21 | chromium=$!
22 |
23 | wait $chromium
24 | wait $xvfb
--------------------------------------------------------------------------------
/docker_build/performance/Dockerfile:
--------------------------------------------------------------------------------
1 | #
2 | # MockServer Performance Dockerfile
3 | #
4 | # https://github.com/mock-server/mockserver
5 | # http://www.mock-server.com
6 | #
7 |
8 | # pull base image.
9 | FROM locustio/locust
10 |
11 | # maintainer details
12 | MAINTAINER James Bloom "jamesdbloom@gmail.com"
13 |
14 | # install basic build tools
15 | USER root
16 | RUN apt update
17 | RUN apt upgrade -y
18 | RUN apt install -y curl
19 | USER locust
20 |
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.10.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.10.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.11.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.11.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.11.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.11.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.11.2.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.11.2.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.12.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.12.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.13.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.13.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.13.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.13.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.13.2.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.13.2.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.14.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.14.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.15.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.15.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.3.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.3.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.4.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.4.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.5.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.5.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.5.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.5.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.5.4.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.5.4.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.6.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.6.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.6.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.6.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.7.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.7.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.7.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.7.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.7.2.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.7.2.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.8.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.8.0.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.8.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.8.1.tgz
--------------------------------------------------------------------------------
/helm/charts/mockserver-5.9.0.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/charts/mockserver-5.9.0.tgz
--------------------------------------------------------------------------------
/helm/mockserver-config/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | name: mockserver-config
3 | version: "5.15.0"
4 | appVersion: "5.15.0"
5 | description: Chart to provide config to MockServer
6 | keywords:
7 | - mocking
8 | - mock-server
9 | - http-mock
10 | - http
11 | - test
12 | - test-server
13 | - proxy
14 | - http-proxy
15 | - socks-proxy
16 | - https-proxy
17 | home: "http://mock-server.com"
18 | sources:
19 | - "https://github.com/mock-server/mockserver"
20 | - "https://hub.docker.com/r/mockserver/mockserver"
21 | maintainers:
22 | - name: James D Bloom
23 | email: jamesdbloom+mockserver@gmail.com
24 | engine: gotpl
25 | icon: http://mock-server.com/apple-touch-icon.png
26 |
--------------------------------------------------------------------------------
/helm/mockserver-config/README.md:
--------------------------------------------------------------------------------
1 | ## Installing MockServer Config
2 |
3 | ### Prerequisites
4 |
5 | - Kubernetes (i.e. [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/))
6 | - [Helm](https://docs.helm.sh/using_helm/#quickstart-guide)
7 |
8 | ### Helm Install
9 |
10 | 1. clone repo or copy / download helm chart
11 | 1. modify configuration
12 | 1. install with helm
13 |
14 | ```bash
15 | helm upgrade --install --namespace mockserver mockserver-config helm/mockserver-config
16 | ```
17 |
18 | ### Helm Delete
19 |
20 | To completely remove the chart:
21 |
22 | ```bash
23 | helm delete mockserver-config --purge
24 | ```
--------------------------------------------------------------------------------
/helm/mockserver-config/static/initializerJson.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/firstExampleExpectation"
5 | },
6 | "httpResponse": {
7 | "body": "some response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/secondExampleExpectation"
13 | },
14 | "httpResponse": {
15 | "body": "some response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/helm/mockserver-config/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ .Chart.Name }}
5 | namespace: {{ .Release.Namespace }}
6 | labels:
7 | app: {{ .Chart.Name }}
8 | chart: {{ .Chart.Name }}-{{ .Chart.Version }}
9 | release: {{ .Release.Name }}
10 | heritage: {{ .Release.Service }}
11 | data:
12 | mockserver.properties: |
13 | {{ .Files.Get "static/mockserver.properties" | printf "%s" | indent 4 }}
14 | initializerJson.json: |
15 | {{ .Files.Get "static/initializerJson.json" | printf "%s" | indent 4 }}
16 |
--------------------------------------------------------------------------------
/helm/mockserver/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/helm/mockserver/requirements.yaml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/helm/mockserver/requirements.yaml
--------------------------------------------------------------------------------
/helm/mockserver/templates/service-test.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Pod
3 | metadata:
4 | name: "{{ template "release.name" . }}-service-test"
5 | labels:
6 | app: {{ template "chart.name" . }}
7 | release: {{ .Release.Name }}
8 | chart: {{ template "chart.name_version" . }}
9 | annotations:
10 | "helm.sh/hook": test-success
11 | spec:
12 | containers:
13 | - name: curl
14 | image: {{ .Values.service.test.image}}
15 | command: ['curl']
16 | args: ['-v', '-s', '-X', 'PUT', '{{ template "release.name" . }}:{{ .Values.service.port }}/status']
17 | restartPolicy: Never
18 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/.gitignore:
--------------------------------------------------------------------------------
1 | # Ruby #
2 | ########
3 | *.gem
4 | *.a
5 | *.log
6 | .bundle
7 | .config
8 | .yardoc
9 | .rakeTasks
10 | Gemfile.lock
11 | InstalledFiles
12 | coverage
13 | *doc
14 | *tmp
15 | lib/bundler/man
16 | pkg
17 | spec/reports
18 | vendor/bundle
19 |
20 | # Jekyll #
21 | ##########
22 | _site
23 |
24 | # SASS #
25 | ########
26 | .sass-cache
27 |
28 | # Temporary Image Artefacts #
29 | #############################
30 | images/MockServerScenarios
31 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/.well-known/security.txt:
--------------------------------------------------------------------------------
1 | Contact: mailto:jamesdbloom+mockserver@gmail.com
2 | Contact: https://twitter.com/jamesdbloom
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem 'jekyll'
4 |
5 | group :jekyll_plugins do
6 | gem 'jekyll-code-example-tag'
7 | end
8 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 |
8 |
9 |
10 | {% include header.html %}
11 |
12 |
13 |
14 |
15 | {{ content }}
16 |
17 | {% include footer.html %}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
10 |
11 |
12 | {{ content }}
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/apple-touch-icon.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/error403.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: MockServer - Page Not Found
3 | section: 'error'
4 | layout: default
5 | ---
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/favicon.ico
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/google2b19680b073ab17b.html:
--------------------------------------------------------------------------------
1 | google-site-verification: google2b19680b073ab17b.html
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/ActiveExpectationsUISection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/ActiveExpectationsUISection.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/GitHub_Logo-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/GitHub_Logo-md.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/GitHub_Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/GitHub_Logo.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/Join_Gitter_Chat.svg:
--------------------------------------------------------------------------------
1 | gitter gitter join chat join chat
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/LogMessageUIExpectationNotMatched.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/LogMessageUIExpectationNotMatched.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/LogMessageUISection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/LogMessageUISection.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/MockServerScenarios.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/MockServerScenarios.pptx
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/ProxiedRequestUISection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/ProxiedRequestUISection.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/ReceivedRequestsUISection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/ReceivedRequestsUISection.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/expectation_callback_action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/expectation_callback_action.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/expectation_error_action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/expectation_error_action.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/expectation_forward_action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/expectation_forward_action.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/expectation_response_action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/expectation_response_action.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/forkme_right_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/forkme_right_red.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/https_tls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/https_tls.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/https_tls_configuration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/https_tls_configuration.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/isolate_single_service_with_mockserver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/isolate_single_service_with_mockserver.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_secure_web_proxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_secure_web_proxy.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_socks_proxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_socks_proxy.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_web_proxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mac_proxy_configuration/network_web_proxy.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mac_proxy_configuration/system_preferences.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mac_proxy_configuration/system_preferences.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mac_proxy_configuration/system_preferences_network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mac_proxy_configuration/system_preferences_network.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/mockserver-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/mockserver-icon.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/more_detail_available_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/more_detail_available_message.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/more_detail_available_message.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/more_detail_available_message.psd
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/p99vsparallelclients.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/p99vsparallelclients.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/recording_requests_with_mockserver_proxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/recording_requests_with_mockserver_proxy.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/retrieve_logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/retrieve_logs.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/single_page_application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/single_page_application.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/slack-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/slack-button.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/slack-logo-slim-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/slack-logo-slim-md.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/slack-logo-slim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/slack-logo-slim.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/slack-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/slack-logo.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_in_production.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_in_production.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_under_test_with_mockserver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_under_test_with_mockserver.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_cropped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_cropped.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_cropped.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_cropped.psd
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_proxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_proxy.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_proxy_different_numbering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/system_under_test_with_mockserver_proxy_different_numbering.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/trello_badge-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/trello_badge-md.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/trello_badge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/trello_badge.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/images/verification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/jekyll-www.mock-server.com/images/verification.png
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/jekyll_server.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
4 | cd "${SCRIPT_DIR}/../jekyll-www.mock-server.com"
5 |
6 | $(rbenv which bundle) exec jekyll server &
7 | JEKYLL_PID=$!
8 | sleep 2
9 | open http://127.0.0.1:4000/
10 |
11 | cleanup() {
12 | if [[ -z ${JEKYLL_PID+x} ]]; then
13 | kill JEKYLL_PID
14 | fi
15 | }
16 |
17 | trap cleanup EXIT
18 | wait $JEKYLL_PID
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/mock_server/_includes/control_plane_authentication_configuration.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Control Plane Authentication Configuration:
4 |
5 | {% include_subpage _includes/control_plane_authentication_mtls_configuration.html %}
6 | {% include_subpage _includes/control_plane_authentication_jwt_configuration.html %}
7 |
8 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/mock_server/creating_expectations.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Creating Expectations
3 | layout: page
4 | pageOrder: 2
5 | section: 'Mock Server'
6 | subsection: true
7 | sitemap:
8 | priority: 0.8
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | {% include_subpage _includes/creating_expectations.html %}
14 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/mock_server/running_mock_server.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Running MockServer
3 | layout: page
4 | pageOrder: 1
5 | section: 'General'
6 | subsection: true
7 | sitemap:
8 | priority: 0.8
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | {% include_subpage _includes/running_mock_server_summary.html %}
14 |
15 | {% include_subpage _includes/running_mock_server_detail.html %}
16 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/mock_server/verification.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Verifying Requests
3 | layout: page
4 | pageOrder: 5
5 | section: 'Mock Server'
6 | subsection: true
7 | sitemap:
8 | priority: 0.8
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | {% include_subpage _includes/verification_summary.html %}
14 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/proxy/_includes/analysing_behaviour.html:
--------------------------------------------------------------------------------
1 | To analyse the requests that a system makes the proxy can be used to record all requests and their corresponding responses.
2 |
3 | All requests and responses can be retrieved as expectations (called recorded expectations) in Java code or JSON. This allows an easy way to replay a recording from the proxy.
4 | Unlike conventional record-replay approaches typically provided by other proxies, MockServer allows easy editing of the recorded requests because the recording is provided as Java code or JSON. This ensures that if minor changes are made to an API the recording can easily be modified and no re-recording required avoiding the need to update test assertions.
5 |
6 | {% include_subpage ../mock_server/_includes/retrieve_code_example.html %}
7 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/proxy/record_and_replay.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Record & Replay
3 | layout: page
4 | pageOrder: 3
5 | section: 'Proxy'
6 | subsection: true
7 | sitemap:
8 | priority: 0.7
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | {% include_subpage _includes/analysing_behaviour.html %}
14 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/proxy/verification.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Verifying Requests
3 | layout: page
4 | pageOrder: 4
5 | section: 'Proxy'
6 | subsection: true
7 | sitemap:
8 | priority: 0.7
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | {% include_subpage ../mock_server/_includes/verification_summary.html %}
14 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 |
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/scripts/google_analytics.js:
--------------------------------------------------------------------------------
1 | // google analytics
2 | var _gaq = _gaq || [];
3 | _gaq.push(['_setAccount', 'UA-32687194-4']);
4 | _gaq.push(['_trackPageview']);
5 | (function () {
6 | var ga = document.createElement('script');
7 | ga.type = 'text/javascript';
8 | ga.async = true;
9 | ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
10 | var s = document.getElementsByTagName('script')[0];
11 | s.parentNode.insertBefore(ga, s);
12 | })();
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/where/docker.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Docker
3 | layout: page
4 | pageOrder: 7
5 | section: 'Where'
6 | subsection: true
7 | sitemap:
8 | priority: 0.6
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | MockServer is available as a docker container that allows you to easily run MockServer as a separate container on any environment without having to install Java or any other libraries. The docker container fully encapsulates all requirements required to run MockServer (such as Java) and separates the running MockServer instance from all other parts of the system.
14 |
15 | MockServer docker container can be found at MockServer Docker
16 |
17 | Running MockServer Docker Container
18 |
19 | {% include_subpage ../mock_server/_includes/running_docker_container.html %}
--------------------------------------------------------------------------------
/jekyll-www.mock-server.com/where/kubernetes.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Helm & Kubernetes
3 | layout: page
4 | pageOrder: 8
5 | section: 'Where'
6 | subsection: true
7 | sitemap:
8 | priority: 0.6
9 | changefreq: 'monthly'
10 | lastmod: 2019-11-10T08:00:00+01:00
11 | ---
12 |
13 | MockServer is available as a helm chart that allows you to run MockServer inside any Kubernetes environment.
14 |
15 | {% include_subpage ../mock_server/_includes/helm_chart.html %}
--------------------------------------------------------------------------------
/mockserver-client-java/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-client-java-no-dependencies
13 | @project.version
14 |
15 | MockServer Java Client
16 | A java client for the MockServer
17 | https://www.mock-server.com
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-client-java/src/main/java/org/mockserver/client/ClientException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.client;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public class ClientException extends RuntimeException {
7 |
8 | ClientException(String message, Throwable cause) {
9 | super(message, cause);
10 | }
11 |
12 | ClientException(String message) {
13 | super(message);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/mockserver-client-java/src/main/java/org/mockserver/client/initialize/ExpectationInitializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.client.initialize;
2 |
3 | import org.mockserver.client.MockServerClient;
4 |
5 | /**
6 | * @author jamesdbloom
7 | * @deprecated instead use org.mockserver.client.initialize.PluginExpectationInitializer or org.mockserver.server.initialize.ExpectationInitializer
8 | */
9 | @Deprecated
10 | public interface ExpectationInitializer {
11 |
12 | void initializeExpectations(MockServerClient mockServerClient);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/authentication/AuthenticationException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.authentication;
2 |
3 | public class AuthenticationException extends RuntimeException {
4 |
5 | public AuthenticationException(String message) {
6 | super(message);
7 | }
8 |
9 | public AuthenticationException(String message, Throwable throwable) {
10 | super(message, throwable);
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/authentication/AuthenticationHandler.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.authentication;
2 |
3 | import org.mockserver.model.HttpRequest;
4 |
5 | public interface AuthenticationHandler {
6 | boolean controlPlaneRequestAuthenticated(HttpRequest request);
7 | }
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/authentication/ChainedAuthenticationHandler.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.authentication;
2 |
3 | import org.mockserver.model.HttpRequest;
4 |
5 | public class ChainedAuthenticationHandler implements AuthenticationHandler {
6 |
7 | private final AuthenticationHandler[] authenticationHandlers;
8 |
9 | public ChainedAuthenticationHandler(AuthenticationHandler... authenticationHandlers) {
10 | this.authenticationHandlers = authenticationHandlers;
11 | }
12 |
13 | @Override
14 | public boolean controlPlaneRequestAuthenticated(HttpRequest request) {
15 | for (AuthenticationHandler authenticationHandler : authenticationHandlers) {
16 | if (!authenticationHandler.controlPlaneRequestAuthenticated(request)) {
17 | return false;
18 | }
19 | }
20 | return true;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/authentication/jwt/JWTAuthenticationException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.authentication.jwt;
2 |
3 | import org.mockserver.authentication.AuthenticationException;
4 |
5 | public class JWTAuthenticationException extends AuthenticationException {
6 |
7 | public JWTAuthenticationException(String message) {
8 | super(message);
9 | }
10 |
11 | public JWTAuthenticationException(String message, Throwable cause) {
12 | super(message, cause);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/authentication/jwt/JWTKeyNotFoundAuthenticationException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.authentication.jwt;
2 |
3 | import org.mockserver.authentication.AuthenticationException;
4 |
5 | public class JWTKeyNotFoundAuthenticationException extends AuthenticationException {
6 |
7 | public JWTKeyNotFoundAuthenticationException(String message) {
8 | super(message);
9 | }
10 |
11 | public JWTKeyNotFoundAuthenticationException(String message, Throwable throwable) {
12 | super(message, throwable);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/cache/Entry.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.cache;
2 |
3 | public class Entry {
4 |
5 | private final long ttlInMillis;
6 | private final T value;
7 | private long expiryInMillis;
8 |
9 | public Entry(long ttlInMillis, long expiryInMillis, T value) {
10 | this.ttlInMillis = ttlInMillis;
11 | this.expiryInMillis = expiryInMillis;
12 | this.value = value;
13 | }
14 |
15 | public long getTtlInMillis() {
16 | return ttlInMillis;
17 | }
18 |
19 | public long getExpiryInMillis() {
20 | return expiryInMillis;
21 | }
22 |
23 | public Entry updateExpiryInMillis(long expiryInMillis) {
24 | this.expiryInMillis = expiryInMillis;
25 | return this;
26 | }
27 |
28 | public T getValue() {
29 | return value;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/character/Character.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.character;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public class Character {
7 |
8 | public static final String NEW_LINE = System.getProperty("line.separator");
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/closurecallback/websocketclient/WebSocketException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.closurecallback.websocketclient;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public class WebSocketException extends RuntimeException {
7 | public WebSocketException(String message) {
8 | super(message);
9 | }
10 |
11 | public WebSocketException(String message, Throwable e) {
12 | super(message, e);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/closurecallback/websocketregistry/WebSocketRequestCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.closurecallback.websocketregistry;
2 |
3 | import org.mockserver.model.HttpRequest;
4 | import org.mockserver.model.HttpResponse;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public interface WebSocketRequestCallback {
10 |
11 | void handle(HttpRequest httpRequest);
12 |
13 | void handleError(HttpResponse httpResponse);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/closurecallback/websocketregistry/WebSocketResponseCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.closurecallback.websocketregistry;
2 |
3 | import org.mockserver.model.HttpResponse;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface WebSocketResponseCallback {
9 |
10 | void handle(HttpResponse httpResponse);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/codec/MockServerBinaryClientCodec.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.codec;
2 |
3 | import io.netty.channel.CombinedChannelDuplexHandler;
4 |
5 | public class MockServerBinaryClientCodec extends CombinedChannelDuplexHandler {
6 |
7 | public MockServerBinaryClientCodec() {
8 | init(new NettyBinaryToMockServerBinaryResponseDecoder(), new MockServerBinaryToNettyBinaryRequestEncoder());
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/codec/MockServerBinaryToNettyBinaryRequestEncoder.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.codec;
2 |
3 | import io.netty.buffer.Unpooled;
4 | import io.netty.channel.ChannelHandlerContext;
5 | import io.netty.handler.codec.MessageToMessageEncoder;
6 | import org.mockserver.model.BinaryMessage;
7 |
8 | import java.util.List;
9 |
10 | public class MockServerBinaryToNettyBinaryRequestEncoder extends MessageToMessageEncoder {
11 | @Override
12 | protected void encode(ChannelHandlerContext ctx, BinaryMessage binaryMessage, List out) {
13 | out.add(Unpooled.copiedBuffer(binaryMessage.getBytes()));
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/codec/MockServerHttpClientCodec.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.codec;
2 |
3 | import io.netty.channel.CombinedChannelDuplexHandler;
4 | import org.mockserver.logging.MockServerLogger;
5 | import org.mockserver.proxyconfiguration.ProxyConfiguration;
6 |
7 | import java.util.Map;
8 |
9 | public class MockServerHttpClientCodec extends CombinedChannelDuplexHandler {
10 |
11 | public MockServerHttpClientCodec(MockServerLogger mockServerLogger, Map proxyConfigurations) {
12 | init(new NettyHttpToMockServerHttpResponseDecoder(mockServerLogger), new MockServerHttpToNettyHttpRequestEncoder(mockServerLogger, proxyConfigurations));
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/codec/NettyBinaryToMockServerBinaryResponseDecoder.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.codec;
2 |
3 | import io.netty.buffer.ByteBuf;
4 | import io.netty.buffer.ByteBufUtil;
5 | import io.netty.channel.ChannelHandlerContext;
6 | import io.netty.handler.codec.MessageToMessageDecoder;
7 |
8 | import java.util.List;
9 |
10 | import static org.mockserver.model.BinaryMessage.bytes;
11 |
12 | public class NettyBinaryToMockServerBinaryResponseDecoder extends MessageToMessageDecoder {
13 | @Override
14 | protected void decode(ChannelHandlerContext ctx, ByteBuf byteBuf, List out) {
15 | out.add(bytes(ByteBufUtil.getBytes(byteBuf)));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/collections/CircularHashMap.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.collections;
2 |
3 | import java.util.LinkedHashMap;
4 | import java.util.Map;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public class CircularHashMap extends LinkedHashMap {
10 | private final int maxSize;
11 |
12 | public CircularHashMap(int maxSize) {
13 | this.maxSize = maxSize;
14 | }
15 |
16 | @Override
17 | protected boolean removeEldestEntry(Map.Entry eldest) {
18 | return size() > maxSize;
19 | }
20 |
21 | public K findKey(V value) {
22 | for (Map.Entry entry : entrySet()) {
23 | V entryValue = entry.getValue();
24 | if (entryValue == value || (value != null && value.equals(entryValue))) {
25 | return entry.getKey();
26 | }
27 | }
28 | return null;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/collections/Keyed.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.collections;
2 |
3 | public interface Keyed {
4 |
5 | K getKey();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/echo/http/ErrorHandler.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.echo.http;
2 |
3 | import io.netty.channel.ChannelDuplexHandler;
4 | import io.netty.channel.ChannelHandler;
5 | import io.netty.channel.ChannelHandlerContext;
6 |
7 | /**
8 | * @author jamesdbloom
9 | */
10 | @ChannelHandler.Sharable
11 | public class ErrorHandler extends ChannelDuplexHandler {
12 |
13 | private final EchoServer.Error error;
14 |
15 | ErrorHandler(EchoServer.Error error) {
16 | this.error = error;
17 | }
18 |
19 | @Override
20 | public void read(ChannelHandlerContext ctx) {
21 | if (error == EchoServer.Error.CLOSE_CONNECTION) {
22 | ctx.disconnect();
23 | ctx.close();
24 | } else {
25 | ctx.read();
26 | }
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/httpclient/SocketCommunicationException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.httpclient;
2 |
3 | /**
4 | * This exception indicates there was an error while trying to communicate over a socket
5 | *
6 | * @author jamesdbloom
7 | */
8 | public class SocketCommunicationException extends RuntimeException {
9 | public SocketCommunicationException(String message, Throwable cause) {
10 | super(message, cause);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/httpclient/SocketConnectionException.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.httpclient;
2 |
3 | /**
4 | * This exception indicates there was an error while trying to communicate over a socket
5 | *
6 | * @author jamesdbloom
7 | */
8 | public class SocketConnectionException extends RuntimeException {
9 | SocketConnectionException(String message, Throwable cause) {
10 | super(message, cause);
11 | }
12 |
13 | SocketConnectionException(String message) {
14 | super(message);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/java/JDKVersion.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.java;
2 |
3 | import com.google.common.annotations.VisibleForTesting;
4 | import org.apache.commons.lang3.StringUtils;
5 |
6 | public class JDKVersion {
7 |
8 | @VisibleForTesting
9 | public static String javaVersion = System.getProperty("java.version");
10 |
11 | public static int getVersion() {
12 | String version = javaVersion;
13 | if (version.startsWith("1.")) {
14 | version = StringUtils.substringAfter(version, ".");
15 | }
16 | return Integer.parseInt(StringUtils.substringBefore(version, "."));
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/keys/AsymmetricKeyPair.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.keys;
2 |
3 | import java.security.KeyPair;
4 |
5 | public class AsymmetricKeyPair {
6 |
7 | private final String keyId;
8 | private final AsymmetricKeyPairAlgorithm algorithm;
9 | private final KeyPair keyPair;
10 |
11 | public AsymmetricKeyPair(String keyId, AsymmetricKeyPairAlgorithm algorithm, KeyPair keyPair) {
12 | this.keyId = keyId;
13 | this.algorithm = algorithm;
14 | this.keyPair = keyPair;
15 | }
16 |
17 | public String getKeyId() {
18 | return keyId;
19 | }
20 |
21 | public AsymmetricKeyPairAlgorithm getAlgorithm() {
22 | return algorithm;
23 | }
24 |
25 | public KeyPair getKeyPair() {
26 | return keyPair;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/log/model/ExpectationLogEntry.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.log.model;
2 |
3 | import org.mockserver.mock.Expectation;
4 |
5 | public interface ExpectationLogEntry {
6 |
7 | Expectation getExpectation();
8 | }
9 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/logging/BasicLogger.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.logging;
2 |
3 | import org.mockserver.log.model.LogEntry;
4 |
5 | import static org.slf4j.event.Level.INFO;
6 |
7 | public class BasicLogger {
8 |
9 | public static final MockServerLogger MOCK_SERVER_LOGGER = new MockServerLogger(BasicLogger.class);
10 |
11 | public static void logInfo(String message) {
12 | MOCK_SERVER_LOGGER.logEvent(
13 | new LogEntry()
14 | .setLogLevel(INFO)
15 | .setMessageFormat(message)
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/logging/StandardOutConsoleHandler.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.logging;
2 |
3 | import java.util.logging.*;
4 |
5 | public class StandardOutConsoleHandler extends StreamHandler {
6 |
7 | public StandardOutConsoleHandler() {
8 | setOutputStream(System.out);
9 | }
10 |
11 | @Override
12 | public void publish(LogRecord record) {
13 | super.publish(record);
14 | flush();
15 | }
16 |
17 | @Override
18 | public void close() {
19 | flush();
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/matchers/BodyMatcher.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.matchers;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public abstract class BodyMatcher extends NotMatcher {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/matchers/MatchDifferenceCount.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.matchers;
2 |
3 | import org.mockserver.model.HttpRequest;
4 |
5 | public class MatchDifferenceCount {
6 |
7 | private final HttpRequest httpRequest;
8 | private Integer failures = 0;
9 |
10 | public MatchDifferenceCount(HttpRequest httpRequest) {
11 | this.httpRequest = httpRequest;
12 | }
13 |
14 | public HttpRequest getHttpRequest() {
15 | return httpRequest;
16 | }
17 |
18 | @SuppressWarnings("UnusedReturnValue")
19 | public MatchDifferenceCount incrementFailures() {
20 | this.failures++;
21 | return this;
22 | }
23 |
24 | public Integer getFailures() {
25 | return failures;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/matchers/MatchType.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.matchers;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public enum MatchType {
7 | STRICT,
8 | ONLY_MATCHING_FIELDS
9 | }
10 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/matchers/Matcher.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.matchers;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public interface Matcher {
7 |
8 | boolean matches(MatchDifference context, T t);
9 |
10 | boolean isBlank();
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/matchers/NotMatcher.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.matchers;
2 |
3 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public abstract class NotMatcher extends ObjectWithReflectiveEqualsHashCodeToString implements Matcher {
9 |
10 | boolean not = false;
11 |
12 | public static > MatcherType notMatcher(MatcherType matcher) {
13 | matcher.not = true;
14 | return matcher;
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/action/ExpectationCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.action;
2 |
3 | import org.mockserver.model.HttpMessage;
4 | import org.mockserver.model.HttpRequest;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | @SuppressWarnings("rawtypes")
10 | public interface ExpectationCallback {
11 |
12 | /**
13 | * Called for every request when expectation condition has been satisfied.
14 | * The request that satisfied the expectation condition is passed as the
15 | * parameter and the return value is the request that will be proxied or returned.
16 | *
17 | * @param httpRequest the request that satisfied the expectation condition
18 | * @return the request that will be proxied or the response that will be returned
19 | */
20 | T handle(HttpRequest httpRequest) throws Exception;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/action/ExpectationForwardCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.action;
2 |
3 | import org.mockserver.model.HttpRequest;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface ExpectationForwardCallback extends ExpectationCallback {
9 |
10 | /**
11 | * Called for every request when expectation condition has been satisfied.
12 | * The request that satisfied the expectation condition is passed as the
13 | * parameter and the return value is the request that will be proxied.
14 | *
15 | * @param httpRequest the request that satisfied the expectation condition
16 | * @return the request that will be proxied
17 | */
18 | HttpRequest handle(HttpRequest httpRequest) throws Exception;
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/action/ExpectationResponseCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.action;
2 |
3 | import org.mockserver.model.HttpRequest;
4 | import org.mockserver.model.HttpResponse;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public interface ExpectationResponseCallback extends ExpectationCallback {
10 |
11 | /**
12 | * Called for every request when expectation condition has been satisfied.
13 | * The request that satisfied the expectation condition is passed as the
14 | * parameter and the return value is the request that will be returned.
15 | *
16 | * @param httpRequest the request that satisfied the expectation condition
17 | * @return the response that will be returned
18 | */
19 | HttpResponse handle(HttpRequest httpRequest) throws Exception;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/action/http/HttpResponseActionHandler.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.action.http;
2 |
3 | import org.mockserver.model.HttpResponse;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class HttpResponseActionHandler {
9 |
10 | public HttpResponse handle(HttpResponse httpResponse) {
11 | return httpResponse.clone();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/listeners/MockServerLogListener.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.listeners;
2 |
3 | import org.mockserver.log.MockServerEventLog;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface MockServerLogListener {
9 |
10 | void updated(MockServerEventLog mockServerLog);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/mock/listeners/MockServerMatcherListener.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.listeners;
2 |
3 | import org.mockserver.mock.RequestMatchers;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface MockServerMatcherListener {
9 |
10 | void updated(RequestMatchers requestMatchers, MockServerMatcherNotifier.Cause cause);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/BinaryProxyListener.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import java.net.SocketAddress;
4 | import java.util.concurrent.CompletableFuture;
5 |
6 | public interface BinaryProxyListener {
7 |
8 | public void onProxy(BinaryMessage binaryRequest, CompletableFuture binaryResponse, SocketAddress serverAddress, SocketAddress clientAddress);
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/ClearType.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public enum ClearType {
7 | LOG,
8 | EXPECTATIONS,
9 | ALL
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/Cookies.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import java.util.List;
4 | import java.util.Map;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public class Cookies extends KeysAndValues {
10 |
11 | public Cookies(List cookies) {
12 | withEntries(cookies);
13 | }
14 |
15 | public Cookies(Cookie... cookies) {
16 | withEntries(cookies);
17 | }
18 |
19 | public Cookies(Map cookies) {
20 | super(cookies);
21 | }
22 |
23 | public static Cookies cookies(Cookie... cookies) {
24 | return new Cookies(cookies);
25 | }
26 |
27 | @Override
28 | public Cookie build(NottableString name, NottableString value) {
29 | return new Cookie(name, value);
30 | }
31 |
32 | public Cookies clone() {
33 | return new Cookies(getMap());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/CookiesModifier.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import java.util.List;
4 |
5 | public class CookiesModifier extends KeysAndValuesModifier {
6 |
7 | /**
8 | * Static builder to create a cookies modifier.
9 | */
10 | public static CookiesModifier cookiesModifier() {
11 | return new CookiesModifier();
12 | }
13 |
14 | @Override
15 | Cookies construct(List cookies) {
16 | return new Cookies(cookies);
17 | }
18 |
19 | @Override
20 | Cookies construct(Cookie... cookies) {
21 | return new Cookies(cookies);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/Format.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public enum Format {
7 | JAVA,
8 | JSON,
9 | LOG_ENTRIES
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/HeadersModifier.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import java.util.List;
4 |
5 | public class HeadersModifier extends KeysToMultiValuesModifier {
6 |
7 | /**
8 | * Static builder to create a headers modifier.
9 | */
10 | public static HeadersModifier headersModifier() {
11 | return new HeadersModifier();
12 | }
13 |
14 | @Override
15 | Headers construct(List headers) {
16 | return new Headers(headers);
17 | }
18 |
19 | @Override
20 | Headers construct(Header... headers) {
21 | return new Headers(headers);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/KeyMatchStyle.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | public enum KeyMatchStyle {
4 |
5 | SUB_SET, // default
6 | MATCHING_KEY;
7 |
8 | public static KeyMatchStyle defaultValue = SUB_SET;
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/Message.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | public interface Message {
4 | }
5 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/Protocol.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | public enum Protocol {
4 | HTTP_1_1, HTTP_2
5 | }
6 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/QueryParametersModifier.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import java.util.List;
4 |
5 | public class QueryParametersModifier extends KeysToMultiValuesModifier {
6 |
7 | /**
8 | * Static builder to create a query parameters modifier.
9 | */
10 | public static QueryParametersModifier queryParametersModifier() {
11 | return new QueryParametersModifier();
12 | }
13 |
14 | @Override
15 | Parameters construct(List parameters) {
16 | return new Parameters(parameters);
17 | }
18 |
19 | @Override
20 | Parameters construct(Parameter... parameters) {
21 | return new Parameters(parameters);
22 | }
23 |
24 | }
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/model/RetrieveType.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public enum RetrieveType {
7 | LOGS,
8 | REQUESTS,
9 | REQUEST_RESPONSES,
10 | RECORDED_EXPECTATIONS,
11 | ACTIVE_EXPECTATIONS
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/Serializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public interface Serializer {
7 |
8 | String serialize(T t);
9 |
10 | T deserialize(String json);
11 |
12 | Class supportsType();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/deserializers/collections/HeadersDeserializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.deserializers.collections;
2 |
3 | import org.mockserver.model.Headers;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class HeadersDeserializer extends KeysToMultiValuesDeserializer {
9 |
10 | public HeadersDeserializer() {
11 | super(Headers.class);
12 | }
13 |
14 | @Override
15 | public Headers build() {
16 | return new Headers();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/deserializers/collections/ParametersDeserializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.deserializers.collections;
2 |
3 | import org.mockserver.model.Parameters;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class ParametersDeserializer extends KeysToMultiValuesDeserializer {
9 |
10 | public ParametersDeserializer() {
11 | super(Parameters.class);
12 | }
13 |
14 | @Override
15 | public Parameters build() {
16 | return new Parameters();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/java/DelayToJavaSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.java;
2 |
3 | import org.mockserver.model.Delay;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class DelayToJavaSerializer implements ToJavaSerializer {
9 |
10 | @Override
11 | public String serialize(int numberOfSpacesToIndent, Delay delay) {
12 | StringBuilder output = new StringBuilder();
13 | if (delay != null) {
14 | output.append("new Delay(TimeUnit.").append(delay.getTimeUnit().name()).append(", ").append(delay.getValue()).append(")");
15 | }
16 | return output.toString();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/java/MultiValueToJavaSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.java;
2 |
3 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @author jamesdbloom
9 | */
10 | public interface MultiValueToJavaSerializer extends ToJavaSerializer {
11 |
12 | String serializeAsJava(int numberOfSpacesToIndent, List object);
13 |
14 | @SuppressWarnings("unchecked")
15 | String serializeAsJava(int numberOfSpacesToIndent, T... object);
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/java/ToJavaSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.java;
2 |
3 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface ToJavaSerializer {
9 |
10 | String serialize(int numberOfSpacesToIndent, T object);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/CookieDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Cookie;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class CookieDTO extends KeyAndValueDTO implements DTO {
9 |
10 | public CookieDTO(Cookie cookie) {
11 | super(cookie);
12 | }
13 |
14 | protected CookieDTO() {
15 | }
16 |
17 | public Cookie buildObject() {
18 | return new Cookie(getName(), getValue());
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/CookiesModifierDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Cookie;
4 | import org.mockserver.model.Cookies;
5 | import org.mockserver.model.CookiesModifier;
6 |
7 | public class CookiesModifierDTO extends KeysAndValuesModifierDTO {
8 |
9 | public CookiesModifierDTO() {
10 | }
11 |
12 | public CookiesModifierDTO(CookiesModifier headersModifier) {
13 | super(headersModifier);
14 | }
15 |
16 | @Override
17 | CookiesModifier newKeysAndValuesModifier() {
18 | return new CookiesModifier();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/DTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public interface DTO {
7 |
8 | T buildObject();
9 | }
10 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/HeaderDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Header;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class HeaderDTO extends KeyToMultiValueDTO implements DTO {
9 |
10 | public HeaderDTO(Header header) {
11 | super(header);
12 | }
13 |
14 | protected HeaderDTO() {
15 | }
16 |
17 | public Header buildObject() {
18 | return new Header(getName(), getValues());
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/HeadersModifierDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Header;
4 | import org.mockserver.model.Headers;
5 | import org.mockserver.model.HeadersModifier;
6 |
7 | public class HeadersModifierDTO extends KeysToMultiValuesModifierDTO {
8 |
9 | public HeadersModifierDTO() {
10 | }
11 |
12 | public HeadersModifierDTO(HeadersModifier headersModifier) {
13 | super(headersModifier);
14 | }
15 |
16 | @Override
17 | HeadersModifier newKeysToMultiValuesModifier() {
18 | return new HeadersModifier();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/KeyAndValueDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.KeyAndValue;
4 | import org.mockserver.model.NottableString;
5 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
6 |
7 | /**
8 | * @author jamesdbloom
9 | */
10 | public class KeyAndValueDTO extends ObjectWithReflectiveEqualsHashCodeToString {
11 | private NottableString name;
12 | private NottableString value;
13 |
14 | protected KeyAndValueDTO(KeyAndValue keyAndValue) {
15 | name = keyAndValue.getName();
16 | value = keyAndValue.getValue();
17 | }
18 |
19 | protected KeyAndValueDTO() {
20 | }
21 |
22 | public NottableString getName() {
23 | return name;
24 | }
25 |
26 | public NottableString getValue() {
27 | return value;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/LogEntryBodyDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Body;
4 | import org.mockserver.model.LogEntryBody;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public class LogEntryBodyDTO extends BodyWithContentTypeDTO {
10 |
11 | private final Object value;
12 |
13 | public LogEntryBodyDTO(LogEntryBody logEventBody) {
14 | super(Body.Type.STRING, null, null);
15 | value = logEventBody.getValue();
16 | }
17 |
18 | public Object getValue() {
19 | return value;
20 | }
21 |
22 | @Override
23 | public LogEntryBody buildObject() {
24 | return (LogEntryBody) new LogEntryBody(value).withOptional(getOptional());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/NotDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.ObjectWithJsonToString;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class NotDTO extends ObjectWithJsonToString {
9 |
10 | Boolean not;
11 |
12 | public NotDTO(Boolean not) {
13 | this.not = not;
14 | }
15 |
16 | public NotDTO setNot(Boolean not) {
17 | this.not = not;
18 | return this;
19 | }
20 |
21 | public Boolean getNot() {
22 | return not;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/ParameterDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Parameter;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class ParameterDTO extends KeyToMultiValueDTO implements DTO {
9 |
10 | public ParameterDTO(Parameter parameter) {
11 | super(parameter);
12 | }
13 |
14 | protected ParameterDTO() {
15 | }
16 |
17 | public Parameter buildObject() {
18 | return new Parameter(getName(), getValues());
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/QueryParametersModifierDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Parameter;
4 | import org.mockserver.model.Parameters;
5 | import org.mockserver.model.QueryParametersModifier;
6 |
7 | public class QueryParametersModifierDTO extends KeysToMultiValuesModifierDTO {
8 |
9 | public QueryParametersModifierDTO() {
10 | }
11 |
12 | public QueryParametersModifierDTO(QueryParametersModifier queryParameterModifier) {
13 | super(queryParameterModifier);
14 | }
15 |
16 | @Override
17 | QueryParametersModifier newKeysToMultiValuesModifier() {
18 | return new QueryParametersModifier();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/RegexBodyDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.Body;
4 | import org.mockserver.model.RegexBody;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public class RegexBodyDTO extends BodyDTO {
10 |
11 | private final String regex;
12 |
13 | public RegexBodyDTO(RegexBody regexBody) {
14 | this(regexBody, null);
15 | }
16 |
17 | public RegexBodyDTO(RegexBody regexBody, Boolean not) {
18 | super(Body.Type.REGEX, not);
19 | this.regex = regexBody.getValue();
20 | withOptional(regexBody.getOptional());
21 | }
22 |
23 | public String getRegex() {
24 | return regex;
25 | }
26 |
27 | public RegexBody buildObject() {
28 | return (RegexBody) new RegexBody(getRegex()).withOptional(getOptional());
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/RequestDefinitionDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.RequestDefinition;
4 |
5 | public abstract class RequestDefinitionDTO extends NotDTO {
6 |
7 | public RequestDefinitionDTO(Boolean not) {
8 | super(not);
9 | }
10 |
11 | public abstract RequestDefinition buildObject();
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/WebSocketClientIdDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class WebSocketClientIdDTO extends ObjectWithReflectiveEqualsHashCodeToString {
9 |
10 | private String clientId;
11 |
12 | public String getClientId() {
13 | return clientId;
14 | }
15 |
16 | public WebSocketClientIdDTO setClientId(String clientId) {
17 | this.clientId = clientId;
18 | return this;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/model/WebSocketMessageDTO.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class WebSocketMessageDTO extends ObjectWithReflectiveEqualsHashCodeToString {
9 |
10 | private String type;
11 |
12 | private String value;
13 |
14 | public String getType() {
15 | return type;
16 | }
17 |
18 | public WebSocketMessageDTO setType(String type) {
19 | this.type = type;
20 | return this;
21 | }
22 |
23 | public String getValue() {
24 | return value;
25 | }
26 |
27 | public WebSocketMessageDTO setValue(String value) {
28 | this.value = value;
29 | return this;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/serializers/body/LogEntryBodyDTOSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.serializers.body;
2 |
3 | import com.fasterxml.jackson.core.JsonGenerator;
4 | import com.fasterxml.jackson.databind.SerializerProvider;
5 | import com.fasterxml.jackson.databind.ser.std.StdSerializer;
6 | import org.mockserver.serialization.model.LogEntryBodyDTO;
7 |
8 | import java.io.IOException;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class LogEntryBodyDTOSerializer extends StdSerializer {
14 |
15 | public LogEntryBodyDTOSerializer() {
16 | super(LogEntryBodyDTO.class);
17 | }
18 |
19 | @Override
20 | public void serialize(LogEntryBodyDTO logEventBody, JsonGenerator jgen, SerializerProvider provider) throws IOException {
21 | jgen.writeObject(logEventBody.getValue());
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/serializers/body/LogEntryBodySerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.serializers.body;
2 |
3 | import com.fasterxml.jackson.core.JsonGenerator;
4 | import com.fasterxml.jackson.databind.SerializerProvider;
5 | import com.fasterxml.jackson.databind.ser.std.StdSerializer;
6 | import org.mockserver.model.LogEntryBody;
7 |
8 | import java.io.IOException;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class LogEntryBodySerializer extends StdSerializer {
14 |
15 | public LogEntryBodySerializer() {
16 | super(LogEntryBody.class);
17 | }
18 |
19 | @Override
20 | public void serialize(LogEntryBody logEventBody, JsonGenerator jgen, SerializerProvider provider) throws IOException {
21 | jgen.writeObject(logEventBody.getValue());
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/serializers/collections/HeadersSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.serializers.collections;
2 |
3 | import org.mockserver.model.Headers;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class HeadersSerializer extends KeysToMultiValuesSerializer {
9 |
10 | public HeadersSerializer() {
11 | super(Headers.class);
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/serialization/serializers/collections/ParametersSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.serializers.collections;
2 |
3 | import org.mockserver.model.Parameters;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class ParametersSerializer extends KeysToMultiValuesSerializer {
9 |
10 | public ParametersSerializer() {
11 | super(Parameters.class);
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/server/initialize/ExpectationInitializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.server.initialize;
2 |
3 | import org.mockserver.mock.Expectation;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface ExpectationInitializer {
9 |
10 | Expectation[] initializeExpectations();
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/socket/tls/ForwardProxyTLSX509CertificatesTrustManager.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.socket.tls;
2 |
3 | public enum ForwardProxyTLSX509CertificatesTrustManager {
4 | ANY,
5 | JVM,
6 | CUSTOM
7 | }
8 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/socket/tls/KeyAndCertificateFactorySupplier.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.socket.tls;
2 |
3 | import org.mockserver.configuration.Configuration;
4 | import org.mockserver.logging.MockServerLogger;
5 |
6 | @FunctionalInterface
7 | public interface KeyAndCertificateFactorySupplier {
8 | KeyAndCertificateFactory buildKeyAndCertificateFactory(
9 | MockServerLogger logger,
10 | boolean isServerInstance,
11 | Configuration configuration);
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/stop/Stop.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.stop;
2 |
3 | import org.slf4j.LoggerFactory;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class Stop {
9 |
10 | public static void stopQuietly(Stoppable stoppable) {
11 | if (stoppable != null) {
12 | try {
13 | stoppable.stop();
14 | } catch (Throwable throwable) {
15 | LoggerFactory.getLogger(Stop.class).debug("Exception stopping " + stoppable, throwable);
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/stop/Stoppable.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.stop;
2 |
3 | import java.io.Closeable;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public interface Stoppable extends Closeable {
9 |
10 | void stop();
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/templates/engine/TemplateEngine.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.templates.engine;
2 |
3 | import org.mockserver.serialization.model.DTO;
4 | import org.mockserver.model.HttpRequest;
5 |
6 | /**
7 | * @author jamesdbloom
8 | */
9 | public interface TemplateEngine {
10 |
11 | T executeTemplate(String template, HttpRequest httpRequest, Class extends DTO> dtoClass);
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/time/EpochService.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.time;
2 |
3 | public class EpochService {
4 |
5 | public static final long FIXED_TIME_FOR_TESTS = System.currentTimeMillis();
6 | public static boolean fixedTime = false;
7 |
8 | public static long currentTimeMillis() {
9 | if (!fixedTime) {
10 | return System.currentTimeMillis();
11 | } else {
12 | return FIXED_TIME_FOR_TESTS;
13 | }
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/time/TimeService.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.time;
2 |
3 | import java.time.Clock;
4 | import java.time.Instant;
5 | import java.time.OffsetDateTime;
6 |
7 | public class TimeService {
8 |
9 | public static final Instant FIXED_INSTANT_FOR_TESTS = Instant.now();
10 | public static boolean fixedTime = false;
11 |
12 | public static Instant now() {
13 | if (!fixedTime) {
14 | return Instant.now();
15 | } else {
16 | return FIXED_INSTANT_FOR_TESTS;
17 | }
18 | }
19 |
20 | public static OffsetDateTime offsetNow() {
21 | Instant now = TimeService.now();
22 | return OffsetDateTime.ofInstant(now, Clock.systemDefaultZone().getZone().getRules().getOffset(now));
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/url/URLParser.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.url;
2 |
3 | import static org.apache.commons.lang3.StringUtils.substringBefore;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class URLParser {
9 |
10 | private static final String schemeRegex = "https?://.*";
11 | private static final String schemeHostAndPortRegex = "https?://([A-z0-9-_.:]*@)?[A-z0-9-_.]*(:[0-9]*)?";
12 |
13 | public static boolean isFullUrl(String uri) {
14 | return uri != null && uri.matches(schemeRegex);
15 | }
16 |
17 | public static String returnPath(String path) {
18 | String result;
19 | if (URLParser.isFullUrl(path)) {
20 | result = path.replaceAll(schemeHostAndPortRegex, "");
21 | } else {
22 | result = path;
23 | }
24 | return substringBefore(result, "?");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/uuid/UUIDService.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.uuid;
2 |
3 | import com.fasterxml.uuid.Generators;
4 | import com.fasterxml.uuid.impl.RandomBasedGenerator;
5 |
6 | import java.util.Random;
7 |
8 | public class UUIDService {
9 |
10 | private static final RandomBasedGenerator RANDOM_BASED_GENERATOR = Generators.randomBasedGenerator(new Random());
11 | public static final String FIXED_UUID_FOR_TESTS = UUIDService.getUUID();
12 | public static boolean fixedUUID = false;
13 |
14 | public static String getUUID() {
15 | if (!fixedUUID) {
16 | return RANDOM_BASED_GENERATOR.generate().toString();
17 | } else {
18 | return FIXED_UUID_FOR_TESTS;
19 | }
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/java/org/mockserver/validator/Validator.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.validator;
2 |
3 | /**
4 | * @author jamesdbloom
5 | */
6 | public interface Validator {
7 |
8 | String isValid(T t);
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/authentication/jwk.json:
--------------------------------------------------------------------------------
1 | {
2 | "keys": [
3 | {
4 | "kty": "RSA",
5 | "n": "u1SU1LfVLPHCozMxH2Mo4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0_IzW7yWR7QkrmBL7jTKEn5u-qKhbwKfBstIs-bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyehkd3qqGElvW_VDL5AaWTg0nLVkjRo9z-40RQzuVaE8AkAFmxZzow3x-VJYKdjykkJ0iT9wCS0DRTXu269V264Vf_3jvredZiKRkgwlL9xNAwxXFg0x_XFw005UWVRIkdgcKWTjpBP2dPwVZ4WWC-9aGVd-Gyn1o0CLelf4rEjGoXbAAEgAqeGUxrcIlbjXfbcmw",
6 | "e": "AQAB",
7 | "alg": "RS256",
8 | "kid": "12345678",
9 | "use": "sig"
10 | }
11 | ]
12 | }
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/connectionOptions.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "connection options",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "suppressContentLengthHeader": {
7 | "type": "boolean"
8 | },
9 | "contentLengthHeaderOverride": {
10 | "type": "integer"
11 | },
12 | "suppressConnectionHeader": {
13 | "type": "boolean"
14 | },
15 | "chunkSize": {
16 | "type": "integer"
17 | },
18 | "keepAliveOverride": {
19 | "type": "boolean"
20 | },
21 | "closeSocket": {
22 | "type": "boolean"
23 | },
24 | "closeSocketDelay": {
25 | "$ref": "#/definitions/delay"
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/delay.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "response delay",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "timeUnit": {
7 | "type": "string"
8 | },
9 | "value": {
10 | "type": "integer"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/expectationId.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "pointer to existing expectation",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "id": {
7 | "type": "string"
8 | }
9 | },
10 | "required": [
11 | "id"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/expectations.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "list of expectations",
3 | "type": "array",
4 | "additionalProperties": false,
5 | "items": {
6 | "$ref": "#/definitions/expectation"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpClassCallback.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "class callback",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "callbackClass": {
10 | "type": "string"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpError.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "error behaviour",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "dropConnection": {
10 | "type": "boolean"
11 | },
12 | "responseBytes": {
13 | "type": "string"
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpForward.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "host and port to forward to",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "host": {
10 | "type": "string"
11 | },
12 | "port": {
13 | "type": "integer"
14 | },
15 | "scheme": {
16 | "enum": [
17 | "HTTP",
18 | "HTTPS"
19 | ]
20 | }
21 | },
22 | "definitions": {
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpObjectCallback.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "object / method callback",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "clientId": {
10 | "type": "string"
11 | },
12 | "responseCallback": {
13 | "type": "boolean"
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpRequestAndHttpResponse.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "request and response",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "httpRequest": {
7 | "$ref": "#/definitions/httpRequest"
8 | },
9 | "httpResponse": {
10 | "$ref": "#/definitions/httpResponse"
11 | }
12 | },
13 | "definitions": {
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpResponse.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "response to return",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "body": {
10 | "$ref": "#/definitions/bodyWithContentType"
11 | },
12 | "cookies": {
13 | "$ref": "#/definitions/keyToValue"
14 | },
15 | "connectionOptions": {
16 | "$ref": "#/definitions/connectionOptions"
17 | },
18 | "headers": {
19 | "$ref": "#/definitions/keyToMultiValue"
20 | },
21 | "statusCode": {
22 | "type": "integer"
23 | },
24 | "reasonPhrase": {
25 | "type": "string"
26 | }
27 | },
28 | "definitions": {
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/httpTemplate.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "template to generate response / request",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "delay": {
7 | "$ref": "#/definitions/delay"
8 | },
9 | "templateType": {
10 | "enum": [
11 | "VELOCITY",
12 | "JAVASCRIPT",
13 | "MUSTACHE"
14 | ]
15 | },
16 | "template": {
17 | "type": "string"
18 | }
19 | },
20 | "definitions": {
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/keyToValue.json:
--------------------------------------------------------------------------------
1 | {
2 | "oneOf": [
3 | {
4 | "type": "array",
5 | "additionalProperties": false,
6 | "items": {
7 | "type": "object",
8 | "additionalProperties": false,
9 | "properties": {
10 | "name": {
11 | "type": "string"
12 | },
13 | "value": {
14 | "type": "string"
15 | }
16 | }
17 | }
18 | },
19 | {
20 | "type": "object",
21 | "additionalProperties": false,
22 | "patternProperties": {
23 | "^\\S+$": {
24 | "$ref": "#/definitions/stringOrJsonSchema"
25 | }
26 | }
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/openAPIDefinition.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "open api or swagger request matcher",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "specUrlOrPayload": {
7 | "anyOf": [
8 | {
9 | "type": "string"
10 | },
11 | {
12 | "type": "object"
13 | }
14 | ]
15 | },
16 | "operationId": {
17 | "type": "string"
18 | }
19 | },
20 | "required": [
21 | "specUrlOrPayload"
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/openAPIExpectation.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "open api or swagger expectation",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "specUrlOrPayload": {
7 | "anyOf": [
8 | {
9 | "type": "string"
10 | },
11 | {
12 | "type": "object"
13 | }
14 | ]
15 | },
16 | "operationsAndResponses": {
17 | "type": "object",
18 | "additionalProperties": {
19 | "type": "string"
20 | }
21 | }
22 | },
23 | "required": [
24 | "specUrlOrPayload"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/ports.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "list of ports",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "ports": {
7 | "type": "array",
8 | "additionalProperties": false,
9 | "items": {
10 | "type": "number"
11 | }
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/protocol.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "protocol matcher",
3 | "enum": [
4 | "HTTP_1_1",
5 | "HTTP_2"
6 | ],
7 | "definitions": {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/requestDefinition.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "request definition",
3 | "anyOf": [
4 | {
5 | "$ref": "#/definitions/httpRequest"
6 | },
7 | {
8 | "$ref": "#/definitions/openAPIDefinition"
9 | }
10 | ],
11 | "definitions": {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/socketAddress.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "remote address to send request to",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "host": {
7 | "type": "string"
8 | },
9 | "port": {
10 | "type": "integer"
11 | },
12 | "scheme": {
13 | "enum": [
14 | "HTTP",
15 | "HTTPS"
16 | ]
17 | }
18 | },
19 | "definitions": {
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/timeToLive.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "time expectation is valid for",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "timeUnit": {
7 | "enum": [
8 | "DAYS",
9 | "HOURS",
10 | "MINUTES",
11 | "SECONDS",
12 | "MILLISECONDS",
13 | "MICROSECONDS",
14 | "NANOSECONDS"
15 | ]
16 | },
17 | "timeToLive": {
18 | "type": "integer"
19 | },
20 | "endDate": {
21 | "type": "integer"
22 | },
23 | "unlimited": {
24 | "type": "boolean"
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/times.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "number of responses",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "remainingTimes": {
7 | "type": "integer"
8 | },
9 | "unlimited": {
10 | "type": "boolean"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/verification.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "verification",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "expectationId": {
7 | "$ref": "#/definitions/expectationId"
8 | },
9 | "httpRequest": {
10 | "$ref": "#/definitions/requestDefinition"
11 | },
12 | "times": {
13 | "$ref": "#/definitions/verificationTimes"
14 | },
15 | "maximumNumberOfRequestToReturnInVerificationFailure": {
16 | "type": "integer"
17 | }
18 | },
19 | "oneOf": [
20 | {
21 | "required": [
22 | "expectationId"
23 | ]
24 | },
25 | {
26 | "required": [
27 | "httpRequest"
28 | ]
29 | }
30 | ],
31 | "definitions": {
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/mockserver-core/src/main/resources/org/mockserver/model/schema/verificationTimes.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "number of request to verify",
3 | "type": "object",
4 | "additionalProperties": false,
5 | "properties": {
6 | "atLeast": {
7 | "type": "integer"
8 | },
9 | "atMost": {
10 | "type": "integer"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/mock/action/http/HttpResponseActionHandlerTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mock.action.http;
2 |
3 | import org.junit.Test;
4 | import org.mockserver.mock.action.http.HttpResponseActionHandler;
5 | import org.mockserver.model.HttpResponse;
6 |
7 | import static org.mockito.Mockito.*;
8 |
9 | /**
10 | * @author jamesdbloom
11 | */
12 | public class HttpResponseActionHandlerTest {
13 |
14 | @Test
15 | public void shouldHandleHttpRequests() {
16 | // given
17 | HttpResponse httpResponse = mock(HttpResponse.class);
18 | HttpResponseActionHandler httpResponseActionHandler = new HttpResponseActionHandler();
19 |
20 | // when
21 | httpResponseActionHandler.handle(httpResponse);
22 |
23 | // then
24 | verify(httpResponse).clone();
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/model/KeyAndValueTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.model;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.hamcrest.MatcherAssert.assertThat;
6 | import static org.hamcrest.core.Is.is;
7 | import static org.mockserver.model.NottableString.string;
8 |
9 | public class KeyAndValueTest {
10 |
11 | @Test
12 | public void shouldConvertNottedCookieToHashMap() {
13 | // given
14 | KeyAndValue keyAndValue = new KeyAndValue("name", "value");
15 |
16 | // then
17 | assertThat(keyAndValue.getName(), is(string("name")));
18 | assertThat(keyAndValue.getValue(), is(string("value")));
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/serialization/java/DelayToJavaSerializerTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.java;
2 |
3 | import org.junit.Test;
4 | import org.mockserver.model.Delay;
5 |
6 | import java.util.concurrent.TimeUnit;
7 |
8 | import static junit.framework.TestCase.assertEquals;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class DelayToJavaSerializerTest {
14 |
15 | @Test
16 | public void shouldSerializeFullObjectWithForwardAsJava() {
17 | assertEquals("new Delay(TimeUnit.SECONDS, 10)",
18 | new DelayToJavaSerializer().serialize(1,
19 | new Delay(TimeUnit.SECONDS, 10)
20 | )
21 | );
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/serialization/java/NottableStringToJavaSerializerTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.java;
2 |
3 | import org.junit.Test;
4 |
5 | import static junit.framework.TestCase.assertEquals;
6 | import static org.mockserver.model.NottableString.string;
7 |
8 | /**
9 | * @author jamesdbloom
10 | */
11 | public class NottableStringToJavaSerializerTest {
12 |
13 | @Test
14 | public void shouldSerializeNottedString() {
15 | assertEquals("not(\"some_value\")",
16 | NottableStringToJavaSerializer.serialize(string("some_value", true), false)
17 | );
18 | }
19 |
20 | @Test
21 | public void shouldSerializeString() {
22 | assertEquals("\"some_value\"",
23 | NottableStringToJavaSerializer.serialize(string("some_value", false), false)
24 | );
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/serialization/model/CookieDTOTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.junit.Test;
4 | import org.mockserver.model.Cookie;
5 |
6 | import static org.hamcrest.MatcherAssert.assertThat;
7 | import static org.hamcrest.core.Is.is;
8 | import static org.mockserver.model.NottableString.string;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class CookieDTOTest {
14 |
15 | @Test
16 | public void shouldReturnValuesSetInConstructor() {
17 | // when
18 | CookieDTO cookie = new CookieDTO(new Cookie("name", "value"));
19 |
20 | // then
21 | assertThat(cookie.getValue(), is(string("value")));
22 | assertThat(cookie.getName(), is(string("name")));
23 | assertThat(cookie.buildObject().getName(), is(string("name")));
24 | assertThat(cookie.buildObject().getValue(), is(string("value")));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/serialization/model/HeaderDTOTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.serialization.model;
2 |
3 | import org.junit.Test;
4 | import org.mockserver.model.Header;
5 |
6 | import static org.hamcrest.MatcherAssert.assertThat;
7 | import static org.hamcrest.Matchers.containsInAnyOrder;
8 | import static org.mockserver.model.NottableString.string;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class HeaderDTOTest {
14 |
15 | @Test
16 | public void shouldReturnValuesSetInConstructor() {
17 | // when
18 | HeaderDTO header = new HeaderDTO(new Header("first", "first_one", "first_two"));
19 |
20 | // then
21 | assertThat(header.getValues(), containsInAnyOrder(string("first_one"), string("first_two")));
22 | assertThat(header.buildObject().getValues(), containsInAnyOrder(string("first_one"), string("first_two")));
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/socket/PortFactoryTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.socket;
2 |
3 | import org.junit.Test;
4 |
5 | import java.io.IOException;
6 | import java.net.ServerSocket;
7 |
8 | import static junit.framework.TestCase.assertTrue;
9 |
10 | /**
11 | * @author jamesdbloom
12 | */
13 | public class PortFactoryTest {
14 |
15 | @Test
16 | public void shouldFindFreePort() throws IOException {
17 | // when
18 | int freePort = PortFactory.findFreePort();
19 |
20 | // then
21 | assertTrue(new ServerSocket(freePort).isBound());
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/java/org/mockserver/verify/VerificationSequenceTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.verify;
2 |
3 | import org.junit.Test;
4 |
5 | import java.util.Arrays;
6 |
7 | import static org.hamcrest.CoreMatchers.is;
8 | import static org.hamcrest.MatcherAssert.assertThat;
9 | import static org.mockserver.model.HttpRequest.request;
10 |
11 | public class VerificationSequenceTest {
12 |
13 | @Test
14 | public void shouldReturnValuesSetInSetter() {
15 | // when
16 | VerificationSequence verification = new VerificationSequence()
17 | .withRequests(request("one"), request("two"), request("three"));
18 |
19 | // then
20 | assertThat(verification.getHttpRequests(), is(Arrays.asList(request("one"), request("two"), request("three"))));
21 | }
22 |
23 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/authentication/mtls/ca-csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": {
3 | "algo": "rsa",
4 | "size": 2048
5 | },
6 | "names": [
7 | {
8 | "C": "UK",
9 | "L": "London",
10 | "O": "MockServer",
11 | "CN": "www.mockserver.com"
12 | }
13 | ]
14 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/authentication/mtls/csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/authentication/mtls/generate_custom_certificates.md:
--------------------------------------------------------------------------------
1 | see [generate_custom_certificates](src/test/resources/org/mockserver/netty/integration/tls/generate_custom_certificates.md) for instructions on how to generate these certificates
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/authentication/mtls/separateca/ca-csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": {
3 | "algo": "rsa",
4 | "size": 2048
5 | },
6 | "names": [
7 | {
8 | "C": "UK",
9 | "L": "London",
10 | "O": "MockServer",
11 | "CN": "www.mockserver.com"
12 | }
13 | ]
14 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/authentication/mtls/separateca/csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/model/testJsonSchema.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "object",
3 | "properties": {
4 | "someField": {
5 | "type": "string"
6 | }
7 | },
8 | "required": ["someField"]
9 | }
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/openapi/openapi_simple_example.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | openapi: 3.0.0
3 | info:
4 | version: 1.0.0
5 | title: Simple OpenAPI
6 | paths:
7 | "/pets":
8 | get:
9 | operationId: listPets
10 | responses:
11 | '200':
12 | description: an array of pets
13 | content:
14 | application/json:
15 | schema:
16 | type: array
17 | items:
18 | type: object
19 | required:
20 | - id
21 | - name
22 | properties:
23 | id:
24 | type: integer
25 | format: int64
26 | name:
27 | type: string
28 | tag:
29 | type: string
30 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/openapi/openapi_with_json_string_example.yaml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: test
4 | description: foo
5 | version: 1.0.0
6 | servers:
7 | - url: /
8 | paths:
9 | /test:
10 | get:
11 | summary: foo
12 | responses:
13 | '200':
14 | content:
15 | application/json:
16 | schema:
17 | type: string
18 | format: uuid
19 | example: 06be83b3-5fb5-4103-a9b3-3fcd097a0634
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/serialization/forkme_right_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-core/src/test/resources/org/mockserver/serialization/forkme_right_red.png
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/server/initialize/initializerJson.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/simpleFirst"
5 | },
6 | "httpResponse": {
7 | "body": "some first response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/simpleSecond"
13 | },
14 | "httpResponse": {
15 | "body": "some second response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/server/initialize/initializerJsonOne.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/pathOneFirst"
5 | },
6 | "httpResponse": {
7 | "body": "one first response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/pathOneSecond"
13 | },
14 | "httpResponse": {
15 | "body": "one second response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/server/initialize/initializerJsonThree.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/pathThreeFirst"
5 | },
6 | "httpResponse": {
7 | "body": "three first response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/pathThreeSecond"
13 | },
14 | "httpResponse": {
15 | "body": "three second response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/server/initialize/initializerJsonTwo.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/pathTwoFirst"
5 | },
6 | "httpResponse": {
7 | "body": "two first response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/pathTwoSecond"
13 | },
14 | "httpResponse": {
15 | "body": "two second response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/validator/xmlschema/embedded.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/validator/xmlschema/example.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 12
5 |
6 | 5
7 |
8 |
9 |
--------------------------------------------------------------------------------
/mockserver-core/src/test/resources/org/mockserver/validator/xmlschema/parent.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_forward_with_override/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | MOCKSERVER_SERVER_PORT: 1234
17 | mockserver_target:
18 | image: mockserver/mockserver:integration_testing
19 | networks:
20 | - test-network
21 | environment:
22 | MOCKSERVER_LOG_LEVEL: TRACE
23 | MOCKSERVER_SERVER_PORT: 4567
24 |
25 | networks:
26 | test-network:
27 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_remote_host_and_port_by_environment_variable/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver-target:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_SERVER_PORT: 4567
17 | mockserver:
18 | image: mockserver/mockserver:integration_testing
19 | networks:
20 | - test-network
21 | environment:
22 | MOCKSERVER_LOG_LEVEL: DEBUG
23 | MOCKSERVER_SERVER_PORT: 1234
24 | PROXY_REMOTE_HOST: mockserver-target
25 | PROXY_REMOTE_PORT: 4567
26 |
27 | networks:
28 | test-network:
29 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_server_port_by_command/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | command:
17 | - "-serverPort"
18 | - "1234"
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_server_port_by_environment_variable_long_name/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_SERVER_PORT: 1234
17 |
18 | networks:
19 | test-network:
20 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_server_port_by_environment_variable_short_name/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | SERVER_PORT: 1234
17 |
18 | networks:
19 | test-network:
20 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_expectation_initialiser/config/expectationInitialiser.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "httpRequest" : {
3 | "path" : "/some/path"
4 | },
5 | "httpResponse" : {
6 | "body" : "some_response_body"
7 | }
8 | } ]
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_expectation_initialiser/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_INITIALIZATION_JSON_PATH: /config/expectationInitialiser.json
17 | volumes:
18 | - ./config:/config
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_persisted_expectations/.gitignore:
--------------------------------------------------------------------------------
1 | config
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_persisted_expectations/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 | MOCKSERVER_PERSIST_EXPECTATIONS: "true"
17 | MOCKSERVER_PERSISTED_EXPECTATIONS_PATH: /config/persistedExpectations.json
18 | volumes:
19 | - ./config:/config
20 |
21 | networks:
22 | test-network:
23 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_server_port_from_custom_properties_file/config/mockserver.custom.properties:
--------------------------------------------------------------------------------
1 | ###############################
2 | # MockServer & Proxy Settings #
3 | ###############################
4 |
5 | # Logging
6 |
7 | mockserver.logLevel=DEBUG
8 |
9 | # Server Port
10 |
11 | mockserver.serverPort=1090
12 |
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_server_port_from_custom_properties_file/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | MOCKSERVER_PROPERTY_FILE: "/config/mockserver.custom.properties"
17 | volumes:
18 | - ./config:/config
19 |
20 | networks:
21 | test-network:
22 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_server_port_from_default_properties_file/config/mockserver.properties:
--------------------------------------------------------------------------------
1 | ###############################
2 | # MockServer & Proxy Settings #
3 | ###############################
4 |
5 | # Logging
6 |
7 | mockserver.logLevel=DEBUG
8 |
9 | # Server Port
10 |
11 | mockserver.serverPort=1090
12 |
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_with_server_port_from_default_properties_file/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: TRACE
16 | volumes:
17 | - ./config:/config
18 |
19 | networks:
20 | test-network:
21 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/docker_compose_examples/docker_compose_without_server_port/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | client:
4 | image: mockserver/mockserver:integration_testing_client
5 | networks:
6 | - test-network
7 | command:
8 | - "sleep"
9 | - "86400"
10 | mockserver:
11 | image: mockserver/mockserver:integration_testing
12 | networks:
13 | - test-network
14 | environment:
15 | MOCKSERVER_LOG_LEVEL: DEBUG
16 |
17 | networks:
18 | test-network:
19 | driver: bridge
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/.gitignore:
--------------------------------------------------------------------------------
1 | # node build artifacts #
2 | ########################
3 | node_modules
4 | npm-debug.log
5 | package-lock.json
6 | *.pem
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/README.md:
--------------------------------------------------------------------------------
1 | This folder contains examples for [mockserver-client-node](https://github.com/mock-server/mockserver-client-node) and [mockserver-node](https://github.com/mock-server/mockserver-node)
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/add_array_of_expectations/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "add_array_of_expectations",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/callback_action_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "add_array_of_expectations",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/client_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/error_action_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "error_action_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/forward_action_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "forward_action_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/openapi_expectations_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "request_matcher_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/openapi_request_matcher_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "request_matcher_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/request_properties_matcher_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "request_matcher_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/response_action_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "response_action_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/retrieve_active_expectations_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retrieve_active_expectations_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/retrieve_recorded_expectations_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retrieve_recorded_expectations_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/retrieve_recorded_requests_and_responses_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retrieve_recorded_requests_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/retrieve_recorded_requests_examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retrieve_recorded_requests_examples",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/reverse_proxy_example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "reverse_proxy_example",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0",
10 | "mockserver-node": "5.15.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/run_mockserver/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "run_mockserver",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0",
10 | "mockserver-node": "5.15.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-examples/node_examples/run_mockserver_and_add_expectations/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "run_mockserver_and_add_expectations",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "author": "James D Bloom",
7 | "license": "Apache-2.0",
8 | "dependencies": {
9 | "mockserver-client": "5.15.0",
10 | "mockserver-node": "5.15.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-examples/src/main/java/org/mockserver/examples/mockserver/DashboardExamples.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.examples.mockserver;
2 |
3 | import org.mockserver.integration.ClientAndServer;
4 |
5 | import static org.mockserver.model.HttpRequest.request;
6 | import static org.mockserver.model.HttpResponse.response;
7 |
8 | public class DashboardExamples {
9 |
10 | public void launchDashboardProgrammatically() {
11 | ClientAndServer clientAndServer = new ClientAndServer(1080);
12 |
13 | clientAndServer
14 | .when(
15 | request()
16 | .withPath("/some.*")
17 | )
18 | .respond(
19 | response()
20 | .withBody("some_body")
21 | );
22 |
23 | clientAndServer
24 | .openUI();
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/mockserver-examples/src/main/java/org/mockserver/examples/mockserver/ExpectationInitializerExamples.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.examples.mockserver;
2 |
3 | import org.mockserver.examples.mockserver.initializer.ExpectationInitializerExample;
4 | import org.mockserver.integration.ClientAndServer;
5 |
6 | public class ExpectationInitializerExamples {
7 |
8 | public void startWithInitializer() {
9 | System.setProperty("mockserver.initializationClass", ExpectationInitializerExample.class.getName());
10 | int mockServerPort = new ClientAndServer().getPort();
11 | // send requests
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/mockserver-examples/src/main/java/org/mockserver/examples/proxy/service/BookService.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.examples.proxy.service;
2 |
3 | import org.mockserver.examples.proxy.model.Book;
4 | import org.mockserver.examples.proxy.service.googleclient.http.BookServiceGoogleHttpClient;
5 | import org.slf4j.Logger;
6 | import org.slf4j.LoggerFactory;
7 |
8 | /**
9 | * @author jamesdbloom
10 | */
11 | public interface BookService {
12 |
13 | Logger logger = LoggerFactory.getLogger(BookServiceGoogleHttpClient.class);
14 |
15 | Book[] getAllBooks();
16 |
17 | Book getBook(String id);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/mockserver-examples/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | bookService.host=localhost
2 | bookService.port=1090
--------------------------------------------------------------------------------
/mockserver-examples/src/main/resources/org/mockserver/examples/mockserver/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-examples/src/main/resources/org/mockserver/examples/mockserver/test.png
--------------------------------------------------------------------------------
/mockserver-examples/src/main/resources/org/mockserver/examples/mockserver/testJsonSchema.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "object",
3 | "properties": {
4 | "someField": {
5 | "type": "string"
6 | }
7 | },
8 | "required": ["someField"]
9 | }
--------------------------------------------------------------------------------
/mockserver-examples/src/main/webapp/resources/css/example.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: #f0f8ff;
3 | }
--------------------------------------------------------------------------------
/mockserver-integration-testing/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-integration-testing-no-dependencies
13 | @project.version
14 |
15 | MockServer Integration Test
16 | A module used to simplify integration testing of all MockServer versions by sharing commons integration testing components
17 | https://www.mock-server.com
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-integration-testing/src/main/java/org/mockserver/testing/closurecallback/ViaWebSocket.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.testing.closurecallback;
2 |
3 | import org.mockserver.closurecallback.websocketregistry.LocalCallbackRegistry;
4 |
5 | public class ViaWebSocket {
6 |
7 | public static void viaWebSocket(RunnableThatThrows runnableThatThrows) throws Exception {
8 | try {
9 | LocalCallbackRegistry.enabled = false;
10 | runnableThatThrows.run();
11 | } finally {
12 | LocalCallbackRegistry.enabled = true;
13 | }
14 | }
15 |
16 | public interface RunnableThatThrows {
17 | void run() throws Exception;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/mockserver-integration-testing/src/main/resources/test.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-integration-testing/src/main/resources/test.pdf
--------------------------------------------------------------------------------
/mockserver-integration-testing/src/main/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-integration-testing/src/main/resources/test.png
--------------------------------------------------------------------------------
/mockserver-junit-jupiter/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-junit-jupiter-no-dependencies
13 | @project.version
14 |
15 | MockServer JUnit Jupiter Integration
16 | A JUnit5 Extension for MockServer
17 | https://www.mock-server.com
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-junit-jupiter/src/main/java/org/mockserver/junit/jupiter/MockServerSettings.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit.jupiter;
2 |
3 | import org.junit.jupiter.api.extension.ExtendWith;
4 |
5 | import java.lang.annotation.Inherited;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 |
9 | /**
10 | * Configure MockServer when used in conjunction with {@link MockServerExtension}
11 | */
12 | @ExtendWith(MockServerExtension.class)
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Inherited
15 | public @interface MockServerSettings {
16 | boolean perTestSuite() default false;
17 | int[] ports() default {};
18 | }
19 |
--------------------------------------------------------------------------------
/mockserver-junit-jupiter/src/test/java/org/mockserver/junit/jupiter/ExtendedMockServerPerTestSuite.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit.jupiter;
2 |
3 | import org.mockserver.integration.ClientAndServer;
4 |
5 | import java.util.List;
6 |
7 | public class ExtendedMockServerPerTestSuite extends MockServerExtension {
8 |
9 | public ExtendedMockServerPerTestSuite() {
10 | super();
11 | perTestSuite = true;
12 | }
13 |
14 | public ClientAndServer instantiateClient(List ports) {
15 | return super.instantiateClient(ports);
16 | }
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/mockserver-junit-jupiter/src/test/java/org/mockserver/junit/jupiter/InheritedMockServerSettings.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit.jupiter;
2 |
3 | @MockServerSettings(ports = 8999)
4 | public class InheritedMockServerSettings {
5 | }
6 |
--------------------------------------------------------------------------------
/mockserver-junit-jupiter/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/mockserver-junit-rule/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-junit-rule-no-dependencies
13 | @project.version
14 |
15 | MockServer JUnit 4 Integration
16 | A JUnit4 Rule for MockServer
17 | https://www.mock-server.com
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-junit-rule/src/test/java/org/mockserver/junit/MockServerRuleClientGetterTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit;
2 |
3 | import org.junit.Rule;
4 | import org.junit.Test;
5 |
6 | import static org.hamcrest.Matchers.nullValue;
7 | import static org.hamcrest.core.Is.is;
8 | import static org.hamcrest.core.IsNot.not;
9 | import static org.hamcrest.MatcherAssert.assertThat;
10 |
11 | /**
12 | * @author jamesdbloom
13 | */
14 | public class MockServerRuleClientGetterTest {
15 |
16 | @Rule
17 | public final MockServerRule mockServerRule = new MockServerRule(this);
18 |
19 | @Test
20 | public void shouldSetTestMockServeField() {
21 | assertThat(mockServerRule.getClient(), is(not(nullValue())));
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-junit-rule/src/test/java/org/mockserver/junit/MockServerRuleSubClassTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit;
2 |
3 | import org.junit.Rule;
4 | import org.junit.Test;
5 |
6 | import static org.hamcrest.Matchers.nullValue;
7 | import static org.hamcrest.core.Is.is;
8 | import static org.hamcrest.core.IsNot.not;
9 | import static org.hamcrest.MatcherAssert.assertThat;
10 |
11 | /**
12 | * @author jamesdbloom
13 | */
14 | public class MockServerRuleSubClassTest extends MockServerRuleSuperClass {
15 |
16 | @Rule
17 | public MockServerRule mockServerRule = new MockServerRule(this);
18 |
19 | @Test
20 | public void shouldSetTestMockServeField() {
21 | assertThat(mockServerClient, is(not(nullValue())));
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-junit-rule/src/test/java/org/mockserver/junit/MockServerRuleSuperClass.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.junit;
2 |
3 | import org.mockserver.client.MockServerClient;
4 |
5 | /**
6 | * @author jamesdbloom
7 | */
8 | public class MockServerRuleSuperClass {
9 |
10 | MockServerClient mockServerClient;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/mockserver-netty/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-netty-no-dependencies
13 | @project.version
14 |
15 | MockServer & Proxy Netty
16 | https://www.mock-server.com
17 |
18 |
19 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/gradle-netty-no-dependencies-dependencies/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | id 'groovy'
4 | }
5 |
6 | repositories {
7 | mavenLocal()
8 | maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
9 | mavenCentral()
10 | }
11 |
12 | dependencies {
13 |
14 | implementation "org.mock-server:mockserver-client-java-no-dependencies:${project.findProperty('mockserverVersion')}"
15 | implementation "org.mock-server:mockserver-netty-no-dependencies:${project.findProperty('mockserverVersion')}"
16 | testImplementation "org.mock-server:mockserver-integration-testing-no-dependencies:${project.findProperty('mockserverVersion')}"
17 |
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/gradle-netty-shaded-dependencies/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | id 'groovy'
4 | }
5 |
6 | repositories {
7 | mavenLocal()
8 | maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
9 | mavenCentral()
10 | }
11 |
12 | dependencies {
13 |
14 | implementation "org.mock-server:mockserver-client-java:${project.findProperty('mockserverVersion')}:shaded"
15 | implementation "org.mock-server:mockserver-netty:${project.findProperty('mockserverVersion')}:shaded"
16 | testImplementation "org.mock-server:mockserver-integration-testing:${project.findProperty('mockserverVersion')}:shaded"
17 |
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/gradle/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-netty/src/integration-tests/gradle/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/gradle/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/gradle_integration_tests.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
5 | source "${SCRIPT_DIR}/logging.sh"
6 |
7 | function run_gradle_build() {
8 | printMessage "TEST: $1"
9 | runCommand "$SCRIPT_DIR/gradle/gradlew --refresh-dependencies -p $SCRIPT_DIR/$1 -PmockserverVersion=${2:-5.15.0} test"
10 | }
11 |
12 | run_gradle_build gradle-netty-shaded-dependencies $1
13 | run_gradle_build gradle-netty-no-dependencies-dependencies $1
14 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/maven-netty-jar-with-dependencies-dependency/invoker.properties:
--------------------------------------------------------------------------------
1 | invoker.goals=clean test
2 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/maven-netty-no-dependencies-dependency/invoker.properties:
--------------------------------------------------------------------------------
1 | invoker.goals=clean test
2 |
--------------------------------------------------------------------------------
/mockserver-netty/src/integration-tests/maven-netty-shaded-dependency/invoker.properties:
--------------------------------------------------------------------------------
1 | invoker.goals=clean test
2 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/assembly/brew-tar/build_notes.md:
--------------------------------------------------------------------------------
1 | Given:
2 |
3 | https://oss.sonatype.org/content/repositories/releases/org/mock-server/mockserver-netty/5.5.1/mockserver-netty-5.5.1-brew-tar.tar
4 | 5fa4a711c4b1fb3d9b5efbcc44d567b91a8d89e423e797057da9de66ef140c2d
5 | 5.5.1
6 | https://github.com/Homebrew/homebrew-core/pull/23839
7 |
8 | Then:
9 |
10 | wget https://oss.sonatype.org/content/repositories/releases/org/mock-server/mockserver-netty/5.5.1/mockserver-netty-5.5.1-brew-tar.tar
11 | shasum -a 256 mockserver-netty-5.5.1-brew-tar.tar
12 | brew bump-formula-pr --strict mockserver --url=https://oss.sonatype.org/content/repositories/releases/org/mock-server/mockserver-netty/5.5.1/mockserver-netty-5.5.1-brew-tar.tar --sha256=5fa4a711c4b1fb3d9b5efbcc44d567b91a8d89e423e797057da9de66ef140c2d
13 |
14 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/java/org/mockserver/dashboard/serializers/Description.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.dashboard.serializers;
2 |
3 | public interface Description {
4 |
5 | int MAX_LENGTH = 115;
6 |
7 | int length();
8 |
9 | Object toObject();
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/java/org/mockserver/dashboard/serializers/DescriptionSerializer.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.dashboard.serializers;
2 |
3 | import com.fasterxml.jackson.core.JsonGenerator;
4 | import com.fasterxml.jackson.databind.SerializerProvider;
5 | import com.fasterxml.jackson.databind.ser.std.StdSerializer;
6 |
7 | import java.io.IOException;
8 |
9 | public class DescriptionSerializer extends StdSerializer {
10 |
11 | public DescriptionSerializer() {
12 | super(Description.class);
13 | }
14 |
15 | @Override
16 | public void serialize(Description value, JsonGenerator gen, SerializerProvider provider) throws IOException {
17 | gen.writeObject(value.toObject());
18 | }
19 | }
--------------------------------------------------------------------------------
/mockserver-netty/src/main/java/org/mockserver/lifecycle/ExpectationsListener.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.lifecycle;
2 |
3 | import org.mockserver.mock.Expectation;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @author jamesdbloom
9 | */
10 | public interface ExpectationsListener {
11 |
12 | void updated(List expectations);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/java/org/mockserver/netty/unification/PortBinding.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.netty.unification;
2 |
3 | import org.mockserver.model.ObjectWithJsonToString;
4 |
5 | import java.net.InetSocketAddress;
6 |
7 | public class PortBinding extends ObjectWithJsonToString {
8 |
9 | private final InetSocketAddress inetSocketAddress;
10 | private final String portExtension;
11 |
12 | public PortBinding(InetSocketAddress inetSocketAddress, String portExtension) {
13 | this.inetSocketAddress = inetSocketAddress;
14 | this.portExtension = portExtension;
15 | }
16 |
17 | public InetSocketAddress getInetSocketAddress() {
18 | return inetSocketAddress;
19 | }
20 |
21 | public String getPortExtension() {
22 | return portExtension;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/package/.dput.cf:
--------------------------------------------------------------------------------
1 | [mockserver-ppa]
2 | fqdn = ppa.launchpad.net
3 | method = sftp
4 | incoming = ~mockserver/ppa/ubuntu/
5 | login = mockserver
6 | allow_unsigned_uploads = 0
--------------------------------------------------------------------------------
/mockserver-netty/src/main/package/control/control:
--------------------------------------------------------------------------------
1 | Package: [[artifactId]]
2 | Version: [[project.version]]
3 | Section: misc
4 | Priority: important
5 | Architecture: all
6 | Depends: default-jre | java6-runtime | java7-runtime | java8-runtime | oracle-java6-installer | oracle-java7-installer | oracle-java8-installer
7 | Description: [[description]]
8 | Maintainer: James D Bloom
--------------------------------------------------------------------------------
/mockserver-netty/src/main/package/dput.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | dput >> /dev/null
4 |
5 | if [ $? -ne 0 ]; then
6 | echo
7 | echo "[WARNING] dput is not installed so debian package uploaded to repository"
8 | echo
9 | exit
10 | fi
11 |
12 | dput -d mockserver $1
13 |
--------------------------------------------------------------------------------
/mockserver-netty/src/main/package/etc/init/mockserver.conf:
--------------------------------------------------------------------------------
1 | # myservice - myservice job file
2 |
3 | description "my service description"
4 | author "Me "
5 |
6 | # Stanzas
7 | #
8 | # Stanzas control when and how a process is started and stopped
9 | # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
10 |
11 | # When to start the service
12 | start on runlevel [2345]
13 |
14 | # When to stop the service
15 | stop on runlevel [016]
16 |
17 | # Automatically restart process if crashed
18 | respawn
19 |
20 | # Essentially lets upstart know the process will detach itself to the background
21 | expect fork
22 |
23 | # Run before process
24 | pre-start script
25 | [ -d /var/run/myservice ] || mkdir -p /var/run/myservice
26 | echo "Put bash code here"
27 | end script
28 |
29 | # Start the process
30 | exec myprocess
--------------------------------------------------------------------------------
/mockserver-netty/src/main/package/lintian.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | lintian >> /dev/null
4 |
5 | if [ $? -ne 0 ]; then
6 | echo
7 | echo "[WARNING] lintian is not installed so debian package not linted"
8 | echo
9 | exit
10 | fi
11 |
12 | lintian --display-level certain --suppress-tags no-copyright-file,non-standard-dir-in-var $1
--------------------------------------------------------------------------------
/mockserver-netty/src/main/resources/org/mockserver/dashboard/AveriaSansLibre-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-netty/src/main/resources/org/mockserver/dashboard/AveriaSansLibre-Regular.ttf
--------------------------------------------------------------------------------
/mockserver-netty/src/main/resources/org/mockserver/dashboard/AveriaSansLibre-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-netty/src/main/resources/org/mockserver/dashboard/AveriaSansLibre-Regular.woff2
--------------------------------------------------------------------------------
/mockserver-netty/src/main/resources/org/mockserver/dashboard/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-netty/src/main/resources/org/mockserver/dashboard/apple-touch-icon.png
--------------------------------------------------------------------------------
/mockserver-netty/src/main/resources/org/mockserver/dashboard/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mock-server/mockserver/b607ad690543b17a6f6d6ecd92292ca3f28afe0d/mockserver-netty/src/main/resources/org/mockserver/dashboard/favicon.ico
--------------------------------------------------------------------------------
/mockserver-netty/src/main/resources/org/mockserver/dashboard/precache-manifest.7e5b6099c96247cc327e95964d344a55.js:
--------------------------------------------------------------------------------
1 | self.__precacheManifest = [
2 | {
3 | "revision": "09880b0b02ae006179b0",
4 | "url": "./dashboard/static/css/main.66fded09.chunk.css"
5 | },
6 | {
7 | "revision": "09880b0b02ae006179b0",
8 | "url": "./dashboard/static/js/main.defc53a6.chunk.js"
9 | },
10 | {
11 | "revision": "6a58f7d2e83535afc5d5",
12 | "url": "./dashboard/static/js/runtime~main.26e8d0d9.js"
13 | },
14 | {
15 | "revision": "5a41c5199e4ee99041d8",
16 | "url": "./dashboard/static/js/2.d40871cb.chunk.js"
17 | },
18 | {
19 | "revision": "1eaebb5c0c4e8fc942f9663061402d53",
20 | "url": "./dashboard/index.html"
21 | }
22 | ];
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/mock/initializer/initializerJson.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "httpRequest": {
4 | "path": "/simpleFirst"
5 | },
6 | "httpResponse": {
7 | "body": "some first response"
8 | }
9 | },
10 | {
11 | "httpRequest": {
12 | "path": "/simpleSecond"
13 | },
14 | "httpResponse": {
15 | "body": "some second response"
16 | }
17 | }
18 | ]
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/mock/initializer/openAPIExpectionInitializerJson.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "specUrlOrPayload": "org/mockserver/openapi/openapi_petstore_example.json",
4 | "operationsAndResponses": {
5 | "listPets": "500",
6 | "createPets": "default",
7 | "showPetById": "200"
8 | }
9 | }
10 | ]
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ca-csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/ca-csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "ecdsa",
11 | "size": 256
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/ca-key-pkcs8.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PRIVATE KEY-----
2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUzovClFSOAGLxtNK
3 | 6BEoIDQfv6c67qP0NerNifmJJvmhRANCAAQ/cAVCbYmxXBBTTsM+0E+6qBwkAvPA
4 | IbCgH0mG+KR90TITqaG9uetkqQwBbrkhHlzJI8o9yT7lS88CQ2tz6n6J
5 | -----END PRIVATE KEY-----
6 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/ca-key.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN EC PRIVATE KEY-----
2 | MHcCAQEEIFM6LwpRUjgBi8bTSugRKCA0H7+nOu6j9DXqzYn5iSb5oAoGCCqGSM49
3 | AwEHoUQDQgAEP3AFQm2JsVwQU07DPtBPuqgcJALzwCGwoB9JhvikfdEyE6mhvbnr
4 | ZKkMAW65IR5cySPKPck+5UvPAkNrc+p+iQ==
5 | -----END EC PRIVATE KEY-----
6 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/ca.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIBqzCCAVCgAwIBAgIUWj2AT6WguKQHxpY5u+pkFTwn+8kwCgYIKoZIzj0EAwIw
3 | MzELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjETMBEGA1UEChMKTW9ja1Nl
4 | cnZlcjAeFw0yMzAyMTcxNDI1MDBaFw0yODAyMTYxNDI1MDBaMDMxCzAJBgNVBAYT
5 | AlVLMQ8wDQYDVQQHEwZMb25kb24xEzARBgNVBAoTCk1vY2tTZXJ2ZXIwWTATBgcq
6 | hkjOPQIBBggqhkjOPQMBBwNCAAQ/cAVCbYmxXBBTTsM+0E+6qBwkAvPAIbCgH0mG
7 | +KR90TITqaG9uetkqQwBbrkhHlzJI8o9yT7lS88CQ2tz6n6Jo0IwQDAOBgNVHQ8B
8 | Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUMyV9c+8X3upif0dS
9 | VMmNXnbCsBYwCgYIKoZIzj0EAwIDSQAwRgIhAKZYH9uTBFRh0zxb7HpZrORm1AcC
10 | K4LeprQ27UlPKkYkAiEAxuD9VrSsUtJAD9Ur/Utlq3vmg9T4Axpbd9w++k1NVr8=
11 | -----END CERTIFICATE-----
12 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "ecdsa",
11 | "size": 256
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/generate_custom_certificates.md:
--------------------------------------------------------------------------------
1 | To generate these certificates, follow the instructions in
2 | [generate_custom_certificates](../generate_custom_certificates.md) but use these key settings instead:
3 |
4 | ```
5 | …
6 | "key": {
7 | "algo": "ecdsa",
8 | "size": 256
9 | },
10 | …
11 | ```
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/leaf-cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIICGjCCAcGgAwIBAgIUVOCo4nPa3ERsdcdes2ggte/3LUYwCgYIKoZIzj0EAwIw
3 | MzELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjETMBEGA1UEChMKTW9ja1Nl
4 | cnZlcjAeFw0yMzAyMTcxNDI2MDBaFw0yNDAyMTcxNDI2MDBaMDMxCzAJBgNVBAYT
5 | AlVLMQ8wDQYDVQQHEwZMb25kb24xEzARBgNVBAoTCk1vY2tTZXJ2ZXIwWTATBgcq
6 | hkjOPQIBBggqhkjOPQMBBwNCAATyeLZx5ZN/amVYxPYETR1DcTIgfNOAxB9K7Njy
7 | 7xjdPuyG11tO+D6JCfaW2LNexvSMT6HOvD7INd40ikaS3BlCo4GyMIGvMA4GA1Ud
8 | DwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0T
9 | AQH/BAIwADAdBgNVHQ4EFgQUdHMVbPwfeaRoPn3wsicoUvgsqE8wUQYDVR0RBEow
10 | SIILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLmNvbYIJbG9jYWxob3N0hwR/AAAB
11 | hhdodHRwczovL3d3dy5leGFtcGxlLmNvbTAKBggqhkjOPQQDAgNHADBEAiBWXsdI
12 | l1Bl8T9DBGYB7ani6Riob+vuQ+lxWds42Iv4GAIgPyWz2z7PIsHZP4kHXznyc67c
13 | vbVoVk7ER8hu/rdH2J0=
14 | -----END CERTIFICATE-----
15 |
16 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/leaf-key-pkcs8.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PRIVATE KEY-----
2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNDuJElc54b4zq3S5
3 | wbp8Qet4BgcSlYgVd2fLNBmsMdShRANCAATyeLZx5ZN/amVYxPYETR1DcTIgfNOA
4 | xB9K7Njy7xjdPuyG11tO+D6JCfaW2LNexvSMT6HOvD7INd40ikaS3BlC
5 | -----END PRIVATE KEY-----
6 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/ec/leaf-key.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN EC PRIVATE KEY-----
2 | MHcCAQEEIDQ7iRJXOeG+M6t0ucG6fEHreAYHEpWIFXdnyzQZrDHUoAoGCCqGSM49
3 | AwEHoUQDQgAE8ni2ceWTf2plWMT2BE0dQ3EyIHzTgMQfSuzY8u8Y3T7shtdbTvg+
4 | iQn2ltizXsb0jE+hzrw+yDXeNIpGktwZQg==
5 | -----END EC PRIVATE KEY-----
6 |
7 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/separateca/ca-csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-netty/src/test/resources/org/mockserver/netty/integration/tls/separateca/csr.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosts": [
3 | "example.com",
4 | "www.example.com",
5 | "https://www.example.com",
6 | "localhost",
7 | "127.0.0.1"
8 | ],
9 | "key": {
10 | "algo": "rsa",
11 | "size": 2048
12 | },
13 | "names": [
14 | {
15 | "C": "UK",
16 | "L": "London",
17 | "O": "MockServer",
18 | "CN": "www.mockserver.com"
19 | }
20 | ]
21 | }
--------------------------------------------------------------------------------
/mockserver-proxy-war/src/main/webapp/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | proxy
8 | org.mockserver.proxyservlet.ProxyServlet
9 |
10 |
11 | proxy
12 | /*
13 |
14 |
15 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/dependency-reduced-pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | org.mock-server
6 | mockserver
7 | @project.version
8 |
9 |
10 | 4.0.0
11 |
12 | mockserver-spring-test-listener-no-dependencies
13 | @project.version
14 |
15 | MockServer Spring Test
16 | A module containing helpers for writing mockserver tests in spring projects
17 | https://www.mock-server.com
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/main/java/org/mockserver/springtest/MockServerPort.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.springtest;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 |
5 | import java.lang.annotation.ElementType;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | @Target(ElementType.FIELD)
11 | @Retention(RetentionPolicy.RUNTIME)
12 | @Value("${mockServerPort}")
13 | public @interface MockServerPort {
14 | }
15 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/main/java/org/mockserver/springtest/MockServerTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.springtest;
2 |
3 | import java.lang.annotation.*;
4 |
5 | @Target(ElementType.TYPE)
6 | @Retention(RetentionPolicy.RUNTIME)
7 | @Inherited
8 | public @interface MockServerTest {
9 | String[] value() default {};
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/main/java/org/mockserver/springtest/package-info.java:
--------------------------------------------------------------------------------
1 | @NonNullApi
2 | package org.mockserver.springtest;
3 |
4 | import org.springframework.lang.NonNullApi;
5 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.test.context.TestExecutionListener=org.mockserver.springtest.MockServerTestExecutionListener
2 |
3 | org.springframework.test.context.ContextCustomizerFactory=org.mockserver.springtest.MockServerTestCustomizerFactory
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/test/java/org/mockserver/springtest/MockServerPropertyCustomizerAbstractTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.springtest;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 |
5 | @MockServerTest("server.url.path-a=http://localhost:${mockServerPort}/a")
6 | abstract class MockServerPropertyCustomizerAbstractTest {
7 |
8 | @Value("${server.url.path-a}")
9 | protected String serverUrlPathA;
10 | }
11 |
--------------------------------------------------------------------------------
/mockserver-spring-test-listener/src/test/java/org/mockserver/springtest/MockServerTestExecutionListenerTest.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.springtest;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.mockserver.client.MockServerClient;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | import static org.hamcrest.CoreMatchers.nullValue;
9 | import static org.hamcrest.core.Is.is;
10 | import static org.hamcrest.core.IsNot.not;
11 | import static org.hamcrest.MatcherAssert.assertThat;
12 |
13 | @MockServerTest
14 | @RunWith(SpringRunner.class)
15 | public class MockServerTestExecutionListenerTest {
16 |
17 | private MockServerClient mockServerClient;
18 |
19 | @Test
20 | public void setsMockServerClient() {
21 | assertThat(mockServerClient, is(not(nullValue())));
22 | }
23 | }
--------------------------------------------------------------------------------
/mockserver-testing/src/main/java/org/mockserver/test/IsDebug.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.test;
2 |
3 | import java.util.concurrent.TimeUnit;
4 |
5 | import static java.lang.management.ManagementFactory.getRuntimeMXBean;
6 | import static java.util.concurrent.TimeUnit.MINUTES;
7 | import static java.util.concurrent.TimeUnit.SECONDS;
8 |
9 | public class IsDebug {
10 |
11 | static {
12 | System.setProperty("junit.jupiter.extensions.autodetection.enabled", "true");
13 | }
14 |
15 | public static final boolean IS_DEBUG = getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
16 |
17 | public static TimeUnit timeoutUnits() {
18 | if (IS_DEBUG) {
19 | return MINUTES;
20 | } else {
21 | return SECONDS;
22 | }
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/mockserver-testing/src/main/java/org/mockserver/test/TempFileWriter.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.test;
2 |
3 | import java.io.File;
4 | import java.io.FileWriter;
5 |
6 | public class TempFileWriter {
7 |
8 | public static String write(String data) {
9 | try {
10 | File tempFile = File.createTempFile("prefix", "suffix");
11 | FileWriter fileWriter = new FileWriter(tempFile);
12 | fileWriter.write(data);
13 | fileWriter.flush();
14 | fileWriter.close();
15 | return tempFile.getAbsolutePath();
16 | } catch (Throwable throwable) {
17 | throw new RuntimeException("Exception writing temporary file", throwable);
18 | }
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/mockserver-war/src/main/webapp/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | mockServer
8 | org.mockserver.mockservlet.MockServerServlet
9 |
10 |
11 | mockServer
12 | /*
13 |
14 |
15 |
--------------------------------------------------------------------------------
/mockserver-war/src/test/java/org/mockserver/mockservlet/integration/TestClasspathTestExpectationForwardCallback.java:
--------------------------------------------------------------------------------
1 | package org.mockserver.mockservlet.integration;
2 |
3 | import org.mockserver.mock.action.ExpectationForwardCallback;
4 | import org.mockserver.model.HttpRequest;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | import static org.mockserver.model.HttpRequest.request;
10 |
11 | /**
12 | * @author jamesdbloom
13 | */
14 | public class TestClasspathTestExpectationForwardCallback implements ExpectationForwardCallback {
15 |
16 | public static final List httpRequests = new ArrayList();
17 | public static HttpRequest httpRequestToReturn = request();
18 |
19 | @Override
20 | public HttpRequest handle(HttpRequest httpRequest) {
21 | httpRequests.add(httpRequest);
22 | return httpRequestToReturn;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/scripts/buildkite_deploy_snapshot.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | echo "whoami: $(whoami)"
6 |
7 | echo
8 | java -version
9 | echo
10 | ./mvnw -version
11 | echo
12 | export MAVEN_OPTS="${MAVEN_OPTS:-} -Xms2048m -Xmx8192m"
13 | export JAVA_OPTS="${JAVA_OPTS:-} -Xms2048m -Xmx8192m"
14 |
15 | if test "${BUILDKITE_BRANCH:-}" = "master"; then
16 | echo "BRANCH: MASTER"
17 | else
18 | echo "BRANCH: ${CURRENT_BRANCH:-}"
19 | fi
20 |
21 | ./mvnw clean deploy ${1:-} -Djava.security.egd=file:/dev/./urandom
--------------------------------------------------------------------------------
/scripts/buildkite_quick_build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | echo "whoami: $(whoami)"
6 |
7 | echo
8 | java -version
9 | echo
10 | ./mvnw -version
11 | echo
12 | export MAVEN_OPTS="${MAVEN_OPTS:-} -Xms2048m -Xmx8192m"
13 | export JAVA_OPTS="${JAVA_OPTS:-} -Xms2048m -Xmx8192m"
14 |
15 | if test "${BUILDKITE_BRANCH:-}" = "master"; then
16 | echo "BRANCH: MASTER"
17 | else
18 | echo "BRANCH: ${CURRENT_BRANCH:-}"
19 | fi
20 |
21 | ./mvnw clean install ${1:-} -Djava.security.egd=file:/dev/./urandom
--------------------------------------------------------------------------------
/scripts/jekyll_server.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
4 | cd "${SCRIPT_DIR}/../jekyll-www.mock-server.com"
5 |
6 | $(rbenv which bundle) exec jekyll server &
7 | JEKYLL_PID=$!
8 | sleep 2
9 | open http://127.0.0.1:4000/
10 |
11 | cleanup() {
12 | if [[ -z ${JEKYLL_PID+x} ]]; then
13 | kill JEKYLL_PID
14 | fi
15 | }
16 |
17 | trap cleanup EXIT
18 | wait $JEKYLL_PID
--------------------------------------------------------------------------------
/scripts/local_buildkite_build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | docker pull mockserver/mockserver:maven
4 | docker run -v $(pwd):/build/mockserver -w /build/mockserver -a stdout -a stderr -e BUILDKITE_BRANCH=$BUILDKITE_BRANCH mockserver/mockserver:maven /build/mockserver/scripts/buildkite_quick_build.sh
5 |
--------------------------------------------------------------------------------
/scripts/local_deploy_snapshot.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
6 |
7 | docker run --net=host -v /var/run/docker.sock:/var/run/docker.sock -v ~/.m2:/root/.m2 -v ~/.gradle:/root/.gradle -v "${SCRIPT_DIR}"/..:/build/mockserver -w /build/mockserver -e BUILDKITE_BRANCH=master mockserver/mockserver:maven /build/mockserver/scripts/buildkite_deploy_snapshot.sh
--------------------------------------------------------------------------------
/scripts/local_docker_launch.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | docker pull mockserver/mockserver:maven
4 | docker run -i -t --memory=4096m --oom-kill-disable -v `pwd`:/mockserver -w /mockserver -a stdout -a stderr mockserver/mockserver:maven /bin/bash
5 |
--------------------------------------------------------------------------------
/scripts/local_generate_web_site.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | rm -rf jekyll-www.mock-server.com/_site || true
4 |
5 | cd jekyll-www.mock-server.com
6 | bundle exec jekyll build
7 | cd _site
8 | cp mock_server/mockserver_clients.html .
9 | cp mock_server/running_mock_server.html .
10 | cp mock_server/debugging_issues.html .
11 | cp mock_server/creating_expectations.html .
12 | open .
--------------------------------------------------------------------------------
/scripts/local_list_versions.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | COMMIT_LIST=`git log --all --since="Tue Apr 25 19:55:27 2017 +0100" --grep "prepare release" --format=format:'%h'`
4 |
5 | for commit in $COMMIT_LIST; do
6 | VERSION=`git show $commit:pom.xml | grep -C1 -o 'mockserver ' | egrep -o '[0-9][0-9\.]*'`
7 | echo $commit, $VERSION;
8 | done
9 |
--------------------------------------------------------------------------------
/scripts/local_online_build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | export MAVEN_OPTS="$MAVEN_OPTS -Xms8192m -Xmx8192m"
6 | export JAVA_OPTS="$JAVA_OPTS -Xms8192m -Xmx8192m"
7 | export JAVA_HOME=`/usr/libexec/java_home -v 13`
8 | echo
9 | java -version
10 | echo
11 | ./mvnw -version
12 | echo
13 |
14 | # to run from specific module use argument in quotes "-rf mockserver-war"
15 | ./mvnw -T 3C clean install $1 -Djava.security.egd=file:/dev/urandom
16 |
17 | SKIP_JAVA_BUILD=true container_integration_tests/integration_tests.sh
--------------------------------------------------------------------------------
/scripts/local_quick_build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | export MAVEN_OPTS="$MAVEN_OPTS -Xms8192m -Xmx8192m"
6 | export JAVA_OPTS="$JAVA_OPTS -Xms8192m -Xmx8192m"
7 | export JAVA_HOME=`/usr/libexec/java_home -v 13`
8 | echo
9 | java -version
10 | echo
11 | ./mvnw -version
12 | echo
13 |
14 | # to run from specific module use argument in quotes "-rf mockserver-war"
15 | ./mvnw -T 3C clean install -offline $1 -Djava.security.egd=file:/dev/urandom
16 |
17 | SKIP_JAVA_BUILD=true container_integration_tests/integration_tests.sh
--------------------------------------------------------------------------------
/scripts/local_single_module.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | export MAVEN_OPTS="$MAVEN_OPTS -Xms2048m -Xmx8192m"
6 | export JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx8192m"
7 | export JAVA_HOME=`/usr/libexec/java_home -v 12`
8 | echo
9 | java -version
10 | echo
11 | ./mvnw -version
12 | echo
13 |
14 | # to run from specific module use argument in quotes "mockserver-netty"
15 | ./mvnw -T 1C clean install -DskipAssembly=true -pl="$1"
--------------------------------------------------------------------------------
/scripts/local_single_test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | export MAVEN_OPTS="$MAVEN_OPTS -Xms2048m -Xmx8192m"
6 | export JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx8192m"
7 | export JAVA_HOME=`/usr/libexec/java_home -v 12`
8 | echo
9 | java -version
10 | echo
11 | ./mvnw -version
12 | echo
13 |
14 | # to run from specific test use argument in quotes "ExpectationFileWatcherIntegrationTest" or "ExpectationFileWatcherIntegrationTest#shouldDetectModifiedInitialiserJsonOnAdd"
15 | ./mvnw -T 1C -Dtest="none" -Dit.test="$1" clean install -DskipAssembly=true -DfailIfNoTests=false
--------------------------------------------------------------------------------
/scripts/stop_MockServer.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | `ps -ef | grep mockserver | grep -v grep | grep -v mvn | grep -v maven | grep -v sonatype-oss-release | grep -v $0 | awk '{print $2}' | xargs -t -I '{}' kill '{}'`; echo done
4 |
--------------------------------------------------------------------------------