Builder definitions in final Appender implementations unncessarily use Generics on Builder class
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java
- Lĩnh vực
- api, backend-api-design
Hướng nghiên cứu
Xem xét các khai báo Builder của Appender cuối cùng, chẳng hạn như ConsoleAppender.Builder, và so sánh chúng với AbstractOutputStreamAppender.Builder cũng như cách sử dụng newBuilder(). Kiểm tra các yêu cầu về khả năng tương thích nhị phân và các bài kiểm thử hiện có trước khi quyết định liệu các Appender cụ thể có thể loại bỏ tham số kiểu ở cấp lớp hay không; được xem là hoàn tất khi thay đổi API được áp dụng nhất quán mà không gây ra hồi quy về khả năng tương thích.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Log4j 2.24
Not technically a bug??? But not a feature-request either...just pointing it out...if no interest in changing this from L4J team go ahead and close it
The appender Builders (ConsoleAppender.Builder, FileAppender.Builder, etc) have been generically defiined.
For example:
/**
* Builds ConsoleAppender instances.
* @param <B> The type to build
*/
public static class Builder<B extends Builder<B>>
extends AbstractOutputStreamAppender.Builder<B>
implements org.apache.logging.log4j.core.util.Builder<ConsoleAppender> {
...
}
This means when not chaining you need to handle the generics:
ConsoleAppender.Builder<?> builder = ConsoleAppender.newBuilder();
This is OK for the abstract Builders that are inherited, but a wee bit non-standard for concrete builder implementations.
Since the appender classes are final one might assume its builders can also be final and don't need the generics on the class itself.
I think it could be simplified::
For example ConsoleAppender:
public static final class Builder
extends AbstractOutputStreamAppender.Builder<Builder>
implements org.apache.logging.log4j.core.util.Builder<ConsoleAppender>
ConsoleAppender.Builder builder = ConsoleAppender.newBuilder();
From a coding perspective a trivial change but more of a binary compatibility problem.
- Ngôn ngữ chính
- Java
- Star
- 3.6k
- Fork
- 1.8k
- Merge trung bình
- 5 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 24
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/logging-log4j2
-
additivity attributeĐang mởwaiting-for-maintainer
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
apache/logging-log4j2#4475 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Migrate `log4j-api-test` tests to JUnit 5Có thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởapi priority: P3 tests waiting-for-maintainer
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/logging-log4j2#4430 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`Rfc5424Layout` does not escape the `newLineEscape` replacement in SD-PARAM-VALUECó thể đã có người làm @lunarbae628 đã nhận 5 ngày trước. Đang mởbug layouts priority: P3
apache/logging-log4j2#4464 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
configuration enhancement layouts
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
apache/logging-log4j2#4463 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`evaluateOnStartup="true"` saves logs under wrong file names after missing scheduled rollCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởappenders:Rolling bug priority: P1 waiting-for-maintainer
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 30/100
apache/logging-log4j2#4449 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/logging-log4j2
Issue tương tự
-
[Bug]: Nullable implicit operator on string extensible enums still throws for a null stringCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug emitter:client:csharp
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
microsoft/typespec#12572 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG]: Java SDK MountRequest always sends update-optional fields, resetting stored mount settingsĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] RemotingHelper.connect swaps the socket send and receive buffer configurationCó thể đã có người làm @amalsaidov đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-area-label
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày