chrysalis
Project home
If you were registered and logged in, you could join this project.
Chrysalis: A Database Schema Code Generator and Life-Cycle Management
Tool
Mission
Develop a java-based tool that manages the life-cycle of the database
schema and generates code and documentation artifacts. The tool transforms an XML description of
a database schema into an HTML data dictionary, SQL scripts to create the database,
and Java data access code. The tool automatically updates the documentation, scripts, and
code as the schema is changed and updated. The tool also provides a simple but
powerful data access programming model and framework for developing custom data access
code. The generated Java code conforms to the
Data Access Object (DAO) and
Value Object (AKA Data Transfer Object) patterns that are described in the J2EE Java Blueprints.
Goals
- Produce a tool that manages the full lifecycle of the database schema. It does this by:
- Representing the schema in a database-independent XML format.
- Generating HTML documentation, SQL DDL scripts, and Java code from the XML.
- Providing modules to manage schema changes and update the generated artifacts.
- Produce a DB code generator that produces about 80% of the code, scripts, and
docs needed for any large-scale data access subsystem.
- Provide a database access program model and framework that
simplifies the production of the remaining 20% of the code as well as being the foundation of the generated code.
- Provide efficient access to database schema meta-data at runtime.
- Produce highly efficient Java and SQL code that can be executed with a minimum of
overhead.
Scope
The latest version of Chrysalis supports Oracle 8i and
9i and MySQL. Eventually, support will be added for SQL Server 2000, and (maybe) DB2
8.0, Sybase and Postgres 7.2.
Project Status
You can now download both source and binary distributions for the alpha
0.4 version of Chrysalis. This release adds support for MySQL, with the
exception of the reverse engineering module. This will be added in a future
maintenance release. The next major release of Chrysalis will add support for
entity classification and super- and subtypes. See the Roadmap document for
more details.
Comparison to Torque
Chrysalis and Torque have very similar goals - generate DDL, documentation, and
data access code. However, the solutions to those goals are very different,
particularly with respect to code generation. Torque seeks to subsume both the
details of data access and the differences between DBMS's when it generates persistent
application objects. Chrysalis' approach is to produce finer-grained, highly
efficient data access objects that exploit specific features of different DBMS's
under the covers.
Chrysalis is a tool for the database engineer who wants to automate the more mundane
parts of his or her job in order to concentrate on the essential tasks; Torque is
a tool for a developer who doesn't want to deal with the specifics of a given DBMS.
Related Resources
My Blog