Releases: cloudevents/sdk-java
2.1.1: CESQL Bugfix
Patch release for a bug in the CESQL implementation: #381
2.1: CESQL and Protobuf
Hi everybody!
On the behalf of the CloudEvents community, I'm pleased to announce that we have a new release of CloudEvents SDK Java with some new shiny features!
New modules
We have two new modules:
cloudevents-sql
: Implements the newborn CloudEvents SQL Expression Languagecloudevents-protobuf
:EventFormat
implementation of Protobuf event format
Although these modules use the same semver of the rest of the sdk, they are to be considered unstable, and their APIs might change anytime. We'll work on stabilizing them in the next releases. Please reach us out with any feedback about them!
New features
- Now the
io.cloudevents
APIs support handling of binary CloudEvent attributes: #353 - Added some methods to the
CloudEventBuilder
to remove data, datacontenttype and dataschema: #374 - Spring module now supports RSockets: #349
- List available eventformat implementations: #350
Deprecations
io.cloudevents.rw.CloudEventContextWriter#withContextAttribute(String, Number)
is deprecated, you should use insteadio.cloudevents.rw.CloudEventContextWriter#withContextAttribute(String, Integer)
. This change was necessary in order to enforce to use onlyInteger
as numeric types of your CloudEvents attributes, which is the only numeric type supported by the CloudEvents spec type system. For more details: #358
Fixes
- Now parsing incoming cloudevents doesn't fail anymore if the attribute name is longer than 20 chars: #366
- Fail parsing on bad cloudevents content type: #362
- Don't print null for missing attributes when invoking
CloudEvent#toString()
: #376
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/8?closed=1
To start using the sdk, look at the documentation on the official website and check out the examples
Happy hacking!
2.0 GA
Hi everybody!
On the behalf of the CloudEvents community, I'm pleased to announce that we have the 2.0 GA! After one year of development, we managed to ship the new and enhanced CloudEvents SDK for Java!
To check out all the enhancements from v1, check out the following release notes:
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0-milestone1
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0-milestone2
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0-milestone3
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0-milestone4
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0.RC1
- https://github.com/cloudevents/sdk-java/releases/tag/2.0.0.RC2
From 2.0.0.RC2, we have a bunch of bug fixes and io.cloudevents.Extension
was renamed to io.cloudevens.CloudEventExtension
.
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/6?closed=1
To start using the sdk, look at the documentation on the official website and check out the examples
Happy hacking!
2.0.0 RC2
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing the second 2.0.0 Release Candidate! We're not far from the GA release of sdk-java v2!
- Now we have a module that integrates with different Spring components, including WebFlux, MVC, Messaging. Thanks @dsyer for the contribution!
- Now we have javadocs on all public interfaces
- We improved the website including all the docs, check it out to start using the sdk: https://cloudevents.github.io/sdk-java/
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/7?closed=1
To start using the sdk, look at the documentation on the official website and check out the examples
What's next
This is probably the last Release Candidate before the final release, so please check out for bugs and discussions!
If you want to contribute, feel free to pick any good first issue here:
good first issue
As always, we encourage you to give feedback about the current efforts in order to improve this project!
Happy hacking!
2.0.0 RC1
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing the first 2.0.0 Release Candidate! We're not far from the GA release of sdk-java v2!
The big updates of this releases:
- We have a brand new AMQP protocol binding based on proton #270, huge shout-out to @Alfusainey!
- We implemented the Kafka
partitionkey
extension, providing aPartitionKeyInterceptor
that can be registered in producers to set up the record key from the inputCloudEvent
. To use it: https://github.com/cloudevents/sdk-java/tree/master/kafka#partition-key-extension - We have a new interface called
CloudEventContext
that wrapsCloudEventAttributes
andCloudEventExtensions
#296, thanks to @dsyer! - We moved
CloudEventUtils
fromio.cloudevents.core.impl
toio.cloudevents.core
and improved its documentation #261. This class will be used to collect methods that helps users deal withCloudEventData
,CloudEventReader
/CloudEventWriter
abstractions. - We worked on improving the usability around
CloudEventData
interface, introducing a new implementation namedPojoCloudEventData
#289. Now you can easily go from your pojo toCloudEvent
providing the mapper of your choice!
// To wrap the user pojo into a CloudEventData
CloudEventData data = PojoCloudEventData.wrap(user, objectMapper::writeValueAsBytes);
// To map the CloudEvent payload to the user Pojo using cloudevents-json-jackson
User user = PojoCloudEventDataMapper
.from(objectMapper, User.class)
.map(event.getData())
.getValue();
We had a bunch of important bug fixes, like:
And we improved our examples, check them out: https://github.com/cloudevents/sdk-java/tree/master/examples
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/5?closed=1
To start using it, look at the documentation on the official website: https://cloudevents.github.io/sdk-java/
What's next
At this point, we hope to stabilize our APIs in the effort to go to the v2 GA. Although, there are still some known unknown we encourage you to check out: discussion
In the next release we'll work on bringing in the Spring support (#142, #302), figure out if and how we should decouple the CloudEvent context from its payload (#311), optimize some low hanging fruits (#308) and documentation (#264)
If you want to contribute, feel free to pick any good first issue here:
good first issue
As always, we encourage you to give feedback about the current efforts in order to improve this project!
Happy hacking!
2.0.0 Milestone 4
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing a new 2.0.0 milestone.
In this release we dealt with the outstanding issue of representing the CloudEvent data field. After a lot of discussions and proposals, we reached an agreement on this interface:
public interface CloudEventData {
byte[] toBytes();
}
And now CloudEvent#getData()
returns CloudEventData
. This additional indirection doesn't change the assumptions of the original interface, but allows extensibility and optimizations, without reimplementing/wrapping the CloudEvent
interface. We also implemented, in the jackson module, an optimization to read/write CloudEvent
with json values in it and we provide a new interface, when deserializing events, to map the CloudEventData
to any custom implementation.
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/4?closed=1
To start using it, look at the documentation on the official website: https://cloudevents.github.io/sdk-java/
What's next
If you want to contribute, feel free to pick any good first issue here:
good first issue
If you want to join the discussions about new features and how to improve the existing ones, feel free to look on issues and pr with discussion label: discussion
As all milestones, this is a preview of the library for the community, nothing is written on the stone, so please give us feedback in order to improve this project!
Happy hacking!
2.0.0 Milestone 3
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing a new 2.0.0 milestone.
This new release contains a new module, called cloudevents-http-basic
, to simplify the integration with other http frameworks we don't integrate directly: https://github.com/cloudevents/sdk-java/tree/master/http/basic
There is also a breaking change in the writers APIs to coerce better with the builder APIs #237
As always, we had tons of improvements and new examples to check out!
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/3?closed=1
To start using it, look at the documentation on the official website: https://cloudevents.github.io/sdk-java/
What's next
If you want to contribute, feel free to pick any good first issue here:
good first issue
If you want to join the discussions about new features and how to improve the existing ones, feel free to look on issues and pr with discussion label: discussion
As all milestones, this is a preview of the library for the community, nothing is written on the stone, so please give us feedback in order to improve this project!
Happy hacking!
2.0.0 Milestone 2
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing a new 2.0.0 milestone. The major focus of this release was on fixing some timestamp issues people had, in particular with interop with other sdks.
Breaking changes
Timestamp type change #216
All over the sdk, the type used to represent time
field and in general the CloudEvent Timestamp
type becomes OffsetDateTime
. This type maps better to RFC3339 and represents exactly the representable timestamps in RFC3339.
The method in CloudEventAttributes
:
ZonedDateTime getTime();
Becomes:
OffsetDateTime getTime();
The public static field in io.cloudevents.types.Time.RFC3339_DATE_FORMAT
was also removed.
Vert.x 4 #206
From this version onward, the cloudevents-http-vertx
module uses Vert.x 4 and implements the client marshalling/unmarshalling using the vertx-web-client
. Look at the PR for more info.
Other
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/2?closed=1
To start using it, look at the documentation on the official website: https://cloudevents.github.io/sdk-java/
What's next
If you want to contribute, feel free to pick any good first issue here:
good first issue
If you want to join the discussions about new features and how to improve the existing ones, feel free to look on issues and pr with discussion label: discussion
As all milestones, this is a preview of the library for the community, nothing is written on the stone, so please give us feedback in order to improve this project!
Happy hacking!
First 2.0.0 milestone release!
On the behalf of the CloudEvents community, I'm pleased to announce that we're releasing the first V2.0.0 milestone release! 🥳
The second major version of the SDK will bring huge changes to the project, in order to simplify the usage for the end users and make it simpler to integrate with 3rd party libraries.
Among the major changes, we have:
- Re-structured the project separating the major interfaces from the implementations
- Reworked and simplified the CloudEvent and CloudEventBuilder
- Simplified the development of event formats and protocol bindings and the usage for end users
- The base implementation is dependency free
You can check out all the changes here: https://github.com/cloudevents/sdk-java/milestone/1?closed=1
To start using it, look at the documentation on the official website: https://cloudevents.github.io/sdk-java/
This milestone is meant to be a preview of the library for the community, nothing is written on the stone, so please give us feedback in order to improve this project!
Happy hacking!