{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":144983024,"defaultBranch":"master","name":"today-infrastructure","ownerLogin":"TAKETODAY","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-16T12:12:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/29427694?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719667140.0","currentOid":""},"activityList":{"items":[{"before":"cb5079ee468857d29cc0ba0376abbdb452587d37","after":"adcbeac93293381e79f25ff48b33ea2a87ec3470","ref":"refs/heads/master","pushedAt":"2024-07-09T03:41:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":sparkles: 添加 MultipartFile 提升新能API","shortMessageHtmlLink":"✨ 添加 MultipartFile 提升新能API"}},{"before":"3057a64470e87f8510e4efa6194fc267cfd30229","after":"cb5079ee468857d29cc0ba0376abbdb452587d37","ref":"refs/heads/master","pushedAt":"2024-07-09T02:50:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: NettyMultipartFile#transferTo","shortMessageHtmlLink":"🎨 NettyMultipartFile#transferTo"}},{"before":"bc8dbcde96ab81886d74ffab35e41288f227560f","after":"3057a64470e87f8510e4efa6194fc267cfd30229","ref":"refs/heads/master","pushedAt":"2024-07-09T02:09:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":white_check_mark:","shortMessageHtmlLink":"✅"}},{"before":"63afe0f2af618adba11e6bbe4a30e12aade4fb02","after":"bc8dbcde96ab81886d74ffab35e41288f227560f","ref":"refs/heads/master","pushedAt":"2024-07-08T14:02:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":fire: 删除 today-orm","shortMessageHtmlLink":"🔥 删除 today-orm"}},{"before":"e71fd1c9e2bf64d8ed770c604f038b47c843da1a","after":"63afe0f2af618adba11e6bbe4a30e12aade4fb02","ref":"refs/heads/master","pushedAt":"2024-07-08T13:48:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":fire: 删除 today-orm","shortMessageHtmlLink":"🔥 删除 today-orm"}},{"before":"e793a89f6150d35a6556d5c0f07a407db5a5213a","after":"e71fd1c9e2bf64d8ed770c604f038b47c843da1a","ref":"refs/heads/master","pushedAt":"2024-07-08T13:43:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":fire: 删除 today-orm","shortMessageHtmlLink":"🔥 删除 today-orm"}},{"before":"239e7573c460fe0224031f9e3e835d499844c5ee","after":"e793a89f6150d35a6556d5c0f07a407db5a5213a","ref":"refs/heads/master","pushedAt":"2024-07-08T01:50:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":white_check_mark:","shortMessageHtmlLink":"✅"}},{"before":"5e889e2efef3b36325bd513b4b4abe68c8e8f534","after":"239e7573c460fe0224031f9e3e835d499844c5ee","ref":"refs/heads/master","pushedAt":"2024-07-07T14:23:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":recycle: 重构 MultiValueMap API\n\n- 重新设计 MultiValueMap set 系列 API\n- 重构 多个 Builder header(String headerName, String... headerValues) 使用 MultiValueMap set API","shortMessageHtmlLink":"♻️ 重构 MultiValueMap API"}},{"before":"cde8364ec09ce7e256eca1fc0df9325bdcd7b0e2","after":"5e889e2efef3b36325bd513b4b4abe68c8e8f534","ref":"refs/heads/master","pushedAt":"2024-07-07T05:45:20.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art:","shortMessageHtmlLink":"🎨"}},{"before":"1c6325f37a2a8b0949e6d5a7b458d88d537466d7","after":"cde8364ec09ce7e256eca1fc0df9325bdcd7b0e2","ref":"refs/heads/master","pushedAt":"2024-07-06T15:11:37.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: Expose FactoryBean attribute exception as BeanDefinitionStoreException","shortMessageHtmlLink":"🎨 Expose FactoryBean attribute exception as BeanDefinitionStoreException"}},{"before":"1d7244714a542f85c0e916b37755df98f93687b3","after":"1c6325f37a2a8b0949e6d5a7b458d88d537466d7","ref":"refs/heads/master","pushedAt":"2024-07-06T13:38:16.000Z","pushType":"push","commitsCount":23,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art:","shortMessageHtmlLink":"🎨"}},{"before":"0bb3e786880b91378b19f2c1fa8ad33de270e6e0","after":"1d7244714a542f85c0e916b37755df98f93687b3","ref":"refs/heads/master","pushedAt":"2024-07-06T08:53:27.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: 优化 MultiValueMap 和 HttpHeaders 以支持不可变和可变操作\n\n- 为 `MultiValueMap` 添加 `@Unmodifiable` 注解以支持不可变集合操作\n- 更新 `HttpHeaders` 的 `empty`, `forWritable` 和 `forWritable` 重载方法以支持创建可变和不可变实例\n- 重构 `copyOf` 方法以直接创建新的 `HttpHeaders` 实例并复制头信息\n- 更新版权声明年份范围至 2017 - 2024 年,并修正链接格式使用 HTTPS 协议\n- 更新测试代码以反映 `MultiValueMap` 和 `HttpHeaders` 的变更\n\n通过这些变更,我们提高了 `MultiValueMap` 和 `HttpHeaders` 的灵活性和易用性,使得集合操作更加直观和一致。同时,更新了测试代码以确保新方法的正确性。","shortMessageHtmlLink":"🎨 优化 MultiValueMap 和 HttpHeaders 以支持不可变和可变操作"}},{"before":"3f403972f8356cda23354bbc1186ed6da71fa8cb","after":"0bb3e786880b91378b19f2c1fa8ad33de270e6e0","ref":"refs/heads/master","pushedAt":"2024-07-06T06:14:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: 优化 AttributeAccessor 接口及相关类以支持更一致的属性复制操作\n\n- 将 `copyAttributesFrom` 方法更名为 `copyFrom` 以提供更清晰的命名\n- 调整 `AbstractBeanDefinition`, `DecoratingRequestContext`, `RedissonSessionRepository`, `PropertyValue`, `AbstractWebSession`, `HttpRequestDecorator`, `InterceptingClientHttpRequest`, `WebSocketSessionDecorator`, `DefaultTestContext`, `RouterFunctions`, `DefaultClientResponseBuilder`, `ServerHttpRequestDecorator`, `AttributeAccessorSupport`, `ClientHttpRequestDecorator` 等类以使用新的 `copyFrom` 方法\n- 更新版权声明年份并统一版权信息的格式\n- 完善测试代码以反映 `copyFrom` 方法的变更\n\n通过重命名 `copyAttributesFrom` 为 `copyFrom`,我们提高了代码的可读性和一致性。同时,对版权声明进行了更新,","shortMessageHtmlLink":"🎨 优化 AttributeAccessor 接口及相关类以支持更一致的属性复制操作"}},{"before":"8425b78406a937926e9c41434a5084854148f1a1","after":"3f403972f8356cda23354bbc1186ed6da71fa8cb","ref":"refs/heads/master","pushedAt":"2024-07-05T12:54:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art:","shortMessageHtmlLink":"🎨"}},{"before":"c5bf1bd4396788b39f6d51948b605c4af1929c94","after":"8425b78406a937926e9c41434a5084854148f1a1","ref":"refs/heads/master","pushedAt":"2024-07-05T07:00:51.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: AttributeAccessor#addAttributes","shortMessageHtmlLink":"🎨 AttributeAccessor#addAttributes"}},{"before":"f729e18268f6242460baa08b42508751f1bde451","after":"c5bf1bd4396788b39f6d51948b605c4af1929c94","ref":"refs/heads/master","pushedAt":"2024-07-03T14:45:49.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: Improve exception message to include affected configuration class","shortMessageHtmlLink":"🎨 Improve exception message to include affected configuration class"}},{"before":"0c6da2c362404bb0c16d4c940b5530fc9b7fba7e","after":"f729e18268f6242460baa08b42508751f1bde451","ref":"refs/heads/master","pushedAt":"2024-07-03T09:42:06.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":bug: 修复丢失的 WebServerFactoryCustomizerBeanPostProcessor","shortMessageHtmlLink":"🐛 修复丢失的 WebServerFactoryCustomizerBeanPostProcessor"}},{"before":"de708d82db9dd31861a15677521f7f4e8e350b3c","after":"0c6da2c362404bb0c16d4c940b5530fc9b7fba7e","ref":"refs/heads/master","pushedAt":"2024-07-02T14:26:23.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: Select most specific advice method in case of override","shortMessageHtmlLink":"🎨 Select most specific advice method in case of override"}},{"before":"9ad1e6a1be7bd015964886883e72ab60ff8d78ed","after":"de708d82db9dd31861a15677521f7f4e8e350b3c","ref":"refs/heads/master","pushedAt":"2024-07-01T14:11:19.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: Provide dedicated AOT exception hierarchy\n\nThis commit adds a number of catch point that provides additional\ncontext when an AOT processor fails to execute. Amongst other things,\nthis makes sure that the bean name and its descriptor is consistently\nprovided in the error message when available.","shortMessageHtmlLink":"🎨 Provide dedicated AOT exception hierarchy"}},{"before":"2c195a5709e7e2e63495db9dd0485bddd5484484","after":"9ad1e6a1be7bd015964886883e72ab60ff8d78ed","ref":"refs/heads/master","pushedAt":"2024-06-30T14:42:58.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":"Merge pull request #251 from TAKETODAY/dev/drop-SessionAttributes\n\n:fire: 删除 SessionAttributes","shortMessageHtmlLink":"Merge pull request #251 from TAKETODAY/dev/drop-SessionAttributes"}},{"before":"aaf4188bc2284531c3445a4ddc8192c6ade4494e","after":"2c195a5709e7e2e63495db9dd0485bddd5484484","ref":"refs/heads/master","pushedAt":"2024-06-30T14:32:13.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: Close ResponseBodyEmitter in case of write errors\n\nPrior to this commit, the `ReactiveTypeHandler` would handle `Flux`-like\nreturn types from controller methods and adapt them to SSE streams using\nthe `SseEmitter`/`ResponseBodyEmitter` APIs. In case an `IOException` is\nthrown while writing to the HTTP response stream, the\n`ReactiveTypeHandler` would rely on the Servlet container to call\n`AsyncListener#onError` - this would be the signal for Spring MVC to\ncomplete the async exchange. To prevent racing issues between this\nsignal and the actual handling of the exception, changes like  gh-20173\nwere applied. Since then, robust checks were added with gh-32340 in\n`StandardServletAsyncWebRequest.LifecycleHttpServletResponse`.\n\nWith Jetty 12, `AsyncListener#onError` would not be called as the error\nwould happen while writing in blocking mode to the response (so, not\nusing the Servlet WriteListener contract). But still, such `IOException`\nwould still result in the closing of the HTTP connection. As of Jetty\n12.0.4, this is no longer the case and the party managing the async\nlifecycle is in charge of completing the exchange, as it should. This\nmeans that the current behavior leaks HTTP connections for these cases\nand causes memory issues.\n\nThis commit ensures that such exceptions happening during response\nwrites are caught and result in the completion of the `SSEEmitter` and\nthe closing of the exchange. Even if other Servlet containers still\npropagate the error `AsyncListener#onError`, competing signals are still\nmanaged with gh-32340.","shortMessageHtmlLink":"🎨 Close ResponseBodyEmitter in case of write errors"}},{"before":"01c581da5bc07dffa3636332c1cc0d3c8d8629b6","after":"ec576b0edf31db91bc90e7581f03ec1c1db97d8c","ref":"refs/heads/dev/drop-SessionAttributes","pushedAt":"2024-06-30T09:14:38.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":"Merge branch 'master' into dev/drop-SessionAttributes","shortMessageHtmlLink":"Merge branch 'master' into dev/drop-SessionAttributes"}},{"before":"e7e5495e97e740bffaef80e467c17cd4ed46677e","after":"aaf4188bc2284531c3445a4ddc8192c6ade4494e","ref":"refs/heads/master","pushedAt":"2024-06-30T09:07:37.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":white_check_mark:","shortMessageHtmlLink":"✅"}},{"before":"9bfebc557356f618339b90558dc4e9304b19773c","after":"e7e5495e97e740bffaef80e467c17cd4ed46677e","ref":"refs/heads/master","pushedAt":"2024-06-29T13:50:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art:","shortMessageHtmlLink":"🎨"}},{"before":"9820b09c7f7c6025d1fa51aa88a9995900c197cd","after":"9bfebc557356f618339b90558dc4e9304b19773c","ref":"refs/heads/master","pushedAt":"2024-06-29T13:22:15.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art:","shortMessageHtmlLink":"🎨"}},{"before":null,"after":"01c581da5bc07dffa3636332c1cc0d3c8d8629b6","ref":"refs/heads/dev/drop-SessionAttributes","pushedAt":"2024-06-29T13:19:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":fire: 删除 SessionAttributes","shortMessageHtmlLink":"🔥 删除 SessionAttributes"}},{"before":"1bbb2c8b6ae7f30495a72b6910394d1d61638ea1","after":"9820b09c7f7c6025d1fa51aa88a9995900c197cd","ref":"refs/heads/master","pushedAt":"2024-06-29T12:41:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":bug: 修复 Gradle 升级错误","shortMessageHtmlLink":"🐛 修复 Gradle 升级错误"}},{"before":"3012c0158ff5226b5963df5f377cd74700bced16","after":"1bbb2c8b6ae7f30495a72b6910394d1d61638ea1","ref":"refs/heads/master","pushedAt":"2024-06-29T03:46:49.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":art: 升级 Gradle 8.8","shortMessageHtmlLink":"🎨 升级 Gradle 8.8"}},{"before":"7aaa4416ac6c3645c8e383774ce26fd6fcddce9d","after":"3012c0158ff5226b5963df5f377cd74700bced16","ref":"refs/heads/master","pushedAt":"2024-06-23T14:19:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":bug: 解决 WebSessionListener 依赖 SessionManager 会产生依赖循环\n\n#250","shortMessageHtmlLink":"🐛 解决 WebSessionListener 依赖 SessionManager 会产生依赖循环"}},{"before":"6865617be461965a786fc8cd6cbe2aa03c68b830","after":"7aaa4416ac6c3645c8e383774ce26fd6fcddce9d","ref":"refs/heads/master","pushedAt":"2024-06-23T13:49:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TAKETODAY","name":"海子 Yang","path":"/TAKETODAY","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29427694?s=80&v=4"},"commit":{"message":":white_check_mark:","shortMessageHtmlLink":"✅"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEejf07gA","startCursor":null,"endCursor":null}},"title":"Activity · TAKETODAY/today-infrastructure"}