stubby4j
HTTP/1.1, HTTP/2 and WebSockets stub server for stubbing distributed web services in Docker and non-containerized environments for integration and contract testing
File Explorer
Download Latest Version (.zip)- config.yml
- bug_report.md
- feature_request.md
- question.md
- greetings.yml
- auto_assign.yml
- CODEOWNERS
- dependabot.yml
- no-response.yml
- stale.yml
- alexander.zagniotov-apache-2.0-license.txt
- stubby-logo-2.svg
- stubby-logo-duke-hiding.svg
- artifacts.gradle
- dependencies.gradle
- ide.gradle
- jacoco.gradle
- sonatype.gradle
- spotless.gradle
- tests.gradle
- .dockerignore
- Dockerfile.arm64
- .dockerignore
- Dockerfile
- .dockerignore
- Dockerfile.arm64
- .dockerignore
- Dockerfile.arm64
- .dockerignore
- Dockerfile.arm64
- include-all-test-stubs.yaml
- smoke-tests-stubs.yaml
- docker-compose.yml
- log4j2-for-docker.xml
- DOCKERHUB.md
- gradle-wrapper.jar
- gradle-wrapper.properties
- StubbyClientTest.java
- StubbyClientYamlessTest.java
- AdminPortalTest.java
- ClientWebSocketHelper.java
- HttpClientUtils.java
- HttpUtils.java
- ProxyConfigWithStubsTest.java
- StubsAdminPortalsTest.java
- StubsPortalHttp11OverTlsTests.java
- StubsPortalHttp11WebSocketOverTlsTests.java
- StubsPortalHttp11WebSocketSequencedResponsesTests.java
- StubsPortalHttp11WebSocketTests.java
- StubsPortalHttp20ClearTextTests.java
- StubsPortalHttp20OverTlsWithAlpnProtocolTests.java
- StubsPortalRaisedIssueTests.java
- StubsPortalTest.java
- hello-world.pdf
- file.html
- json_payload_1.json
- json_payload_10.json
- json_payload_11.json
- json_payload_12.json
- json_payload_13.json
- json_payload_14.json
- json_payload_2.json
- json_payload_3.json
- json_payload_4.json
- json_payload_5.json
- json_payload_6.json
- json_payload_7.json
- json_payload_8.json
- json_payload_9.json
- json_response_1.json
- json_response_2.json
- json_response_3.json
- json_response_4.json
- json_response_5.json
- json_response_6.json
- json_response_7.json
- xml_payload_1.xml
- xml_payload_2.xml
- xml_payload_3.xml
- xml_request_issue_29_payload.xml
- xml_request_issue_29_stub_template.xml
- xml_request_issue_399_payload.xml
- xml_request_issue_399_payload_2.xml
- xml_request_issue_399_vanilla_regex_stub_template.xml
- xml_request_issue_399_xmlunit_matcher_stub_template.xml
- xml_response_1.xml
- xml_response_2.xml
- xml_response_issue_29_body.xml
- xml_response_issue_29_stub_template.xml
- xml_response_issue_399_body.xml
- xml_response_issue_399_stub_template.xml
- include-all-test-stubs.yaml
- include-proxy-config.yaml
- include-record-and-play-and-redirect-response-stubs.yaml
- include-regex-dynamic-tokens-templated-stubs.yaml
- include-reported-issues-test-stubs.yaml
- include-sequenced-response-stubs.yaml
- include-web-socket-config.yaml
- include-web-socket-sequenced-response-config.yaml
- main-test-stubs-with-proxy-config.yaml
- main-test-stubs-with-web-socket-config.yaml
- main-test-stubs.yaml
- standalone-stub.yaml
- CommandLineInterpreterTest.java
- JSONAssertTest.java
- CustomHostnameVerifierTest.java
- SslUtilsTest.java
- StubRepositoryTest.java
- ConsoleUtilsTest.java
- HandlerUtilsTest.java
- JarUtilsTest.java
- YamlParserLoadTest.java
- YamlParserTest.java
- array.1.json
- array.2.json
- graph.1.json
- graph.2.json
- request.external.file.json
- response.1.external.file.json
- response.2.external.file.json
- response.3.external.file.json
- response.4.external.file.json
- response.5.external.file.json
- test-template.html
- duplicated.uuid.stub.yaml
- feature.stub.yaml
- multi-include-main.yaml
- multi-included-service-1.yaml
- multi-included-service-2.yaml
- multi-included-service-3.yaml
- one.external.files.yaml
- proxy-config-duplicate-uuid.yaml
- proxy-config-invalid-config.yaml
- proxy-config-valid-config-with-stubs.yaml
- proxy-config-valid-config.yaml
- proxy-config-without-default-config.yaml
- request.null.external.files.yaml
- response.null.external.files.yaml
- same.external.files.yaml
- two.cycles.with.multiple.responses.yaml
- two.external.files.yaml
- web-socket-invalid-config-with-duplicate-client-request-body-bytes.yaml
- web-socket-invalid-config-with-duplicate-client-request-body-text.yaml
- web-socket-invalid-config-with-duplicate-url.yaml
- web-socket-invalid-config-with-invalid-policy-name.yaml
- web-socket-valid-config-with-no-on-open-no-on-message.yaml
- web-socket-valid-config-with-no-on-open.yaml
- web-socket-valid-config-with-sequenced-responses.yaml
- web-socket-valid-config-with-uuid-and-description-on-top.yaml
- web-socket-valid-config-without-on-message.yaml
- web-socket-valid-config.yaml
- HttpUtils.java
- PortTestUtils.java
- SpringSocketUtils.java
- StubsPortalLoadTest.java
- 10k_stubs_load_test.yaml
- 25k_stubs_load_test.yaml
- GeneratedCodeClassCoverageExclusion.java
- GeneratedCodeMethodCoverageExclusion.java
- PotentiallyFlaky.java
- VisibleForTesting.java
- Cache.java
- NoOpStubHttpLifecycleCache.java
- RegexPatternCache.java
- StubHttpLifecycleCache.java
- ANSITerminal.java
- CommandLineInterpreter.java
- EmptyLogger.java
- Authorization.java
- StubbyClient.java
- StubbyRequest.java
- StubbyResponse.java
- Common.java
- ExternalFilesScanner.java
- MainIncludedYamlScanner.java
- MainYamlScanner.java
- AdminResponseHandlingStrategy.java
- AdminResponseHandlingStrategyFactory.java
- DeleteHandlingStrategy.java
- GetHandlingStrategy.java
- HttpVerbsEnum.java
- NullHandlingStrategy.java
- PostHandlingStrategy.java
- PutHandlingStrategy.java
- DefaultResponseHandlingStrategy.java
- NotFoundResponseHandlingStrategy.java
- RedirectResponseHandlingStrategy.java
- StubResponseHandlingStrategy.java
- StubsResponseHandlingStrategyFactory.java
- UnauthorizedResponseHandlingStrategy.java
- AbstractHandlerExtension.java
- AdminPortalHandler.java
- AjaxEndpointStatsHandler.java
- AjaxResourceContentHandler.java
- FaviconHandler.java
- JsonErrorHandler.java
- StatusPageHandler.java
- StubDataRefreshActionHandler.java
- StubsPortalHandler.java
- HttpMethodExtended.java
- StubbyHttpTransport.java
- CustomHostnameVerifier.java
- DefaultExtendedX509TrustManager.java
- LanIPv4Validator.java
- SslUtils.java
- StubsServerWebSocket.java
- StubsWebSocketCreator.java
- JettyContext.java
- JettyFactory.java
- StubbyManager.java
- StubbyManagerFactory.java
- Stubby4jMatchesRegexPlaceholderHandler.java
- Stubby4jXmlUnitPlaceholderDifferenceEvaluator.java
- StubProxyConfig.java
- StubProxyStrategy.java
- StubWebSocketClientRequest.java
- StubWebSocketConfig.java
- StubWebSocketMessageType.java
- StubWebSocketOnMessageLifeCycle.java
- StubWebSocketServerResponse.java
- StubWebSocketServerResponsePolicy.java
- AbstractBuilder.java
- ReflectableStub.java
- RegexParser.java
- StubbableAuthorizationType.java
- StubHttpLifecycle.java
- StubMatcher.java
- StubRepository.java
- StubRequest.java
- StubResponse.java
- StubSearchResult.java
- StubTypes.java
- CollectionUtils.java
- ConsoleUtils.java
- DateTimeUtils.java
- FileUtils.java
- HandlerUtils.java
- HttpRequestUtils.java
- JarUtils.java
- NetworkPortUtils.java
- ObjectUtils.java
- ReflectionUtils.java
- SpringSocketUtils.java
- StringUtils.java
- ConfigurableYAMLProperty.java
- SnakeYaml.java
- YamlBuilder.java
- YamlParser.java
- YamlParseResultSet.java
- Main.java
- org.eclipse.jetty.http.HttpFieldPreEncoder
- openssl.downloaded.stubby4j.self.signed.v3.jks
- openssl.downloaded.stubby4j.self.signed.v3.pem
- openssl.downloaded.stubby4j.self.signed.v3.pkcs12
- stubby4j.self.signed.v3.commands.txt
- stubby4j.self.signed.v3.conf
- stubby4j.self.signed.v3.pkcs12
- main.css
- _popup_generic.html
- _popup_proxy_config.html
- _popup_stats.html
- _table.html
- default404.html
- status.html
- favicon.ico
- loading.gif
- d3.v3.min.js
- solarized_light.min.css
- highlight.pack.js
- LICENSE
- minified.js
- main.js
- empty-stub.yaml
- jetty-logging.properties
- make_request_for_sequenced_responses_using_websocat.sh
- make_request_using_curl.sh
- make_request_using_websocat.sh
- include-all-test-stubs.yaml
- include-web-socket-config.yaml
- smoke-tests-stubs.yaml
- CacheTest.java
- NoOpStubHttpLifecycleCacheTest.java
- CommandLineInterpreterTest.java
- DefaultResponseHandlingStrategyTest.java
- HandlingStrategyFactoryTest.java
- RedirectResponseHandlingStrategyTest.java
- StubsResponseHandlingStrategyFactoryTest.java
- AbstractHandlerExtensionTest.java
- AjaxResourceContentHandlerTest.java
- StubsPortalHandlerTest.java
- LanIPv4ValidatorTest.java
- StubsServerWebSocketTest.java
- StubWebSocketClientRequestTest.java
- StubWebSocketMessageTypeTest.java
- StubWebSocketServerResponsePolicyTest.java
- StubWebSocketServerResponseTest.java
- RegexParserTest.java
- StubHttpLifecycleBuilderTest.java
- StubMatcherTest.java
- StubProxyConfigBuilderTest.java
- StubRepositoryTest.java
- StubRequestBuilderTest.java
- StubResponseBuilderTest.java
- CollectionUtilsTest.java
- DateTimeUtilsTest.java
- FileUtilsTest.java
- HandlerUtilsTest.java
- ReflectionUtilsTest.java
- StringUtilsTest.java
- YamlBuilderTest.java
- YamlParserTest.java
- stubbed.request.response.yaml
- .gitignore
- build.gradle
- CHANGELOG.md
- CODE_OF_CONDUCT.md
- codecov.yml
- CONTRIBUTING.md
- COPYRIGHT.md
- gradle.properties
- gradlew
- gradlew.bat
- LICENSE
- README.md
- settings.gradle
# Installation Guide
1. Get the code
git clone https://github.com/azagniotov/stubby4j
Downloads the entire project code from GitHub to your computer.
cd stubby4j
Moves into the project folder you just downloaded.
2. Docker
Easy RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
β οΈ This is a large repository, so this method may point to an internal sub-package rather than the actual core product. Check the full README as well.
docker compose -f docker/smoke-test/docker-compose.yml up -d --build
Runs the command against the services defined in the compose file.
Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.
3. Gradle (Java/Kotlin)
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
./gradlew build
Builds the project using Gradle.
A BUILD SUCCESSFUL message means it worked. The output is created under build/.
// repository documentation
Was this content helpful?
(0 ratings)
