Clear Data Builder for Flex (CDB-F) is an open source and free productivity tool for Adobe Flex, Air and Java EE applications.
Earstwhile known as simply Clear Data Builder (CDB), so references to CDB within the confines of this wiki node and it's children should be considered as CDBF, i.e. original, Flex version of the CDB.
Elsewhere you may find references to CDB for HTML5 (CDB-H), which in is upcoming release will support Ext JS with Ext.Direct/JEE and BlazeDS/JEE.
CDB writes Flex and Java code for you. All artifacts required for bringing together Flex, BlazeDS, and popular Java frameworks: Spring, Hibernate, and MyBatis CDB generates automatically.
Source code is hosted on the SourceForge as part of the Clear Toolkit Project under MIT license. Commercial support of CDB is available from the source: Farata Systems.
If your ever tried to create a combined Flex-Java-BlazeDS-DBMS project, you spent hours just to see a window populated with the simple data. Implementing data persistence is even more time consuming. How about keeping track of the data changes made by the user via UI? Want to automate the creation of ActionScript Data Transfer Objects (DTO) based on their Java peers? CDB 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 CDB generate and deploy all the artifacts: Java, Flex 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.*; @CX_Service public interface ICompanyService { @CX_JPQLMethod(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId") List<CompanyAssociate> getCompanyAssociated(Integer companyId); }
Throw in one more Java annotation to generate a sample MXML application…
@CX_GenerateMXMLSample(defaultFillArguments="1") @CX_JPQLMethod(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId") List<CompanyAssociate> getCompanyAssociated(Integer companyId);
…and now you have a Flex test application that runs against Java/Spring2)/Hibernate code that you did not write!
Do you know any other open source and free tools that automate creation of Flex/Java CRUD project? We don't.
CDB's project wizard makes creation of the BlazeDS/Spring/Hibernate code a breeze. Then, CDB generates well organized Java and Flex code.
The best way to start with CDB is by following the hands-on workshop Getting Started with Clear Data Builder (Workshop). Alternatively, you can follow the chapters of the ClearWiki starting from the Tutorials section.
Other resources:
No, you do not. Your Java Services can contain any custom Java methods, in particular - based on such lightweight persistence framework as myBatis or legacy SQL. To simplify creation of custom collection-oriented services , CDB offers a special @CX_FillMethod annotation. You can freely mix Hibernate-based methods and custom ones in the same project and even in the same service.
No, you do not. Turn off the Spring support checkbox during the project creation if you do not want it. By default, all your services are Spring enabled.
Once you elect Spring support in the CDB Project Wizard the BlazeDS MessageBroker is managed by the Spring container: CDB annotates generated Java services with @RemotingDestination and the project configuration ensures that message routing goes through Spring DispatcherServlet instead of Adobe MessageBrokerServlet. Now your code in the extension layer of the Clear Data Builder services can inject Spring managed beans, you can use Spring security to secure your services method-by-method based on Spring AOP and so on.