allthingssecurity commented on PR #27033: URL: https://github.com/apache/camel/pull/27033#issuecomment-5886123152
Thanks for the review. I rebased onto main and pushed 77279e8780bd. **Blocking (strategy on-completions run after the add):** fixed. The aggregator now releases or hands over only the syncs it creates itself: the `handoverCompletions()` result right after `sc.copy(copy)`, kept in an aggregator-owned holder. The on-completions that strategies add, such as the zip and tar temp file deletes, are left as they are on main. Details are in the inline thread. **Minor:** - **O(n²) and the extra `get()`:** in keeping mode each message appends its syncs to a per-group holder, kept in a map by correlation key and guarded by the aggregation lock. That is O(1) per message. When the group completes, the whole holder is added to the aggregated exchange as one on-completion. The per-message `aggregationRepository.get()` is gone. Holders left over from groups that never completed are released in `doShutdown`, after the memory repository has been stopped and cleared. - **Upgrade guide:** added "Aggregate EIP - stream caching with spooling to disk" to the 4.23 guide. It covers the larger spool usage (e.g. `UseLatestAggregationStrategy` with a large `completionSize`), memory groups that never complete keeping their spool files until the aggregator shuts down, and the optimistic-locking/persistent behavior. - **Zip/tar test:** added `ZipAggregationStrategyRepositoryTest` and `TarAggregationStrategyRepositoryTest`, each with `optimisticLocking()` and a repository that stores copies (persistent style). I also added three `AggregateStreamCachingSpoolTest` cases with a strategy that adds an on-completion (optimistic, copying repository, memory). All of the non-memory cases fail on the previous head and pass now. **Tests:** camel-core `*Aggregat*,*StreamCach*` ran 337 tests with 0 failures (5 skipped manual tests). camel-tarfile ran 14 and camel-zipfile 16, all passing. All earlier `AggregateStreamCachingSpoolTest` tests still pass. _Claude Code on behalf of allthingssecurity_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
