Lotos SOURCES Readme

June 2006

1. Overview

The Lotos module contains source code for Lotos (Logical Topology Simulator)  simulation package, which simulates and visualizes the protocols of the HyperCast module.

See the file lotos-BINARIES-Readme.html in this module for information on how to run the Lotos simulator.
See the Chapter "Logical Topology Simulator (Lotos)" available from www.hypercast.org for additional information. 

Lotos requires  Java version 1.4.x or higher (but may also be compilable with earlier versions of Java).

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 

      lotos-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 Lotos, 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 Lotos 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, building the target "/lib/lotos.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:
lotos-SOURCES-Readme.html   - this file
lotos-BINARIES-Readme.html  - Readme file for Lotos binaries

Certificate:

testcert.cer  - A self-signed digital certificate for security settings
.keystore     - Java Keystore file that contains private key for public key in testcert.cer

XML files:

SimHypercast.xml       - Configuration file for Lotos..
DemoMenuConfig.xml     - Configuration file for Lotos (configures the Examples button).
demo1.xml, demo2.xml, demo3.xml -Configures the  topology  associated with a Examples button).
lib/lotos.html            - HTML file that starts the Lotos Applet.

Directories:

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

lib/hypercast.jar :  Implementation of HyperCast 

NOTE: This directory should be included in the SOURCE distributions of lotos, but is not included in the CVS module of lotos.

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. 

lotos.sh, lotos.bat - starts the Lotos application.
version.sh, version.bat - displays the version of Lotos

/src/lotos -  Source files

5. Version Identifiers

The following files contain the version identifiers. 

/src/lotos/Version.java

Before creating a new release of the lotos 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 Lotos (without Makefile)

This package requires that all libraries needed by the HyperCast module and  hypercast.jar  are available.   With Eclipse, the sources can be downloaded from the CVS repository.

7. Compiling Lotos (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/lotos/Version.java.


Here are the available options for the Makefile:

make, make complete

Creates configuration defaults, compiles all sources, creates lib/lotos.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
lotos
-BINARIES-Readme.html
lib/*.jar bin/*.sh bin/*.bat lotos-BINARIES-Readme.html
lib/lotos.html lib/network-transp.gif

SimHypercast.xml
DemoMenuConfig.xml demo?.xml 
testcert.cer .keystore

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
lib/*.gif
lib/*.html
bin/*.sh
bin/*.bat
lotos-BINARIES-Readme.html  lotos-SOURCES-Readme.html 
SimHypercast.xml DemoMenuConfig.xml demo*.xml 
Makefile
testcert.cer .keystore

make clean 

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

7. Running applications of the  lotos module

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