=======================================================
AJIS 6.2.1 NEW FEATURES LIST Current as of Nov 25, 2008
=======================================================

Copyright (c) 2008, AdaCore

This file contains a list of new features introduced in AJIS.
A full description of all AJIS features can be found in the AJIS
documentation.

An ISO date (YYYY-MM-DD) appears in parentheses after the
description line. This date shows the implementation date
of the feature.

New features in AJIS 6.2.1
--------------------------

NF-62-HC04-011 Use of Java 1.5 enumerations (2008-12-05)

   ada2java now uses Java enumerations to bind ada enumerations. The use
   of static integers can still be re-activated with the --no-java-enum switch.

NF-62-HB25-008 Specification of native link mode (2008-11-25)

   ada2java now offers two ways of linking the java native declarations to
   the native code, using the --link-mode option. This link can be done either
   by symbols export or by native functions registration.

NF-62-H909-006 Compiling native code in an Ada main (2008-11-24)

   It's now possible to compile the native code in an Ada main executable 
   instead of a shared library. The ada2java -M switch generates automatically
   a default Ada main subprogram, which initializes the native environment, 
   launches the JVM and then calls a java static method given by the user.

NF-62-HA10-009 AdaString class generated (2008-10-14)

   The AdaString class is now automatically generated under the 
   <your prefix>.Standard.AdaString class, as opposed to being available on
   the Java runtime under com.adacore.ajis.AdaString. This allow it to benefit
   from all the capabilities of regular array, and to be controlled by the
   same generation switches as the rest of the code bound. 

NF-62-H919-008 Prevent garbage collection on for components (2008-09-22)

  Given a situation where a java proxy is created out of a field from an other
  proxy, e.g.:
     type R is record
        Field : Other_Record;
     end record;
  used in:
     R v1 = new R ();
     Other_Record v2 = v1.Field ();
     v1 = null;
  After the first line, nothing prevented the garbage collector to free v1, and
  hence create a dangling pointer on v2. AJIS now generates proper references
  from v2 to v1, so that the garbage collector won't be called until v2 is not
  referenced anymore.
  
NF-62-H909-008 Add checks based on object allocators (2008-10-17)

  The code bound with Ada2Java is now able to track if values have been
  accessed through dynamic variables (e.g. pointers) or from static variable
  (global variables, fields...). Depending on this, dangerous operations such
  as escapable calls, owner switching or memory deallocation are forbidden. 
     
NF-62-H904-034 Add the java message in Java_Exceptions (2008-09-05)

  When a Java exception is raised in an Ada frame, the message and the class
  of the original Java exception is now added to the message, after the 
  reference to the java object.

NF-62-H818-014 Improvements in memory management (2008-08-19)

  The isOwnedByProxy / setOwnedByProxy subprogram have been replace by isOwner
  / setOwned. Tagged types derivation no longer need to be freed using a manual
  call to unlink - which have been removed. The JNI object stored from the
  Ada shadow object to the Java one is now a weak global reference when the
  object is owned by the proxy, and a regular one when it's owned by the native
  side.

NF-62-H805-001 Distributing precompiled version of ajis classes (2008-08-05)

  The com.adacore.ajis hierarchy is now distributed as a precompiled jar file
  instead of sources.

NF-62-H611-004 Binding Ada exception (2008-08-04)

  Ada exceptions are now bound into dedicated Java classes, appropriately
  created when raised from Ada code. Constraint_Error, Program_Error and 
  Storage_Error are automatically generated by ada2java.
