View Full Version : Jprovocateur - Ext J.S by XML configuration - J2EE - SPRING - HIBERNATE

11 Sep 2010, 7:47 AM
Hello All,

I have developed an open source (LGPLv3) (https://sourceforge.net/softwaremap/?&fq%5B%5D=trove%3A680) "framework", called Jprovocateur, that allows the rapid development of J2EE applications using Ext J.S .

It combines technologies like Spring Container, Oval Validation, Spring MVC and Ext J.S.

The project is registered in SourceForge (http://sourceforge.net/projects/jprovocateur/)
You can access the documentation site on http://www.jprovocateur.org (http://www.jprovocateur.org/) and the example app on
http://www.jprovocateur.org/sampleweb/view/listCustomers (guest/guest) .All the examples have been created without writing a single line of javascript.

I consider that the project is in Pre-Alpha state. More documentation, verification of documentation and examples is required.

I created this post in order for you to have a preview and me to get some feedback.

If you like it and you are interested to help, do not hesitate to contact me.


The following features are included
Presentation Layer

Generation of complicated Ajax Master-Detail Forms/Grids using Ext j.s without writing Javascript, just configure them using xml.
Generic Controller that will automatically bind posted values to your objects.
Automatic conversion of your data to JSON/XML and bind to your Ext j.s Forms/Grids.
Automatic conversion of business errors to JSON/XML and bind to your Ext j.s Forms/Grids.
Grid state management in the database.
Automatic PDF Export of Forms.
Automatic XLS Export of Grids.

Business-Data Layer

Flow Controller
Automatic transaction management.
Validation based on defined Annotations and user defined business rules.
Access Rights based on Roles.
Quartz Scheduler.
Administration Modules for user/roles/access rights/notifications/distribution lists (OPTIONAL).
Generic DAO to perform list/create/update/delete operations.

Where/When you can use it:

Small and medium size business applications.
Quick results required. You do not want to waste time configuring everything from scratch
Well defined steps for the analyst-developer-tester.
Configure the real views instead of creating Mockups.
Reduced team resources.
Reduced expertise in Ext J.S/Hibernate/Spring.

14 Oct 2010, 10:15 AM
Hello Everybody,

The first pre-alpha release is out, you can find instructions http://www.jprovocateur.org/jprovcateurHome/quickStart/quickStrartPrerequisites

The demo application has been updated and sample data added http://www.jprovocateur.org/sampleweb/view/listCustomers (guest/guest)


14 Oct 2010, 9:31 PM
guest/guest does not work.

14 Oct 2010, 10:36 PM
I updated the account.

14 Oct 2010, 11:22 PM
Looks nice, and I do like the idea of leveraging Java's introspection and annotation capabilities to describe your business object model, and have Ext configurations generated. I think you are on the right track there.

On the client side, there are a few worries.

You seem to be rendering a GridPanel in a row expander.

Then just throwing away that HTML but the GridPanel does not get destroyed and cleaned up.

Go into accounts, expand "Joe", and do

var v = Ext.getCmp("accountListForm");
v.on('destroy', function(){console.log('destroyed');})

Then open up "Test" and then "Joe".

There's a whole new grid rendered there, and the old one has not been destroyed. It's still sitting there in memory, referencing its DOM structure which is also still in memory even if not inserted into a parent node.

You need to be very careful when rendering yourself, and not using existing Ext Components which clean up after themselves.

14 Oct 2010, 11:32 PM
In "registerCustomerForm", every line of the form is a column layout Panel which contains a Panel which contains a Field.

I know that when you generate code you sometimes have to code for a general case, and this sometimes means runtime overhead to enable build-time ease of design. But that should be made much more lightweight.

But these are minor things really and can be tidied up. I think your server side configuration and generation is the key strength. Good luck with it!

15 Oct 2010, 12:21 AM
Thank you for your response Animal,

I know there are problems related to the client side, but I cannot solve them all on my own as I am not expert on Ext J.S and javascript. Anybody who wants to help can join the project, just send me an email.