HighOctane now has a web application development framework that builds upon the strength of open source tools.
The main driver for the implementation has been "implementing a framework that developers can master in a matter of hours so that they can concentrate on the application at hand and not on a myriad of technologies and that can support partitioned developement by several subteams or individuals".
We think that we now have something pretty solid on that front.
Main characteristics:
- Framework servlet supporting file uploads
- Multilingual translation filter, even for submit buttons with a support tool for translations.
- Data Access Object code generator based on XML descriptions (with finders, insert/remove)
- Velocity templating for easy access to the application/session objects and also e-mail generation
- *NO* JSPs or taglibs involved (they can be used too if you like, we don't love them that much)
- email module
- Actions to implement call back code from the web pages
- ActionManagers grouping actions and functioning as reusable modules
- Works under Tomcat and iPlanet (maybe on others)
- Forms validation library (qForms)
- Easy integration with Dreamweaver (with Velocity templates, it just rocks!)
- Secured actions
- Ease of development for SQL code
- Integration with IDEAJ through Jakarta-Ant tasks (build war/deploy)
- Source level debug through IDEAJ and Tomcat 4.0.4 -> 4.1
- Much simpler than Struts, avoiding the creation of myriads of classes, JSPs, XML configurations and the like.
- https configured in Tomcat
- DBCP data sources
- Jaxen XPATH support
- Log4J support
- XML support for content management features
- Load tested with JMeter. Can keep up quite neatly. It stayed alive even when slammed by 200 concurrent users on a PIII 500 (3 req/sec for each user on a fully dynamic page with no cache).
Forthcoming features:
- Axis support for web services
- EJB session beans for DAOs on JBoss3. But I am now thinking about OpenEJB from exolab.
- New caching
Why do complex things when a simple one will do for your application ?
Maintainable, simple w/ reuse of components.
