FireStorm/DAO Architect Edition
FireStorm/DAO Architect Edition is powerful and flexible database access tool that offers the choice of generating a DAO tier using either JDBC DAO, EJB CMP DAO, Hibernate DAO, and Spring DAO. In addition, the Architect Edition can also generate J2EE Web applications for Tomcat, JBoss, BEA WebLogic, and IBM WebSphere.
FireStorm/DAO Architect Edition is priced at $995 per developer for Annual Developer Subscriptions, which can be purchased from the CodeFutures online store.
CodeFutures provides FireStorm/DAO users with the source code for the entire product, including the source code for the code generation templates (JDBC DAO, Hibernate DAO, and Spring DAO).
The code generation templates are written in standard Java so there is no need to learn a proprietary code generation template language as with other solutions. There is no limit on the number of custom DAO design templates can be developed – possibly using different DAO templates for different parts of the same application. Additional non-DAO custom code generation templates can also be developed and used with FireStorm/DAO.
FireStorm/DAO Architect Edition includes the source code for the entire product, including the source code for the each of the DAOs (JDBC DAO, Hibernate DAO, and Spring DAO). This allows FireStorm/DAO to be customized:
- Optimize performance based on specific project requirements
- Integrate more closely with existing development procedures and build environments, such as internal coding standards
- Add environment-specific extra custom features such as caching, security, auditing, and clustering
FireStorm/DAO Architect Edition also allows new custom code generation templates to be developed and integrated with the FireStorm/DAO Studio environment.
FireStorm/DAO Architect Edition Features
- Import database schemas from a JDBC connection
- Import database schemas from SQL/DDL scripts
- Reverse-engineer stored procedures
- Round-trip engineering (import modifications made to a schema)
- Create new schemas using a simple user interface
- Imported schemas can be modified using a simple user interface
- Generates Data Access Object (DAO) interfaces
- Generates Data Access Object (DAO) exception classes
- Generates Data Transfer Object (DTO) classes
- Generates Data Access Object (DAO) classes for JDBC
- Generates Data Access Object (DAO) classes for Java Persistence API (JPA)
- Generates Data Access Object (DAO) classes for Spring JDBC
- Generates Session Bean facade for each DAO interface
- Generates Web pages based on Apache Struts framework
- Generates Web pages based on plain Java Server Pages
- Dynamic Update Method
- Interactive SQL Tool
- Database Schema Migration
- Optimized JDBC Code
- Import Generation for Partial Schema
- Generates CMP deployment descriptors
- Generates J2EE deployment descriptors
- Generates ANT build scripts
Supported Databases
All editions of FireStorm/DAO support the following database platforms:
- Oracle 8i/9i
- Sybase
- IBM DB2
- MySQL
- IBM Cloudscape
- Microsoft SQL Server
- Informix
- Apache Derby
- Microsoft Access
- InnoDB
- PostgreSQL
- Any JDBC-compliant database
Supported J2EE Platforms
FireStorm/DAO Enterprise Edition generates code for the following J2EE platforms:
- BEA WebLogic 6.1
- BEA WebLogic 7
- BEA WebLogic 8.1
- IBM WebSphere 4
- IBM WebSphere 5
- JBoss 3.2
Supported Operating Systems
All editions of FireStorm/DAO run on the following operating systems:
- Microsoft Windows 2000, Windows NT4, Windows XP, Windows Vista
- UNIX
- Linux
- Mac OS X
FireStorm/DAO Architect Edition - Demonstration Video
A short demonstration video introducing FireStorm/DAO Architect Edition is available in Windows Media format to view here.
Team Development using the Architect Edition
The maximum benefits of FireStorm/DAO are usually derived by a software development group using the Architect Edition to customize the DAO design template for its environment.
An experienced software developer within a software development team customizes the DAO template. Then any other programmers who want to develop a data persistence tier use the Enterprise Edition and the custom DAO template provided by the DAO architect.
The DAO templates in FireStorm/DAO Architect Edition can be customized to a project’s exact requirements: optimize performance, integrate more closely with existing build environments, and add environment-specific extra custom features such as caching, security, auditing, and clustering.
The benefits of using FireStorm/DAO Architect Edition with development teams include:
- The DAO architect has control over the code generated by all other developers using FireStorm/DAO Enterprise Edition, so they can benefit from the DAO architect's specialist expertise.
- The DAO architect can ensure that programmers are strictly following coding standards/best practices. This benefit is important in large organizations with multiple development teams, or where there are multiple development projects, because it ensures a consistent approach to the common task of database access.
- Multiple custom DAOs can be developed as required for different types of projects (for example, optimization for different databases)
- Additional features can be added to the DAO templates by the DAO architect
- FireStorm/DAO can be more closely integrated with existing development procedures (for example, special build system requirements, internal coding standards)
- The Architect Edition can be used to address certain skill shortages – where the DAO expert can control the activities of less skilled developers. It is particularly useful for software developers with database skills that may not have sufficient Java experience to write Java persistence code from scratch.
Custom Code Generation with FireStorm/DAO Architect Edition
FireStorm/DAO™ Architect Edition allows custom code generation modules to be developed and integrated into the FireStorm/DAO product.
The FireStorm/DAO™ SDK provides two interfaces that must be implemented by user-defined code generation providers. These are the Provider and ProviderOptions interfaces.
Once the user-defined provider class has been developed it can be integrated with FireStorm/DAO™ by simply adding the class name to the firestorm-conf.xml file as in the following example:
<codegen-providers>
<provider>com.mycompany.codegen.MyProvider</provider>
</codegen-providers>
This code generation provider will now be available within the "Generate" menu in the FireStorm/DAO™ user interface and will also be available to the Ant code generation task.
The following syntax can be used to invoke a user-defined code generation provider using Ant:
<codegen
home="${firestorm.home}"
src="${firestorm.home}/projects/myproject.xml"
provider="myprovider"
output="generated-code"
/>
Example of Code Generation Template
/*
* Copyright 2009 CodeFutures Corporation. All rights reserved.
*
* This is vendor code. Use is subject to license terms.
*
* Author: Andy Grove
* Date: 21-April-2008
* Time: 08:57:11
*
* Visit / for more information.
*/
package
com.codefutures.firestorm.codegen.dao;
import
com.codefutures.jingo.source.dom.JClass;
import
com.codefutures.jingo.source.dom.JAttribute;
import
com.codefutures.jingo.source.factory.SourceFactory;
import
com.codefutures.firestorm.project.dom.TableDao;
import
com.codefutures.firestorm.project.dom.TableDaoColumn;
import
com.codefutures.firestorm.project.dom.PrimaryKey;
import
com.codefutures.firestorm.api.CommonOptions;
public
class
GenTablePk
{
public
static
JClass
generate(
TableDao
dao,
CommonOptions
config
)
{
JClass
c
=
SourceFactory.createClass(
config.getDtoPackageName(),
dao.getJavaName()
+
DaoConst.PK_SUFFIX
);
c.setJavaDoc(
"This class represents the primary key of the "
+
dao.getSqlName()
+
" table."
);
c.addImport(
"java.io.Serializable"
);
c.addImplements(
"Serializable");
PrimaryKey
pk
=
dao.getPrimaryKey();
if
(pk
!=
null)
{
TableDaoColumn
col[]
=
dao.getPrimaryKeyColumnList();
for
(int
i
=
0;
i
col.length;
i++)
{
JAttribute
attr
=
c.createAttribute(
col[i].getJavaType(),
col[i].getJavaName()
);
c.createAccessorMethods(
attr
);
}
c.createConstructor(
c.getAttributeList()
);
}
DaoCodeGenHelper.createToStringMethod(
c,
dao.getPrimaryKeyColumnList()
);
return
c;
}
}
FireStorm/DAO Architect Edition Customer Testimonials
“FireStorm/DAO Architect Edition gives us full control and ownership over the code that is much preferred over other proprietary products. In our experience, most other DB mapping tools and products provide great productivity over the short term, but over the long term, the inability to control the generated JDBC introduces bugs that are very difficult to fix and maintain. Unnecessary workarounds are then used which contaminate our system's architecture. FireStorm/DAO will definitely stay part of our tool set within the foreseeable future!”
Kobus Steenekamp, Senior Java Developer, Discovery Health
“FireStorm/DAO is a great tool not only for rapidly prototyping, but also for doing production quality code. During code reviews and load testing, we have found that the code generated by FireStorm/DAO performs exceptionally well.
We have eliminated the concern of connections remaining open and each developer implementing persistence layers differently.”
Robert Peck, Lead Architect, Ahold USA
“FireStorm/DAO Architect Edition has been an essential tool for building our Workplace Drug Testing and Executive Coaching Web sites. It has saved use a small fortune while we prototyped various applications - allowing us to make changes on the fly without worrying about coding errors or even having to test our code - it's that reliable.
John McGuire, Lead Architect, LinkedCRM
“FireStorm/DAO Architect Edition allows us complete control over the generated code mitigating any risks of changes in our application or the product. We were able to build upon the generated persistence layer and generate much of our client and business layer code. In some cases, we were able to generate up to 75% of the code leaving only business logic to program.
We like to joke that at the end of our 18-month project, we will have figured out how to generate the entire application. We would like to thank the FireStorm/DAO team for their outstanding support throughout our project.”
Matt Pearce, Technology Consultant, Ajilon Consulting


