-
Notifications
You must be signed in to change notification settings - Fork 15
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
Avoid max queue name length, hide those implementieren detail to the user #88
Conversation
After discussing with our architects, we decided that the binder shouldn't trim queue names. This will introduce a pretty high risk for queue name collisions when destinations are very long. Alternatively, what if we introduced a toggle-able feature that allowed for hashing of the destination in the generated queue name? That way you can preserve the uniqueness of generated queue names while both using really long destinations as well as have support for characters that are supported in topic subscription names but not in queue names ( So when this feature is enabled, the generated queue name will look something like:
|
Ignore what I said in my previous comment. We'll be adding a config option which lets you define your queue names (or modify the existing generated ones) using SpEL expressions. Within which, you can trim queue names if you want. e.g. for this particular PR, you could modify this config to be:
|
* add config options to change the queue name format: * Add `queueNameExpression` and `errorQueueNameExpression` consumer config options * Add `queueNameExpression` and `queueNameExpressionsForRequiredGroups` producer config options * Deprecate `queueNamePrefix`, `useGroupNameInQueueName`, `useFamiliarityInQueueName`, `useDestinationEncodingInQueueName`, `errorQueueNameOverride`, and `useGroupNameInErrorQueueName` binding config options * Fixes #88
* Add is-reply message header (#97) * Add `solace_isReply` message header * Creating configuration metadata for bindings properties (#98) * Handle consuming null payloads (#112) * Add `solace_scst_nullPayload` message header * Convert incoming null payloads to empty equivalents * add config option to disable adding destination subscription on queue (#108) * add `addDestinationAsSubscriptionToQueue` binding config option * deprecate `isProvisionSubscriptionsToDurableQueue` in favor of `addDestinationAsSubscriptionToQueue` Co-authored-by: Jeffrey D <11084623+Nephery@users.noreply.github.com> * Upgrade to Spring cloud 2021.0.0 and Junit 5 (#118) # Product Changes * Upgrade Spring Boot to `2.6.2` * Upgrade Spring Cloud to `2021.0.0` * Upgrade sol-jcsmp to `10.13.0` # Test Changes * Upgrade sol-jms to `10.13.0` * Upgrade solace-integration-test-support to `0.8.0` * Upgrade all binder tests to JUnit 5 * Add `PubSubPlusExtension` into integration tests for automatic provisioning of PubSub+ in Docker and extension-managed JCSMP resources (e.g. managed `JCSMPSession` and `Queue`). * Docker provisioning is disabled if Spring properties are defined to use an externally provisioned broker. * Usage of Mockito, SoftAssertions, & ExecutorService were updated to use extensions for injection and auto-cleanup (or auto-calling `assertAll()` in the case of SoftAssertions). * Remove Maven `it` profile * Integration tests will always run by default. * Add parallel test execution and enable it by default in **Maven** * Is disabled by default for easy debugging when test are directly ran from an IDE (not through Maven). * Update `Test` Github Action workflow to skip duplicate runs, cache maven dependencies, and report unit test results. * fix PubSubPlusExtension integration (#119) * upgrade solace-integration-test-support to 0.9.0 * fix `SpringCloudStreamExtension` to use static accessors of `PubSubPlusExtension` resources * Replace the use of Pivotal Cloud Foundry by VMware Tanzu in documentation (#114) * SOL-46352: Fix duplicate logs by registering a single RetryListener (#116) * Fix duplicate logs by registering a single RetryListener * Fixes #77 * update sonatype urls to s01 (#121) Co-authored-by: skgaddam <ShivaKumar.Gaddam@solace.com> * Delivery Count (#122) * Add solace_deliveryCount Spring message header * This is a controlled availability feature * upgrade to spring-cloud@2021.0.1 & spring-boot@2.6.4 (#126) * SOL-57956: Removing dependency on spring-cloud-connector (#113) Fixes #15 * Sol 46284 Queue Name Expression (#120) * add config options to change the queue name format: * Add `queueNameExpression` and `errorQueueNameExpression` consumer config options * Add `queueNameExpression` and `queueNameExpressionsForRequiredGroups` producer config options * Deprecate `queueNamePrefix`, `useGroupNameInQueueName`, `useFamiliarityInQueueName`, `useDestinationEncodingInQueueName`, `errorQueueNameOverride`, and `useGroupNameInErrorQueueName` binding config options * Fixes #88 * Sol 58058 health actuator (#125) * Add support for health indicator * Add new `RECONNECTING` health indicator status Co-authored-by: E521877 <nathanael.weber@sbb.ch> Co-authored-by: Jeffrey Douangpaseuth <11084623+Nephery@users.noreply.github.com> * SOL-58059 Consumer Pause/Resume (#123) * Add support for consumer pause/resume Co-authored-by: Jeffrey Douangpaseuth <11084623+Nephery@users.noreply.github.com> * SOL-43137 Batch Consumer Support (#124) * Add support for batch consumers * Add `batchMaxSize` and `batchTimeout` consumer config options * Add `solace_scst_batchedHeaders` message header * closes #22 * SOL-49780: SCSt README Cleanup (#127) * Expand table of contents to 3 levels * Rewrite overview to be more clear * Try to make it more apparent that Solace session configuration is handled by the Solace Java Spring Boot starter (a completely different project) * Remove references to obsolete `prefix` consumer/producer config options. The `prefix` option was removed in `3.0.0`. * prepare for 2.3.0 release (#128) * add dependabot (#130) closes #78 * Upgrade Solace APIs to 10.13.1 & Log4j2 to 2.17.2 (#131) * Upgrade sol-jcsmp to `10.13.1` * Upgrade sol-jms to `10.13.1` * Upgrade Log4j2 to `2.17.2` * upgrade solace-spring-boot to 1.2.0 (#129) * upgrade to solace-spring-boot@1.2.1 & solace-services-info@0.4.4 Co-authored-by: carolmorneau <carol.morneau@solace.com> Co-authored-by: PhilippeKhalife <philippe.khalife@solace.com> Co-authored-by: skgaddam <ShivaKumar.Gaddam@solace.com> Co-authored-by: E521877 <nathanael.weber@sbb.ch>
I user entered a to long destination, he ends up with:
Those implementation details should be hide from the user.
Please see solace internal ticket #51636 for further discussion.