|
Architecture
The most important components of the Firestorm architecture are the schema import framework and the code generation framework.
Schema Import Framework
The application's powerful Schema Import Framework allows the import of database metadata using either a live database or an SQL schema.
Importing from Live Databases: Firestorm can import a schema from a live database using JDBC. Officially supported databases include Apache Derby (previously IBM Cloudscape), IBM DB2, Informix, Ingres, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SAP DB, and Sybase. Databases that have not been mentioned here are also supported provided they are JDBC compliant or if they support the ANSI-SQL standard.
Importing from an SQL Script: You can import a schema from a Database Definition Language (DDL) script generated for or by all the databases that are JDBC compliant and have support for ANSI-SQL.
The import framework is very efficient as it automatically maps SQL types from most databases to the appropriate Java primitives. The framework recognizes the minute differences in SQL types that most of the databases have between each other. For instance, Firestorm recognizes the minute difference between auto-increment columns in MySQL and sequence types in DB2 and Oracle.
Whenever a newer version of a schema is imported into an existing Firestorm project, Firestorm adds the changed database objects without affecting the structure in the existing Firestorm project. In addition, you can import a subset of the database schema.
Once the schema has been imported into a Firestorm project, you can change the database access tier technology easily. For instance, you can change the persistence layer from EJB to JDO by just regenerating the code. You can also change the underlying database easily and Firestorm will make appropriate changes to the data types before generating code.
Code Generation Framework
Code generated by Firestorm is not limited to the persistence layer. You can also generate code for the presentation layer based on JSP or Struts framework. Firestorm can also generate Ant build scripts, configuration files needed for the Struts application and J2EE deployment descriptors used in application servers.
The commonly used code generation modules include DAO code generation, JDBC code generation, JDO code generation, J2EE code generation, EJB code generation, Struts/JSP code generation and Hibernate code generation.
Apart from these standard code generation templates, Firestorm offers a custom code generation module that enables you to modify the existing code generation templates. You can use these custom code generation templates to generate new DAO or non-DAO objects. This module is available in the Architect edition only.
Custom Code Generation
For regular projects where standard java design patterns are used the existing code generation templates are more than sufficient. But in some instances like the ones below one may have to tweak the generated code:
- Required to maintain strict coding standards including naming conventions
- Need enhanced performance and security
- Need additional features such as caching
In these cases, the user can manually make changes to the generated code after the generation is done. Another option is to create a custom template that will generate the code to the required standards.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|