Architecture‎ > ‎

Framework Integration

Java Web Applications are typically developed using one of many available frameworks for User Interface Components and Application Code invocation.  It is common that these support Hibernate/JPA.

Automated Business Logic was designed to eliminate recoding by using existing Hibernate/JPA API's.  It achieves this by plugging into Hibernate events, underneath the public API.  This eliminates recoding, automates the activation of your logic to assure compliance and re-use, and means that ABL works with Hibernate/JPA-based frameworks without change, such as those below:

 Framework  Summary  Basis for Integration  Status
 OpenXava OpenXava provides model-driven application development, with complete generation from Hibernate/JPA models. Built using Hibernate and/or JPA Operational...
 Grails  Grails provides Rapid Application Development using Groovy, Spring and Convention over Configuration Gorm is based on JPA Operational...
 Spring Spring provides a light-weight, consistent programming model for developing Enterprise Rich Internet Applications, including deployment frameworks such as Cloud Foundry and vFabric Uses Hibernate, JPA etc.Operational
  • Described here 
  • Runs on Cloud Foundry here
 Spring Roo Spring Roo is a next-generation application development tool that speeds development by automating much of the boilerplate code  Uses JPAOperational
  Spring Data
  Spring Data builds Data Access Objects
 Options for JPA
 ZK ZK provides extensive jQuery components, simplifying the development of Rich Internet Applications using a server-centric approach (Ajax without Java Script) Persistence agnostic - it is your responsibility to populate form fields.  Operational, described and demonstrated here 
 ICEFaces  Standards-based framework for building thin client applications JSF places no restrictions on data (model) implementationTechnology Integration proved - demo in progress
 JSP, Struts etc  Standards-based frameworks for building thin client applications  Open Frameworks place no restrictions on data (model) implementation  Operational, demonstrated as the base sample
 Ontimize  Ontimize providess WYSIWYG UI Builders for increasing developer productivity in building Swing applications  Provides option for utilizing Hibernate  Operational
 Play Play! framework provides a light-weight, share-nothing architecture Uses JPA Operational, described and demonstrated here 
 Vaadin  Vaadin provides an extensive GWT component set, simplifying the development of Rich Internet Applications using a server-centric approach  Provides a Hibernate Adapter  Technology Integration proved
 SmartGWT  SmartGWT provides extensive GWT Components  Provides JPA adapter  Technology Integration proved

Note: each demo installation includes the ABL runtime.  The first 4 frameworks above are maintained with more current versions of ABL.  Please contact us if you encounter any issues using your framework with the current version of ABL.

Don't see your Framework?

The table above lists frameworks we know about and have tested.  Hibernate/JPA is a widely used standard, so there are many more we haven't tried (yet).  Our product is designed to integrate into any Hibernate/JPA-based system.  In the work we have done, we have encountered the issues below, listed in case they help you in your own integration.  Or contact us directly.

Transaction Required

Business Logic requires a transaction to be started (and committed) to fire.  The log will reveal logic activity.

Exception Handling

As described in the Architecture, constraint violations are detected when the client issues the commit.  Some frameworks provide special handling when they expect certain kinds of exceptions.  If you encounter issues, you can convert exceptions.

Hibernate Version

You must be using a Hibernate version noted in the Prerequisites.

Constraint violations flagged at commit time (not save time)

As described in the Architecture, constraint violations are detected when the client issues the commit.  Many User Interfaces presume these are raised when a row is saved.

Refresh to see derivation results

Note that derivations are a core element of Automated Business Logic, such as rolling up an order total and customer balance.  You can obtain a Transaction Summary of all changes, and use this to update your result list without incurring re-query overhead or re-positioning.