10.4. Versioning
Explicit URIs
You might want to expose all available versions of each Web service and Web application at a different URI. For example, consider the case where you change your URI template to the following:
/version/{version}{contextPath}/
If you have
1.0
and 1.1
versions of a profile that packages Web services or Web applications, you can now access the different versions using version-specific URIs. For example, if you are running version 1.0
and version 1.1
implementations of the example-quickstarts-rest
profile, you can access either one through the following URIs:
- Version 1.0 through http://localhost:9000/version/1.0/cxf/crm/customerservice/customers/123
- Version 1.1 through http://localhost:9000/version/1.1/cxf/crm/customerservice/customers/123
Both versions are available to the gateway, provided you include the version information in the URI.
Rolling upgrades
Another approach to dealing with versions of Web services and Web applications is to expose only a single version at a time of each Web service or Web application in a single gateway. This is the default configuration.
For example, if you deploy a
1.0
version of the gateway-http
profile and run a few services, you will see all 1.0
versions of them. If you run some 1.1
versions of these services, the gateway will not see them. If you now do a rolling upgrade of your gateway to version 1.1
, it will switch to showing only the 1.1
versions of the services.
Alternatively, you can specify the exact profile version to use, on the mapping configuration screen.
Another approach you can use with Web applications is to specify the maven coordinates and maven version of a web application in the ZooKeeper path.