Swete is written in Eiffel, a pure object oriented language that features design by contract, strict typing, multiple inheritance, true generiticity, and a simple easy to read syntax. All existing Eiffel compilers generate C code which is subsequently compiled yielding fast performance and portability. The best Eiffel reference is Object Oriented Software Construction The compiler used by the project is produced by Eiffel Software Incorporated. An open source compiler, Smart Eiffel, is also available. Please note that although this project uses libraries that are compatible with Smart Eiffel, it hasn't to date been compiled on it and may not compile cleanly out of the box. The GOBO project recommands using Smart Eiffel version 1.0 (not the current version), which at that time was actually called Small Eiffel.
This project depends on libraries provided by the GOBO project, EPOSIX, and ECLOP.
Note: To date, compilation has been tested only on RedHat EL WS using the ESI 5.4 compiler.
The class HTTP_PROXY_SERVER:
The class SERVER_COMMUNICATION provides facilities for sending requests to a web server and processing the response. A BON diagram of swete_proxy is available here. Click here for more information on Business Object Notation. The class SWETE_SCRIPT_CALLBACKS in the diagram is present to support the --continue option and is described in the swete_test section below.
The class SWETE_SCRIPT_CALLBACKS processes events generated by class XM_EIFFEL_PARSER while parsing a swete_script.xml file. When a complete <request></request> element for a text/html request has been parsed, it is sent to the server and the response is compared to the file given by the <response_content file_name="file_name.htm"> element after correcting for any expected differences.
The class HTML_SCANNER (the link is to the scanner description file which is run though gelex to generate the actual class) is used to find the names/values of any hidden inputs in html files to support the --replace option. The replacement cluster is used to correct expected differences between the response obtained from the server during script playback and the expected response recorded in the script directory.
A BON diagram of swete_test is available here.
Source Forge Project Page (for downloads, support, feature requests, mailing lists, cvs access, etc.)