{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":1187608,"defaultBranch":"main","name":"spring-retry","ownerLogin":"spring-projects","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-12-21T16:41:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/317776?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726256217.0","currentOid":""},"activityList":{"items":[{"before":"a34a62729d09d655891f8b1a1848cc7890a58a5d","after":"4886b75d0b09260348c5480cde33d386d8d48285","ref":"refs/heads/main","pushedAt":"2024-09-19T15:24:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"feat: setter for Log of RetryTemplate (#471)\n\nGH-470: Add `RetryTemplate.setLogger()` to avoid reflection in other places\r\n\r\nFixes: #470\r\nIssue link: https://github.com/spring-projects/spring-retry/issues/470\r\n\r\nSpring Cloud Config does mutation in the `RetryTemplate` for its system loading logger via `RetryTemplateFactory`.\r\n\r\n* Expose setter for `logger` property to avoid reflection.\r\n* Add `RetryTemplateBuilder.withLogger()` for convenience","shortMessageHtmlLink":"feat: setter for Log of RetryTemplate (#471)"}},{"before":"b98b2a55a0d5c5af1b50ce2620a871bde44e40a3","after":"a34a62729d09d655891f8b1a1848cc7890a58a5d","ref":"refs/heads/main","pushedAt":"2024-09-19T15:01: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":"Adjust test logging for less noise during build\n\n* Resolve deprecations in the `RetryContextSerializationTests`","shortMessageHtmlLink":"Adjust test logging for less noise during build"}},{"before":"d0585fd6f740d1a83613619c682232a0be8eaebf","after":"b98b2a55a0d5c5af1b50ce2620a871bde44e40a3","ref":"refs/heads/main","pushedAt":"2024-09-13T20:17:56.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":"Next development version (v2.0.10-SNAPSHOT)","shortMessageHtmlLink":"Next development version (v2.0.10-SNAPSHOT)"}},{"before":"dfc95fe42eefcab08c6da413b292be8630f9e858","after":"d0585fd6f740d1a83613619c682232a0be8eaebf","ref":"refs/heads/main","pushedAt":"2024-09-13T19:03:40.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":"Update test dependencies; prepare for release","shortMessageHtmlLink":"Update test dependencies; prepare for release"}},{"before":"5493ab7edf223a0f7003559a82dc3db073918bd3","after":"dfc95fe42eefcab08c6da413b292be8630f9e858","ref":"refs/heads/main","pushedAt":"2024-09-13T15:07:13.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":"GH-229: Expose `method` & `methodArgs` into ctx from `RetryOperationsInterceptor`\n\nFixes: #229\nIssue link: https://github.com/spring-projects/spring-retry/issues/229\n\nThe logic in the target `RetryPolicy` might be based on the method and its arguments we retry.\n\n* Expose `method` & `methodArgs` `RetryContext` attributes from an internal implementation\nof the `MethodInvocationRetryCallback` in the `RetryOperationsInterceptor`\n* Document these attributes","shortMessageHtmlLink":"GH-229: Expose method & methodArgs into ctx from `RetryOperations…"}},{"before":"74b7ae2cbde3e7a7ae7a2d21a0129ee3caecaf47","after":"5493ab7edf223a0f7003559a82dc3db073918bd3","ref":"refs/heads/main","pushedAt":"2024-09-12T16:12:32.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":"GH-148: Test for `@Retryable` with an XML config\n\nFixes: #148\nIssue link: https://github.com/spring-projects/spring-retry/issues/148","shortMessageHtmlLink":"GH-148: Test for @Retryable with an XML config"}},{"before":"97ca28fc677122ce02767a1c431b96855e5dfa25","after":"74b7ae2cbde3e7a7ae7a2d21a0129ee3caecaf47","ref":"refs/heads/main","pushedAt":"2024-09-12T15:56:00.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":"Remove `@Import(RetryConfiguration.class)` from `@Recover`\n\nLooks like that was a copy/paste artifact.\nThe `@Recover` is for business method purpose.\nThe `@Import(RetryConfiguration.class)` is done from the `@EnableRetry`","shortMessageHtmlLink":"Remove @Import(RetryConfiguration.class) from @Recover"}},{"before":"993526c9b8d1141efaa4c86f15813b68c4df5c5d","after":"97ca28fc677122ce02767a1c431b96855e5dfa25","ref":"refs/heads/main","pushedAt":"2024-09-12T14:49:33.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":"GH-188: Expose `@CircuitBreaker(recover)` attribute\n\nFixes: #188\nIssue link: https://github.com/spring-projects/spring-retry/issues/188\n\nAll the logic to determine a recover method is there.\nWe are just missing the `CircuitBreaker(recover)` attribute with an `@AliasFor(annotation = Retryable.class)`","shortMessageHtmlLink":"GH-188: Expose @CircuitBreaker(recover) attribute"}},{"before":"42158baa44a32a4d2fe99c17cdaec6e1a89c4ee6","after":"993526c9b8d1141efaa4c86f15813b68c4df5c5d","ref":"refs/heads/main","pushedAt":"2024-09-12T14:04:46.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":"Add GHA workflow to announce milestone planning in chat","shortMessageHtmlLink":"Add GHA workflow to announce milestone planning in chat"}},{"before":"c0a49411c2223e3fc11ccc5ffebd63f1bc8c7fcd","after":"42158baa44a32a4d2fe99c17cdaec6e1a89c4ee6","ref":"refs/heads/main","pushedAt":"2024-09-11T13:30:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-467: Support concurrent behavior on MetricsRetryListener\n\nFixes #467","shortMessageHtmlLink":"GH-467: Support concurrent behavior on MetricsRetryListener"}},{"before":"db47bc66fd2bda5262accb45f4dba2b75b134da3","after":"c0a49411c2223e3fc11ccc5ffebd63f1bc8c7fcd","ref":"refs/heads/main","pushedAt":"2024-09-09T14:00:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-464: Fix backOff API in UniformRandomBackOffPolicy\n\nFixes: #464\r\nIssue link: https://github.com/spring-projects/spring-retry/issues/464\r\n\r\nWhen `maxBackOffPeriod` is less than `minBackOffPeriod`, delta is taken\r\ntaken as zero in `UniformRandomBackOffPolicy` `backOff()` method.\r\n\r\n* Update tests to use `DummySleeper`\r\n* Extract `UniformRandomBackOffPolicy` `backOffSuppliers` into local variables\r\n* Modify `UniformRandomBackOffPolicy` tests","shortMessageHtmlLink":"GH-464: Fix backOff API in UniformRandomBackOffPolicy"}},{"before":"81a2cdd434e9973ce7192ca3ae3b17a912e6287f","after":"db47bc66fd2bda5262accb45f4dba2b75b134da3","ref":"refs/heads/main","pushedAt":"2024-08-16T17:23: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":"Next development version (v2.0.9-SNAPSHOT)","shortMessageHtmlLink":"Next development version (v2.0.9-SNAPSHOT)"}},{"before":"8b8c3887ce639f87dfaff4582d4442e22dd4409d","after":"81a2cdd434e9973ce7192ca3ae3b17a912e6287f","ref":"refs/heads/main","pushedAt":"2024-08-16T16:09:15.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":"Downgrade to Micrometer `1.10.13`\n\nThis is for compatibility with the Spring Framework `6.0.x` version we rely on so far","shortMessageHtmlLink":"Downgrade to Micrometer 1.10.13"}},{"before":"9d8df3b4d0818be4b6dcc4183bc2917b25514179","after":"8b8c3887ce639f87dfaff4582d4442e22dd4409d","ref":"refs/heads/main","pushedAt":"2024-08-16T13:40:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Upgrade to Spring Framework 6.0.23\n\nCloses gh-462","shortMessageHtmlLink":"Upgrade to Spring Framework 6.0.23"}},{"before":"8e5cafe200c03003fcbf9eeae629bf878501bea9","after":"9d8df3b4d0818be4b6dcc4183bc2917b25514179","ref":"refs/heads/main","pushedAt":"2024-08-13T16:34:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-458: Introduce `MetricsRetryListener`\n\nFixes: #458\r\n\r\n* Fix code formatting violations\r\n\r\n* * Make `retryContextToSample` as an `IdentityHashMap` and use `RetryContext` as a key\r\n* Change `setCustomTags()` to the `@Nullable Iterable` argument\r\n* Use `exception = none` tag for successful executions to avoid time-series conflicts","shortMessageHtmlLink":"GH-458: Introduce MetricsRetryListener"}},{"before":"9df8d6cc90a06b71fe733697b91adcf5431da215","after":"8e5cafe200c03003fcbf9eeae629bf878501bea9","ref":"refs/heads/main","pushedAt":"2024-08-13T16:06:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-460: Fix required Java version in README\n\nFixes: #460","shortMessageHtmlLink":"GH-460: Fix required Java version in README"}},{"before":"a9b329af557cad0a9bec1657e2e79f820de4bfdc","after":"9df8d6cc90a06b71fe733697b91adcf5431da215","ref":"refs/heads/main","pushedAt":"2024-07-25T21:28:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Add @Nullable in RetryContext to easier detect possible NPE\n\n* Add @Nullable in RetryContext to easier detect possible NPE\r\n\r\nBoth getParent() and getLastThrowable() might return null, as mentioned\r\nin javadoc. @Nullable helps an IDE warns developers about potential NPE.\r\n\r\n* Rephrase Javadoc for RetryContext.getLastThrowable()\r\n\r\n* Review fixes","shortMessageHtmlLink":"Add @nullable in RetryContext to easier detect possible NPE"}},{"before":"04f12a7d969cac4755a7dd52e88b767b9fcd3fa9","after":"a9b329af557cad0a9bec1657e2e79f820de4bfdc","ref":"refs/heads/main","pushedAt":"2024-07-18T14:57:17.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":"GH-456: Fix `EnableRetryWithBackoffTests.randomExponential()` for random\n\nFixes: #456\n\nThe random logic in the `ExponentialRandomBackOffPolicy` may end up with close to the `1`.\nAnd after casting to `long` we got the same `1000`\n\n* Fix test respectively to include that possibility.","shortMessageHtmlLink":"GH-456: Fix EnableRetryWithBackoffTests.randomExponential() for random"}},{"before":"caa0d72d168c0f9c0c1aefbf268ed3c33df386ff","after":"04f12a7d969cac4755a7dd52e88b767b9fcd3fa9","ref":"refs/heads/main","pushedAt":"2024-07-14T08:52:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Remove concourse configuration","shortMessageHtmlLink":"Remove concourse configuration"}},{"before":"d09e1008695772536b3ef91efa76e24f73846c4a","after":"caa0d72d168c0f9c0c1aefbf268ed3c33df386ff","ref":"refs/heads/main","pushedAt":"2024-07-13T09:19:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Fix formatting of Maven Central check url\n\nCloses gh-455","shortMessageHtmlLink":"Fix formatting of Maven Central check url"}},{"before":"98d5e6a633a891ed921f6488d1e7e0245cc22951","after":"d09e1008695772536b3ef91efa76e24f73846c4a","ref":"refs/heads/main","pushedAt":"2024-07-13T09:14:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Next development version (v2.0.8-SNAPSHOT)","shortMessageHtmlLink":"Next development version (v2.0.8-SNAPSHOT)"}},{"before":"ee44dcec66b19a217eb60eaec8fccdab692ec6ca","after":"98d5e6a633a891ed921f6488d1e7e0245cc22951","ref":"refs/heads/main","pushedAt":"2024-07-13T08:29:15.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Upgrade to Maven 3.9.8\n\nCloses gh-454","shortMessageHtmlLink":"Upgrade to Maven 3.9.8"}},{"before":"686dd9d11a1199284feffae213c74e41ee75f7e9","after":"ee44dcec66b19a217eb60eaec8fccdab692ec6ca","ref":"refs/heads/main","pushedAt":"2024-07-13T08:19:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Release from GitHub Actions\n\nTo harmonize the release process, this commit moves it to GHA.\n\nCloses gh-448","shortMessageHtmlLink":"Release from GitHub Actions"}},{"before":"0bcc787ad59917327776b8d215dfb4c999bd5dc0","after":"686dd9d11a1199284feffae213c74e41ee75f7e9","ref":"refs/heads/main","pushedAt":"2024-07-13T08:02:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Move CI to GitHub actions\n\nThis commit moves the regular build and snapshot deployment to GitHub\nactions, based on a standard actions that are reusable.\n\nCloses gh-447","shortMessageHtmlLink":"Move CI to GitHub actions"}},{"before":"bd7c61a9ecb2a9b69955a58a3963f594167d6e13","after":"19e5908cd91d2c2355cd6a19ad138866ee08ff02","ref":"refs/heads/gh-447","pushedAt":"2024-07-13T07:41:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Hacking","shortMessageHtmlLink":"Hacking"}},{"before":null,"after":"bd7c61a9ecb2a9b69955a58a3963f594167d6e13","ref":"refs/heads/gh-447","pushedAt":"2024-07-12T18:40:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Hacking on moving CI to GHA","shortMessageHtmlLink":"Hacking on moving CI to GHA"}},{"before":"5b69d8059d1cf68dedd6d3b4eba23cab3f861e02","after":"0bcc787ad59917327776b8d215dfb4c999bd5dc0","ref":"refs/heads/main","pushedAt":"2024-06-27T14:53:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"Remove repo.spring.io/release reference (#445)","shortMessageHtmlLink":"Remove repo.spring.io/release reference (#445)"}},{"before":"8339dfa472a92cbb58668b86f657e1693f3598a8","after":"5b69d8059d1cf68dedd6d3b4eba23cab3f861e02","ref":"refs/heads/main","pushedAt":"2024-06-04T17:41:02.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":"GH-441: Introduce `PredicateRetryPolicy`\n\nFixes: #441\n\n* Replace `Classifier` with more widely used `Predicate` in `RetryTemplateBuilder`\n* Introduce `PredicateRetryPolicy` to avoid backward incompatible changes","shortMessageHtmlLink":"GH-441: Introduce PredicateRetryPolicy"}},{"before":"f2ec7212c5cc6a4e2c7b81f3a83862dde05931fa","after":"8339dfa472a92cbb58668b86f657e1693f3598a8","ref":"refs/heads/main","pushedAt":"2024-05-16T13:33:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spring-builds","name":"Spring Builds","path":"/spring-builds","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1134463?s=80&v=4"},"commit":{"message":"Next development version (v2.0.7-SNAPSHOT)","shortMessageHtmlLink":"Next development version (v2.0.7-SNAPSHOT)"}},{"before":"22228f8c8e580abf990122d99a1cf0c6ad1b7fcb","after":"f2ec7212c5cc6a4e2c7b81f3a83862dde05931fa","ref":"refs/heads/main","pushedAt":"2024-05-16T13:23:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Upgrade to Spring Framework 6.0.20\n\nCloses gh-435","shortMessageHtmlLink":"Upgrade to Spring Framework 6.0.20"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNToyNDo0Mi4wMDAwMDBazwAAAAS7CBeW","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNToyNDo0Mi4wMDAwMDBazwAAAAS7CBeW","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xNlQxMzoyMzo1OS4wMDAwMDBazwAAAARLqIwo"}},"title":"Activity · spring-projects/spring-retry"}