Runcontrol SOURCES Readme

June 2006

1. Overview

The runcontrol module contains source code for applications that take advantage of the remote monitoring capabilities of HyperCast.   Two applications are included: RunControl and RunServer. RunControl is a control console, which exists in two variations, the RunControl CLI is a commandline interface and the RunControl GUI offers a graphical display of overlay networks. RunServer is a server application that starts overlay sockets and builds an overlay network.  A single RunControl application issues commands to several RunServer applications. 

The source files can be compiled with Java  version 1.2 or higher.

See the file runcontrol-BINARIES-Readme.html in this module for information on how to use the applications.
See the Chapter "Monitor and Control" available from www.hypercast.org for additional information.

2. Open Source License

The sources in this module are  made available under the terms version 2.1  of the GNU Lesser General Public License ("LGPL").

3. Extract the ZIP archive

The ZIP archive for the sources are usually  distributed in a file  with  the name 

      runcontrol-SOURCES-xxx-yyyymmdd.zip

where xxx is a tag that identifies who created  the archive and yyyymmdd is the date when the archive was created.  Copy the file to a directory where you want to run Runcontrol, and extract ('unzip') the archive with a utility such as WinZip (on Windows) or the unzip command (on Unix or Cygwin).

NOTE: This package requires that the hypercast.jar is located in the the /lib directory. Should hypercast.jar not be included in the ZIP archive,  it can be copied form the /lib directory of a hypercast BINARIES directory.

4. Files in runcontrol module

The contents of the archive is this file, XML configuration files, JAR files,  and command scripts.

Makefile 

This is a GNU Makefile that contains instructions for compiling all or parts of the sources, generating Javadoc, \ files, building the target "/lib/runctrol.jar", and generating a ZIP archive with binaries and other files. To run the makefile, the following JAR files need to be present in the directory /lib: hypercast.jar, xalan.jar, bcprov-jdk14-122.jar.

Readme files:
runcontrol-SOURCES-Readme.html   - this file
runcontrol-BINARIES-Readme.html  - Readme file for runcontrol  binaries

XML files:

Monitor.xml - HyperCast configuration file for the monitor of the RunControl application
Portal.xml     - HyperCast configuration file for the the portal of the RunServer application
hypercast.xml  - HyperCast configuration file for the overlay that is monitored by RunControl/RunServer
location.xml   - address/location mapping of IP hosts (only used by RunControl GUI)  
map.xml - location of maps (only used by RunControl GUI)  

Directories:

/lib
Directory with external *.jar files needed for HyperCast.
The makefile instructions will place JAR file runcontrol.jar in this directory.

NOTE:
lib/hypercast.jar :  Implementation of HyperCast 

lib/xalan.jar  :  XSLT processor for XML documents (xml.apache.org/xalan-j/)

lib/crimson.jar
XML classes needed for Java version 1.5 (and recommended for Java version 1.4)

lib/bcprov-jdk14-122.jar :  Implementation of cryptographic algorithms (www.bouncycastle.org)

/bin
Contains scripts that start  applications. The "*.sh" scripts are for Unix/Cygwin shells and are run form the / directory. The "*.bat" scripts are for DOS shells. They can be run by `clicking' on the correspondng files. 

cli.sh, cli.bat - starts the commandline interpreter of the RunControl application
gui.sh, gui.bat - starts the the RunControl application with a GUI
runserver.sh, runserver.bat - starts the RunServer application
conf.sh, conf.bat - starts the HyperCast configuration editor to edit HyperCast configuration files
version.sh, version.bat - displays the version of Runcontrol.

/src -  Source files
/src/commandline  - Source files for the command line interface shell in RunControl CLI and RunControl GUI.
/src /runcontrol- Source files for the RunControl CLI.
/src /runcontrol/commnds - Source files for the commands available in the CLI of RunControl. There is one file for each available command.
/src /gui- Source files for the RunControl GUI, this is a graphical user interface that acts as a front end for the RunControl CLI.
/src /runserver -  Source files for the RunServer application.

5. Version Identifiers

The following files contain the version identifiers. 

/src/runcontrol/Version.java

Before creating a new release of the runcontrol module ,  the version identifier in these files should be updated. Running the Version.class file displays the version identifier stored in Version. java.

Releases posted at SourceForge should follow the convention that a  release has a tag which identifies the developer who created  the release and the date of the creation of the release.
However, the version numbering  is not strictly enforced. Each developer (including the developers that maintain the Sourceforge.net repository)  is responsible for maintaining a meaningful or consistent versioning scheme. 

6. Compiling Runcontrol (without Makefile)

This package requires that all libraries needed by the HyperCast module and  hypercast.jar  are available. HyperCast has been used and compiled for SDK that compile for the Pocket PC platform. Refer to additional documentation from the www.hypercast.org website. Compiling HyperCast with an IDE is straightforward. With Eclipse, the sources can be downloaded from the CVS repository.

7. Compiling Runcontrol (with Makefile)

The following instructions describe how to use the Makefile for compiling the code and  creating ZIP files with binaries.  This Makefile in the module is a GNU makefile. (On some systems, you need to run "gmake"). The makefile should run under Unix and under Windows/Cygwin.

Note: The Makefile compiles to Java  version 1.4. The software can be compiled to older (1.2, 1.3) or later versions (1.5). 

All class files are placed in the /bin directory. All Javadoc files are placed in the /javadoc or /javadoc_public directories. 

Remarks:

  1.  The Makefile creates a VERSIONTAG which is used to name the created ZIP files. By default, the VERSIONTAG consists of a username and a date.  Edit the Makefile to change the VERSIONTAG.
  2. Before creating a new release, edit the statement in /src/RunControl/Version.java.


Here are the available options for the Makefile:

make, make complete

Creates configuration defaults, compiles all sources, creates lib/runcontrol.jar

make javadoc

 Creates Javadoc files of all methods in /javadoc  directory and creates a ZIP archive.

make javadocpublic  

Creates Javadoc files of public methods in /javadoc_public  directory and creates a ZIP archive.

make zipbinaries

Generates a ZIP file with HyperCast binaries and VERSIONTAG in the name of the ZIP file. The zip files contains:
lib/*.jar
bin/*.sh
bin/*.bat
runcontrol-BINARIES-Readme.html
Monitor.xml  Portal.xml  hypercast.xml  location.xml  map.xml

make zipsources  

Generates a ZIP file with HyperCast sources and VERSIONTAG in the name of the ZIP file. The zip files contains:
src
lib/*.jar
bin/*.sh
bin/*.bat
runcontrol-BINARIES-Readme.html  runcontrol-SOURCES-Readme.html
Monitor.xml  Portal.xml  hypercast.xml  location.xml  map.xml 
Makefile

make clean 

Removes binary files in /bin/* and removes javadoc files

8. Running applications of the  runcontrol module

Refer to the instructions in  /runcontrol-BINARIES-Readme.html or the instructions on the website www.hypercast.org.