Index of /rollercoaster/ctl

      Name                    Last modified       Size  Description

[DIR] Parent Directory 23-Jan-2008 17:54 - [DIR] bin/ 21-May-2007 10:25 - [   ] ctl_spec.pdf 20-Apr-2007 19:13 504k [DIR] deps/ 21-Apr-2007 09:10 - [DIR] example/ 21-May-2007 10:26 - [   ] handout1.pdf 03-May-2007 06:00 186k [DIR] old/ 21-May-2007 10:25 - [DIR] src/ 21-May-2007 10:30 -

CTL4j
=====

This software is released under the terms of the GNU General Public License
version 2, see doc/COPYING for the exact terms of said license. Contact
the author for the terms under which you can obtain a commercial license.

Supported operating systems: 
	* Linux (tested on Arch, Debian, Fedora, LFS, SuSE, Ubuntu)
	* Mac OS X (tested on 10.4.x and Xcode 2.3)
	* Windows XP (see EclipseAndTheCTL4j.txt for more information; other
		Windows NTs >=5.0 should work, too)

Supported architectures:
	* x86
	* x86_64 (You have to use the 32-bit version of the JDK)

If you succesfully used the CTL4j on other platforms, please contact me. 
Project files for Eclipse, NetBeans and Xcode are shipped with the releases.


		.:. Installation .:.

For a quick installation, follow the guide at 
https://shuya.ath.cx/~neocool/code/CTL/deps/INSTALL
Binary packages are also available on the website (see below).

Most example applications expect a file 'locs.txt' in the top level directory, 
which lists available resources. Copy doc/locs.txt and modify it for your
own needs.

		.:. Overview .:.

CodeGen/			Code generator for remote interfaces
Components/			Ready-to-use Java component library using the CTL
CTL/				Core of the communications template library
	Annotate/		Annotations for defining remote interfaces
	CCompat/		C/C++ compatibility classes
	Comm/			Communication handling
	Serialize/		Serialization of fundamental types
	Streams/		Custom IO streams
	Types/			CTL types
Debug/				Remote component debugger (SEP2006)
DotClass/			Generator for UML diagramms out of source code
Example/			Example applications, see below
Hitman/				Network protocol framework
Impl/				Implementation classes which are used by the examples
NCLib/				General purpose Java library
ReflWrap/			Wrapper library around java.lang.reflect and BCEL
Resourcery/			Simple Java implementation of a resource manager
Test/				Testsuite and sample code
Tools/				Tools and classes which did not fit anywhere else
javaSys/			Default package for generated remote interfaces

ctlcc.py			Compiler for the CTL IDL (Python implementation)
data/				Some data files and scripts
python/				Allows writing CTL applications in Python with JPype
sniff/				CTL protocol sniffer (written in Python, using Scapy)
test/				Some C++ CIs for testing ctlcc.py

Example applications:

Client.java			Simple client
Client2.java		Client which knows about rResult
Client3.java		An even simpler client
Client4.java		The C++ test client
Client5.java		Daemon-mode test client
Client6.java		WebService test client
Client7.java		Simple chain of components
Client8.java		Example of implicit locations
Client9.java		Another C++ test client (for AddCI)
Client10.java		Client for the SEP 2006 (chain)
Client11.java		Serialization of complex arrays
Client12.java		Serialization of AnyObjs
Client13.java		Demonstrates concurrency using multiple services
Client14.java		Parallel Pi calculation (OpenMP example #1 from c't)
Client15.java		Client for calling a .NET component
Client16.java		Client for native shared library support
Crypto.java			Test client for Components.Crypt
GSL.java			Test client for C++ GSL wrapper components
Server.java			Example server for testing
WebServer.java		Example server for testing WebServices

		.:. Dependencies .:.

Apache Ant >= 1.7.0 (http://ant.apache.org/)
Sun JDK >= 1.5.0_11 (http://java.sun.com)
Java Secure Channel (http://www.jcraft.com/jsch/)
Jakarta Byte Code Engineering Library (http://jakarta.apache.org/bcel/)
Java Getopt (http://www.urbanophile.com/arenn/hacking/download.html)

	For ctl::lib support using the Java Native Interface (JNI):

CTL 1.2 (http://www.wire.tu-bs.de/forschung/projekte/ctl/e_ctl.html)
GCC 3.3 (http://gcc.gnu.org/)
LibStdJNI (https://shuya.ath.cx/~neocool/code/CTL/deps/de.tubs.wire.libstdjni.tar.gz)

	For DNS service discovery:

DNS-SD Java bindings (http://developer.apple.com/networking/bonjour/index.html)

	For importing/exporting remote interfaces:

Python (http://www.python.org)
pyparsing >= 1.4.3 (http://pyparsing.sourceforge.net/)

	Mac OS X additional dependencies:

GNU sed has to be installed and available as 'gnused' in $PATH. There are
multiple ways to obtain this executable, one of them is Darwin Ports 
(http://darwinports.com/).

		.:. Optional dependencies .:.

	For beautified CI code:
	
Artistic Style (http://astyle.sourceforge.net/)

	For generating class diagramms:

Graphviz >=1.9 (http://www.research.att.com/sw/tools/graphviz/)

	For running the testsuite:

JUnit (http://www.junit.org)

	For writing Python applications:

JPype (http://jpype.sourceforge.net)

	For using the CTL protocol sniffer

Scapy (http://www.secdev.org/projects/scapy/files/scapy.py)

		.:. Notes .:.

The Java Secure Channel library uses 'tunnelled clear text' passwords. 
You need to activate 'PasswordAuthentication' for this to work. Some Linux
distributions, like Debian, do not have this enabled by default and you will
see 'Auth fail' messages when using the CTL's SSHv2 code.

Apache Ant seems to require that the environment variable JAVA_HOME is set
to the path to the actual JDK or it fails with obscure error messages like
'-sourcepath: No such file or directory'.

ArchLinux packages for all dependencies are available here:
http://www.icculus.org/~boris/projects/arch/

Prompting for the SSH password does not work when executing clients directly
from the Ant buildfile.

		.:. Resources .:.

Homepage:		https://shuya.ath.cx/~neocool/code/CTL/
Mirror:			http://www.icculus.org/~boris/projects/CTL/

--
Boris Buegling <boris@icculus.org>