* 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>
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>
* 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>
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>
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>
* 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>
* 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.
* 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