Work In Progress Summary

An overview of work currently in progress across all the whole framework

High Priority

spiralcraft-sql module freshen-up

  • Status: In process, in development phase

We're in the process of freshening up the spiralcraft-sql module, which provides the SQL Store back-end for the spiralcraft.data package. This module needs to consider recent enhancements to spiralcraft.data, including query optimization techniques and the transaction management mechanism.


Recently Completed

2009-05-09 Textgen / WebUI "state framing"

This optimizes the Textgen / WebUI event model with respect to state management, and formalizes the triggering of state recomputation as a core feature.

Background: The Textgen / WebUI generation engine generates text markup (eg. XML, HTML, ...) from application data. Textgen provides a facility to perform a stateful transformation of this data based on input, and to pre-compute the data that will be output before it is rendered. This "state framing" mechanism formally defines the points at which application data is read from the application into the state model, instead of allowing components to determine this on their own, thus reducing the complexity and increasing the predictability of the event model.

2009-04-27: release versioning

We've implemented a release versioning system using Ivy.

  • Each module tracks changes in a CHANGES.xml file in the root of the module
    • The format of this file is the spiralcraft.data built-in XML format, defined by the spiralcraft-scm module package spiralcraft.scm.meta.
  • Each modules output jar contains a META-INF/spiralcraft-scm directory which contains
    • A file containing the version info in its name, easily viewable from the jar -tf command or another type of jar inspector
    • A version.properties file containing the version info
    • The CHANGES.xml file
  • An ivy repository is now a subtree of the main repository, and contains all active spiralcraft and third party dependencies.
    • Artifacts and ivy files are located at spiralcraft/depends/[organization]/[module]/[version]/

More tool support is planned to help manage and query this information.

2009-04-09: Move builds to Ivy

We've completed the move to Apache Ivy to manage inter-module dependencies

2009-04-09: Build system packaged for use by third parties

The Spiralcraft common build system located under the spiralcraft/build repository path has been made reusable and self updating. This permits organizations with a non-trivial repository structure containing Spiralcraft applications and additional modules to simply use Spiralcraft's build system while tailoring it to the specifics of their own organization.

The Spiralcraft build system is composed of Ant, Ivy, and BeanShell scripts as well as the Spiralcraft launcher. It depends on a specific repository structure and imposes a dependency/publishing model by convention.


Back Burner

GUI Framework / Desktop App

The GUI Framework binds Swing components to models using spiralcraft.lang and spiralcraft.data using a hierarchical containership mechanism based on "Control" objects.

The Desktop module extends the GUI framework to provide a multi-window workspace for running various GUI applications in a common context.