Movatterモバイル変換


[0]ホーム

URL:


Wayback Machine
111 captures
20 Aug 2021 - 06 Jun 2022
AprMAYJun
Previous capture28Next capture
202120222023
success
fail
COLLECTED BY
Collection:Common Crawl
Web crawl data from Common Crawl.
TIMESTAMPS
loading
The Wayback Machine - https://web.archive.org/web/20220528134627/https://openjdk.java.net/groups/client-libs/

The Client Libraries Group

Introduction

The Client LibrariesGroup iscomprised of developers who participate in the design,implementation, and maintenence of the Java client libraries. It isaconsolidation of the former2D,AWT,Sound, andSwing Groups.

Archived documentation for each of the consolidated Groups maybe found in the original Group pages:

These currently need some updates to remove obsolete informationbut there's still a lot of valid material there.

Community

Source code

The Client Libraries Group is responsible for the JDK source in thefollowing modules

Together these modules enable

Like much of the rest of the JDK as much as possible of theimplementation is written using Java, but because of the nature ofplatform integration there is still a vast amount of native code,much of it platform-specific. The majority of shared(cross-platform) native code is widely used open source librarieswritten in C or C++ for specialised functions such as fontrasterisation and color management.

Demos

Additionally the Client Libraries Group maintains several demoapplications. Not meant as an example of modern standard codingpractice, but principally meant as named, to "demo" thefunctionality of the APIs :https://github.com/openjdk/jdk/tree/master/src/demo/share/jfc.They are also useful for manual testing of this functionality andit is not unusual for a reviewer to suggest running them to verifya fix.

Tests

The jtreg tests for the Client Libraries Group code are somewhatscattered around, since the tests tend to be organised by packagename and there are plenty of those. Many of the tests areautomated, but also many are manual. An incomplete list ofdirectories for these tests is

The ongoing work of the Client Libraries Group

There's no plan to do "large new features' for Swing, Java2D etcbut

Recent, Current and Upcoming Projects/JEPs etc

Some client contributors also contribute to the OpenJFX Project- there's a more or less 100% overlap in the skill set !


Group Policies.

First, refer to theOpenJDK Developer's Guide forJDK-wide policies, processes and practices. However there are someextra considerations for the client area.

Proposing a change

Like most other groups in OpenJDK for anything that is more than alocalised bug fix, we prefer to see issues raised and discussedbefore we see a PR which may reflect a different direction thanwe'd want. This is especially true if you are a new contributor.The client-libs-dev@openjdk.java.net list is the place to go forthese discussions

"Drive-by" contributions - will get a hard look because weprefer folks who contribute to stick around and maintain thosecontributions.

There are additional challenges of contributing to the ClientLibraries Group area compared to some other areas since so much ofwhat we do is platform-specific that you may need access tomultiple platforms and be prepared to do a lot of cross-platformand manual testing. Depending on your reviewers for that isn'tlikely to speed along your contribution.

Source code conventions

All source code should follow the standard Java source codeconventions as well as jcheck rules. Some of the most common onesto remember are :ConsultCodeConventions for the Java(TM) Programming Language for the fulllist.

Regression tests

Tests should be provided unless clearly infeasible. Automatedtests are desirable. SQE rarely run manual tests. Nor will otherdevelopers. Don't give up easily. There are tests that render to aBufferedImage and analyse the resulting contents to see if theybehaved correctly, so writing automated tests is possible in morecases than immediately apparent.

Code Reviews

Code reviews are one of the most important mechanisms we havefor integrating and shipping good, solid, compatible code. Reviewsare also an invaluable source of education for all of us, and agreat mechanism for ensuring consistent code quality, as we allread and learn from reading each other's code.

The standard requirement in the JDK project is for one reviewerto approve the fix. The Java Client Library Group has alwaysstandardized on two approvals - where at least one must have theReviewer role. Historically this was addressed entirely by socialconventions but today the tooling plays a role - and the JDKproject is set up to mark a PR as ready for integration after asingle approval by a person with the Reviewer role - which is notconsistent with the Client Libraries policy. The tooling cannotautomatically enforce this on a per-module basis and it is notreasonable to expect others to add "/reviewers 2" to every PR. Thefixer therefore needs to understand the policies and wait for asecond approval.

Note that there may sometimes be confusion between the terms"reviewers" and "approvers". The tooling tends to use the wordreview/reviewer where it really means "Approval by someone with theReviewer role". Anyone with an OpenJDK github role can "review" afix - meaning make comments, and even add an Approval. And indeedwe encourage non-Reviewers to actively review PRs. So really youonly have two "reviews" when you have two "approvals". If more thanone person has expressed a viewpoint on a fix, and say one hasapproved and the other made substantive comments, without expresslyapproving, then they are active in reviewing that fix. So you needto take the nature of their comments into consideration, and allowthem reasonable time (let's say 24 hrs during the work week fornon-urgent fixes) to respond to any written answers or code updatesand add their approval before pushing. This is both for courtesy,and so that someone who has spent time on the review may becredited in the commit, and to ensure that they have at least achance to agree you've addressed their concerns. . Fixers who arenot also Reviewers for the client area should consult a clientReviewer to determine if one reviewer is enough. Potential reasonsfor granting that exception are enumerated below.

The choice of which people review the code is not usually up tothe fixing engineer and and who should review it depends upon eachspecific situation, but some general guidelines are:

It is the responsibility of the implementing engineer to respondto the reviewers, and their concerns, and make the final codeadhere to changes agreed upon by the engineer and thereviewers.

It is the responsibility of the reviewers to provide timelyreviews, and understand (to the extent possible) and agree to thechanges that the engineer has implemented; when the code is putbackto the repository,the reviewers are also takingresponsibility for these changes. We can only have goodreviews, and good resulting code, if the reviewers take their jobsseriously and review the changes thoroughly. Given the costs andhassles of maintaining backward-compatible code indefinitely, wecannot risk code going in that is only cursorily reviewed; it isfar easier and cheaper to catch flaws in the review process than itis to fix them in bugs and escalations later on.

The most common exceptions to the two reviewer policy would befor

OpenJDK logo
Installing
Contributing
Sponsoring
Developers' Guide
Vulnerabilities
JDK GA/EA Builds
Mailing lists
Wiki ·IRC
Bylaws ·Census
Legal
JEP Process
Source code
Mercurial
GitHub
Tools
Mercurial
Git
jtreg harness
Groups
(overview)
Adoption
Build
Client Libraries
Compatibility & Specification Review
Compiler
Conformance
Core Libraries
Governing Board
HotSpot
IDE Tooling & Support
Internationalization
JMX
Members
Networking
Porters
Quality
Security
Serviceability
Vulnerability
Web
Projects
(overview)
Amber
Annotations Pipeline 2.0
Audio Engine
Build Infrastructure
CRaC
Caciocavallo
Closures
Code Tools
Coin
Common VM Interface
Compiler Grammar
Detroit
Developers' Guide
Device I/O
Duke
Font Scaler
Framebuffer Toolkit
Graal
Graphics Rasterizer
HarfBuzz Integration
IcedTea
JDK 6
JDK 7
JDK 7 Updates
JDK 8
JDK 8 Updates
JDK 9
JDK (…17,18,19)
JDK Updates
JavaDoc.Next
Jigsaw
Kona
Kulla
Lambda
Lanai
Leyden
Lilliput
Locale Enhancement
Loom
Memory Model Update
Metropolis
Mission Control
Modules
Multi-Language VM
Nashorn
New I/O
OpenJFX
Panama
Penrose
Port: AArch32
Port: AArch64
Port: BSD
Port: Haiku
Port: Mac OS X
Port: MIPS
Port: Mobile
Port: PowerPC/AIX
Port: RISC-V
Port: s390x
Portola
SCTP
Shenandoah
Skara
Sumatra
ThreeTen
Tiered Attribution
Tsan
Type Annotations
XRender Pipeline
Valhalla
Verona
VisualVM
Wakefield
Zero
ZGC
Oracle logo
© 2022 Oracle Corporation and/or its affiliates
Terms of Use · License:GPLv2 ·Privacy ·Trademarks

[8]ページ先頭

©2009-2025 Movatter.jp