Quick Start
Wedge Blog
Mail Lists
Spring Framework
Powered by ASM
Code Coverage by Clover

online web site analyser SourceForge.net Logo
Wedge - The Web on the Edge

Wedge is a POJO based component centric web framework that uses runtime code generation and naming conventions in order to provide a simple way to develop web applications in java.

Wedge page templates are plain xhtml documents with few sensible attributes. The classes behind these pages are simple POJO's (Plain Old Java Object) with no imposed object hierarchy.

At runtime, wedge generates and compiles a third class that binds the template and the java class behind it. This generated class is loaded in a separate class loader which may be dropped as the page template or the java class change.

Wedge is capable to reload at runtime both the template and the java source code of the page class. This means that you can heavily modify your page java source code (add, remove or rename methods and fields) and see the result right way by simply refreshing the browser window. This was not possible by simply starting the application in debug mode.

For further details you may consult one of the following:


10 July, 2006 - wedge 1.0 alpha1 released
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. It makes use of some of the Java 1.5 features, thus it is not compatible with previous versions of JDK.

Wedge has some concepts inspired from Tapestry but with some notable differences.

Here are some of the features of Wedge:

  • 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 and a forum.

  • © 2005-2006 All rights reserved.