Skip to content

Cloud Foundry Java Client 2.0.0.RELEASE

Compare
Choose a tag to compare
@nebhale nebhale released this 22 Aug 16:27
v2.0.0.RELEASE
2f76ed8

I'm immensely pleased to announce Cloud Foundry Java Client 2.0.0.RELEASE! This release is the culmination of 54 weeks of work, encompassing 10 milestones, two release candidates, and 2,344 commits.

Before the typical discussion about the release, I'd like to take a moment to recognize everyone who contributed to the success of this effort:

It really makes me happy to see that more than half of the contributors to the project are from outside of Pivotal. I see this as an indication both that we're fulfilling a wide-spread need and that we've created an environment that encourages external contribution. I encourage anyone else interested in contributing to join this list over the coming months.

Next, I'd like to recognize the lead of Project Reactor Stephane Maldini, for his tireless efforts to help us deliver an incredible reactive API. When we took the decision to head in this direction, Stephane stepped up to teach the entire team the principles behind reactive programming. This effort was non-trivial, entailing hundreds of hours on Screenhero often until after one in the morning for him. The last year has easily been the greatest example of two projects evolving together, that I have ever experienced. The amount of improvement Reactor and the Java Client have driven in each other cannot be overestimated.

Finally I'd like to thank the teams that started building on the Java Client, long before it was production ready. Projects like Spring Cloud Data Flow and Spring Cloud Spinnaker have been invaluable tools for driving usability and bug fixes.

And now onto the release!


This release was a complete re-write of the Java Client with a focus on:

  • two cleanly delineated APIs; a -client API mapping to the REST calls and an -operations API mapping to CLI
  • implementing every single REST call exposed by all Cloud Foundry components (more than 500 individual URIs across 4 components)
  • an airtight separation between APIs and implementation; a Reactor-based default is provided, and alternate implementations are possible
  • a reactive API based on Project Reactor and interoperable with any Reactive Streams-compatible library

For more detail on these goals, please see the 2.0.0.M1 Release Notes

For detailed information on how to use the client, the README is the best place to start. Javadocs for the library can be found at cloudfoundry-client, cloudfoundry-client-reactor, cloudfoundry-operations, and cloudfoundry-util. Since usage requires a fair bit of knowledge about the workings of the Cloud Foundry APIs themselves, check out the docs for the Cloud Controller V2, V3, Doppler, and the UAA.

While the Java Client implements a great many of the Cloud Foundry APIs we didn't manage to complete them all. By our count we're about 80% the way through and have delivered all of the commonly used endpoints. Over the coming months we'll be continuing to deliver the missing implementations until everything is complete. Beyond that, we're committed to keeping the library up to date with Cloud Foundry's evolving API.

We welcome all feedback from the community and look forward to seeing you open issues and submit pull requests. If you're looking for help and discussion we're lurking in the Cloud Foundry Slack during European and North American working hours.

We hope that the new Java Client is useful for everyone and can't wait to see what you build with it.