Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
Java ATK Wrapper
1.2. Name of Document Author/Supplier:
Author: Ke Wang
1.3 Date of This Document:
30 July, 2009
4. Technical Description
1. Introduction
1.1. Project/Component Working Name:
Java ATK Wrapper
1.2. Name of Document Author/Supplier:
Author: Ke Wang
Sponser: Jeff Cai
1.3. Date of This Document:
07/14/2009
1.4. Name of Major Document Customer(s)/Consumer(s):
1.4.1. The PAC or CPT you expect to review your project:
Solaris PAC
1.4.2. The ARC(s) you expect to review your project:
LSARC
1.4.3. The Director/VP who is "Sponsoring" this project:
Robert O'Dea
1.4.4. The name of your business unit:
OpenSolaris Desktop
1.5. Email Aliases:
1.5.1. Responsible Manager: harry.lu at sun.com
1.5.2. Responsible Engineer: ke.wang at sun.com
1.5.3. Marketing Manager: glynn.foster at sun.com
1.5.4. Interest List:
2. Project Summary
2.1. Project Description:
Java ATK Wrapper is an implementation of ATK that uses JNI.
3. Technical Description:
3.1. Details:
JAW is part of the GNOME Bonobo deprecation project. It is going to take
the place of Java Access Bridge, so the Java Access Bridge is being made
obsolete by this case.
Java Access Bridge is a private interface which does not expose any user-
facing interfaces. So, no end users or applications should be affected by
the change from using Java Access Bridge to Java ATK Wrapper.
Like Java Access Bridge, JAW is included in the package of
SUNWgnome-a11y-libs. For detailed information about GNOME Accessibility,
refer to the GNOME Accessibility Developers Guide.
By talking to ATK-Bridge, JAW creates an abstraction layer which hides
changes of the underlying communication mechanisms (CORBA or D-Bus).
When ATK Bridge starts to use D-Bus, JAW will need little or no changes.
-------------------
| Java AWT |
-------------------
| JAAPI |
-------------------
| | wrapper|--> Adaptor between JAAPI and ATK interfaces
| JAW |--------|
| |atk-impl|--> ATK implementation
-------------------
| ATK Bridge |
-------------------
JAW consists of two parts: a wrapper implemented in Java that converts
JAAPI into ATK interface calls, and atk-impl implemented in C that
provides the actual ATK implementation.
The wrapper is loaded with AWT. It listens to AWT window events, adds
listeners to Java accessibility properties, and notifies atk-impl about
these events.
The atk-impl is loaded and initialized by the wrapper. It implements all
interfaces specified by ATK. While initializing, atk-impl loads the
ATK-Bridge, which will get various information from atk-impl through ATK
interfaces and register the host Java application to registryd.
When there is an accessibility related event, the wrapper notifies
atk-impl by JNI. atk-impl will get detailed information about this event
from wrapper via JNI callback, then encapsulates these information into
signal that can be understood by the ATK-Bridge.
3.2. Interfaces:
Exported Interfaces
Interface Classification Comments
--------------- -------------- -----------------------
/usr/java/jre/lib/ Project Jar file for Java ATK
ext/java-atk-wrapper.jar Private Wrapper
/usr/lib/ Project Library that implements
libatk-wrapper.so.0 Private ATK
/usr/java/jre/lib/ Uncommitted Properties file for JVM to
accessibility.properties get information about a11y
bridge
/usr/java/jre/lib/ Obsolete Jar file for previous Java
ext/gnome-java-bridge.jar Project Access Bridge
Private
Imported Interfaces
Interface Classification Comments
--------------- -------------- -----------------------
glib Committed LSARC/2008/510
ATK Committed LSARC/2001/650
J2SE 1.5 Committed PSARC/2003/696
3.3. Dependencies:
Java ATK Wrapper depends on glib, ATK and J2SE 1.5+
3.4. Security Impact:
There is no security impact.
4. Resources and Schedule:
4.1. Product Approval Committee requested information:
4.1.1. Consolidation Name:
Desktop Cteam/GNOME
4.1.2. Contributing OpCo/BU/Division Name:
Desktop
4.1.3. Type of PAC Review and Approval expected:
FastTrack
5. References
Wiki page of Bonobo Deprecation project:
http://live.gnome.org/Accessibility/BonoboDeprecation
Project git repository:
http://git.gnome.org/cgit/java-atk-wrapper/
GNOME Accessibility Developers Guide:
http://library.gnome.org/devel/accessibility-devel-guide/nightly/accessibility-devel-guide.html
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
Desktop
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open