Jul 7th, 2006, 11:59 AM
Wedge Web Framework for Spring Released
Dear Spring community,
I am pleased to announce the first public release of the Wedge web framework.
Wedge is a component centric web framework built on Spring and Hibernate and it provides a POJO based application development.
Wedge has some concepts inspired from Tapestry but with some notable differences:
* Page classes are simple POJO’s with no imposed hierarchy.
* Page classes are Spring managed beans. Most of the time, Wedge will register these classes as Spring beans behind the scene without any configuration.
* Page classes may be reloaded at runtime without restarting the application even though the class may have changed dramatically (methods or fields were added, renamed, removed…)
* Templates still use special tag attributes like Tapestry pages but Wedge tries to simplify this by introducing defaults and naming conventions. Example:
<span insert=”ognl:message”>[the message]</span> instead of
<span wid=”w:insert” value=”ognl:message”>[the message]</span>
<tr foreach=”ognl: person”>… </tr> instead of
<tr wid=”w:foreach” source=”ognl: persons” value=”ognl: person”>… </tr>
* Templates may be also reloaded at runtime. Just modify the template and refresh the browser window.
* Wedge is not using runtime reflection to evaluate OGNL expressions. It makes use of runtime code generation for generating a class that renders the output based on the information taken from the page java class and the page template.
* The framework supports defaults and naming conventions. Thus you may create a page at runtime and access it right away without declaring it explicitly.
* Wedge offers basic support for DAO classes in the form of generic DAO interface and a generic implementation. Wedge generic DAO implementation extends Spring DAO support for Hibernate.
* Making use of the new extensible schema configuration in Spring 2.0, wedge provides a more domain specific language for configuring the application.
* It offers a very intuitive and self documented way to configure Hibernate. More details in the framework documentation.
* In an experimental stage, Wedge provides some ORM support by allowing you to declare an application model for Hibernate without writing xml mapping files. This feature makes use of naming conventions and runtime reflection to detect class properties and relationships and based on this information it generates the mapping xml at application startup. More details in documentation and on demand ;-).
* Wedge also provides a very helpful command line tool built on ANT that allows you to easily create a new application and generate pages, spring services or model classes.
* It also comes with an embedded jetty server and a HSQLDB server (work in progress) with corresponding management commands.
This release is the result of several months of work and many of the ideas grew up from the hints and advices of the Spring team members. That’s why I would like to express my gratitude to those who helped me in developing this framework.
This release should not be considered a final release. Development will continue and more features will be added. Until it will be released in a final form it should not be considered ready for any kind of production environment.
Community feedback is most wanted and critics are welcomed. Thus, you may share your thoughts on this framework on the Wedge forum.
You may found out more information from the framework site, http://wedge.sourceforge.net.
Also, there is a wiki available at http://wedge.sourceforge.ner/wiki and a forum http://wedge.sourceforge.net/forum.