Index of /rollercoaster/ctl
Name Last modified Size Description
Parent Directory 23-Jan-2008 17:54 -
bin/ 21-May-2007 10:25 -
ctl_spec.pdf 20-Apr-2007 19:13 504k
deps/ 21-Apr-2007 09:10 -
example/ 21-May-2007 10:26 -
handout1.pdf 03-May-2007 06:00 186k
old/ 21-May-2007 10:25 -
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>