Integration with the Tapestry framework is done through TapestryConnectionHandler . That class sets up a hivemind registry and substitutes/extends several important service points. There are set of classes that are given instead of original implementations: DanubeActivator , DanubeContext , DanubeCookieSource , DanubeRequest , DanubeResponse and DanubeSession .
applicationSpecificationResourceName- name of main .application file. It defaults to "tapestry.application"
initialParameters- map of initial parameters.
sessionManager- session manager to be used. It must implement HTTPSessionManager . If not set then defaulted to SimpleSessionManager .
Also there are a few parameters that are exposed as a expansion points but there is no reason for them to be set unless some internal behaviour is to be changed. Here there are:
classResolver- Class resolver implementation of ClassResolver type.
webActivator- web activator implementation of WebActivator type.
webContext- web context implementation of WebContext type.
Pages and all other resources are accesses through class loader - so make sure that they are in the classpath.
Aside of org.abstracthorizon.danube.tapestry.TapestryConnectionHandler
there is org.abstracthorizon.danube.tapestry.spring.TapestryConnectionHandler
supplied as well. Difference is that Spring
version uses application context's resource for obtaining Tapestry's application
Non-Spring version of
applicationSpecificationResourceName using WebContextResource
WEB-INF/ path. Spring version of
first checks for
applicationSpecificationResourceName as application context's resource and if failed then as application context's resource at path
Here is an example of an configuration of Tapestry taken from supplied demo:
<!-- * This bean defines beans application context. * It references to two components: File component that accepts only file named "style.css" and * MVC controller defined at the "/app" path. --> <bean name="web-application" class="org.abstracthorizon.danube.http.HTTPContext"> <property name="components"> <list> <bean class="org.abstracthorizon.danube.http.matcher.Pattern"> <property name="pattern"><value>/style\.css</value></property> <property name="connectionHandler"><ref bean="files"/></property> </bean> <bean class="org.abstracthorizon.danube.http.matcher.Prefix"> <property name="prefix"><value>/app</value></property> <property name="connectionHandler"><ref bean="tapestry-application"/></property> </bean> </list> </property> </bean> <!-- * This bean defines serving files from directory "pages" as given file path. --> <bean name="files" class="org.abstracthorizon.danube.http.util.FileConnectionHandler"> <property name="filePath"><value>src/pages</value></property> </bean> <!-- * This is connection handler that handles Tapestry requests. --> <bean name="tapestry-application" class="org.abstracthorizon.danube.tapestry.TapestryConnectionHandler" init-method="init"> </bean>