|
|
SoftwareSphere Panel is a software development tool created to collect all the tasks needed to maintain a medium or big software project, and to execute single tasks by means of a simple and clear user interface.
This project started after we used the Ant tool for some time. The main problem with Ant is the lack of a simple user interface. The Ant program is console based and is started by command lines. We have seen that for many medium or large software projects we need to execute some tasks repeatedly and see the results immediately.
The Ant tool is a very good tool for Java software development but we found several limits in it that cannot be removed by adding new types of tasks.
The Ant tool is based upon the concept of a project that contains a series of targets, and each target owns a series of tasks. Even if the Ant developers say that a target can be anything we want it to be, not only a file or group of files to be generated, we think that this creates some confusion.
The tasks in the Ant tool are contained in a target, and they can't be organized in a tree-like structure. The dependencies among tasks are defined inside the XML file and they cannot be seen immediately.
The SoftwareSphere Panel is based upon the concept of project, but a Project is a collection of folders and each folder can contain both tasks and subfolders, so the structure is clearly tree-like.
Instead of using a single XML file to define all the folders and tasks of a project, SoftwareSphere Panel loads the task definitions from separate text files, each task is defined by a simple text file and these files are placed into file system directories that correspond to the folders of the project.
The task definition file is a text file written in the simple "ini" format, i.e. a series of lines that are made of a name and a value pair separated by an equal sign. These lines are called parameter lines, because they give the value of a parameter of the task. In addition to the parameter lines the file can contain some other lines called directives with some keywords that are used by the task definition parser.
Each task has the Class parameter which tells the class of the task. This parameter is
associated to a Java class that implements that task. The Class parameter must be the first parameter
in the deifnition.
Each task has also the Label parameterwhoch tells the label used to display the task
in the user interface, and possibly a Description parameter which describes the task.
Since each task has a separate definition file, the name of the definition files are used as task names, so there can't be two tasks with the same name in the same folder.
We have developed several important classes of tasks that are usually needed in Java software projects.
| FtpTask | This is the base class for tasks that use the FTP | |
| FtpSync | Task that transfer files and directories through FTP to have the same content in a local and a remote directory. | |
| FtpUpdate | Task that uploads files that have been modified | |
| CopyFile | Task to copy a single file | |
| CopyLibraryClasses | Task to copy entirely or partially a library of Java class files | |
| TomcatTask | Base class for tasks that send commands to a Tomcat server | |
| JarTask | Base class for tasks that create Jar files | |
| MakeExecutableJar | Task to create an executable Jar file | |
| MakeLibraryJar | Task to create a Jar file that contains a library of classes |