<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Dear All,<br>
<br>
we are pleased to announce the release of the <b>ESA XFDU I/O Java/C++
API xfdu-1-0-rc-10</b>. It is available at <a class="moz-txt-link-freetext" href="http://www.gael.fr/xfdu">http://www.gael.fr/xfdu</a> .<br>
<br>
<u><b>Release summary:</b></u><br>
<ul>
  <li>&nbsp;The 10th release candidate improves the C++ API with a <b>full
support of exceptions</b>. More than 8600 lines of C++ code have been
reviewed and rewritten for that purpose. The C++ API documentation took
advantage of this pass to be entirely reviewed. The activity was also
focused in getting the code closer to the <b>BSSC2000(1)i10 C++ coding
standard</b> issued and recommended by ESA.</li>
  <li>Both Java and C++ implementation are <b>conforming the XFDU
specifications v1.9</b> issued for agency review in the framework of
the CCSDS IPR and DAI working groups.</li>
  <li>The software now requires a <b>Java version 1.5.0 or higher</b>.<br>
  </li>
</ul>
<br>
<b><u>New features:</u></b><br>
<br>
Introduced full exception handling at the C++ Wrapper level. In
addition to the standard exception, the wrapper throws two new classes
JvmDriverException and JvmDriverJavaThrowable to segregate those
exceptions originating from the wrapper and those from the Java API
itself. The JvmDriver::exception() operation is still functional but
should be considered now as deprecated. These changes did not affect
the interface &nbsp; apart that the wrapper will no longer exit on failure. <br>
<br>
<u><b>Fixes:</b></u><br>
<br>
<ul>
  <li>The Xfdu::toString() operation returns actually the string
processed by the Java API. Previous versions were not correctly
converting the Java String expressed in UTF-16 to UTF-8 character
encoding supported by the C++ char*.</li>
  <li>Xfdu::save(int validate) actually saves the manifest document has
for the Xfdu::save() and equivalent method in the Java API. A wrapping
error has been fixed.</li>
  <li>Xfdu::getContentUnit() actually return null when no Content Unit
matches the identifier provided in parameter. Former releases returned
an empty Content Unit not existing in the input package.</li>
  <li>Fixed incorrect wrap around of Xfdu::setSchemaLocation()
operation.</li>
  <li>Fixes ByteStream::setFContent() that assigned a C++ class to the
Java layer instead of its referenced Java instance.</li>
  <li>The MetadataObject::getMetadataWrap() operation now actually
returns a Collection object instead of a MetadataWrap. This fix the
inconsistency with both the Java implementation and the documentation.
It however makes the current C++ wrapper incompatible with the former
release candidates.<br>
  </li>
</ul>
<u><b>Updates:</b></u><br>
<ul>
  <li>Xfdu::Xfdu(char* file_name) adopts now the "manifest.xml" default
value. This allows construction of packages with the empty constructor
Xfdu().</li>
  <li>Xfdu::Xfdu(char* file_name, char * identifier, ...) adopts now
three default values: object_identifier, text_info and version that may
no longer be provided.</li>
  <li>Xfdu::moveTo(char* destination) and Xfdu::moveTo(char*
destination, int cascade) have been merged in the same operation. The
second parameter i.e. cascade, is now optional with a default value set
to 0 i.e. false meaning that files attached to the manifest are not
moved to the destination directory by default.</li>
  <li>ContentUnit::addDataObject(DataObject* data_object) and
ContentUnit::addDataObject(DataObject* data_object, char* pointer_id)
operations have been merged in a single equal to the latter with an
optional pointer_id parameter. The default value is null.</li>
  <li>Int FContent::FContent(char* identifier,int content_type,char*
data) of the C++ wrapper, the data and content_type parameters have
been swapped to allow a default value for the latter i.e. default value
of content_type has been set to 0, corresponding to XML data type.</li>
  <li>The most detailed constructor Reference::Reference() considers
all its parameters as optional.</li>
  <li>The most detailed constructor
DefaultMetadataObject::DefaultMetadataObject() considers all its
parameters as optional. <br>
  </li>
</ul>
<u><b>Removed features:</b></u><br>
<ul>
  <li>ContentUnit::addMetadataObjectReference() operation is now
deprecated. This operation no longer wraps any Java code and therefore,
does nothing but returning immediately. The only way to assign a
Metadata Object to the Content Unit is to provide its identifier at
construction c.f. ContentUnit() parameters as dmd_id, rep_id etc.</li>
  <li>ContentUnit::addReference() operation is now deprecated. This
operation was created for supporting the XFDUPtr mechanism for
referencing external XFDU packages. This mechanism still needs
clarifications in the official XFDU specifications at the time of
implementing. The operation, therefore, no longer does anything but
returning immediately.</li>
  <li>ContentUnit::moveTo() operation is now deprecated. This operation
was wrapping around a Java operation that should have remained
protected and not exposed to the C++ layer. The operation no longer
does anything but returning 1 immediately.</li>
  <li>ContentUnit::getReferences() is now deprecated. This operation is
deprecated for the same reasons as addReference(). It no longer does
anything but returning null (0).</li>
  <li>DataObjectPointer class is now considered as a class private in
the esa.xfdu.map Java package and, therefore, no longer exposed to the
C++ wrapper.</li>
  <li>One of the Reference::Reference() constructor has been removed
since its was becoming redundant with the most detailed constructor
that now allows all parameters as optional.</li>
  <li>Several the DefaultMetadataObject::DefaultMetadataObject()
constructor has been removed since they were becoming redundant with
the most detailed constructor that now allows all parameters as
optional.</li>
  <li>The MetadataObjectReference class and all references to it have
been removed from the entire library.<br>
  </li>
</ul>
<br>
Do not hesitate to provide us with your comments.<br>
Best regards<br>
<br>
St&eacute;phane Mbaye<br>
GAEL Consultant<br>
</body>
</html>