Skip to content

Implementing Connection, Management and Publisher modules #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
Jan 14, 2025

Conversation

DanielePalaia
Copy link
Contributor

@DanielePalaia DanielePalaia commented Dec 9, 2024

This closes #1
This closes #4
This closes #5
This closes #6

This PR provides a connection layer to dial the AMQP server and to create a Sender and Receiver objects.
it also implements the various management operations: declare_queue, declare_exchange, bind/unbind, purge_queue, delete_queue, delete_exchange.
It also implements the Publisher layer to send messages to exchanges and/or queues.
We are avoiding using Interfaces for the various layers: binding ,exchanges, queues ecc... as it was suggested for the GO implementation

We are importing the qpid library code in order to treat a special case when we encode an empty body message.
See: #1. The library is imported in qpid/proton and I think we can avoid reviewing that original code

An example is provided in examples/getting_started/main.py

@DanielePalaia DanielePalaia force-pushed the connection_layer branch 6 times, most recently from a51797f to 2736559 Compare January 7, 2025 15:40
@DanielePalaia
Copy link
Contributor Author

As I'm extending the unit tests, I'm realizing that the arguments for queues and exchanges are not managed well and needs improvements. I'll work on it

@DanielePalaia DanielePalaia force-pushed the connection_layer branch 5 times, most recently from 83dce6e to 5ceedca Compare January 10, 2025 09:02
@DanielePalaia DanielePalaia force-pushed the connection_layer branch 3 times, most recently from 08adb16 to f05c54e Compare January 10, 2025 13:27
@DanielePalaia DanielePalaia force-pushed the connection_layer branch 5 times, most recently from 6ac9a41 to f80773d Compare January 10, 2025 15:17
@DanielePalaia
Copy link
Contributor Author

Merging as agreed with reviewers

@DanielePalaia DanielePalaia merged commit ba88885 into main Jan 14, 2025
1 check passed
@DanielePalaia DanielePalaia deleted the connection_layer branch January 14, 2025 08:30
DanielePalaia added a commit that referenced this pull request Jan 14, 2025
* connection layer implementation

* WIP

* implementing Declare Exchange/Queue

* test for gabriele

* body encodiding

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding basic tests

* implementing bind

* adding user-defined exception

* Adding debugging info

* publisher implementation

* adding publisher basic test

* improve help_address utility functions

* modify example

* integrate qpid-proton lib

* implementing purge operation

* improving url helper

* cleaning up qpid unecessary folders and files

* some improvements

* implementing queue_info

* fixing queue arguments management

* better management of arguments

* improved arguments management during declare_queue

* adding purge test

* adding fixtures in tests

* adding a publisher test

* removing useless queue_type parameter

* removing receiver from publisher

---------

Signed-off-by: Gabriele Santomaggio <[email protected]>
Co-authored-by: DanielePalaia <daniele985@@gmail.com>
Co-authored-by: Gabriele Santomaggio <[email protected]>
DanielePalaia added a commit that referenced this pull request Jan 20, 2025
* connection layer implementation

* WIP

* implementing Declare Exchange/Queue

* test for gabriele

* body encodiding

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding basic tests

* implementing bind

* adding user-defined exception

* Adding debugging info

* publisher implementation

* adding publisher basic test

* improve help_address utility functions

* modify example

* integrate qpid-proton lib

* implementing purge operation

* improving url helper

* cleaning up qpid unecessary folders and files

* some improvements

* implementing queue_info

* fixing queue arguments management

* better management of arguments

* improved arguments management during declare_queue

* adding purge test

* adding fixtures in tests

* adding a publisher test

* removing useless queue_type parameter

* removing receiver from publisher

* consumer implementation

* Implementing Connection, Management and Publisher modules (#10)

* connection layer implementation

* WIP

* implementing Declare Exchange/Queue

* test for gabriele

* body encodiding

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding basic tests

* implementing bind

* adding user-defined exception

* Adding debugging info

* publisher implementation

* adding publisher basic test

* improve help_address utility functions

* modify example

* integrate qpid-proton lib

* implementing purge operation

* improving url helper

* cleaning up qpid unecessary folders and files

* some improvements

* implementing queue_info

* fixing queue arguments management

* better management of arguments

* improved arguments management during declare_queue

* adding purge test

* adding fixtures in tests

* adding a publisher test

* removing useless queue_type parameter

* removing receiver from publisher

---------

Signed-off-by: Gabriele Santomaggio <[email protected]>
Co-authored-by: DanielePalaia <daniele985@@gmail.com>
Co-authored-by: Gabriele Santomaggio <[email protected]>

* consumer implementation

* modification for testing purpose

* change option

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding tests and improvementes

* improving ack implementation

* adding requeue with annotations test

* adding dead lettering test

* adding discard with annotations test

* refactoring tests

* improving AddressHelper utility functions

* Change the class name for the consumer

add documentation

Signed-off-by: Gabriele Santomaggio <[email protected]>

* adding validations for annotations

---------

Signed-off-by: Gabriele Santomaggio <[email protected]>
Co-authored-by: DanielePalaia <daniele985@@gmail.com>
Co-authored-by: Gabriele Santomaggio <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants