blob: f26fcea4847585b5c52260c970c5f25be1be5534 [file] [log] [blame]
Welcome to the 1.3.0 release of Apache Etch.
= What is Etch? =
Etch is a cross-platform, language- and transport-independent framework for
building and consuming network services. The Etch toolset includes a network
service description language, a compiler, and binding libraries for a variety
of programming languages. Etch is also transport-independent, allowing for a
variety of different transports to used based on need and circumstance. The
goal of Etch is to make it simple to define small, focused services that can
be easily accessed, combined, and deployed in a similar manner. With Etch,
service development and consumption becomes no more difficult than library
development and consumption.
= Online Help =
The jumping off point for Etch information and help is here:
http://etch.apache.org
= Binary Distribution =
The top-level structure of the install image is:
ChangeLog.txt
DISCLAIMER.txt
LICENSE.txt
LICENSE_THIRD_PARTY.txt
NOTICE.txt
NOTICE_THIRD_PARTY.txt
README.txt
RELEASE_NOTES.txt
bin/
examples/
lib/
binding-c/
binding-csharp/
binding-java/
uninst.exe (for windows use only)
Please take a moment to review the RELEASE_NOTES.txt, ChangeLog.txt and
LICENSE.txt files.
The Windows installer (apache-etch-1.3.0-setup.exe) has created a
user environment variable (ETCH_HOME) which points to the Etch installation
directory. If you installed Etch using either
apache-etch-1.3.0-windows-x86-bin.zip
or
apache-etch-1.3.0-linux-x86-bin.tgz
you will want to create this environment variable yourself:
windows:
set ETCH_HOME=C:\Program Files (x86)\Apache Software Foundation\apache-etch-1.3.0
*nix:
export ETCH_HOME=/path/to/apache-etch-1.3.0
The bin directory has also been put on your path by the Windows installer. If
you are using the archives, you will need to do this yourself:
windows:
PATH %PATH%;%ETCH_HOME%\bin
*nix:
export PATH="$PATH:$ETCH_HOME/bin"
The bin/ directory contains a Windows bat script and a unix shell script.
You will also need to have a java runtime installed (later versions of sun jre
or jdk 1.5 or any version of 1.6 or later). A JAVA_HOME environment variable
should point to the installation directory of the java runtime. If you are going
to compile java source you will need the jdk.
After the installer has been run and the environment setup, at a windows
command line or shell prompt, you should be able to run the etch compiler and
see some basic output:
windows:
C:\>etch -v
Etch version is Apache Etch 1.3.0 (some build info)
unix:
bash-3.2$ etch -v
Etch version is Apache Etch 1.3.0 (some build info)
The lib directory contains the various jar files for the compiler and the Apache Velocity dependency jar:
apache-etch-java-compiler-1.3.0.jar
apache-etch-java-compiler-1.3.0-src.jar
...
The top level folders binding-c, binding-java and binding-csharp contain the language specific
runtime libraries:
= Binding for Java =
binding-java is organized as follows:
apache-etch-java-runtime-1.3.0-src.zip
lib/
apache-etch-java-runtime-1.3.0.jar
The generated java source from the etch compiler needs apache-etch-java-runtime-1.3.0.jar.
There is source code to go with it in apache-etch-java-runtime-1.3.0-src.zip.
= Binding for C# =
binding-csharp is organized as follows:
apache-etch-csharp-runtime-1.3.0-src.zip
lib/
ApacheEtchCsharp.dll
ApacheEtchCsharp.pdb
The generated c# source from the etch compiler needs ApacheEtchCsharp.dll
The C# (.NET 2.0 and later) ApacheEtchCsharp.dll should be added to any C# projects.
There is source code to go with it in apache-etch-csharp-runtime-1.3.0-src.zip.
= Binding for C =
binding-c is organized as follows:
bin/
apr-1-config (on linux)
apriconv (on linux)
include/
[etch-*].h (on win32)
apr-1 (on linux)
lib/
etch.lib (on win32)
etch.pdb (on win32)
libetch.a (on linux)
extern/
apr/
bin/
libapr-1.dll (on win32)
libapr-1.pdb (on win32)
libapriconv-1.dll (on win32)
libapriconv-1.pdb (on win32)
iconv/
[iconv*]-stuff
include/
[apr-*].h
lib/
libapr-1.lib (on win32)
libapriconv-1.lib (on win32)
libapr-1.so (on linux)
libapriconv-1.so (on linux)
apache-etch-c-runtime-1.3.0-src.zip
Generated C source depends on the dlls/so/a/h files mentioned above. The best choice to
build generated code using the c binding is cmake. You can use the examples/helloworld
example as a reference. The C binding has external dependencies to the Apache Portable
Runtime (APR). We ship dll/so/h for the apr in the extern folder. There is source code
to go with it in apache-etch-c-runtime-1.3.0-src.zip
= Ant Plugin =
There is an ant plugin which you can use with ant 1.7.0 or later to invoke the
compiler as a task. It is documented on the wiki referenced above. You can also see examples
of its usage in the build.xml files in the examples folder
= Maven =
If you are using maven, then you might want to install the Etch artifacts into
your local maven repository. There is a Windows bat script to do this in the
maven directory:
etch-maven-install.bat
You need to have maven on your path when you run this script. The file
etch-java-runtime-1.3.0.jar will be installed into your local repository with
group "etch.etch", artifact id "etch-java-runtime", and version "1.3.0". You
may then reference Etch from your maven projects.
= Python and XML Bindings =
The source distribution includes code to support XML and python bindings, but
these bindings are not yet complete, and there is no build products associated
with those. They are mainly there to 1) capture the code contribution from
cisco systems, and 2) inspire any fence sitters, ah, helpers to jump in and
contribute.
= Examples =
Examples have been provided in the examples/ subdirectory. Start with the HelloWorld
example, it contains code for all three language bindings. There is a readme
file in each example's directory which explains how to build and run it.
= Tests =
Unit tests can be had by checking out the source code from the subversion
repository and performing a complete build:
http://svn.apache.org/repos/asf/etch/releases/release-1.3.0
= Help =
For help, see the wiki or send email to user@etch.apache.org. See
RELEASE_NOTES.txt for specific information for this release.