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


Reply via email to