{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":2686240,"defaultBranch":"main","name":"spring-integration","ownerLogin":"artembilan","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2011-11-01T08:04:04.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1071590?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1709927725.0","currentOid":""},"activityList":{"items":[{"before":"02ac57b7699c36dda4a601a14a9edf1396d18549","after":"fbe6c34943cb23f7b675d45d5ad8d8feb9140f8f","ref":"refs/heads/GH-8981","pushedAt":"2024-03-08T22:31:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8981: Add `UnicastingDispatcher.failoverStrategy` option\n\nFixes: #8981\n\nSometime the simple `boolean failover` on the `MessageChannel` (default `true`)\nis not enough to be sure that we can dispatch to the next handler or not.\nSuch a decision can be made using `ErrorMessageExceptionTypeRouter`, but that would\nrequire an overhaul for the whole integration flow\n\n* Introduce a simple `Predicate failoverStrategy` into `UnicastingDispatcher`\nand all its `MessageChannel` implementation consumers to allow to make a decision about next failover\naccording to a thrown exception from the current `MessageHandler`\n* Expose `failoverStrategy` on the `DirectChannel`, `ExecutorChannel` & `PartitionedChannel`,\nand add it into respective Java DSL specs\n* Fix involved tests to rely on the `failoverStrategy` property from now on\n* Document the new feature","shortMessageHtmlLink":"spring-projectsGH-8981: Add UnicastingDispatcher.failoverStrategy o…"}},{"before":null,"after":"02ac57b7699c36dda4a601a14a9edf1396d18549","ref":"refs/heads/GH-8981","pushedAt":"2024-03-08T19:55:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8981: Add `UnicastingDispatcher.failoverStrategy` option\n\nFixes: #8981\n\nSometime the simple `boolean failover` on the `MessageChannel` (default `true`)\nis not enough to be sure that we can dispatch to the next handler or not.\nSuch a decision can be made using `ErrorMessageExceptionTypeRouter`, but that would\nrequire an overhaul for the whole integration flow\n\n* Introduce a simple `Predicate failoverStrategy` into `UnicastingDispatcher`\nand all its `MessageChannel` implementation consumers to allow to make a decision about next failover\naccording to a thrown exception from the current `MessageHandler`\n* Expose `failoverStrategy` on the `DirectChannel`, `ExecutorChannel` & `PartitionedChannel`,\nand add it into respective Java DSL specs\n* Fix involved tests to rely on the `failoverStrategy` property from now on\n* Document the new feature","shortMessageHtmlLink":"spring-projectsGH-8981: Add UnicastingDispatcher.failoverStrategy o…"}},{"before":"1dd0d17e5fae9fec7f4094c01f2a90f1c1347278","after":"ffa2c7bb9b08d4ad383ba970a961a3db95835de5","ref":"refs/heads/GH-7925","pushedAt":"2024-03-05T18:11:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Do not clone message history header if only one consume in multi-publish\n* Fix typos in docs","shortMessageHtmlLink":"* Do not clone message history header if only one consume in multi-pu…"}},{"before":null,"after":"1dd0d17e5fae9fec7f4094c01f2a90f1c1347278","ref":"refs/heads/GH-7925","pushedAt":"2024-03-04T22:31:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-7925: Make message history header as mutable\n\nFixes: #7925\n\nThe `MessageHistory.write()` creates not only a new instance of the `MessageHistory`,\nbut also a new copy of the whole message.\nThis significantly impacts the performance when we have too many components to track\n\n* Make `MessageHistory` as append-only container and create a new instance (plus message)\nonly on the first track when no prior history is present\n* Change `WireTap`, `BroadcastingDispatcher`, `AbstractMessageRouter` and `AbstractMessageSplitter`\nto use a new `AbstractIntegrationMessageBuilder.cloneMessageHistoryIfAny()` API for every branch a message\nis produced.\nEssentially, create a new message with copy of the message history to let that downstream sub-flow\nhave its own trace\n* Modify failed unit tests for a new logic where message history header is not immutable anymore\n* This also fixes an `AbstractMessageSplitter` for propagating its track into messages it emits","shortMessageHtmlLink":"spring-projectsGH-7925: Make message history header as mutable"}},{"before":null,"after":"a4f8bbc00239996bc4f20cc3efacebf804ccebd8","ref":"refs/heads/GH-8800","pushedAt":"2023-12-06T15:18:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8800: Fix SMB Gateway for recursive MGET\n\nFixes: gh-8800\n\nThe `SmbFile.getName()` returns plain file name, not with a\nsub-directory as it is expected by the `AbstractRemoteFileOutboundGateway`\nfor (S)FTP protocols\n\n* Introduce `AbstractRemoteFileOutboundGateway.getFullFileName()`\nwith dir and file name concatenation by default (as it was before)\nand override it in the `SmbOutboundGateway` to return the full path according this protocol.\n* Fix `SmbOutboundGateway.enhanceNameWithSubDirectory()` to return an `SmbFile` instance\nsince it has all the info about remote file, include requested directory\n* Fix `SmbOutboundGateway.getFilename()` to remove the trailing `/` in the dir name\nsince this is not what expected by the `AbstractRemoteFileOutboundGateway` logic\n\n**Cherry-pick to `6.1.x`**","shortMessageHtmlLink":"spring-projectsGH-8800: Fix SMB Gateway for recursive MGET"}},{"before":null,"after":"c7a9d17e00ec5475ef0cecbf7f07c1648db120bf","ref":"refs/heads/GH-8797","pushedAt":"2023-11-28T18:51:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8797: Fix DefSftpSessionFactory.timeout logic\n\nFixes https://github.com/spring-projects/spring-integration/issues/8797\n\nAfter migration to Apache MINA we have missed to fix `DefaultSftpSessionFactory.timeout`\nto be `0` by default as it states in its Javadocs and reference manual\nIt is `null` by default which really means an infinite wait.\n\n* Fix `DefaultSftpSessionFactory.timeout` to be a reasonable 30 seconds by default\n* Fix `setTimeout()` Javadocs and respective `session-factory.adoc`\n* Propagate this `timeout` down to the `SftpClient` for its commands interactions","shortMessageHtmlLink":"spring-projectsGH-8797: Fix DefSftpSessionFactory.timeout logic"}},{"before":"85e3dae75788fe8add4edec98d6bfc100b6e6fcb","after":"8f4081d7480f66e742658daf33e4df1fe3075f77","ref":"refs/heads/GH-8786","pushedAt":"2023-11-13T20:28:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8786: Make `FtpSession.finalizeRaw()` robust\n\nFixes https://github.com/spring-projects/spring-integration/issues/8786\n\nIf `FtpSession.readRaw()` fails, the next `FtpSession.finalizeRaw()` call\nwould lead to `FTPClient.completePendingCommand()` failure since\nthere is no command to finish.\n\n* Fix `FtpSession.finalizeRaw()` to exit earlier positively in case of\n`FTPReply.isNegativePermanent()` for the current reply code set by the failure\nfrom a previous `FtpSession.readRaw()`\n\n**Cherry-pick to `6.1.x`, `6.0.x` & `5.5.x`**","shortMessageHtmlLink":"spring-projectsGH-8786: Make FtpSession.finalizeRaw() robust"}},{"before":null,"after":"c3dd1e23059c49fef0bba76d5043d6c73e5ed361","ref":"refs/heads/GH-8785","pushedAt":"2023-11-03T15:57:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8785: Propagate WebSocket client connect fail\n\nFixes https://github.com/spring-projects/spring-integration/issues/8785\n\nThe `ClientWebSocketContainer.start()` delegates to the `IntegrationWebSocketConnectionManager`\nwhich performs an async connection to the server.\n\n* Wait for `connectionLatch` in the `ClientWebSocketContainer.start()`\nand check for `this.openConnectionException != null` to re-throw.\nMark `ClientWebSocketContainer` as stopped in that case\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8785: Propagate WebSocket client connect fail"}},{"before":null,"after":"85e3dae75788fe8add4edec98d6bfc100b6e6fcb","ref":"refs/heads/GH-8786","pushedAt":"2023-11-03T15:10:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8786: Make `FtpSession.finalizeRaw()` robust\n\nFixes https://github.com/spring-projects/spring-integration/issues/8786\n\nIf `FtpSession.readRaw()` fails, the next `FtpSession.finalizeRaw()` call\nwould lead to `FTPClient.completePendingCommand()` failure since\nthere is no command to finish.\n\n* Fix `FtpSession.finalizeRaw()` to exit earlier positively in case of\n`FTPReply.isNegativePermanent()` for the current reply code set by the failure\nfrom a previous `FtpSession.readRaw()`\n\n**Cherry-pick to `6.1.x`, `6.0.x` & `5.5.x`**","shortMessageHtmlLink":"spring-projectsGH-8786: Make FtpSession.finalizeRaw() robust"}},{"before":"b8dd5188e28300d3a1abef63e2c6311f12246fbd","after":"a0a878eb0cdea04207f8d9f82c90c04ab1edbbc9","ref":"refs/heads/GH-8778","pushedAt":"2023-10-26T19:28:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Use `compareAndSet` in `start` & `stop`","shortMessageHtmlLink":"* Use compareAndSet in start & stop"}},{"before":null,"after":"ca9aef4167ef8e4b8f646870b9540e0bd4226a59","ref":"refs/heads/GH-8779","pushedAt":"2023-10-26T18:57:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8779: MongoDbMS Fix distinct result conversion\n\nFixes https://github.com/spring-projects/spring-integration/issues/8779\n\nThe `MongoTemplate` has now a `findDistinct()` API with a smart\nresult conversion instead of native driver plain expectations\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8779: MongoDbMS Fix distinct result conversion"}},{"before":null,"after":"b8dd5188e28300d3a1abef63e2c6311f12246fbd","ref":"refs/heads/GH-8778","pushedAt":"2023-10-26T17:57:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8778: Fix KafkaMessageSource deadlock\n\nFixes https://github.com/spring-projects/spring-integration/issues/8778\n\nThe `KafkaMessageSource.doReceive()` have a lock around its whole body.\nThat includes the `pollRecord()` which can be blocked on the `KafkaConsumer.poll()`.\nThis way the rest of lifecycle management callbacks can be blocked until `KafkaConsumer.poll()` returns.\n\n* Rework lifecycle management flags to `AtomicBoolean` since there is not too much work\nin their respective callbacks\n* Decrease a locking block in the `doReceive()` just to consumer setup part.\nLeave `pollRecord()` outside of the lock\n* Add `this.consumer.wakeup()` into `stopConsumer()` to break a `poll()` cycle\nand return immediately for the next `close()` call\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8778: Fix KafkaMessageSource deadlock"}},{"before":"2107f163aebe534babadeac7b8ddcb64a29251e3","after":"97d12c61703866e3975fdc21c230f3b8e54039c3","ref":"refs/heads/GH-8770","pushedAt":"2023-10-25T17:16:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Rename private `PostgresSubscribableChannel.askForMessage()` method to more specific `pollAndDispatchMessage()`","shortMessageHtmlLink":"* Rename private PostgresSubscribableChannel.askForMessage() method…"}},{"before":null,"after":"2107f163aebe534babadeac7b8ddcb64a29251e3","ref":"refs/heads/GH-8770","pushedAt":"2023-10-25T15:29:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8770: Add `PostgresSubsChannel.errorHandler`\n\nFixes https://github.com/spring-projects/spring-integration/issues/8770\n\nThe problem with the `PostgresSubscribableChannel.notifyUpdate()` is that the try-catch block is outside the loop,\nso the loop will die on an exception, leaving further messages unprocessed.\n\n* Add ``PostgresSubscribableChannel.errorHandler` option to be invoked\nafter a `RetryTemplate` and for every failed message.\n* The `askForMessage()` new logic is to catch an exception on a message and call `errorHandler`\nreturning a `FALLBACK_STUB` to continue an outer loop in the `notifyUpdate()`\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8770: Add PostgresSubsChannel.errorHandler"}},{"before":null,"after":"1bff76931ce9b9b55f9086a43bcf10d37d6dc655","ref":"refs/heads/GH-8773","pushedAt":"2023-10-25T13:25:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8773: Fix MGS for removal from group\n\nFixes https://github.com/spring-projects/spring-integration/issues/8773\n\nThe https://github.com/spring-projects/spring-integration/issues/8732 introduced a filtering for messages in group.\nSo, plain `removeMessage()` doesn't work any more if message is connected to some group yet.\nTherefore, `DelayHandler` is failing.\n\n* Introduce `getMessageFromGroup()` and `removeMessageFromGroupById()` into `MessageGroupStore` API\nand implement it respectively in all the stores\n* Remove `@LongRunningTest` from delayer integration tests and adjust its config to delay not for a long\n\n**Cherry-pick to `6.1.x`**","shortMessageHtmlLink":"spring-projectsGH-8773: Fix MGS for removal from group"}},{"before":null,"after":"b147e295ee40c94898b3675986b45df2c4ee4a00","ref":"refs/heads/deprecate_security_module","pushedAt":"2023-10-16T21:28:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Deprecate `spring-integration-security` module\n\nThe `SecurityContextPropagationChannelInterceptor` has been migrated to `spring-security-messaging`.\nSince it was only the class in the `spring-integration-security`, it is now fully considered\nas deprecated\n* Remove all the tests from `spring-integration-security`\n* Modify `HttpDslTests` to demonstrate the `spring-security-messaging` in action\nwhich has been replaced with whatever there was in `spring-integration-security`\n* Remove redundant `exclude group: 'org.springframework'` for security\ndependencies in `build.gradle` since all of them rely on the same SF deps\nas SI","shortMessageHtmlLink":"Deprecate spring-integration-security module"}},{"before":"8d1d507b5931e238b92cb6ab96d3b819a578cf0f","after":"6b94dbfc0fa8d82bbccf3e7016ca667abd551038","ref":"refs/heads/GH-8734","pushedAt":"2023-10-13T18:36:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Fix Checkstyle violation for Javadoc","shortMessageHtmlLink":"* Fix Checkstyle violation for Javadoc"}},{"before":null,"after":"8d1d507b5931e238b92cb6ab96d3b819a578cf0f","ref":"refs/heads/GH-8734","pushedAt":"2023-10-13T18:20:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8734: expose JmsLisConSpec.observationRegistry\n\nFixes https://github.com/spring-projects/spring-integration/issues/8734\n\nExpose `JmsListenerContainerSpec.observationRegistry(ObservationRegistry observationRegistry)` option","shortMessageHtmlLink":"spring-projectsGH-8734: expose JmsLisConSpec.observationRegistry"}},{"before":null,"after":"59f9a1de058a4895bee60a60cbdb013b10bc152a","ref":"refs/heads/remove_file_header_for_mput","pushedAt":"2023-10-11T18:30:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Remove request FILENAME header for MPUT\n\nRelated to: https://stackoverflow.com/questions/77268009/how-to-use-sftp-spring-integration-mput-with-sftpoutboundgateway-when-file-objec\n\nIn some scenarios when the flow starts with a file inbound channel adapter\nand then an MPUT operation is performed for remote file outbound gateway,\nthe populated in the beginning `FileHeaders.FILENAME` is used from\nthe `DefaultFileNameGenerator` for all the files from local directory to\nupload.\nSuch a behaviour leads only to the last file in the target remote\ndirectory and only with the name from that header.\n\n* Fix the `AbstractRemoteFileOutboundGateway` to remove a `FileHeaders.FILENAME` header\nwhen message is build for specific item from MPUT request.\nThis way an original local file is used when we upload directory.","shortMessageHtmlLink":"Remove request FILENAME header for MPUT"}},{"before":"c212ea665c26d5d5e32fe3c380ff8d30fc615af1","after":"bb7a8722f5767c333d6dbfd6dcb54c91952cd2cf","ref":"refs/heads/GH-8745","pushedAt":"2023-10-11T14:51:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Fix language in Javadocs\n* Add more `not dirty` statuses to `SftpRemoteFileTemplate` & `SmbRemoteFileTemplate`","shortMessageHtmlLink":"* Fix language in Javadocs"}},{"before":"2cb41b1997aa8ff2e3ed876a3caacfee1e0b8bd9","after":"c212ea665c26d5d5e32fe3c380ff8d30fc615af1","ref":"refs/heads/GH-8745","pushedAt":"2023-10-10T13:50:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Fix tests for pool interaction","shortMessageHtmlLink":"* Fix tests for pool interaction"}},{"before":null,"after":"2cb41b1997aa8ff2e3ed876a3caacfee1e0b8bd9","ref":"refs/heads/GH-8745","pushedAt":"2023-10-10T13:20:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8745: Add RFT.shouldMarkSessionAsDirty()\n\nFixes https://github.com/spring-projects/spring-integration/issues/8745\n\nNot all errors caught in the `RemoteFileTemplate.execute()`\nare fatal to mark session as dirty and physically close the target session\nin the cache\n\n* Introduce a `RemoteFileTemplate.shouldMarkSessionAsDirty()`\nto consult with an exception if it is really a fatal error to close\nthe session in the end.\n* Override `shouldMarkSessionAsDirty()` in the `RemoteFileTemplate`\nimplementations to check statuses of respective protocol errors\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8745: Add RFT.shouldMarkSessionAsDirty()"}},{"before":null,"after":"65020bb00287ac962659ec5b2e10fe8d268194c8","ref":"refs/heads/Gradle_modules","pushedAt":"2023-10-09T19:59:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Publish Gradle module artifacts","shortMessageHtmlLink":"Publish Gradle module artifacts"}},{"before":"0a3a1c058724cd65ffd6cff67e855f74267e971e","after":"fc70cfb2ba390942b3e01781b05ccd42028c552b","ref":"refs/heads/default_trigger_1_second","pushedAt":"2023-10-09T17:15:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Fix language in Docs\n\nCo-authored-by: Gary Russell ","shortMessageHtmlLink":"Fix language in Docs"}},{"before":null,"after":"0a3a1c058724cd65ffd6cff67e855f74267e971e","ref":"refs/heads/default_trigger_1_second","pushedAt":"2023-10-09T15:57:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Change the default polling trigger to 1 second\n\nThe current default trigger for the poller is 10 milliseconds fixed delay.\nThis is very tight policy for Microservices where we might not have too many\nscheduled threads to distribute polling endpoint jobs evenly.\n\n* Change the default trigger to 1 second to align with what Spring Boot already\nclaims.\nSame 1 second policy is used in Spring Cloud Stream as well","shortMessageHtmlLink":"Change the default polling trigger to 1 second"}},{"before":null,"after":"01c8e32d0a2deb44e53de3a78a4eee7c644dc7ec","ref":"refs/heads/GH-8748","pushedAt":"2023-10-05T20:37:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-8748: JDBC locks: use READ_COMMITTED isolation\n\nFixes https://github.com/spring-projects/spring-integration/issues/8748\n\nThe Oracle DB throws `ORA-08177: can't serialize access for this transaction`\nwhen other transaction on the row has begun\n\n* Change the isolation for `DefaultLockRepository.acquire()` transaction\nto the `READ_COMMITTED` for what database automatically and silently\nrestarts the entire SQL statement, and no error occurs.\n* Add `oracle` dependencies to JDBC module\n* Introduce `OracleContainerTest` and implement it for `OracleLockRegistryTests`\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"spring-projectsGH-8748: JDBC locks: use READ_COMMITTED isolation"}},{"before":"89f3a32b4701fe164ec77829f15665b942980048","after":"1e09fd498f87b753c08a72ecc802c8a37fcbd193","ref":"refs/heads/Fix_SPCA_for_max_messages_per_poll","pushedAt":"2023-10-03T21:12:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Fix `this.` prefix in `SourcePollingChannelAdapterFactoryBean`","shortMessageHtmlLink":"* Fix this. prefix in SourcePollingChannelAdapterFactoryBean"}},{"before":null,"after":"89f3a32b4701fe164ec77829f15665b942980048","ref":"refs/heads/Fix_SPCA_for_max_messages_per_poll","pushedAt":"2023-10-03T21:03:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Fix maxMessagesPerPoll for SourcePollingChAdapter\n\nThe `AbstractMethodAnnotationPostProcessor` does not check\nfor `PollerMetadata.MAX_MESSAGES_UNBOUNDED` before setting\n`maxMessagesPerPoll` into a `SourcePollingChannelAdapter`\nwhich in this case must be `1`\n\nAlso fix `SourcePollingChannelAdapterFactoryBean` to not mutate\nthe provided `PollerMetadata` (which might be global default)\nwith a new `maxMessagesPerPoll`\n\n**Cherry-pick to `6.1.x` & `6.0.x`**","shortMessageHtmlLink":"Fix maxMessagesPerPoll for SourcePollingChAdapter"}},{"before":"b93049a92305c105d69150b925036cae6042a060","after":"8f3fdaec7044a32ddac32ce37a77deed5e2842b7","ref":"refs/heads/Fix_Delegation_in_JMS_Inbound_Endpoints","pushedAt":"2023-09-19T14:36:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Fix `MessagingGatewaySupport` for `Observation.NOOP` check.\nThe parent process may still use `ObservationRegistry.NOOP` which sets\n`Observation.NOOP` instance into the current context and thread local","shortMessageHtmlLink":"* Fix MessagingGatewaySupport for Observation.NOOP check."}},{"before":"bdca88a8560dcb6e987cad4dc1a92c6f432d4076","after":"cdcdecc8911a39bd3d450011afa33f0099308941","ref":"refs/heads/Fix_KeyValueStore_for_multi_groups","pushedAt":"2023-09-19T14:14:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"* Bring back `GROUP_OF_MESSAGES_` prefix\nto avoid complex regexp and don't bother for edge cases,\nwhere even that regexp may fail","shortMessageHtmlLink":"* Bring back GROUP_OF_MESSAGES_ prefix"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEEJvljAA","startCursor":null,"endCursor":null}},"title":"Activity · artembilan/spring-integration"}