ClearDB.io

Clear Data Builder for Ext JS is an open source and free productivity tool to build applications with HTML5, JavaScript and Java EE technologies.

View the Project on GitHub Farata/ClearJS

Clear Data Builder for Ext JS

Clear Data Builder for Ext JS (CDB) is an open source and free productivity tool to build applications with HTML5, JavaScript and Java EE technologies.

It supports Ext JS with Ext.Direct/JEE.

ClearJS writes both JavaScript and Java code for you. All artifacts required for bringing together Ext JS, Java implementations of Ext.Direct (currently - DirectJNGine), BlazeDS, and popular Java frameworks: Spring, Hibernate, and MyBatis ClearJS generates automatically.

Source code is hosted on the SourceForge as part of the Clear Toolkit Project under MIT license. Commercial support of ClearJS is available from the source: Farata Systems.

Intrigued? Check our getting started guide in wiki

Why Clear Data Builder?

If your ever tried to create a combined Ext-JEE-DBMS project with or without Spring, you spent hours just to see a window populated with the simple data. Implementing data persistence and transaction processing is even more time consuming. How about batching all inserts, deletes and and updates done to your store as a single transaction? Want to incorporate changes to the associated stores to the same sync()? ClearJS substantially saves time by automating most of these efforts.

You go through a set of simple steps to declare what data do you need (using SQL or Hibernate) and let ClearJS generate and deploy all the artifacts: Java, JavaScript and configuration files. Below, getCompanyAssociates is annotated to return all records from a company_associate table1) and this declaration is all you write to build a BlazeDS service that returns a collection of employee data (Run view-source enabled demo):

package com.farata.test.service;
import java.util.List;
import com.farata.test.entity.CompanyAssociate;
import clear.cdb.annotations.*;

@JSService
public interface ICompanyService {
    @JSJPQL(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId")
    List<CompanyAssociate> getCompanyAssociated(Integer companyId);
}

Throw in one more Java annotation to generate a sample HTML application:

@JSGenerateHTML5(arguments="1")
@JSJPQLMethod(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId")
List<CompanyAssociate> getCompanyAssociated(Integer companyId);