RADtool 2.0 is an open source web application development tool/framework that consists of an MVC framework, meta-data driven code generator, a code library, etc.
Check out RADtool 2.0
RAD is intended to be an open source IDE with following broad features
1. Provides a MVC framework (for java web-applications)
2. Provides a code library
3. Manages web application code vide its various tools
4. In RAD most of the code is reduced to metadata.
5. RAD is to have a very sophisticated presentation component editor for working with jsps (provide in next stage).
6. It is to have a web and a Java Webstart based user interface for IDE screens.
7. The output of RAD is functional MVC web applications that can be configured declaratively even after deployment. All that one has to do is reload the servlet.
8. RAD tool is intended for java J2EE developers.
9. RAD tool is currently available as a non-visual java tool. The existing RAD tool fully supports rapid J2EE web-application development.
10. RAD tool is not about skeleton code with placeholder. Its about valuable functionality thats configurable declaratively.
11. Its totally object oriented but the number of lines of code manually written are reduced to a minimal.
12. The developer can concentrate on actual business logic.
Visit / download RADtool at http://radtool.sourceforge.net/
A brief instructions manual and some simple demo web apps and instructions on deploying them have also be provided.
The tool development is planned in stages. Stage1 has been implemented and is ready. The other stages are to follow. Currently development is in second stage.
Benefits of RAD:
1. Less code to type
1. quick development vide codegeneration and deployment descriptors for Java web-applications.
2. in built MVC framework
3. automatic server side validation
4. in built error handling with multiple error schemes
5. a code library that is reused by the generated code.
6. flexible security
7. It allows quick development of seperate components which coexist in the same MVC framework and work together to make the web-application.
The user can now toggle the error-handling schemes transparently.
1) Stage1: Development of the core tool (READY) with following features.
a) Deployment descriptors (code metadata files) for
i) Generating wrapper classes of different types and supporting containership i.e. wrappers that have wrappers as data members in addition to normal fields.
ii) Generating builder classes that perform server side validation, error handling on form data and populate the wrapper class instances
iii) Specifying handler properties which includes details like what builder to use, access roles (JAAS), what to do on successful validation, what to do on custom validation, what to do with the result obtained from the database or any other source.
iv) Mapping web requests to a handler class
v) Declaratively choosing whether security will be vide JAAS or session management.
vi) Declaratively specify which roles (out of the permitted roles) can access which request when using JAAS.
b) The user developer needs to code only the following.
i) A handler class that extends a base handler class and provides implementation of specific methods
(1) For business logic (database access etc),
(2) Custom validation (if any that is not covered declaratively),
(3) Formatting any success message (if needed)
ii) Write the jsp, which uses the data sent to it by the handler.
2) Stage2: additional features of the core tool.
a) Providing a deployment property to choose between different error schemes for error messages.
b) Provide object Inheritance in wrapper classes. Right now wrapper classes of RAD only support containership. Also needed is support for an equals() method.
d) Enhance a few other components in RAD framework
e) Provide a very sophisticated (but unusual) presentation components editor for use with jsp taglibs.
f) Provide a refresh control.
g) Provide for arithmetic expressions in the builders.
h) Provide a state machine for managing session specific information.
3) Stage3: declaratively provide following.
a) Persistence using a simple in-built persistence layer.
b) Persistence with a standard JDO implementation
c) Persistence with specific ejb servers for database access
d) Manage LDAP integration
Stage4: use RAD itself to build a J2EE web application and webstart application based IDE for managing the code and deployment descriptors.
Feedback will be appreciated.
I can be contacted at raghu121 at hotmail dot com