Commit Graph

45 Commits

Author SHA1 Message Date
shivam bbae625746 Fix linter error
Signed-off-by: shivam <shivamkm07@gmail.com>
2022-10-21 15:06:26 +05:30
shivam 8533feb87f Upgrade mqtt component to upstream
Signed-off-by: shivam <shivamkm07@gmail.com>
2022-10-21 14:39:46 +05:30
ItalyPaleAle 4724a38a01 MQTT: Add metadata options "producerID"
Fixes dapr/dapr#5235

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-09-23 18:46:27 +00:00
mandarj123 e7be027c28
Update mqtt.go
Signed-off-by: mandarj123 <mandar.jogalekar@capgemini.com>
2022-09-22 10:02:08 +05:30
mandarj123 7ea805a83e
Update mqtt.go
remove mandatory "-producer" to clientId

Signed-off-by: mandarj123 <mandar.jogalekar@capgemini.com>
2022-09-21 16:53:53 +05:30
Marcos Candeia 8964d8bf41
Define common metadata across components (#1994)
* Add base metadata for all components

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>

* Fix lint issues on consul and mysql tests

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>

* Pin candeia/dapr runtime version

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>

* Add replace directive to use mcandeia/dapr on all go submodules

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>

* Fixed runtime config instantiation

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>

Signed-off-by: Marcos Candeia <marrcooos@gmail.com>
2022-08-25 10:10:53 -07:00
Alessandro (Ale) Segala c399efa594
pubsub.mqtt: support multiple wildcards in subscriptions (#1901)
Fixes #1881

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
2022-07-21 15:30:26 -07:00
Alessandro (Ale) Segala 801297c724
Added pubsub.FeatureSubscribeWildcards capability (#1887)
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

Co-authored-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
2022-07-18 18:04:59 -07:00
Alessandro (Ale) Segala 66eee69188
pubsub.mqtt: support wildcard and shared subscriptions (#1882)
Fixes #1881

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-07-18 17:26:07 -07:00
ItalyPaleAle 0c40dccd07 pubsub.mqtt: re-enqueue messages when they fail
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-27 20:47:16 +00:00
ItalyPaleAle be2fed6b3a MQTT: re-set "retain" to false as default
Support for "retain" is currently broken

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-27 20:36:15 +00:00
Bernd Verst 8974eca74c Fix MQTT metadata test
Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
2022-06-27 20:36:15 +00:00
Alessandro (Ale) Segala f55dedbbe9 More sane defaults for default values in MQTT metadata (#1810)
Fixes #1809

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-27 20:36:15 +00:00
ItalyPaleAle 35034aa877 Disable built-in retries in pubsub components
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-27 20:36:15 +00:00
Alessandro (Ale) Segala 704f4dd730
Add contexts to pubsub.Subscribe to allow early cancelation (#1756)
This commit is related to dapr/dapr#4624. As noted there, we have an issue in the runtime where all components are shut down after the grace period, when the app is likely already stopped. Because of that, certain input components (the subscribe part of pubsub and the input part of bindings - the latter not in scope of this PR), can continue bringing new work when it's known to fail.

In order to fix the issue linked above properly, we need to implement a way for PubSub components to have the "publish" part closed before the "subscribe" one (and in the future that will need to be done for input bindings too).

This commit achieves precisely that by adding a context in the Subscribe method. When that context is canceled (which can be at any time), the subscription is removed.

PS: This API change was implemented so it can one day be used for dapr/dapr#814 too, as it allows canceling individual subscriptions by using a different context. Although that's not possible today because it requires more work on the runtime, it does implement everything that's needed in the pubsub components already.
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-02 15:06:36 -07:00
Alessandro (Ale) Segala 7c35a4e04c
Added test for multiple pubsub handlers (#1743)
* Added test for multiple pubsub handlers

This patch adds conformance tests for PubSub with multiple handlers, each listening on a different topic.

It's meant to catch issues such as #1709

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

* Added missing go.mod for storagequeues binding test

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-06-02 10:22:15 -07:00
Alessandro (Ale) Segala 3a2a27a253
Better handling of concurrency in MQTT (#1748)
This helps avoiding issues when multiple subscribers are added in a short period of time

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-05-24 10:25:35 -07:00
Alessandro (Ale) Segala d55ce1dfdb
Fix: route messages to the correct publisher (#1737)
Fixes #1735
Includes:
- Adding a lock in `Subscribe` to prevent concurrency issues with multiple reconnections at the same time
- Increase default timeout from 3 to 30 seconds
- Avoid logging full message body in debug logs
- `connect` supports a context

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2022-05-24 07:49:08 -07:00
Shivam Kumar 4631d6e41a
MQTT Pubsub Certification Testing + AutAckOff Fix for MQTT (#1420)
* MQTT Certification Test

Signed-off-by: shivam <shivamkm07@gmail.com>

* Using paho.mqtt.golang fork with AutoAck fix

Signed-off-by: shivam <shivamkm07@gmail.com>

* Adding MQTT component in certification.yml

Signed-off-by: shivam <shivamkm07@gmail.com>

Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2022-01-07 10:33:54 -08:00
Dmitry Shmulevich c7adb917f3
update license to Apache v2.0 (#1406) 2022-01-04 19:53:31 -08:00
Long Dai 988fed05ab
ci: standard linter config (#1102)
* ci: standard linter config

Signed-off-by: Long <long.dai@intel.com>

* Update utils.go

* fix pulsar issue

Signed-off-by: Long <long.dai@intel.com>

Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2021-09-21 15:21:59 -07:00
Phil Kedy 8e6b36ecdf
Importing the retry and config packages from kit instead of internal (#940)
Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2021-06-22 09:38:55 -07:00
Phil Kedy 1b30e75e60
Configurable retry (#854)
* no message

* Switching over usages of retry to the new package and making use of the DecodeConfig function

* Added decoding configuration using settings with a specific prefix

* Linter fixes

* Fixing linter error

* time.Sleep is the enemy

* Fix typo in comment

* Moving config to a pointer parameter so that the component can pass in the config with default values that make sense for that component.

* Renamed config struct

* Fix comment

Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2021-05-06 09:43:57 -07:00
Phil Kedy 688df9bda4
Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
Artur Souza 3993d9a559
Merge branch 'master' into jjcollinge/pubsub-context 2021-04-08 14:11:01 -07:00
Phil Kedy 6803b49e56 tls -> ssl for good measure 2021-04-06 17:50:42 -04:00
Phil Kedy bc0c4fd72e Adding small coalesce on scheme to ensure backward compatibility in both the pubsub and binding mqtt components 2021-04-06 17:32:47 -04:00
Phil Kedy 810ec429a7 Adding small coalesce on scheme to ensure backward compatibility in both the pubsub and binding mqtt components 2021-04-06 17:30:33 -04:00
Joni Collinge 36ed5ec84f use existing context for pubsub comps 2021-03-23 20:12:46 +00:00
Joni Collinge 9fd461b255 Merge branch 'master' into jjcollinge/pubsub-context 2021-03-23 17:45:05 +00:00
Phil Kedy e8efbca072
Add MQTT pubsub to the conformance tests (#721)
* Add MQTT pubsub to the conformance tests

* Making the MQTT pubsub component conformance test against multiple brokers
2021-02-25 18:16:23 -08:00
Joni Collinge c054ae6ada Merge branch 'master' into jjcollinge/pubsub-context 2021-02-25 16:15:06 +00:00
Yaron Schneider 3ef025c604
change headers (#679) 2021-02-09 18:57:55 -08:00
Artur Souza 40e3d60d72
Remove useless random ID logic for mqtt's consumerID. (#605) 2021-01-15 11:56:54 -08:00
Artur Souza e6dadfab6c
TTL in PubSub. (#565)
* TTL in PubSub.

* Handle message TTL only if component cannot handle it.

* Removig dead code for overflow check in pubsub expiration.
2020-12-29 14:28:52 -08:00
Joni Collinge a1ed1c1662 update pubsub and mqtt 2020-11-02 09:54:54 +00:00
Joni Collinge 2e6b84ae40 Merge remote-tracking branch 'origin/master' into jjcollinge/pubsub-context 2020-11-02 09:05:16 +00:00
Yaron Schneider 182d204111
Add close method to pub/sub (#494)
* add close method to pub/sub

* linter
2020-10-12 19:06:33 -07:00
halspang f647d9eedb
Upgrade golang lint to 1.31 (#490)
Upgrade golang lint to 1.31.0

https://github.com/dapr/components-contrib/issues/439
2020-10-12 12:54:15 -07:00
Mayank Kumar 7f9850a04f
Improve mqtt pubsub for multiple topics (#443)
- Listen on multiple topics when those are provided for subscription.
- Improve the current logic to use dedicated function from paho client.
2020-09-03 10:17:27 -07:00
Brightside Automation c344f68718 Merge branch 'master' into jjcollinge/pubsub-context 2020-08-19 14:46:03 +01:00
Mayank Kumar f5f807ca73
Add pubsub support for mqtt over TLS (#429)
* Add pubsub support for mqtt over TLS

* Update mqtt host to include uri scheme.

- This is required to identify mode of connection used while
  connecting to broker.

* Add pubsub support for mqtt over TLS.

- add validation while initialisation.
- update test cases.
2020-08-16 11:01:12 -07:00
jjcollinge 19442e67c8 update pubsub components to use new context 2020-07-28 10:03:23 +01:00
jjcollinge 410628af3d add context to pubsub handler signature 2020-07-07 12:37:15 +01:00
Mayank Kumar 3ed4f0f63c
Add pubsub support for mqtt (#330)
* Add pubsub support for mqtt

- update README.md
- add tests for metadata parsing
- linting

* Add pubsub support for mqtt

- remove topic field from metadata.

* Add pubsub support for mqtt

- use consumerID as clientID for mqtt connection

* Add pubsub support for mqtt

- address review comments
2020-05-22 20:39:09 -07:00