Comments (8)
I prefer the 1 as first pass, we can always generalize with the option 2 later
from sdk-java.
@slinkydeveloper I want to work on this issue. can I give it a go?
from sdk-java.
Sure, go ahead. Which amqp client are you planning to use? Do you want to use apache qpid jproton?
from sdk-java.
I am planning to use the vertx-proton library to integrate amqp 1.0 with vertx. This library is a wrapper around qpid proton-j
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-proton</artifactId>
<version>${vertx.version}</version>
</dependency>
I see that different components in the project uses a different vertx version. Is there a reason for this?
How about defining a maven property for the vertx version (i.e vertx.version
) in the parent POM and have all modules use the version defined in the parent? This way, the new amqp
module will not have to redefine its own vertx version
from sdk-java.
IMO we should integrate directly with jproton more than the vertx wrapper, because it might be useful for folks that needs amqp but doesn't want to use vertx.
I see that different components in the project uses a different vertx version. Is there a reason for this?
Which components? It's fine if the vertx we use in jaxrs integration tests doesn't match the one in vert.x integration module
from sdk-java.
IMO we should integrate directly with jproton more than the vertx wrapper, because it might be useful for folks that needs amqp but doesn't want to use vertx
ok 👍
Which components?
http/vertx uses 4.0.0.Beta1
while http/restful-ws uses 3.9.0
from sdk-java.
http/vertx uses 4.0.0.Beta1 while http/restful-ws uses 3.9.0
No issue then
from sdk-java.
@slinkydeveloper If i understand correctly, the amqp protocol binding spec does not mandate the AMQP section to store CE extensions.
CloudEvents extensions that define their own attributes MAY define a secondary mapping to AMQP properties for those attributes, also in different message sections, especially if specific attributes or their names need to align with AMQP features or with other specifications that have explicit AMQP header bindings
So the mapping can go either to the properties section of the message or to a different section chosen by the user. I am thinking of implementing this as follows:
- Map all extensions to the application-properties section of the message. In this case, all attributes and extensions maps to the same section of the message. I think this is what the sdk-go impl. is doing
- provide a callback that allows the user to consume all extensions. This will enable the user to determine which section of the message to store the extensions.
WDYT?
from sdk-java.
Related Issues (20)
- BaseCloudEvent.getExtensionNames() breaks cloud event encapsulation HOT 2
- Add benchmarks to CloudEvents SQL HOT 1
- Does CloudEventDeserializer deserialize custom extensions (kafka headers)? HOT 3
- CVE-2022-42004 - Update jackson version HOT 3
- Spring Webflux: example not working HOT 2
- Custom validation for context attributes in wrapper library HOT 1
- can't setup `cloudevents.serializer.event_format` in quarkus HOT 3
- How to transport List<CloudEvent> between Springboot services by openfeign?
- Running into exception while using cloudevent values in kafka streams HOT 1
- Enhancement: generalise the validation in wrapper library HOT 4
- Change type of source attribute from URI to String HOT 2
- Add support for spring-amqp HOT 1
- Contribution question for wrapper for RabbitmQ and Redis HOT 8
- Port tck tests once the CESQL spec stabilizes more HOT 1
- Error assembling JAR: Invalid automatic module name: '' HOT 1
- Cannot invoke "java.lang.ClassLoader.getParent()" because "this.currentLoader" is null
- CloudEventHttpMessageConverter can't convert List<CloudEvent>
- JsonFormat doesn't accept valid datacontentypes
- v4.0.1 git tag included commit for 4.0.2-SNAPSHOT
- cloud events sdk for java 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdk-java.