Skip to content

2.0 Migration Guide

Scott Frederick edited this page Mar 5, 2018 · 6 revisions

Migration Guide

This project was formerly known as Spring Cloud - Cloud Foundry Service Broker. With the 2.0 release the name has changed to reflect the fact that the project adheres to the Open Service Broker (OSB) API specification, and can be used to build service brokers that are portable to any platform that supports the OSB API.

The following sections detail changes that are required to applications using Spring Cloud - Cloud Foundry Service Broker 1.x when upgrading to Spring Cloud Open Service Broker 2.x.

Requirements

This project now requires at a minimum Java 8, Spring Framework 5, and Spring Boot 2.

Artifacts

The coordinates for the project dependencies have changed to reflect the new project name, to allow more flexibility in choice of Spring web framework, and to conform to Spring Boot dependency Bill of Materials (BOM) conventions. See the README for information on using the dependencies with Maven or Gradle.

Package structure

The package org.springframework.cloud.servicebroker.model has been decomposed into sub-packages to better organize these classes. The sub-packages generally align with categories of service broker endpoints - catalog, instance, and binding. This change should only affect import statements in implementing projects.

Builder pattern for request and response classes

The Request and Response classes in org.springframework.cloud.servicebroker.model contain many fields, some optional and some required. Fields are added to these classes as new OSB API features are added. This has led to the Request and Response classes having multiple constructors with many parameters. Some Response classes used a .withXXX pattern for construction with some fields.

The Request and Response classes now use a consistent Builder pattern for construction. This will affect production code that builds Response classes and test code that builds Request classes.

Security

This project no longer has a dependency on Spring Security, and does not configure any security for the OSB API endpoints. Security is not part of the OSB API specification, and platforms that support the OSB API have different security requirements, so security is left to implementing projects.