Welcome to Apache Etch 1.3.0. You can find us here:

Project info:

    http://etch.apache.org/

Documentation info:

    http://etch.apache.org/documentation.html

Issues:

    https://issues.apache.org/jira/browse/ETCH

SVN:

    http://svn.apache.org/repos/asf/etch/trunk/

Continous Integration Server (Jenkins):

    https://builds.apache.org/view/E-G/view/Etch/

Mailing lists:

    mailto:dev@etch.apache.org (etch developers)
    mailto:user@etch.apache.org (etch users)

Subscribing to the mailing lists:

    mailto:dev-subscribe@etch.apache.org (etch developers)
    mailto:user-subscribe@etch.apache.org (etch users)

The release consists of the three stable language bindings of Etch
- Java
- C#
- C

There are also some new components in this release.
The C++ binding is now feature complete and ready for beta tests.
If you experience any issues by building or using it, please report back on our mailing lists.

For the Go binding, there is still some work to be done, interested parties should
send inquiries to dev@etch.apache.org.

Since release 1.1.0 Etch uses name spaces which look something like 
org.apache.etch... 
If you upgrade from an older version you have to preceed the following steps
in order to continue using your old etch files:
- All bindings
  In every cases, you will need to re-etch your *.etch source files.
- Java:
  All that need be done for java is to correct the package names from etch.*
  to org.apache.etch.*. 
- C#:
  For C#, the namespace has changed from Etch.* to Org.Apache.Etch.*.
  
There are a few bugs fixed in this release, too, as detailed in the issue list below.

Here are the issues resolved in release 1.3.0:

** Bug
    * [ETCH-209] - CMake build for 32 bit executables on a 64 bit machine with Ubuntu 11.10 fails
    * [ETCH-210] - fix URLs in BUILD.txt
    * [ETCH-262] - Cpp binding tests build error with Visual Studio 11
    * [ETCH-267] - StubBase not sending session events to user implemenation
    * [ETCH-270] - Capu local directories are not settable in ant build
    * [ETCH-273] - Code generation of Main<ServiceName>Client.cpp contains HelloWorld service calls
    * [ETCH-274] - Binding-C Linux build is not working on Apache build infrastructure

** Improvement
    * [ETCH-237] - Add failOnError in Exec Task of Tests
    * [ETCH-260] - Enable HelloWorld example build for different platforms using CMake Toolchain Files
    * [ETCH-261] - Splitting up initParams function in ValueFactory generation
    * [ETCH-263] - Cleaning up cpp-bindings external dependency to CAPU
    * [ETCH-264] - Simplify build of binding-cpp

** New Feature
    * [ETCH-111] - Implementation of cpp-binding for etch
    * [ETCH-112] - Implementation of cpp-binding for etch runtime part
    * [ETCH-113] - Implementation of cpp-binding for etch compiler part
    * [ETCH-132] - OS Abstraction for binding-cpp
    * [ETCH-133] - Etch collections for binding-cpp
    * [ETCH-147] - Implementation of Etch runtime stack

** Task
    * [ETCH-149] - Implementation of Etch Utility Functions
    * [ETCH-175] - Add CAPU unit tests from binding-cpp to ANT build script
    * [ETCH-187] - Switch Website to public after mailinglist discussion
    * [ETCH-224] - Change APR version to apr-1.4.8 and apt-util-1.5.2 because of an error in apr-1.4.5 and apr-util-1.3.12
    * [ETCH-230] - Add support for Debug and Release builds to binding-cpp Ant and CMake 
    * [ETCH-232] - Refactoring of ArrayValue
    * [ETCH-240] - Refactor binding-cpp lifecylce
    * [ETCH-243] - General bugfixing and small refactoring stuff
    * [ETCH-245] - Refactoring of binding-cpp ant/CMake build system
    * [ETCH-249] - Implementation of EtchNumber


** Sub-task
    * [ETCH-134] - Implementation of EtchQueue
    * [ETCH-135] - Implementation of EtchList
    * [ETCH-137] - Implementation of EtchHashtable
    * [ETCH-138] - Implementation of EtchSet 
    * [ETCH-141] - Implementation of EtchThreadPool
    * [ETCH-143] - Implementation of EtchCondition
    * [ETCH-145] - Implementation of EtchSocket normal IO and AIO
    * [ETCH-146] - Implementation of EtchTimer
    * [ETCH-173] - Create Transport Layer
    * [ETCH-174] - Create Util components
    * [ETCH-180] - Implementation Packetizer
    * [ETCH-181] - Implementation Messagizer
    * [ETCH-182] - Implementation Session Interfaces
    * [ETCH-183] - Implementation Transport Interfaces
    * [ETCH-184] - Implementation ValueFactory
    * [ETCH-185] - Implementation Validators
    * [ETCH-192] - Implementation of Memory Abstraction
    * [ETCH-193] - Implementation of EtchArray
    * [ETCH-194] - Definition of Etch Enumerations
    * [ETCH-195] - Implementation of Templates
    * [ETCH-196] - Implementation of Stub Base classes
    * [ETCH-197] - Implementation of Remote base
    * [ETCH-198] - Implementation of compiler basic class
    * [ETCH-207] - Implementation of EtchFile
    * [ETCH-208] - Implementation of EtchLogger
    * [ETCH-213] - Implementation Serverfactories
    * [ETCH-214] - Implementation Mailbox and MailboxManager
    * [ETCH-215] - Implementation DeliveryService
    * [ETCH-216] - Implementation Transport Factories
    * [ETCH-217] - Implementation of cpp-binding examples
    * [ETCH-238] - Implementation EtchAsyncResult 
