HOME      PRODUCTS      CUSTOMERS      BUY      CORPORATE     SUPPORT

PRODUCT BENEFITS     DOCUMENT LIBRARY     FIRESTORM/DAO DOWNLOAD      PRESS RELEASES

CodeFutures

 

FireStorm/DAO Architect Edition

FireStorm/DAO Architect Edition is powerful and flexible Java persistence tool that allows new custom code generation templates to be developed and integrated with the FireStorm/DAO Studio environment. CodeFutures includes the source code of all the Enterprise Edition DAO options (JDBC, EJB CMP, Hibernate, JDO) as part of the Architect Edition.

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. The custom code generation templates can be used with the Enterprise Edition.

FireStorm/DAO Architect Edition includes the source code for the each of the DAOs (JDBC, EJB CMP, Hibernate, and JDO). 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 - Demonstration Video

A short demonstration video introducing FireStorm/DAO Architect Edition is available in Windows Media format to view here.

Java Code Generator

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 includes:

  • 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

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 2008 Code Futures Software, Ltd. 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;
    }

}

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 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




 

Products:

FireStorm/DAO

FireStorm/SDO

FireStorm/DAO:

FireStorm/DAO Overview

DAO Benefits

FireStorm/DAO Features

FireStorm/DAO Architecture

FireStorm/DAO FAQs

DAO Design Pattern

DAO Tutorial

DAO Download

FireStorm/DAO Editions:

Product Range

Enterprise Edition

Architect Edition


FireStorm/DAO™ Awarded JARs 5%

Newsletter:

Newsletter Subscription






   
 
  FireStorm/DAO is a code generator for Java persistence that generates Data Access Objects based on Java DAO, JDBC DAO, Hibernate Java Persistence, JPA Persistence, and Spring DAO.

 

Copyright © 2003-2008 CodeFutures Corporation. All rights reserved.

APPLICATION DEVELOPMENT PRODUCTIVITY™
 
Data Persistence | Data Access Object
Site Map | Java Persistence | Legal
Data Transfer Object | Hibernate Java

FireStorm/DAO™, FireStorm/SDO™, and CodeFutures™ are trade marks of Code Futures Software Ltd.