Timewindow User Guide

Timewindow home
Revision history
User guide
Installation guide
Time-limiting notes
Directives file
Buildtool integration
License and download
Purchase
Faqs/Known issues
Email
Timewindow reads classes from a source directory, modifies them and then writes them to a destination directory. Alternatively, this can also be done from a source zip file to a destination zip file, or a source jar file to a destination jar file. All the Classes that require time-limiting are assumed to be in the source archive or directory. The time-limited versions of these classes will be created in the destination archive or directory.
In order to work with packages, Timewindow recursively processes classes in sub-directories of the main source directory. The directory structure of the source directory will be maintained in the destination directory. Subdirectories that are needed for saving the modified class files will be created in the destination directory, if they don't already exist.
The date-range which is used for time-limiting the classes is based on a start and an end date (both inclusive), which are provided by the user. Timewindow may be used with a GUI or from the command line. When the program is started with a GUI it will present the user with a main window, that has a number of, buttons and fields. The user can then select the date-range for time-limiting, the source and destination directories and click on the Start button to start processing. When run from the command line the parameters are specified in a directives file.
When using the GUI only the class initializers for the selected classes will be time-limited. There is no provision for time-limiting specific methods with the GUI. When using the command line, time-limiting can be done all class initializers as well as for methods that have been specified by name. The appropriate directives must be included in the directives file.
Note that time-checking code is only inserted into non-abstract methods of non-interface classes.
A description of the GUI interface is given below.
The menu bar

The menu bar consists of the following menus:

The 'File' menu
This menu is used for general program settings.

Log changes: When checked this will record the names of the methods that have been time-limited, in the log file.
Use Directives File: When checked, the settings for processing will be read in from the directives file rather than from the GUI.
Overwrite Class Files: When checked, allows the output files created by Timewindow to overwrite any existing files having the same name.

The 'Time-limit' menu
This menu is used for turning on time-limiting when using the GUI.
Time-limit menu 
Timelimit class initializers: When checked this will cause the class initializers of the selected non-interface classes to be time-limited.
The path fields

The fields, labelled 'Source' and 'Destination' are used to specify the paths to the source and destination for processing. The source and destination must be of the same type. They may be directories, Zip files (ending in ".zip") or Jar files (ending in ".jar"). If the source Jar file contains a manifest, then the manifest is expected to contain a manifest version attribute. The main class attribute in the manifest will be preserved so that an executable source Jar file will provide an executable destination Jar file. The 'Directives File' field specifies the path to the directives file. The paths may be entered by typing text into the fields or by using the browse button beside each field.
The Date-range panel

This panel is used to specify the start and end dates for time-limiting. The dates can be changed by using spinners for the day, month and year fields. Note that the date-range includes the start and the end date that have been specified.
The 'Start' and 'Cancel' buttons

These two buttons are used respectively to start the process or cancel it while it is in progress.
Return code

Timewindow will provide a return-code on exit to indicate if an error occured during processing of the classes. This may be used when integrating Timewindow into a larger build process.
The log file

Each session of Timewindow will overwrite the file 'TimewindowLog.txt'. This file may contain a record of the methods that have had time-checking code inserted into them, as well as the settings used for the session. If an error occurs during the session this will also be reported in the log file. If the information in the log file needs to be saved for future reference, then this should be done immediately after the Timewindow session, since it will be overwritten when Timewindow is started up again. If the 'Log changes' checkbox in the 'File' menu is checked then the method names will be recorded in the log file.