├── .editorconfig ├── .envrc ├── .github ├── dco.yml ├── dependabot.yml └── workflows │ ├── java-11.yml │ ├── java-17.yml │ ├── java-21.yml │ └── java-8.yml ├── .gitignore ├── .mailmap ├── .sdkmanrc ├── CODE_OF_CONDUCT.adoc ├── CONTRIBUTING.adoc ├── LICENSE ├── NOTICE ├── README.adoc ├── build.gradle ├── ci ├── config-concourse.yml ├── config │ └── release-scripts.yml ├── images │ └── scosb-ci │ │ └── Dockerfile ├── pipeline.yml ├── scripts │ ├── build-project.sh │ ├── common.sh │ ├── generate-docker-credentials.sh │ ├── promote.sh │ ├── stage.sh │ └── sync-to-maven-central.sh └── tasks │ ├── build-oci-image.yml │ ├── build-project.yml │ ├── generate-docker-credentials.yml │ ├── promote.yml │ ├── stage.yml │ └── sync-to-maven-central.yml ├── config └── nohttp │ ├── allowlist.lines │ └── checkstyle.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── publish-maven.gradle ├── scripts └── set-pipelines.sh ├── settings.gradle ├── spring-cloud-open-service-broker-acceptance-webflux ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── servicebroker │ │ │ └── acceptance │ │ │ ├── NoOpServiceInstanceService.java │ │ │ ├── WebFluxApplication.java │ │ │ └── package-info.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── servicebroker │ └── acceptance │ ├── CatalogControllerTests.java │ └── WebFluxApplicationTests.java ├── spring-cloud-open-service-broker-acceptance-webmvc ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── servicebroker │ │ │ └── acceptance │ │ │ ├── NoOpServiceInstanceService.java │ │ │ ├── WebMvcApplication.java │ │ │ └── package-info.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── servicebroker │ └── acceptance │ ├── CatalogControllerTests.java │ └── WebMvcApplicationTests.java ├── spring-cloud-open-service-broker-autoconfigure ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── servicebroker │ │ │ └── autoconfigure │ │ │ └── web │ │ │ ├── Catalog.java │ │ │ ├── Cost.java │ │ │ ├── DashboardClient.java │ │ │ ├── EventFlowsAutoConfiguration.java │ │ │ ├── MaintenanceInfo.java │ │ │ ├── MethodSchema.java │ │ │ ├── Plan.java │ │ │ ├── PlanMetadata.java │ │ │ ├── RequiredCatalogBeanFailureAnalyzer.java │ │ │ ├── RequiredServiceInstanceServiceBeanFailureAnalyzer.java │ │ │ ├── Schemas.java │ │ │ ├── ServiceBindingSchema.java │ │ │ ├── ServiceBrokerAutoConfiguration.java │ │ │ ├── ServiceBrokerProperties.java │ │ │ ├── ServiceDefinition.java │ │ │ ├── ServiceInstanceSchema.java │ │ │ ├── ServiceMetadata.java │ │ │ ├── exception │ │ │ ├── CatalogDefinitionDoesNotExistException.java │ │ │ ├── ServiceInstanceServiceBeanDoesNotExistException.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── reactive │ │ │ ├── ApiVersionWebFilter.java │ │ │ ├── ApiVersionWebFluxAutoConfiguration.java │ │ │ ├── RequestIdentityWebFilter.java │ │ │ ├── ServiceBrokerWebFluxAutoConfiguration.java │ │ │ └── package-info.java │ │ │ ├── servlet │ │ │ ├── ApiVersionInterceptor.java │ │ │ ├── ApiVersionWebMvcAutoConfiguration.java │ │ │ ├── ApiVersionWebMvcConfigurerAdapter.java │ │ │ ├── RequestIdentityInterceptor.java │ │ │ ├── ServiceBrokerWebMvcAutoConfiguration.java │ │ │ └── package-info.java │ │ │ └── util │ │ │ ├── MetadataUtils.java │ │ │ └── package-info.java │ └── resources │ │ └── META-INF │ │ ├── additional-spring-configuration-metadata.json │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── servicebroker │ │ └── autoconfigure │ │ └── web │ │ ├── AbstractBasePathIntegrationTests.java │ │ ├── AbstractServiceBrokerWebAutoConfigurationTests.java │ │ ├── AbstractServiceInstanceBindingControllerIntegrationTests.java │ │ ├── AbstractServiceInstanceControllerIntegrationTests.java │ │ ├── BasicCatalogService.java │ │ ├── BasicServiceInstanceBindingService.java │ │ ├── BasicServiceInstanceService.java │ │ ├── ControllerIntegrationTests.java │ │ ├── CustomBlockHoundIntegration.java │ │ ├── EventFlowsAutoConfigurationTests.java │ │ ├── MethodSchemaTests.java │ │ ├── ServiceBrokerAutoConfigurationTests.java │ │ ├── ServiceBrokerPropertiesBindingTests.java │ │ ├── ServiceBrokerPropertiesTests.java │ │ ├── ServiceInstanceBindingIntegrationTests.java │ │ ├── ServiceMetadataTests.java │ │ ├── fixture │ │ └── ServiceFixture.java │ │ ├── reactive │ │ ├── AbstractBasePathWebApplicationIntegrationTests.java │ │ ├── ApiVersionWebFilterIntegrationTests.java │ │ ├── ApiVersionWebFilterTests.java │ │ ├── ApiVersionWebFluxAutoConfigurationTests.java │ │ ├── BasePathDoubleIntegrationTests.java │ │ ├── BasePathEmptyIntegrationTests.java │ │ ├── BasePathSimpleIntegrationTests.java │ │ ├── CatalogControllerIntegrationTests.java │ │ ├── NonBindableServiceInstanceBindingControllerIntegrationTests.java │ │ ├── RequestIdentityWebFilterIntegrationTests.java │ │ ├── RequestIdentityWebFilterTests.java │ │ ├── ServiceBrokerWebFluxAutoConfigurationTests.java │ │ ├── ServiceInstanceBindingControllerIntegrationTests.java │ │ └── ServiceInstanceControllerIntegrationTests.java │ │ └── servlet │ │ ├── AbstractBasePathWebApplicationIntegrationTests.java │ │ ├── ApiVersionInterceptorIntegrationTests.java │ │ ├── ApiVersionInterceptorTests.java │ │ ├── ApiVersionWebMvcAutoConfigurationTests.java │ │ ├── BasePathDoubleIntegrationTests.java │ │ ├── BasePathEmptyIntegrationTests.java │ │ ├── BasePathSimpleIntegrationTests.java │ │ ├── CatalogControllerIntegrationTests.java │ │ ├── NonBindableServiceInstanceBindingControllerIntegrationTests.java │ │ ├── RequestIdentityInterceptorIntegrationTests.java │ │ ├── RequestIdentityInterceptorTests.java │ │ ├── ServiceBrokerWebMvcAutoConfigurationTests.java │ │ ├── ServiceInstanceBindingControllerIntegrationTests.java │ │ └── ServiceInstanceControllerIntegrationTests.java │ └── resources │ ├── META-INF │ └── services │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ ├── apiversion.properties │ ├── catalog-full.properties │ ├── catalog-full.yml │ ├── catalog-minimal.properties │ ├── catalog-minimal.yml │ └── spring-logo.png ├── spring-cloud-open-service-broker-contract-tests ├── build.gradle └── src │ └── contractTest │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── servicebroker │ │ └── contract │ │ ├── BindingReactiveBase.java │ │ ├── BindingServletBase.java │ │ ├── CatalogReactiveBase.java │ │ ├── CatalogServletBase.java │ │ ├── InstanceReactiveBase.java │ │ ├── InstanceServletBase.java │ │ └── package-info.java │ └── resources │ └── contracts │ ├── binding │ ├── reactive │ │ ├── async_in_progress_response.json │ │ ├── async_response.json │ │ ├── createAppBinding.groovy │ │ ├── createAppBindingAsync.groovy │ │ ├── createAppBindingExisting.groovy │ │ ├── createAppBindingInProgress.groovy │ │ ├── createAppBindingUnknownId.groovy │ │ ├── create_app_binding.json │ │ ├── deleteAppBinding.groovy │ │ ├── deleteAppBindingAsync.groovy │ │ ├── deleteAppBindingInProgress.groovy │ │ ├── deleteAppBindingUnknownBindingId.groovy │ │ ├── deleteAppBindingUnknownId.groovy │ │ ├── getAppBinding.groovy │ │ ├── getAppBindingInProgress.groovy │ │ ├── lastOperation.groovy │ │ ├── lastOperationDeleted.groovy │ │ ├── lastOperationFailed.groovy │ │ └── lastOperationInProgress.groovy │ └── servlet │ │ ├── async_in_progress_response.json │ │ ├── async_response.json │ │ ├── createAppBinding.groovy │ │ ├── createAppBindingAsync.groovy │ │ ├── createAppBindingExisting.groovy │ │ ├── createAppBindingInProgress.groovy │ │ ├── createAppBindingUnknownId.groovy │ │ ├── create_app_binding.json │ │ ├── deleteAppBinding.groovy │ │ ├── deleteAppBindingAsync.groovy │ │ ├── deleteAppBindingInProgress.groovy │ │ ├── deleteAppBindingUnknownBindingId.groovy │ │ ├── deleteAppBindingUnknownId.groovy │ │ ├── getAppBinding.groovy │ │ ├── getAppBindingInProgress.groovy │ │ ├── lastOperation.groovy │ │ ├── lastOperationDeleted.groovy │ │ ├── lastOperationFailed.groovy │ │ └── lastOperationInProgress.groovy │ ├── catalog │ ├── reactive │ │ ├── retrieveCatalog.groovy │ │ ├── retrieveInstanceCatalog.groovy │ │ └── retrieve_catalog_response.json │ └── servlet │ │ ├── retrieveCatalog.groovy │ │ ├── retrieveInstanceCatalog.groovy │ │ └── retrieve_catalog_response.json │ └── instance │ ├── reactive │ ├── async_in_progress_response.json │ ├── async_response.json │ ├── createServiceInstance.groovy │ ├── createServiceInstanceAsync.groovy │ ├── createServiceInstanceExisting.groovy │ ├── createServiceInstanceInProgress.groovy │ ├── create_service_instance.json │ ├── deleteServiceInstance.groovy │ ├── deleteServiceInstanceAsync.groovy │ ├── deleteServiceInstanceInProgress.groovy │ ├── deleteServiceInstanceUnknownId.groovy │ ├── getServiceInstance.groovy │ ├── getServiceInstanceInProgress.groovy │ ├── lastOperation.groovy │ ├── lastOperationDeleted.groovy │ ├── lastOperationFailed.groovy │ ├── lastOperationInProgress.groovy │ ├── updateServiceInstance.groovy │ ├── updateServiceInstanceAsync.groovy │ ├── updateServiceInstanceInProgress.groovy │ ├── update_async_response.json │ └── update_response.json │ └── servlet │ ├── async_in_progress_response.json │ ├── async_response.json │ ├── createServiceInstance.groovy │ ├── createServiceInstanceAsync.groovy │ ├── createServiceInstanceExisting.groovy │ ├── createServiceInstanceInProgress.groovy │ ├── create_service_instance.json │ ├── deleteServiceInstance.groovy │ ├── deleteServiceInstanceAsync.groovy │ ├── deleteServiceInstanceInProgress.groovy │ ├── deleteServiceInstanceUnknownId.groovy │ ├── getServiceInstance.groovy │ ├── getServiceInstanceInProgress.groovy │ ├── lastOperation.groovy │ ├── lastOperationDeleted.groovy │ ├── lastOperationFailed.groovy │ ├── lastOperationInProgress.groovy │ ├── updateServiceInstance.groovy │ ├── updateServiceInstanceAsync.groovy │ ├── updateServiceInstanceInProgress.groovy │ ├── update_async_response.json │ └── update_response.json ├── spring-cloud-open-service-broker-core ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── servicebroker │ │ ├── annotation │ │ ├── ServiceBrokerRestController.java │ │ └── package-info.java │ │ ├── controller │ │ ├── BaseController.java │ │ ├── CatalogController.java │ │ ├── ServiceBrokerExceptionHandler.java │ │ ├── ServiceBrokerWebFluxExceptionHandler.java │ │ ├── ServiceBrokerWebMvcExceptionHandler.java │ │ ├── ServiceInstanceBindingController.java │ │ ├── ServiceInstanceController.java │ │ └── package-info.java │ │ ├── exception │ │ ├── ServiceBrokerApiVersionErrorMessage.java │ │ ├── ServiceBrokerApiVersionException.java │ │ ├── ServiceBrokerApiVersionMissingException.java │ │ ├── ServiceBrokerAsyncRequiredException.java │ │ ├── ServiceBrokerBindingRequiresAppException.java │ │ ├── ServiceBrokerConcurrencyException.java │ │ ├── ServiceBrokerCreateOperationInProgressException.java │ │ ├── ServiceBrokerDeleteOperationInProgressException.java │ │ ├── ServiceBrokerException.java │ │ ├── ServiceBrokerInvalidOriginatingIdentityException.java │ │ ├── ServiceBrokerInvalidParametersException.java │ │ ├── ServiceBrokerMaintenanceInfoConflictException.java │ │ ├── ServiceBrokerOperationInProgressException.java │ │ ├── ServiceBrokerUnavailableException.java │ │ ├── ServiceBrokerUpdateOperationInProgressException.java │ │ ├── ServiceDefinitionDoesNotExistException.java │ │ ├── ServiceDefinitionPlanDoesNotExistException.java │ │ ├── ServiceInstanceBindingDoesNotExistException.java │ │ ├── ServiceInstanceBindingExistsException.java │ │ ├── ServiceInstanceDoesNotExistException.java │ │ ├── ServiceInstanceExistsException.java │ │ ├── ServiceInstanceUpdateNotSupportedException.java │ │ └── package-info.java │ │ ├── model │ │ ├── AsyncServiceBrokerRequest.java │ │ ├── AsyncServiceBrokerResponse.java │ │ ├── BrokerApiVersion.java │ │ ├── CloudFoundryContext.java │ │ ├── Context.java │ │ ├── KubernetesContext.java │ │ ├── PlatformContext.java │ │ ├── ServiceBrokerRequest.java │ │ ├── binding │ │ │ ├── BindResource.java │ │ │ ├── BindingMetadata.java │ │ │ ├── CreateServiceInstanceAppBindingResponse.java │ │ │ ├── CreateServiceInstanceBindingRequest.java │ │ │ ├── CreateServiceInstanceBindingResponse.java │ │ │ ├── CreateServiceInstanceRouteBindingResponse.java │ │ │ ├── DeleteServiceInstanceBindingRequest.java │ │ │ ├── DeleteServiceInstanceBindingResponse.java │ │ │ ├── Endpoint.java │ │ │ ├── GetLastServiceBindingOperationRequest.java │ │ │ ├── GetLastServiceBindingOperationResponse.java │ │ │ ├── GetServiceInstanceAppBindingResponse.java │ │ │ ├── GetServiceInstanceBindingRequest.java │ │ │ ├── GetServiceInstanceBindingResponse.java │ │ │ ├── GetServiceInstanceRouteBindingResponse.java │ │ │ ├── SharedVolumeDevice.java │ │ │ ├── VolumeDevice.java │ │ │ ├── VolumeMount.java │ │ │ └── package-info.java │ │ ├── catalog │ │ │ ├── Catalog.java │ │ │ ├── DashboardClient.java │ │ │ ├── MaintenanceInfo.java │ │ │ ├── MethodSchema.java │ │ │ ├── Plan.java │ │ │ ├── Schemas.java │ │ │ ├── ServiceBindingSchema.java │ │ │ ├── ServiceDefinition.java │ │ │ ├── ServiceDefinitionRequires.java │ │ │ ├── ServiceInstanceSchema.java │ │ │ └── package-info.java │ │ ├── error │ │ │ ├── ErrorMessage.java │ │ │ ├── OperationInProgressMessage.java │ │ │ └── package-info.java │ │ ├── instance │ │ │ ├── AsyncParameterizedServiceInstanceRequest.java │ │ │ ├── CreateServiceInstanceRequest.java │ │ │ ├── CreateServiceInstanceResponse.java │ │ │ ├── DeleteServiceInstanceRequest.java │ │ │ ├── DeleteServiceInstanceResponse.java │ │ │ ├── GetLastServiceOperationRequest.java │ │ │ ├── GetLastServiceOperationResponse.java │ │ │ ├── GetServiceInstanceRequest.java │ │ │ ├── GetServiceInstanceResponse.java │ │ │ ├── OperationState.java │ │ │ ├── ServiceInstanceMetadata.java │ │ │ ├── UpdateServiceInstanceRequest.java │ │ │ ├── UpdateServiceInstanceResponse.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── util │ │ │ ├── ParameterBeanMapperUtils.java │ │ │ └── package-info.java │ │ └── service │ │ ├── BeanCatalogService.java │ │ ├── CatalogService.java │ │ ├── NonBindableServiceInstanceBindingService.java │ │ ├── ServiceInstanceBindingEventService.java │ │ ├── ServiceInstanceBindingService.java │ │ ├── ServiceInstanceEventService.java │ │ ├── ServiceInstanceService.java │ │ ├── events │ │ ├── AsyncOperationServiceInstanceBindingEventFlowRegistry.java │ │ ├── AsyncOperationServiceInstanceEventFlowRegistry.java │ │ ├── CreateServiceInstanceBindingEventFlowRegistry.java │ │ ├── CreateServiceInstanceEventFlowRegistry.java │ │ ├── DeleteServiceInstanceBindingEventFlowRegistry.java │ │ ├── DeleteServiceInstanceEventFlowRegistry.java │ │ ├── EventFlowRegistries.java │ │ ├── EventFlowRegistry.java │ │ ├── UpdateServiceInstanceEventFlowRegistry.java │ │ ├── flows │ │ │ ├── AsyncOperationServiceInstanceBindingCompletionFlow.java │ │ │ ├── AsyncOperationServiceInstanceBindingErrorFlow.java │ │ │ ├── AsyncOperationServiceInstanceBindingInitializationFlow.java │ │ │ ├── AsyncOperationServiceInstanceCompletionFlow.java │ │ │ ├── AsyncOperationServiceInstanceErrorFlow.java │ │ │ ├── AsyncOperationServiceInstanceInitializationFlow.java │ │ │ ├── CreateServiceInstanceBindingCompletionFlow.java │ │ │ ├── CreateServiceInstanceBindingErrorFlow.java │ │ │ ├── CreateServiceInstanceBindingInitializationFlow.java │ │ │ ├── CreateServiceInstanceCompletionFlow.java │ │ │ ├── CreateServiceInstanceErrorFlow.java │ │ │ ├── CreateServiceInstanceInitializationFlow.java │ │ │ ├── DeleteServiceInstanceBindingCompletionFlow.java │ │ │ ├── DeleteServiceInstanceBindingErrorFlow.java │ │ │ ├── DeleteServiceInstanceBindingInitializationFlow.java │ │ │ ├── DeleteServiceInstanceCompletionFlow.java │ │ │ ├── DeleteServiceInstanceErrorFlow.java │ │ │ ├── DeleteServiceInstanceInitializationFlow.java │ │ │ ├── UpdateServiceInstanceCompletionFlow.java │ │ │ ├── UpdateServiceInstanceErrorFlow.java │ │ │ ├── UpdateServiceInstanceInitializationFlow.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ └── package-info.java │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── servicebroker │ │ ├── JsonPathAssert.java │ │ ├── JsonUtils.java │ │ ├── controller │ │ ├── BaseControllerTests.java │ │ ├── CatalogControllerTests.java │ │ ├── ControllerRequestTests.java │ │ ├── ServiceBrokerExceptionHandlerTests.java │ │ ├── ServiceBrokerWebFluxExceptionHandlerTests.java │ │ ├── ServiceBrokerWebMvcExceptionHandlerTests.java │ │ ├── ServiceInstanceBindingControllerRequestTests.java │ │ ├── ServiceInstanceBindingControllerResponseCodeTests.java │ │ ├── ServiceInstanceControllerRequestTests.java │ │ └── ServiceInstanceControllerResponseCodeTests.java │ │ ├── exception │ │ ├── ServiceBrokerApiVersionErrorMessageTests.java │ │ ├── ServiceBrokerExceptionTests.java │ │ ├── ServiceBrokerInvalidParametersExceptionTests.java │ │ ├── ServiceInstanceDoesNotExistExceptionTests.java │ │ └── ServiceInstanceUpdateNotSupportedExceptionTests.java │ │ ├── model │ │ ├── AsyncServiceBrokerRequestTests.java │ │ ├── AsyncServiceBrokerResponseTests.java │ │ ├── CloudFoundryContextTests.java │ │ ├── ContextTests.java │ │ ├── KubernetesContextTests.java │ │ ├── PlatformContextTests.java │ │ ├── ServiceBrokerRequestTests.java │ │ ├── binding │ │ │ ├── BindResourceTests.java │ │ │ ├── BindingMetadataTests.java │ │ │ ├── CreateServiceInstanceAppBindingResponseTests.java │ │ │ ├── CreateServiceInstanceBindingRequestTests.java │ │ │ ├── CreateServiceInstanceBindingResponseTests.java │ │ │ ├── CreateServiceInstanceRouteBindingResponseTests.java │ │ │ ├── DeleteServiceInstanceBindingRequestTests.java │ │ │ ├── DeleteServiceInstanceBindingResponseTests.java │ │ │ ├── GetLastServiceBindingOperationRequestTests.java │ │ │ ├── GetLastServiceBindingOperationResponseTests.java │ │ │ ├── GetServiceInstanceAppBindingResponseTests.java │ │ │ ├── GetServiceInstanceBindingRequestTests.java │ │ │ ├── GetServiceInstanceBindingResponseTests.java │ │ │ ├── GetServiceInstanceRouteBindingResponseTests.java │ │ │ ├── SharedVolumeDeviceTests.java │ │ │ └── VolumeMountTests.java │ │ ├── catalog │ │ │ ├── CatalogTests.java │ │ │ ├── DashboardClientTests.java │ │ │ ├── MaintenanceInfoTests.java │ │ │ ├── PlanTests.java │ │ │ ├── SchemasTests.java │ │ │ └── ServiceDefinitionTests.java │ │ ├── error │ │ │ ├── ErrorMessageTests.java │ │ │ └── OperationInProgressMessageTests.java │ │ ├── instance │ │ │ ├── AsyncParameterizedServiceInstanceRequestTests.java │ │ │ ├── CreateServiceInstanceRequestTests.java │ │ │ ├── CreateServiceInstanceResponseTests.java │ │ │ ├── DeleteServiceInstanceRequestTests.java │ │ │ ├── DeleteServiceInstanceResponseTests.java │ │ │ ├── GetLastServiceOperationRequestTests.java │ │ │ ├── GetLastServiceOperationResponseTests.java │ │ │ ├── GetServiceInstanceRequestTests.java │ │ │ ├── GetServiceInstanceResponseTests.java │ │ │ ├── OperationStateTests.java │ │ │ ├── ServiceInstanceMetadataTests.java │ │ │ ├── UpdateServiceInstanceRequestTests.java │ │ │ └── UpdateServiceInstanceResponseTests.java │ │ └── util │ │ │ └── ParameterBeanMapperUtilsTests.java │ │ └── service │ │ ├── BeanCatalogServiceTests.java │ │ ├── EventFlowTestResults.java │ │ ├── NonBindableServiceInstanceBindingServiceTests.java │ │ ├── ServiceInstanceBindingEventServiceTests.java │ │ ├── ServiceInstanceEventServiceTests.java │ │ └── events │ │ └── flows │ │ ├── AsyncOperationServiceInstanceBindingCompletionFlowTests.java │ │ ├── AsyncOperationServiceInstanceBindingErrorFlowTests.java │ │ └── AsyncOperationServiceInstanceBindingInitializationFlowTests.java │ └── resources │ ├── bindRequest.json │ ├── bindRequestWithOnlyRequiredFields.json │ ├── bindResource.json │ ├── catalog.json │ ├── createAppBindingResponse.json │ ├── createRequest.json │ ├── createResponse.json │ ├── createRouteBindingResponse.json │ ├── deleteResponse.json │ ├── getAppBindingResponse.json │ ├── getLastBindingOperationResponse.json │ ├── getLastOperationResponse.json │ ├── getResponse.json │ ├── getRouteBindingResponse.json │ ├── operationState.json │ ├── requestWithCustomContext.json │ ├── requestWithEmptyParametersAndKubernetesContext.json │ ├── requestWithParametersAndCloudFoundryContext.json │ ├── updateRequest.json │ └── updateResponse.json ├── spring-cloud-open-service-broker-docs ├── build.gradle └── src │ ├── docs │ └── asciidoc │ │ ├── api-version-verification.adoc │ │ ├── example-service-broker.adoc │ │ ├── getting-started.adoc │ │ ├── index.adoc │ │ ├── introduction.adoc │ │ ├── service-bindings.adoc │ │ ├── service-broker-security.adoc │ │ ├── service-catalog.adoc │ │ └── service-instances.adoc │ └── test │ └── java │ └── com │ └── example │ └── servicebroker │ ├── ExampleApiVersionConfiguration.java │ ├── ExampleCatalogConfiguration.java │ ├── ExampleCatalogService.java │ ├── ExampleSecurityConfig.java │ ├── ExampleServiceBindingEventFlowsConfiguration.java │ ├── ExampleServiceBindingEventFlowsConfiguration2.java │ ├── ExampleServiceBindingService.java │ ├── ExampleServiceInstanceEventFlowsConfiguration.java │ ├── ExampleServiceInstanceEventFlowsConfiguration2.java │ ├── ExampleServiceInstanceService.java │ ├── catalog-minimal.properties │ └── catalog-minimal.yml ├── spring-cloud-starter-open-service-broker └── build.gradle └── src ├── checkstyle ├── checkstyle-suppressions.xml └── checkstyle.xml └── idea └── spring.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.{adoc,bat,groovy,html,java,js,jsp,kt,kts,md,properties,py,rb,sh,sql,svg,txt,xml,xsd}] 4 | charset = utf-8 5 | 6 | [*.{groovy,java,kt,kts,xml,xsd}] 7 | indent_style = tab 8 | indent_size = 4 9 | continuation_indent_size = 8 10 | end_of_line = lf 11 | insert_final_newline = true 12 | ij_java_class_count_to_use_import_on_demand = 100 13 | ij_java_names_count_to_use_import_on_demand = 100 14 | ij_java_imports_layout = jakarta.**,|,java.**,|,*,|,org.springframework.**,|,$* 15 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | PATH_add scripts 2 | -------------------------------------------------------------------------------- /.github/dco.yml: -------------------------------------------------------------------------------- 1 | require: 2 | members: false 3 | -------------------------------------------------------------------------------- /.github/workflows/java-11.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle 3 | 4 | name: Java 11 5 | 6 | on: 7 | push: 8 | branches: [ 3.6.* ] 9 | pull_request: 10 | branches: [ 3.6.* ] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | name: Java 11 build 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Set up Java 11 19 | uses: actions/setup-java@v4 20 | with: 21 | java-version: 11 22 | distribution: liberica 23 | - name: Set up Gradle 24 | uses: gradle/actions/setup-gradle@v4 25 | - name: Build with Gradle 26 | run: ./gradlew build 27 | -------------------------------------------------------------------------------- /.github/workflows/java-17.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle 3 | 4 | name: Java 17 5 | 6 | on: 7 | push: 8 | branches: [ 4.5.*, 4.4.*, 4.3.*, 4.2.* ] 9 | pull_request: 10 | branches: [ 4.5.*, 4.4.*, 4.3.*, 4.2.* ] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | name: Java 17 build 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Set up Java 17 19 | uses: actions/setup-java@v4 20 | with: 21 | java-version: 17 22 | distribution: liberica 23 | - name: Set up Gradle 24 | uses: gradle/actions/setup-gradle@v4 25 | - name: Build with Gradle 26 | run: ./gradlew build 27 | -------------------------------------------------------------------------------- /.github/workflows/java-21.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle 3 | 4 | name: Java 21 5 | 6 | on: 7 | push: 8 | branches: [ 4.5.*, 4.4.*, 4.3.*, 4.2.* ] 9 | pull_request: 10 | branches: [ 4.5.*, 4.4.*, 4.3.*, 4.2.* ] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | name: Java 21 build 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Set up Java 21 19 | uses: actions/setup-java@v4 20 | with: 21 | java-version: 21 22 | distribution: liberica 23 | - name: Set up Gradle 24 | uses: gradle/actions/setup-gradle@v4 25 | - name: Build with Gradle 26 | run: ./gradlew build 27 | -------------------------------------------------------------------------------- /.github/workflows/java-8.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle 3 | 4 | name: Java 8 5 | 6 | on: 7 | push: 8 | branches: [ 3.6.* ] 9 | pull_request: 10 | branches: [ 3.6.* ] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | name: Java 8 build 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Set up Java 8 19 | uses: actions/setup-java@v4 20 | with: 21 | java-version: 8 22 | distribution: liberica 23 | - name: Set up Gradle 24 | uses: gradle/actions/setup-gradle@v4 25 | - name: Build with Gradle 26 | run: ./gradlew build 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .classpath 2 | .project 3 | .settings 4 | .springBeans 5 | .gradle 6 | build 7 | target 8 | bin 9 | out 10 | *.iml 11 | *.ipr 12 | *.iws 13 | *.sw? 14 | .idea 15 | .rest-shell.log 16 | spring-shell.log 17 | .DS_Store 18 | .vscode 19 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | Roy Clarkson 2 | -------------------------------------------------------------------------------- /.sdkmanrc: -------------------------------------------------------------------------------- 1 | # Enable auto-env through the sdkman_auto_env config 2 | # Add key=value pairs of SDKs to use below 3 | java=17.0.5-librca 4 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Spring Cloud Open Service Broker 2 | Copyright (c) 2025 VMware, Inc. All Rights Reserved. 3 | 4 | This product is licensed to you under the Apache 2.0 license (the "License"). 5 | You may not use this product except in compliance with the Apache 2.0 License. 6 | 7 | This product may include a number of subcomponents with separate copyright 8 | notices and license terms. Your use of these subcomponents is subject to the 9 | terms and conditions of the subcomponent's license, as noted in the LICENSE 10 | file. 11 | -------------------------------------------------------------------------------- /ci/config-concourse.yml: -------------------------------------------------------------------------------- 1 | artifactory-server: https://repo.spring.io 2 | build-name: spring-cloud-open-service-broker 3 | github-repo: https://github.com/spring-cloud/spring-cloud-open-service-broker 4 | -------------------------------------------------------------------------------- /ci/config/release-scripts.yml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | io.spring.concourse: DEBUG 4 | spring: 5 | main: 6 | banner-mode: off 7 | sonatype: 8 | exclude: 9 | - 'build-info\.json' 10 | - '.*\.zip' 11 | -------------------------------------------------------------------------------- /ci/images/scosb-ci/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM spring-scosb-docker-virtual.usw1.packages.broadcom.com/ubuntu:jammy 2 | 3 | ARG CONCOURSE_JAVA_SCRIPTS_VERSION=0.0.4 4 | ARG CONCOURSE_RELEASE_SCRIPTS_VERSION=0.3.4 5 | 6 | RUN apt-get update && \ 7 | apt-get install --no-install-recommends -y \ 8 | ca-certificates \ 9 | curl \ 10 | git \ 11 | gnupg \ 12 | jq \ 13 | net-tools \ 14 | openjdk-17-jdk-headless && \ 15 | apt-get clean 16 | 17 | ADD "https://raw.githubusercontent.com/spring-io/concourse-java-scripts/v$CONCOURSE_JAVA_SCRIPTS_VERSION/concourse-java.sh" /opt/ 18 | -------------------------------------------------------------------------------- /ci/scripts/build-project.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | 5 | readonly SKIP_TESTS="${SKIP_TESTS:-false}" 6 | 7 | # shellcheck source=common.sh 8 | source "$(dirname "$0")/common.sh" 9 | repository=$(pwd)/distribution-repository 10 | if [ "$SKIP_TESTS" == "true" ]; then 11 | build_task=assemble 12 | else 13 | build_task=build 14 | fi 15 | 16 | pushd git-repo >/dev/null 17 | ./gradlew clean "${build_task}" publish \ 18 | -PpublicationRepository="${repository}" 19 | popd >/dev/null 20 | -------------------------------------------------------------------------------- /ci/scripts/common.sh: -------------------------------------------------------------------------------- 1 | source /opt/concourse-java.sh 2 | export TERM=xterm-256color 3 | setup_symlinks 4 | -------------------------------------------------------------------------------- /ci/scripts/generate-docker-credentials.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | export TERM="xterm-256color" 6 | 7 | readonly DOCKER_CONFIG_OUTPUT="${DOCKER_CONFIG_OUTPUT:?must be set}" 8 | 9 | # Note that we don't use libs.sh here because that script requires bash, and 10 | # we don't have bash in this container image 11 | 12 | printf "%s" "$REGISTRY_PASSWORD" | docker login "$REGISTRY" --username "$REGISTRY_USERNAME" --password-stdin 13 | cp -v ~/.docker/config.json "$DOCKER_CONFIG_OUTPUT/" 14 | -------------------------------------------------------------------------------- /ci/scripts/promote.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | readonly BUILD_INFO_LOCATION="$(pwd)/artifactory-repo/build-info.json" 5 | readonly VERSION=$( jq -r '.buildInfo.modules[0].id' < "$BUILD_INFO_LOCATION" | sed 's/.*:.*:\(.*\)/\1/' ) 6 | 7 | java -jar /concourse-release-scripts.jar promote "$RELEASE_TYPE" "$BUILD_INFO_LOCATION" 8 | 9 | echo "Promotion complete" 10 | echo "$VERSION" > version/version 11 | -------------------------------------------------------------------------------- /ci/scripts/sync-to-maven-central.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | readonly BUILD_INFO_LOCATION="$(pwd)/artifactory-repo/build-info.json" 5 | readonly CONFIG_DIR="$(pwd)/git-repo/ci/config" 6 | 7 | java -jar /concourse-release-scripts.jar \ 8 | --spring.config.location="$CONFIG_DIR/release-scripts.yml" \ 9 | publishToCentral 'RELEASE' "$BUILD_INFO_LOCATION" "artifactory-repo" 10 | 11 | echo "Sync complete" 12 | -------------------------------------------------------------------------------- /ci/tasks/build-oci-image.yml: -------------------------------------------------------------------------------- 1 | --- 2 | platform: linux 3 | 4 | image_resource: 5 | type: registry-image 6 | source: 7 | repository: ((open-service-broker-virtual-docker-registry))/concourse/oci-build-task 8 | tag: 0.11.1 9 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 10 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 11 | 12 | inputs: 13 | - name: git-repo 14 | - name: docker-config 15 | 16 | outputs: 17 | - name: image 18 | 19 | run: 20 | path: build 21 | 22 | params: 23 | CONTEXT: 24 | DEBUG: true 25 | DOCKER_CONFIG: docker-config 26 | -------------------------------------------------------------------------------- /ci/tasks/build-project.yml: -------------------------------------------------------------------------------- 1 | --- 2 | platform: linux 3 | image_resource: 4 | type: registry-image 5 | source: 6 | repository: ((open-service-broker-dev-docker-registry))/ci/scosb-ci 7 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 8 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 9 | tag: ((ci-image-tag)) 10 | inputs: 11 | - name: git-repo 12 | outputs: 13 | - name: distribution-repository 14 | caches: 15 | - path: maven 16 | - path: gradle 17 | run: 18 | path: git-repo/ci/scripts/build-project.sh 19 | params: 20 | ARTIFACTORY_USERNAME: ((artifactory-username)) 21 | ARTIFACTORY_PASSWORD: ((artifactory-password)) 22 | -------------------------------------------------------------------------------- /ci/tasks/generate-docker-credentials.yml: -------------------------------------------------------------------------------- 1 | platform: linux 2 | 3 | image_resource: 4 | type: registry-image 5 | source: 6 | repository: ((open-service-broker-virtual-docker-registry))/docker 7 | tag: 26-cli 8 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 9 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 10 | 11 | inputs: 12 | - name: git-repo 13 | 14 | outputs: 15 | - name: docker-config 16 | 17 | run: 18 | path: ci/scripts/generate-docker-credentials.sh 19 | dir: git-repo 20 | 21 | params: 22 | DOCKER_CONFIG_OUTPUT: ../docker-config 23 | REGISTRY: ((open-service-broker-virtual-docker-registry)) 24 | REGISTRY_USERNAME: ((broadcom-jfrog-artifactory-robot-account.username)) 25 | REGISTRY_PASSWORD: ((broadcom-jfrog-artifactory-robot-account.password)) 26 | -------------------------------------------------------------------------------- /ci/tasks/promote.yml: -------------------------------------------------------------------------------- 1 | --- 2 | platform: linux 3 | image_resource: 4 | type: registry-image 5 | source: 6 | repository: ((open-service-broker-virtual-docker-registry))/springio/concourse-release-scripts 7 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 8 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 9 | tag: '0.3.4' 10 | inputs: 11 | - name: git-repo 12 | - name: artifactory-repo 13 | outputs: 14 | - name: version 15 | params: 16 | RELEASE_TYPE: ((release-type)) 17 | ARTIFACTORY_SERVER: ((artifactory-server)) 18 | ARTIFACTORY_USERNAME: ((artifactory-username)) 19 | ARTIFACTORY_PASSWORD: ((artifactory-password)) 20 | run: 21 | path: git-repo/ci/scripts/promote.sh 22 | -------------------------------------------------------------------------------- /ci/tasks/stage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | platform: linux 3 | image_resource: 4 | type: registry-image 5 | source: 6 | repository: ((open-service-broker-dev-docker-registry))/ci/scosb-ci 7 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 8 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 9 | tag: ((ci-image-tag)) 10 | inputs: 11 | - name: git-repo 12 | outputs: 13 | - name: stage-git-repo 14 | - name: distribution-repository 15 | params: 16 | RELEASE_TYPE: ((release-type)) 17 | USER_NAME: ((git-username)) 18 | USER_EMAIL: ((git-email)) 19 | caches: 20 | - path: maven 21 | - path: gradle 22 | run: 23 | path: git-repo/ci/scripts/stage.sh 24 | -------------------------------------------------------------------------------- /ci/tasks/sync-to-maven-central.yml: -------------------------------------------------------------------------------- 1 | --- 2 | platform: linux 3 | image_resource: 4 | type: registry-image 5 | source: 6 | repository: ((open-service-broker-virtual-docker-registry))/springio/concourse-release-scripts 7 | username: ((broadcom-jfrog-artifactory-robot-account.username)) 8 | password: ((broadcom-jfrog-artifactory-robot-account.password)) 9 | tag: '0.3.4' 10 | inputs: 11 | - name: git-repo 12 | - name: artifactory-repo 13 | params: 14 | SONATYPE_URL: ((sonatype-url)) 15 | SONATYPE_USERNAME: ((sonatype-user-token)) 16 | SONATYPE_PASSWORD: ((sonatype-user-token-password)) 17 | SONATYPE_STAGING_PROFILE_ID: ((sonatype-staging-profile-id)) 18 | run: 19 | path: git-repo/ci/scripts/sync-to-maven-central.sh 20 | -------------------------------------------------------------------------------- /config/nohttp/allowlist.lines: -------------------------------------------------------------------------------- 1 | // JSON schema URL used in tests 2 | ^http://json-schema.org/.*$ 3 | -------------------------------------------------------------------------------- /config/nohttp/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | version=4.5.1-SNAPSHOT 2 | 3 | org.gradle.caching=true 4 | org.gradle.parallel=true 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-cloud/spring-cloud-open-service-broker/b1534733df4b72669e2dc2d949736b4475340908/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /scripts/set-pipelines.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | readonly FLY_TARGET="${FLY_TARGET:-"scosb"}" 6 | 7 | set_pipeline() { 8 | local pipeline_name pipeline_definition branch ci_image_tag 9 | pipeline_name="${1:?pipeline name must be provided}" 10 | pipeline_definition="${2:?pipeline definition file must be provided}" 11 | branch="${3:?branch must be provided}" 12 | ci_image_tag="${4:-$branch}" 13 | 14 | echo "Setting $pipeline_name $branch pipeline..." 15 | fly --target "$FLY_TARGET" set-pipeline \ 16 | --pipeline "$pipeline_name" \ 17 | --config "$pipeline_definition" \ 18 | --load-vars-from config-concourse.yml \ 19 | --instance-var "branch=$branch" \ 20 | --var "ci-image-tag=$ci_image_tag" 21 | } 22 | 23 | main() { 24 | local -r branches=("4.5.x" "4.4.x" "4.3.x" "4.2.x") 25 | 26 | pushd "$(dirname "$0")/../ci" >/dev/null 27 | 28 | for branch in "${branches[@]}"; do 29 | set_pipeline scosb pipeline.yml "$branch" 30 | done 31 | 32 | popd >/dev/null 33 | } 34 | 35 | main 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webflux/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id 'org.springframework.boot' 19 | } 20 | 21 | description = "Spring Cloud Open Service Broker Acceptance WebFlux" 22 | 23 | dependencies { 24 | implementation platform("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") 25 | implementation 'org.springframework.boot:spring-boot-starter' 26 | implementation 'org.springframework.boot:spring-boot-starter-webflux' 27 | implementation project(':spring-cloud-starter-open-service-broker') 28 | testImplementation 'org.springframework.boot:spring-boot-starter-test' 29 | } 30 | 31 | // don't publish the jar for the acceptance tests project 32 | configurations.archives.artifacts.clear() 33 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webflux/src/main/java/org/springframework/cloud/servicebroker/acceptance/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Acceptance tests that verify functionality on Spring WebFlux. 19 | */ 20 | package org.springframework.cloud.servicebroker.acceptance; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webflux/src/test/java/org/springframework/cloud/servicebroker/acceptance/WebFluxApplicationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.acceptance; 18 | 19 | import org.junit.jupiter.api.Test; 20 | 21 | import org.springframework.beans.factory.annotation.Autowired; 22 | import org.springframework.boot.test.context.SpringBootTest; 23 | import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; 24 | import org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext; 25 | 26 | import static org.assertj.core.api.Assertions.assertThat; 27 | 28 | @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 29 | class WebFluxApplicationTests { 30 | 31 | @Autowired 32 | private ReactiveWebApplicationContext context; 33 | 34 | @Test 35 | void contextLoads() { 36 | assertThat(this.context).isNotNull(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webmvc/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | plugins { 18 | id 'org.springframework.boot' 19 | } 20 | 21 | description = "Spring Cloud Open Service Broker Acceptance WebMvc" 22 | 23 | dependencies { 24 | implementation platform("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") 25 | implementation 'org.springframework.boot:spring-boot-starter' 26 | implementation 'org.springframework.boot:spring-boot-starter-web' 27 | implementation project(':spring-cloud-starter-open-service-broker') 28 | testImplementation 'org.springframework.boot:spring-boot-starter-test' 29 | } 30 | 31 | // don't publish the jar for the acceptance tests project 32 | configurations.archives.artifacts.clear() 33 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webmvc/src/main/java/org/springframework/cloud/servicebroker/acceptance/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Acceptance tests that verify functionality on Spring MVC. 19 | */ 20 | package org.springframework.cloud.servicebroker.acceptance; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-acceptance-webmvc/src/test/java/org/springframework/cloud/servicebroker/acceptance/WebMvcApplicationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.acceptance; 18 | 19 | import org.junit.jupiter.api.Test; 20 | 21 | import org.springframework.beans.factory.annotation.Autowired; 22 | import org.springframework.boot.test.context.SpringBootTest; 23 | import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; 24 | import org.springframework.web.context.WebApplicationContext; 25 | 26 | import static org.assertj.core.api.Assertions.assertThat; 27 | 28 | @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 29 | class WebMvcApplicationTests { 30 | 31 | @Autowired 32 | private WebApplicationContext context; 33 | 34 | @Test 35 | void contextLoads() { 36 | assertThat(this.context).isNotNull(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/exception/CatalogDefinitionDoesNotExistException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web.exception; 18 | 19 | /** 20 | * An exception thrown when a Catalog is not configured. 21 | * 22 | * @author Roy Clarkson 23 | */ 24 | public class CatalogDefinitionDoesNotExistException extends RuntimeException { 25 | 26 | private static final long serialVersionUID = -6345978650178340540L; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/exception/ServiceInstanceServiceBeanDoesNotExistException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web.exception; 18 | 19 | /** 20 | * An exception thrown when a ServiceInstanceService bean is not configured. 21 | * 22 | * @author Roy Clarkson 23 | */ 24 | public class ServiceInstanceServiceBeanDoesNotExistException extends RuntimeException { 25 | 26 | private static final long serialVersionUID = -5517038451033555513L; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Exceptions specific to auto-configuration errors. 19 | */ 20 | package org.springframework.cloud.servicebroker.autoconfigure.web.exception; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for Spring Boot auto-configuration in web environments. 19 | */ 20 | package org.springframework.cloud.servicebroker.autoconfigure.web; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/reactive/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Auto-configuration to support Spring WebFlux. 19 | */ 20 | package org.springframework.cloud.servicebroker.autoconfigure.web.reactive; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/servlet/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Auto-configuration to support Spring MVC. 19 | */ 20 | package org.springframework.cloud.servicebroker.autoconfigure.web.servlet; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/java/org/springframework/cloud/servicebroker/autoconfigure/web/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Utilities. 19 | */ 20 | package org.springframework.cloud.servicebroker.autoconfigure.web.util; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": [ 3 | { 4 | "name": "spring.cloud.openservicebroker.api-version-check-enabled", 5 | "type": "java.lang.Boolean", 6 | "description": "Enable validation for service broker API version if a version is not specifically configured.", 7 | "defaultValue": true 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.diagnostics.FailureAnalyzer=\ 2 | org.springframework.cloud.servicebroker.autoconfigure.web.RequiredCatalogBeanFailureAnalyzer,\ 3 | org.springframework.cloud.servicebroker.autoconfigure.web.RequiredServiceInstanceServiceBeanFailureAnalyzer 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.servicebroker.autoconfigure.web.ServiceBrokerAutoConfiguration 2 | org.springframework.cloud.servicebroker.autoconfigure.web.servlet.ServiceBrokerWebMvcAutoConfiguration 3 | org.springframework.cloud.servicebroker.autoconfigure.web.servlet.ApiVersionWebMvcAutoConfiguration 4 | org.springframework.cloud.servicebroker.autoconfigure.web.reactive.ServiceBrokerWebFluxAutoConfiguration 5 | org.springframework.cloud.servicebroker.autoconfigure.web.reactive.ApiVersionWebFluxAutoConfiguration 6 | org.springframework.cloud.servicebroker.autoconfigure.web.EventFlowsAutoConfiguration 7 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/java/org/springframework/cloud/servicebroker/autoconfigure/web/BasicCatalogService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.catalog.Catalog; 22 | import org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition; 23 | import org.springframework.cloud.servicebroker.service.CatalogService; 24 | 25 | public class BasicCatalogService implements CatalogService { 26 | 27 | @Override 28 | public Mono getCatalog() { 29 | return Mono.empty(); 30 | } 31 | 32 | @Override 33 | public Mono getServiceDefinition(String serviceId) { 34 | return Mono.empty(); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/java/org/springframework/cloud/servicebroker/autoconfigure/web/CustomBlockHoundIntegration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web; 18 | 19 | import reactor.blockhound.BlockHound; 20 | import reactor.blockhound.integration.BlockHoundIntegration; 21 | 22 | public class CustomBlockHoundIntegration implements BlockHoundIntegration { 23 | 24 | @Override 25 | public void applyTo(BlockHound.Builder builder) { 26 | 27 | // uses java.io.RandomAccessFile#readBytes 28 | builder.allowBlockingCallsInside("org.springframework.validation.DataBinder", "validate"); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/java/org/springframework/cloud/servicebroker/autoconfigure/web/reactive/BasePathEmptyIntegrationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web.reactive; 18 | 19 | import org.junit.jupiter.api.Test; 20 | 21 | class BasePathEmptyIntegrationTests extends AbstractBasePathWebApplicationIntegrationTests { 22 | 23 | @Test 24 | void noBasePathFound() { 25 | assertFound("", "null"); 26 | } 27 | 28 | @Test 29 | void noBasePathWithPlatformIdFound() { 30 | assertFound("/123", "123"); 31 | } 32 | 33 | @Test 34 | void alternativeDoublePathNotFound() { 35 | assertNotFound("/api/broker"); 36 | } 37 | 38 | @Test 39 | void alternativeTriplePathNotFound() { 40 | assertNotFound("/api/broker/123"); 41 | } 42 | 43 | @Test 44 | void alternativeQuadruplePathNotFound() { 45 | assertNotFound("/api/broker/123/456"); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/java/org/springframework/cloud/servicebroker/autoconfigure/web/servlet/BasePathEmptyIntegrationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.autoconfigure.web.servlet; 18 | 19 | import org.junit.jupiter.api.Test; 20 | 21 | class BasePathEmptyIntegrationTests extends AbstractBasePathWebApplicationIntegrationTests { 22 | 23 | @Test 24 | void noBasePathFound() throws Exception { 25 | assertFound("", "null"); 26 | } 27 | 28 | @Test 29 | void noBasePathWithPlatformIdFound() throws Exception { 30 | assertFound("/123", "123"); 31 | } 32 | 33 | @Test 34 | void alternativeDoublePathNotFound() throws Exception { 35 | assertNotFound("/api/broker"); 36 | } 37 | 38 | @Test 39 | void alternativeTriplePathNotFound() throws Exception { 40 | assertNotFound("/api/broker/123"); 41 | } 42 | 43 | @Test 44 | void alternativeQuadruplePathNotFound() throws Exception { 45 | assertNotFound("/api/broker/123/456"); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2002-2025 the original author or authors. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | org.springframework.cloud.servicebroker.autoconfigure.web.CustomBlockHoundIntegration 18 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/resources/apiversion.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2002-2025 the original author or authors. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | spring.cloud.openservicebroker.api-version=42.321 18 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/resources/catalog-minimal.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2002-2025 the original author or authors. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | spring.cloud.openservicebroker.catalog.services[0].id=service-one-id 18 | spring.cloud.openservicebroker.catalog.services[0].name=Service One 19 | spring.cloud.openservicebroker.catalog.services[0].description=Description for Service One 20 | spring.cloud.openservicebroker.catalog.services[0].plans[0].id=plan-one-id 21 | spring.cloud.openservicebroker.catalog.services[0].plans[0].name=Plan One 22 | spring.cloud.openservicebroker.catalog.services[0].plans[0].description=Description for Plan One 23 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/resources/catalog-minimal.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | openservicebroker: 4 | catalog: 5 | services: 6 | - description: Description for Service One 7 | id: service-one-id 8 | name: Service One 9 | plans: 10 | - description: Description for Plan One 11 | id: plan-one-id 12 | name: Plan One 13 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-autoconfigure/src/test/resources/spring-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-cloud/spring-cloud-open-service-broker/b1534733df4b72669e2dc2d949736b4475340908/spring-cloud-open-service-broker-autoconfigure/src/test/resources/spring-logo.png -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/java/org/springframework/cloud/servicebroker/contract/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Base classes for contract tests. 19 | */ 20 | package org.springframework.cloud.servicebroker.contract; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/async_in_progress_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "task_10" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/createAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status CREATED() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/createAppBindingAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/createAppBindingExisting.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-three-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/createAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/createAppBindingUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status UNPROCESSABLE_ENTITY() 30 | body([ 31 | "description": $(regex('.+id=service-instance-four-id')) 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/create_app_binding.json: -------------------------------------------------------------------------------- 1 | { 2 | "context": { 3 | "platform": "cloudfoundry" 4 | }, 5 | "service_id": "service-one-id", 6 | "plan_id": "plan-one-id", 7 | "bind_resource": { 8 | "app_guid": "app-one-id" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/deleteAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "{}" 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/deleteAppBindingAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/deleteAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_in_progress_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/deleteAppBindingUnknownBindingId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-two-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status GONE() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/deleteAppBindingUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status UNPROCESSABLE_ENTITY() 26 | body([ 27 | "description": $(regex('.*id=service-instance-four-id')) 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/getAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "{}" 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/getAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id' 23 | } 24 | response { 25 | status NOT_FOUND() 26 | body([ 27 | "description": $(regex('.*=task_10')) 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/lastOperation.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/lastOperationDeleted.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-three-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status GONE() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/lastOperationFailed.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "failed", 28 | "description": "not so good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/reactive/lastOperationInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "in progress", 28 | "description": "working on it" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/async_in_progress_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "task_10" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/createAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status CREATED() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/createAppBindingAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/createAppBindingExisting.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-three-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/createAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/createAppBindingUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_app_binding.json")) 23 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status UNPROCESSABLE_ENTITY() 30 | body([ 31 | "description": $(regex('.+id=service-instance-four-id')) 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/create_app_binding.json: -------------------------------------------------------------------------------- 1 | { 2 | "context": { 3 | "platform": "cloudfoundry" 4 | }, 5 | "service_id": "service-one-id", 6 | "plan_id": "plan-one-id", 7 | "bind_resource": { 8 | "app_guid": "app-one-id" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/deleteAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "{}" 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/deleteAppBindingAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/deleteAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_in_progress_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/deleteAppBindingUnknownBindingId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-two-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status GONE() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/deleteAppBindingUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status UNPROCESSABLE_ENTITY() 26 | body([ 27 | "description": $(regex('.*id=service-instance-four-id')) 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/getAppBinding.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "{}" 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/getAppBindingInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id' 23 | } 24 | response { 25 | status NOT_FOUND() 26 | body([ 27 | "description": $(regex('.*=task_10')) 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/lastOperation.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/lastOperationDeleted.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-three-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status GONE() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/lastOperationFailed.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-four-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "failed", 28 | "description": "not so good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/binding/servlet/lastOperationInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package binding.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/service_bindings/service-binding-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "in progress", 28 | "description": "working on it" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/catalog/reactive/retrieveCatalog.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package catalog.reactive 17 | 18 | org.springframework.cloud.contract.spec.Contract.make { 19 | request { 20 | method 'GET' 21 | url '/v2/catalog' 22 | headers { 23 | contentType('application/json') 24 | } 25 | } 26 | response { 27 | status 200 28 | body(file("retrieve_catalog_response.json")) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/catalog/reactive/retrieveInstanceCatalog.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package catalog.reactive 17 | 18 | org.springframework.cloud.contract.spec.Contract.make { 19 | request { 20 | method 'GET' 21 | url '/123/v2/catalog' 22 | headers { 23 | contentType('application/json') 24 | } 25 | } 26 | response { 27 | status 200 28 | body(file("retrieve_catalog_response.json")) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/catalog/servlet/retrieveCatalog.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package catalog.servlet 17 | 18 | org.springframework.cloud.contract.spec.Contract.make { 19 | request { 20 | method 'GET' 21 | url '/v2/catalog' 22 | headers { 23 | contentType('application/json') 24 | } 25 | } 26 | response { 27 | status 200 28 | body(file("retrieve_catalog_response.json")) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/catalog/servlet/retrieveInstanceCatalog.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package catalog.servlet 17 | 18 | org.springframework.cloud.contract.spec.Contract.make { 19 | request { 20 | method 'GET' 21 | url '/123/v2/catalog' 22 | headers { 23 | contentType('application/json') 24 | } 25 | } 26 | response { 27 | status 200 28 | body(file("retrieve_catalog_response.json")) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/async_in_progress_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "task_10" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/createServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=false' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status CREATED() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/createServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/createServiceInstanceExisting.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-three-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/createServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-two-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/create_service_instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "platform_instance_id": null, 3 | "api_info_location": null, 4 | "originating_identity": null, 5 | "async_accepted": false, 6 | "parameters": {}, 7 | "context": null, 8 | "plan_id": "plan-one-id", 9 | "organization_guid": null, 10 | "space_guid": null, 11 | "service_instance_id": null, 12 | "service_definition": null, 13 | "service_id": "service-one-id" 14 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/deleteServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=false' 23 | } 24 | response { 25 | status OK() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/deleteServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/deleteServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-two-id?service_id=service-one-id&plan_id=plan-one-id' 23 | } 24 | response { 25 | status ACCEPTED() 26 | body(file('async_in_progress_response.json')) 27 | headers { 28 | contentType('application/json') 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/deleteServiceInstanceUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-four-id?service_id=service-one-id&plan_id=plan-one-id' 23 | } 24 | response { 25 | status GONE() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/getServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "{}" 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/getServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id' 23 | } 24 | response { 25 | status NOT_FOUND() 26 | body([ 27 | "description": $(regex('.*=task_10')) 28 | ]) 29 | headers { 30 | contentType('application/json') 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/lastOperation.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/lastOperationDeleted.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-three-id/last_operation' 23 | } 24 | response { 25 | status GONE() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all gone" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/lastOperationFailed.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-four-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "failed", 28 | "description": "not so good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/lastOperationInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "in progress", 28 | "description": "working on it" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/updateServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body(file('update_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/updateServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('update_async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/updateServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.reactive 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-two-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/update_async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working", 3 | "dashboard_url": "https://dashboard.example.local" 4 | } 5 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/reactive/update_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "dashboard_url": "https://dashboard.example.local" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/async_in_progress_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "task_10" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/createServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=false' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status CREATED() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/createServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/createServiceInstanceExisting.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-three-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body([ 31 | "{}" 32 | ]) 33 | headers { 34 | contentType('application/json') 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/createServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PUT() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-two-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/create_service_instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "platform_instance_id": null, 3 | "api_info_location": null, 4 | "originating_identity": null, 5 | "async_accepted": false, 6 | "parameters": {}, 7 | "context": null, 8 | "plan_id": "plan-one-id", 9 | "organization_guid": null, 10 | "space_guid": null, 11 | "service_instance_id": null, 12 | "service_definition": null, 13 | "service_id": "service-one-id" 14 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/deleteServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method 'DELETE' 22 | url '/v2/service_instances/service-instance-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=false' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status 200 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/deleteServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-one-id?service_id=service-one-id&plan_id=plan-one-id&accepts_incomplete=true' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status ACCEPTED() 29 | body(file('async_response.json')) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/deleteServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-two-id?service_id=service-one-id&plan_id=plan-one-id' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status ACCEPTED() 29 | body(file('async_in_progress_response.json')) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/deleteServiceInstanceUnknownId.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method DELETE() 22 | url '/v2/service_instances/service-instance-four-id?service_id=service-one-id&plan_id=plan-one-id' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status GONE() 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/getServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status OK() 29 | body([ 30 | "{}" 31 | ]) 32 | headers { 33 | contentType('application/json') 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/getServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id' 23 | headers { 24 | contentType('application/json') 25 | } 26 | } 27 | response { 28 | status NOT_FOUND() 29 | body([ 30 | "description": $(regex('.*=task_10')) 31 | ]) 32 | headers { 33 | contentType('application/json') 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/lastOperation.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-one-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/lastOperationDeleted.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-three-id/last_operation' 23 | } 24 | response { 25 | status GONE() 26 | body([ 27 | "state" : "succeeded", 28 | "description": "all gone" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/lastOperationFailed.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-four-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "failed", 28 | "description": "not so good" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/lastOperationInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method GET() 22 | url '/v2/service_instances/service-instance-two-id/last_operation' 23 | } 24 | response { 25 | status OK() 26 | body([ 27 | "state" : "in progress", 28 | "description": "working on it" 29 | ]) 30 | headers { 31 | contentType('application/json') 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/updateServiceInstance.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status OK() 30 | body(file('update_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/updateServiceInstanceAsync.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-one-id?accepts_incomplete=true' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('update_async_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/updateServiceInstanceInProgress.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package instance.servlet 18 | 19 | org.springframework.cloud.contract.spec.Contract.make { 20 | request { 21 | method PATCH() 22 | body(file("create_service_instance.json")) 23 | url '/v2/service_instances/service-instance-two-id' 24 | headers { 25 | contentType('application/json') 26 | } 27 | } 28 | response { 29 | status ACCEPTED() 30 | body(file('async_in_progress_response.json')) 31 | headers { 32 | contentType('application/json') 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/update_async_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "working", 3 | "dashboard_url": "https://dashboard.example.local" 4 | } 5 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-contract-tests/src/contractTest/resources/contracts/instance/servlet/update_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "dashboard_url": "https://dashboard.example.local" 3 | } 4 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/annotation/ServiceBrokerRestController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.annotation; 18 | 19 | import java.lang.annotation.Documented; 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | import org.springframework.core.annotation.AliasFor; 26 | import org.springframework.web.bind.annotation.RequestMapping; 27 | import org.springframework.web.bind.annotation.RestController; 28 | 29 | @Target(ElementType.TYPE) 30 | @Retention(RetentionPolicy.RUNTIME) 31 | @Documented 32 | @RestController 33 | @RequestMapping("${spring.cloud.openservicebroker.base-path:}") 34 | public @interface ServiceBrokerRestController { 35 | 36 | @AliasFor(annotation = RestController.class) 37 | String value() default ""; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/annotation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Annotations to support configuring Service Brokers. 19 | */ 20 | package org.springframework.cloud.servicebroker.annotation; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/controller/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides Service Broker API endpoints. 19 | */ 20 | package org.springframework.cloud.servicebroker.controller; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Exceptions for Service Broker error conditions. 19 | */ 20 | package org.springframework.cloud.servicebroker.exception; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/binding/VolumeDevice.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.binding; 18 | 19 | /** 20 | * Base class for types of volume devices. 21 | * 22 | * @author Scott Frederick 23 | */ 24 | public class VolumeDevice { 25 | 26 | @Override 27 | public String toString() { 28 | return "VolumeDevice()"; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/binding/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Service binding models. 19 | */ 20 | package org.springframework.cloud.servicebroker.model.binding; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/catalog/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Catalog models. 19 | */ 20 | package org.springframework.cloud.servicebroker.model.catalog; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/error/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Error models. 19 | */ 20 | package org.springframework.cloud.servicebroker.model.error; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/instance/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Service instance models. 19 | */ 20 | package org.springframework.cloud.servicebroker.model.instance; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Models that describe the interaction with the Service Broker API. 19 | */ 20 | package org.springframework.cloud.servicebroker.model; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/model/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Model utilities. 19 | */ 20 | package org.springframework.cloud.servicebroker.model.util; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceBindingErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.GetLastServiceBindingOperationRequest; 22 | 23 | /** 24 | * Error flow for service binding asynchronous get last operation request. 25 | * 26 | * @author Ilya Vy 27 | */ 28 | public interface AsyncOperationServiceInstanceBindingErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(GetLastServiceBindingOperationRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceBindingInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.GetLastServiceBindingOperationRequest; 22 | 23 | /** 24 | * Initialization flow for service binding asynchronous get last operation request. 25 | * 26 | * @author Ilya Vy 27 | */ 28 | public interface AsyncOperationServiceInstanceBindingInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(GetLastServiceBindingOperationRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.GetLastServiceOperationRequest; 22 | 23 | /** 24 | * Error flow for asynchronous get last operation reguest. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface AsyncOperationServiceInstanceErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(GetLastServiceOperationRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.GetLastServiceOperationRequest; 22 | 23 | /** 24 | * Initialization flow for asynchronous get last operation reguest. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface AsyncOperationServiceInstanceInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(GetLastServiceOperationRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/CreateServiceInstanceBindingErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.CreateServiceInstanceBindingRequest; 22 | 23 | /** 24 | * Error flow for create service instance binding request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface CreateServiceInstanceBindingErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(CreateServiceInstanceBindingRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/CreateServiceInstanceBindingInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.CreateServiceInstanceBindingRequest; 22 | 23 | /** 24 | * Initialization flow for create service instance binding request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface CreateServiceInstanceBindingInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(CreateServiceInstanceBindingRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/CreateServiceInstanceErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.CreateServiceInstanceRequest; 22 | 23 | /** 24 | * Error flow for create service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface CreateServiceInstanceErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(CreateServiceInstanceRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/CreateServiceInstanceInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.CreateServiceInstanceRequest; 22 | 23 | /** 24 | * Initialization flow for create service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface CreateServiceInstanceInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(CreateServiceInstanceRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/DeleteServiceInstanceBindingErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.DeleteServiceInstanceBindingRequest; 22 | 23 | /** 24 | * Error flow for delete service instance binding request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface DeleteServiceInstanceBindingErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(DeleteServiceInstanceBindingRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/DeleteServiceInstanceBindingInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.binding.DeleteServiceInstanceBindingRequest; 22 | 23 | /** 24 | * Initialization flow for delete service instance binding request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface DeleteServiceInstanceBindingInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(DeleteServiceInstanceBindingRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/DeleteServiceInstanceErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.DeleteServiceInstanceRequest; 22 | 23 | /** 24 | * Error flow for delete service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface DeleteServiceInstanceErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(DeleteServiceInstanceRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/DeleteServiceInstanceInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.DeleteServiceInstanceRequest; 22 | 23 | /** 24 | * Initialization flow for delete service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface DeleteServiceInstanceInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(DeleteServiceInstanceRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/UpdateServiceInstanceErrorFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.UpdateServiceInstanceRequest; 22 | 23 | /** 24 | * Error flow for update service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface UpdateServiceInstanceErrorFlow { 29 | 30 | /** 31 | * Performs the operation on the error flow. 32 | * @param request the service broker request 33 | * @param t the error 34 | * @return an empty Mono 35 | */ 36 | default Mono error(UpdateServiceInstanceRequest request, Throwable t) { 37 | return Mono.empty(); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/UpdateServiceInstanceInitializationFlow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import reactor.core.publisher.Mono; 20 | 21 | import org.springframework.cloud.servicebroker.model.instance.UpdateServiceInstanceRequest; 22 | 23 | /** 24 | * Initialization flow for update service instance request. 25 | * 26 | * @author Roy Clarkson 27 | */ 28 | public interface UpdateServiceInstanceInitializationFlow { 29 | 30 | /** 31 | * Performs the operation on the initialization flow. 32 | * @param request the service broker request 33 | * @return an empty Mono 34 | */ 35 | default Mono initialize(UpdateServiceInstanceRequest request) { 36 | return Mono.empty(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/flows/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * event flows. 19 | */ 20 | package org.springframework.cloud.servicebroker.service.events.flows; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/events/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * events. 19 | */ 20 | package org.springframework.cloud.servicebroker.service.events; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/main/java/org/springframework/cloud/servicebroker/service/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Service interfaces and default implementations. 19 | */ 20 | package org.springframework.cloud.servicebroker.service; 21 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/ContextTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import org.junit.jupiter.api.Test; 21 | 22 | class ContextTests { 23 | 24 | @Test 25 | void equalsAndHashCode() { 26 | EqualsVerifier.forClass(Context.class).verify(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/ServiceBrokerRequestTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import nl.jqno.equalsverifier.Warning; 21 | import org.junit.jupiter.api.Test; 22 | 23 | class ServiceBrokerRequestTests { 24 | 25 | @Test 26 | void equalsAndHashCode() { 27 | EqualsVerifier.forClass(ServiceBrokerRequest.class) 28 | .withRedefinedSuperclass() 29 | .withRedefinedSubclass(AsyncServiceBrokerRequest.class) 30 | .suppress(Warning.NONFINAL_FIELDS) 31 | .suppress(Warning.TRANSIENT_FIELDS) 32 | .verify(); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/binding/BindingMetadataTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.binding; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import org.junit.jupiter.api.Test; 21 | 22 | import static org.assertj.core.api.Assertions.assertThat; 23 | 24 | class BindingMetadataTests { 25 | 26 | @Test 27 | void bindingMetadataIsBuiltWithDefaults() { 28 | BindingMetadata metadata = BindingMetadata.builder().build(); 29 | 30 | assertThat(metadata.getExpiresAt()).isNull(); 31 | } 32 | 33 | @Test 34 | void bindingMetadataIsBuildWithAllValues() { 35 | BindingMetadata metadata = BindingMetadata.builder().expiresAt("2019-12-31T23:59:59.0Z").build(); 36 | 37 | assertThat(metadata.getExpiresAt()).isEqualTo("2019-12-31T23:59:59.0Z"); 38 | } 39 | 40 | @Test 41 | void equalsAndHashCode() { 42 | EqualsVerifier.forClass(BindingMetadata.class).verify(); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/binding/CreateServiceInstanceBindingResponseTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.binding; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import org.junit.jupiter.api.Test; 21 | 22 | class CreateServiceInstanceBindingResponseTests { 23 | 24 | @Test 25 | void equalsAndHashCode() { 26 | EqualsVerifier.forClass(CreateServiceInstanceBindingResponse.class) 27 | .withRedefinedSuperclass() 28 | .withRedefinedSubclass(CreateServiceInstanceAppBindingResponse.class) 29 | .withRedefinedSubclass(CreateServiceInstanceRouteBindingResponse.class) 30 | .verify(); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/binding/GetServiceInstanceBindingResponseTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.binding; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import org.junit.jupiter.api.Test; 21 | 22 | class GetServiceInstanceBindingResponseTests { 23 | 24 | @Test 25 | void equalsAndHashCode() { 26 | EqualsVerifier.forClass(GetServiceInstanceBindingResponse.class) 27 | .withRedefinedSubclass(GetServiceInstanceAppBindingResponse.class) 28 | .withRedefinedSubclass(GetServiceInstanceRouteBindingResponse.class) 29 | .verify(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/binding/SharedVolumeDeviceTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.binding; 18 | 19 | import nl.jqno.equalsverifier.EqualsVerifier; 20 | import org.junit.jupiter.api.Test; 21 | 22 | class SharedVolumeDeviceTests { 23 | 24 | @Test 25 | void equalsAndHashCode() { 26 | EqualsVerifier.forClass(SharedVolumeDevice.class).verify(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/model/instance/OperationStateTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.model.instance; 18 | 19 | import org.junit.jupiter.api.Test; 20 | 21 | import org.springframework.cloud.servicebroker.JsonUtils; 22 | 23 | import static org.assertj.core.api.Assertions.assertThat; 24 | 25 | class OperationStateTests { 26 | 27 | @Test 28 | void enumValueIsDeserialized() { 29 | OperationState state = JsonUtils.readTestDataFile("operationState.json", OperationState.class); 30 | 31 | assertThat(state).isEqualTo(OperationState.SUCCEEDED); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceBindingErrorFlowTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import org.junit.jupiter.api.Test; 20 | import reactor.test.StepVerifier; 21 | 22 | import org.springframework.cloud.servicebroker.model.binding.GetLastServiceBindingOperationRequest; 23 | 24 | import static org.mockito.Mockito.mock; 25 | 26 | class AsyncOperationServiceInstanceBindingErrorFlowTests { 27 | 28 | @Test 29 | void error() { 30 | AsyncOperationServiceInstanceBindingErrorFlow flow = new AsyncOperationServiceInstanceBindingErrorFlow() { 31 | }; 32 | StepVerifier.create(flow.error(mock(GetLastServiceBindingOperationRequest.class), mock(Exception.class))) 33 | .verifyComplete(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/java/org/springframework/cloud/servicebroker/service/events/flows/AsyncOperationServiceInstanceBindingInitializationFlowTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.servicebroker.service.events.flows; 18 | 19 | import org.junit.jupiter.api.Test; 20 | import reactor.test.StepVerifier; 21 | 22 | import org.springframework.cloud.servicebroker.model.binding.GetLastServiceBindingOperationRequest; 23 | 24 | import static org.mockito.Mockito.mock; 25 | 26 | class AsyncOperationServiceInstanceBindingInitializationFlowTests { 27 | 28 | @Test 29 | void initialize() { 30 | AsyncOperationServiceInstanceBindingInitializationFlow flow = new AsyncOperationServiceInstanceBindingInitializationFlow() { 31 | }; 32 | StepVerifier.create(flow.initialize(mock(GetLastServiceBindingOperationRequest.class))).verifyComplete(); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/bindRequest.json: -------------------------------------------------------------------------------- 1 | { 2 | "service_id": "test-service-id", 3 | "plan_id": "test-plan-id", 4 | "bind_resource": { 5 | "field1": "data", 6 | "field2": 2 7 | }, 8 | "app_guid": "test-app-guid", 9 | "context": { 10 | "platform": "sample-platform", 11 | "field1": "data", 12 | "field2": 2 13 | }, 14 | "parameters": { 15 | "parameter1": 1, 16 | "parameter2": "param-a", 17 | "parameter3": true 18 | } 19 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/bindRequestWithOnlyRequiredFields.json: -------------------------------------------------------------------------------- 1 | { 2 | "service_id": "test-service-id", 3 | "plan_id": "test-plan-id" 4 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/bindResource.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_guid": "test-app-guid", 3 | "route": "https://test.app.local", 4 | "property1": 1, 5 | "property2": "value2", 6 | "property3": true 7 | } 8 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/createAppBindingResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "expires_at": "2019-12-31T23:59:59.0Z" 4 | }, 5 | "credentials": { 6 | "cred1": "cred-a", 7 | "cred2": "cred-b" 8 | }, 9 | "syslog_drain_url": "https://logs.hello.local", 10 | "volume_mounts": [ 11 | { 12 | "driver": "driver-1", 13 | "container_dir": "container-dir-1", 14 | "mode": "r", 15 | "device_type": "shared", 16 | "device": { 17 | "volume_id": "volume-id", 18 | "mount_config": { 19 | "field1": "mount-config-1", 20 | "field2": "mount-config-2" 21 | } 22 | } 23 | } 24 | ], 25 | "endpoints": [ 26 | { 27 | "host": "test-host1", 28 | "ports": [ 29 | "port1", 30 | "port2", 31 | "port3-port4" 32 | ], 33 | "protocol": "tcp" 34 | }, 35 | { 36 | "host": "test-host2", 37 | "ports": ["8080"], 38 | "protocol": "udp" 39 | }, 40 | { 41 | "host": "test-host3", 42 | "ports": ["9999-11111"], 43 | "protocol": "all" 44 | } 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/createRequest.json: -------------------------------------------------------------------------------- 1 | { 2 | "service_id": "test-service-id", 3 | "plan_id": "test-plan-id", 4 | "organization_guid": "test-organization-guid", 5 | "space_guid": "test-space-guid", 6 | "maintenance_info": { 7 | "version": "1.1.0", 8 | "description": "Patch for CVE-x" 9 | } 10 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/createResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "in progress", 3 | "dashboard_url": "https://dashboard.local", 4 | "metadata": { 5 | "labels": { 6 | "key1" : "value1", 7 | "key2" : "value2" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/createRouteBindingResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "expires_at": "2019-12-31T23:59:59.0Z" 4 | }, 5 | "route_service_url": "https://route.local" 6 | } 7 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/deleteResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "in progress" 3 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/getAppBindingResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "expires_at": "2019-12-31T23:59:59.0Z" 4 | }, 5 | "credentials": { 6 | "cred1": "cred-a", 7 | "cred2": "cred-b" 8 | }, 9 | "syslog_drain_url": "https://logs.hello.local", 10 | "parameters": { 11 | "field1": "p1", 12 | "field2": "p2" 13 | }, 14 | "volume_mounts": [ 15 | { 16 | "driver": "driver-1", 17 | "container_dir": "container-dir-1", 18 | "mode": "r", 19 | "device_type": "shared", 20 | "device": { 21 | "volume_id": "volume-id", 22 | "mount_config": { 23 | "field1": "mount-config-1", 24 | "field2": "mount-config-2" 25 | } 26 | } 27 | } 28 | ], 29 | "endpoints": [ 30 | { 31 | "host": "endpoint-host1", 32 | "ports": ["8080", "9999"], 33 | "protocol": "tcp" 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/getLastBindingOperationResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "state": "succeeded", 3 | "description": "description" 4 | } 5 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/getLastOperationResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "state": "succeeded", 3 | "description": "description", 4 | "instance_usable": true, 5 | "update_repeatable": true 6 | } 7 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/getResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "plan_id": "plan-id", 3 | "service_id": "service-definition-id", 4 | "dashboard_url": "https://dashboard.local", 5 | "parameters": { 6 | "field1": "field-a", 7 | "field2": "field-b" 8 | } 9 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/getRouteBindingResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "route_service_url": "https://route.local", 3 | "parameters": { 4 | "param1": "param-a", 5 | "param2": "param-b" 6 | }, 7 | "metadata": { 8 | "expires_at": "2019-12-31T23:59:59.0Z" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/operationState.json: -------------------------------------------------------------------------------- 1 | "succeeded" -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/requestWithCustomContext.json: -------------------------------------------------------------------------------- 1 | { 2 | "context": { 3 | "platform": "test-platform", 4 | "field1": "data", 5 | "field2": 2 6 | } 7 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/requestWithEmptyParametersAndKubernetesContext.json: -------------------------------------------------------------------------------- 1 | { 2 | "context": { 3 | "platform": "kubernetes", 4 | "namespace": "test-namespace", 5 | "namespace_annotations": { 6 | "namespace_annotation1": 4, 7 | "namespace_annotation2": "param-d", 8 | "namespace_annotation3": true 9 | }, 10 | "instance_annotations": { 11 | "instance_annotation1": 5, 12 | "instance_annotation2": "param-e", 13 | "instance_annotation3": true 14 | }, 15 | "instance_name": "test-instance-name", 16 | "clusterid": "test-clusterid", 17 | "field1": "data", 18 | "field2": 2 19 | }, 20 | "parameters": { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/requestWithParametersAndCloudFoundryContext.json: -------------------------------------------------------------------------------- 1 | { 2 | "context": { 3 | "platform": "cloudfoundry", 4 | "organization_guid": "test-organization-guid", 5 | "organization_name": "test-organization-name", 6 | "organization_annotations": { 7 | "org_annotation1": 2, 8 | "org_annotation2": "param-b", 9 | "org_annotation3": true 10 | }, 11 | "space_guid": "test-space-guid", 12 | "space_name": "test-space-name", 13 | "space_annotations": { 14 | "space_annotation1": 3, 15 | "space_annotation2": "param-c", 16 | "space_annotation3": true 17 | }, 18 | "field1": "data", 19 | "field2": 2 20 | }, 21 | "parameters": { 22 | "parameter1": 1, 23 | "parameter2": "param-a", 24 | "parameter3": true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/updateRequest.json: -------------------------------------------------------------------------------- 1 | { 2 | "service_id": "test-service-id", 3 | "plan_id": "test-plan-id", 4 | "previous_values": { 5 | "service_id": "previous-service-definition-id", 6 | "plan_id": "previous-plan-id", 7 | "organization_id": "previous-organization-id", 8 | "space_id": "previous-space-id", 9 | "maintenance_info": { 10 | "version": "1.1.0", 11 | "description": "Patch for CVE-x" 12 | } 13 | }, 14 | "maintenance_info": { 15 | "version": "2.0.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-core/src/test/resources/updateResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation": "in progress", 3 | "dashboard_url": "https://dashboard.local", 4 | "metadata": { 5 | "labels": { 6 | "key1" : "value1", 7 | "key2" : "value2" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/docs/asciidoc/example-service-broker.adoc: -------------------------------------------------------------------------------- 1 | [[example-service-broker]] 2 | == Example Service Broker Application 3 | 4 | The https://github.com/spring-cloud-samples/bookstore-service-broker[Bookstore Service Broker] project implements a simple service broker that adheres to the Open Service Broker API by using the Spring Cloud Open Service Broker framework. 5 | It can be deployed to either Cloud Foundry or Kubernetes and can be registered as a service broker to either platform. 6 | View the project https://github.com/spring-cloud/spring-cloud-open-service-broker/blob/master/README.adoc[README] for more information. 7 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/docs/asciidoc/introduction.adoc: -------------------------------------------------------------------------------- 1 | [[introduction]] 2 | == Introduction 3 | 4 | The {osbapi-href} defines an HTTP interface between the services marketplace of a platform and a service broker. 5 | 6 | Service brokers are responsible for: 7 | 8 | * Advertising a catalog of their service offerings and plans 9 | * Provisioning (creating or updating) service instances 10 | * Creating bindings between a service instance and a client application 11 | * Deleting bindings between a service instance and a client application 12 | * De-provisioning (deleting) service instances 13 | 14 | The {scosb-href} project provides the scaffolding for an {osbapi-href}-compliant service broker by implementing the required Spring web controllers, domain objects, and configuration. 15 | Service broker authors can provide Spring beans that implement the {scosb-api-services}package-summary.html[appropriate interfaces]. 16 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/docs/asciidoc/service-broker-security.adoc: -------------------------------------------------------------------------------- 1 | :examples-dir: ../../src/test/java/com/example/servicebroker/ 2 | [[service-broker-security]] 3 | == Service Broker Security 4 | 5 | Authentication and authorization of service broker endpoints is not specified in the Open Service Broker API specification, but some platforms require or let https://en.wikipedia.org/wiki/Basic_access_authentication[basic authentication] or https://oauth.net/2/[OAuth2] credentials be provided when a service broker is registered to the platform. 6 | 7 | The Spring Cloud Open Service Broker project does not implement any security configuration. 8 | Service broker application endpoints can be secured with https://projects.spring.io/spring-security/[Spring Security] 9 | and https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-security.html[Spring Boot security configuration] 10 | by applying security to application endpoints with the path-matching pattern: `/v2/**`. 11 | 12 | === Example Configuration 13 | 14 | The following example implements a security configuration in a https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html[Spring MVC] i.e blocking webstack. Similar config for a https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html[Spring WebFlux] reactive stack is necessary, see https://docs.spring.io/spring-security/site/docs/current/reference/html5/#minimal-webflux-security-configuration[Spring security webflux support] 15 | 16 | ==== 17 | [source,java,%autofit] 18 | ---- 19 | include::{examples-dir}/ExampleSecurityConfig.java[] 20 | ---- 21 | ==== 22 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/test/java/com/example/servicebroker/ExampleApiVersionConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.servicebroker; 2 | 3 | import org.springframework.cloud.servicebroker.model.BrokerApiVersion; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class ExampleApiVersionConfiguration { 9 | @Bean 10 | public BrokerApiVersion brokerApiVersion() { 11 | return new BrokerApiVersion("2.13"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/test/java/com/example/servicebroker/ExampleCatalogConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.servicebroker; 2 | 3 | import org.springframework.cloud.servicebroker.model.catalog.Catalog; 4 | import org.springframework.cloud.servicebroker.model.catalog.Plan; 5 | import org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | @Configuration 10 | public class ExampleCatalogConfiguration { 11 | 12 | @Bean 13 | public Catalog catalog() { 14 | Plan plan = Plan.builder() 15 | .id("simple-plan") 16 | .name("standard") 17 | .description("A simple plan") 18 | .free(true) 19 | .build(); 20 | 21 | ServiceDefinition serviceDefinition = ServiceDefinition.builder() 22 | .id("example-service") 23 | .name("example") 24 | .description("A simple example") 25 | .bindable(true) 26 | .tags("example", "tags") 27 | .plans(plan) 28 | .build(); 29 | 30 | return Catalog.builder() 31 | .serviceDefinitions(serviceDefinition) 32 | .build(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/test/java/com/example/servicebroker/ExampleSecurityConfig.java: -------------------------------------------------------------------------------- 1 | package com.example.servicebroker; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.security.config.Customizer; 6 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; 7 | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 8 | import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; 9 | import org.springframework.security.core.userdetails.User; 10 | import org.springframework.security.core.userdetails.UserDetails; 11 | import org.springframework.security.provisioning.InMemoryUserDetailsManager; 12 | import org.springframework.security.web.SecurityFilterChain; 13 | 14 | @Configuration 15 | @EnableWebSecurity 16 | public class ExampleSecurityConfig { 17 | 18 | @Bean 19 | public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { 20 | return http.csrf(AbstractHttpConfigurer::disable) 21 | .authorizeHttpRequests(httpRequests -> httpRequests.requestMatchers("/v2/**").hasRole("ADMIN")) 22 | .httpBasic(Customizer.withDefaults()) 23 | .build(); 24 | } 25 | 26 | @Bean 27 | public InMemoryUserDetailsManager userDetailsService() { 28 | return new InMemoryUserDetailsManager(adminUser()); 29 | } 30 | 31 | private UserDetails adminUser() { 32 | return User 33 | .withUsername("admin") 34 | .password("{noop}supersecret") 35 | .roles("ADMIN") 36 | .build(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/test/java/com/example/servicebroker/catalog-minimal.properties: -------------------------------------------------------------------------------- 1 | # Example Spring Boot properties configuration 2 | spring.cloud.openservicebroker.catalog.services[0].id=example-service 3 | spring.cloud.openservicebroker.catalog.services[0].name=example 4 | spring.cloud.openservicebroker.catalog.services[0].description=A simple example 5 | spring.cloud.openservicebroker.catalog.services[0].bindable=true 6 | spring.cloud.openservicebroker.catalog.services[0].tags[0]=example 7 | spring.cloud.openservicebroker.catalog.services[0].tags[1]=tags 8 | spring.cloud.openservicebroker.catalog.services[0].plans[0].id=simple-plan 9 | spring.cloud.openservicebroker.catalog.services[0].plans[0].name=standard 10 | spring.cloud.openservicebroker.catalog.services[0].plans[0].description=A simple plan -------------------------------------------------------------------------------- /spring-cloud-open-service-broker-docs/src/test/java/com/example/servicebroker/catalog-minimal.yml: -------------------------------------------------------------------------------- 1 | # Example Spring Boot YAML configuration 2 | spring: 3 | cloud: 4 | openservicebroker: 5 | catalog: 6 | services: 7 | - id: example-service 8 | name: example 9 | description: A simple example 10 | bindable: true 11 | tags: 12 | - example 13 | - tags 14 | plans: 15 | - id: simple-plan 16 | name: standard 17 | description: A simple plan -------------------------------------------------------------------------------- /spring-cloud-starter-open-service-broker/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | description = "Spring Cloud Open Service Broker Starter" 18 | 19 | dependencies { 20 | // BOM imports - The versions used in these files will override any other versions found in the graph 21 | implementation platform("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") 22 | 23 | api 'org.springframework.boot:spring-boot-starter' 24 | api project(':spring-cloud-open-service-broker-autoconfigure') 25 | } 26 | 27 | generatePomFileForMavenJavaPublication { 28 | pom.packaging = "pom" 29 | } 30 | -------------------------------------------------------------------------------- /src/checkstyle/checkstyle-suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | 22 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /src/checkstyle/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | --------------------------------------------------------------------------------