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