[jboss-cvs] jboss-seam/examples/wiki/src/etc/WEB-INF ...
Christian Bauer
christian at hibernate.org
Wed Mar 7 13:37:34 EST 2007
User: cbauer
Date: 07/03/07 13:37:34
Added: examples/wiki/src/etc/WEB-INF jboss-web.xml
faces-config.xml components.xml pages.xml web.xml
urlrewrite.xml
Log:
Moved to hot-redeploy WAR build structure
Revision Changes Path
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/jboss-web.xml
Index: jboss-web.xml
===================================================================
<jboss-web>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>
seam.jboss.org:loader=wiki
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/faces-config.xml
Index: faces-config.xml
===================================================================
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<application>
<message-bundle>messages</message-bundle>
<!-- Disabled when using Ajax4JSF -->
<!--
<view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler>
-->
</application>
<!-- Why do I have to define this here again? It's already in wiki.taglib.xml! -->
<component>
<component-type>org.jboss.seam.wiki.core.ui.UIWikiFormattedText</component-type>
<component-class>org.jboss.seam.wiki.core.ui.UIWikiFormattedText</component-class>
<property>
<property-name>value</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>linkStyleClass</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>brokenLinkStyleClass</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>attachmentLinkStyleClass</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>inlineLinkStyleClass</property-name>
<property-class>java.lang.String</property-class>
</property>
</component>
<!-- Seam transaction management -->
<lifecycle>
<phase-listener>org.jboss.seam.jsf.TransactionalSeamPhaseListener</phase-listener>
</lifecycle>
</faces-config>
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/components.xml
Index: components.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
xmlns:core="http://jboss.com/products/seam/core"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:drools="http://jboss.com/products/seam/drools"
xmlns:web="http://jboss.com/products/seam/web"
xmlns:mail="http://jboss.com/products/seam/mail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-1.2.xsd
http://jboss.com/products/seam/security http://jboss.com/products/seam/security-1.2.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-1.2.xsd
http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-1.2.xsd
http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-1.2.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-1.2.xsd">
<!-- ##### WIKI USER CONFIGURATION ##### -->
<component name="globalPrefs" class="org.jboss.seam.wiki.core.model.GlobalPreferences"
scope="application" auto-create="true">
<property name="baseURL">http://www.seamframework.org/wiki</property>
<property name="defaultURLRendering">PERMLINK</property>
<property name="permlinkSuffix">.html</property>
<property name="themeName">default</property>
<property name="newUserInRole">member</property>
<property name="passwordRegex">^[0-9A-Za-z]{6,15}</property>
<property name="activationCodeSalt">MySecretSalt123</property>
<property name="defaultNewRevisionForEditedDocument">true</property>
</component>
<mail:mail-session host="mail.bluewin.ch" port="25"/>
<web:multipart-filter create-temp-files="true" max-request-size="10000000" url-pattern="*.seam"/>
<!-- ##### END OF WIKI USER CONFIGURATION ##### -->
<!-- Seam settings -->
<core:init debug="false" jndi-pattern="@jndiPattern@"/>
<core:manager concurrent-request-timeout="500"
conversation-timeout="120000"
conversation-id-parameter="cid"
conversation-is-long-running-parameter="clr"/>
<core:managed-persistence-context name="entityManager"
auto-create="true"
entity-manager-factory="#{wikiEntityManagerFactory}"/>
<core:entity-manager-factory name="wikiEntityManagerFactory"
persistence-unit-name="wiki"/>
<core:ejb installed="@embeddedEjb@"/>
<!-- Login and security -->
<drools:rule-base name="securityRules">
<drools:rule-files><value>/security.drl</value></drools:rule-files>
</drools:rule-base>
<security:identity authenticate-method="#{authenticator.authenticate}"
security-rules="#{securityRules}"
remember-me="false"/>
<!-- Misc Settings -->
<web:context-filter url-pattern="/files/*"/>
<factory name="themePath" value="#{facesContext.externalContext.request.contextPath}/themes/#{globalPrefs.themeName}"/>
</components>
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/pages.xml
Index: pages.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pages PUBLIC "-//Seam/Seam Pages DTD 1.2//EN" "http://jboss.com/products/seam/pages-1.2.dtd">
<pages login-view-id="/loginRequired.xhtml">
<page view-id="/display.xhtml" action="#{browser.prepare}">
<param name="nodeId" value="#{browser.nodeId}"/>
<!-- End any pending long-running conversation that was propagated into his view -->
<end-conversation/>
<navigation>
<rule if="#{!empty currentDocument}">
<render view-id="/docDisplay.xhtml"/>
</rule>
<rule>
<render view-id="/dirDisplay.xhtml"/>
</rule>
</navigation>
</page>
<page view-id="/docDisplay.xhtml" action="#{browser.prepare}">
<param name="nodeId" value="#{browser.nodeId}"/>
<!-- End any pending long-running conversation that was propagated into his view -->
<end-conversation/>
<navigation>
<rule if-outcome="createDoc">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/docEdit.xhtml">
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="editDoc">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/docEdit.xhtml">
<param name="docId" value="#{currentDocument.id}"/>
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="showHistory">
<begin-conversation flush-mode="MANUAL"/>
<out name="currentNode" value="#{currentDocument}"/>
<redirect view-id="/docHistory.xhtml"/>
</rule>
<rule if-outcome="browseDir">
<render view-id="/dirDisplay.xhtml"/>
</rule>
</navigation>
</page>
<page view-id="/docEdit.xhtml" login-required="true" no-conversation-view-id="/message.xhtml">
<description>Edit Document '#{currentDocument.name}'</description>
<restrict/>
<navigation from-action="#{documentHome.remove}">
<end-conversation/>
<redirect view-id="/display.xhtml">
<param name="nodeId" value="#{currentDirectory.id}"/>
</redirect>
</navigation>
<navigation>
<rule if-outcome="uploadFile">
<begin-conversation nested="true" flush-mode="MANUAL"/>
<redirect view-id="/fileEdit.xhtml">
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
</navigation>
</page>
<page view-id="/docHistory.xhtml" login-required="false" no-conversation-view-id="/message.xhtml">
<description>Document History '#{currentNode.name}'</description>
<navigation>
<rule if-outcome="rollback">
<redirect view-id="/docEdit.xhtml">
<param name="docId" value="#{currentNode.id}"/>
<param name="parentDirId" value="#{currentNode.parent.id}"/>
</redirect>
</rule>
</navigation>
</page>
<page view-id="/dirDisplay.xhtml" action="#{browser.prepare}">
<param name="nodeId" value="#{browser.nodeId}"/>
<!-- End any pending long-running conversation that was propagated into his view -->
<end-conversation/>
<navigation>
<rule if-outcome="createDir">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/dirEdit.xhtml">
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="editDir">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/dirEdit.xhtml">
<param name="dirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="createDoc">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/docEdit.xhtml">
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="uploadFile">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/fileEdit.xhtml">
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
<rule if-outcome="editFile">
<begin-conversation flush-mode="MANUAL"/>
<redirect view-id="/fileEdit.xhtml">
<param name="fileId" value="#{param.fileId}"/>
<param name="parentDirId" value="#{currentDirectory.id}"/>
</redirect>
</rule>
</navigation>
</page>
<page view-id="/dirEdit.xhtml" login-required="true" no-conversation-view-id="/dirDisplay.xhtml">
<description>Edit Directory '#{directoryHome.instance.name}'</description>
<restrict/>
<navigation from-action="#{directoryHome.remove}">
<rule if="#{!empty directoryHome.parentDirectory}">
<end-conversation/>
<redirect view-id="/dirDisplay.xhtml">
<param name="nodeId" value="#{directoryHome.parentDirectory.id}"/>
</redirect>
</rule>
<rule>
<end-conversation/>
<redirect view-id="/dirDisplay.xhtml">
<param name="nodeId" value="#{wikiRoot.id}"/>
</redirect>
</rule>
</navigation>
</page>
<page view-id="/fileEdit.xhtml" login-required="false" no-conversation-view-id="/dirDisplay.xhtml">
<description>Edit File '#{fileHome.instance.name}'</description>
<navigation from-action="#{fileHome.remove}">
<rule>
<end-conversation/>
<redirect view-id="/dirDisplay.xhtml">
<param name="nodeId" value="#{parentDirectory.id}"/>
</redirect>
</rule>
</navigation>
<!-- TODO: bug in file upload rendering vs. redirect, http://jira.jboss.com/jira/browse/JBSEAM-948 -->
<navigation from-action="#{fileHome.persist}">
<rule>
<end-conversation/>
<redirect view-id="/dirDisplay.xhtml">
<param name="nodeId" value="#{parentDirectory.id}"/>
</redirect>
</rule>
</navigation>
</page>
<page view-id="/userAccount.xhtml" no-conversation-view-id="/message.xhtml">
<description>Managing Member Account '#{userHome.instance.username}'</description>
</page>
<page view-id="/userProfile.xhtml" no-conversation-view-id="/message.xhtml">
<description>Managing Member Profile '#{userHome.instance.username}'</description>
</page>
<page view-id="/userPrefs.xhtml" no-conversation-view-id="/message.xhtml">
<description>Managing Member Preferences '#{userHome.instance.username}'</description>
</page>
<page view-id="/userList.xhtml" no-conversation-view-id="/message.xhtml">
<description>Searching Members (Results: #{userSearch.rowCount})</description>
</page>
<!-- Global actions -->
<page view-id="/*">
<navigation>
<rule if-outcome="register">
<!-- TODO: I don't want to join, I want a new parallel root conversation: http://jira.jboss.com/jira/browse/JBSEAM-944 -->
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userAccount.xhtml"/>
</rule>
<rule if-outcome="editCurrentUser">
<!-- TODO: I don't want to join, I want a new parallel root conversation: http://jira.jboss.com/jira/browse/JBSEAM-944 -->
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userProfile.xhtml">
<param name="userId" value="#{authenticatedUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editAccount">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userAccount.xhtml">
<param name="userId" value="#{authenticatedUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editProfile">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userProfile.xhtml">
<param name="userId" value="#{authenticatedUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editPreferences">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userPrefs.xhtml">
<param name="userId" value="#{authenticatedUser.id}"/>
</redirect>
</rule>
<rule if-outcome="listUsers">
<!-- TODO: I don't want to join, I want a new parallel root conversation: http://jira.jboss.com/jira/browse/JBSEAM-944 -->
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userList.xhtml"/>
</rule>
<rule if-outcome="error">
<redirect view-id="/message.xhtml">
<message severity="ERROR">An unrecoverable error occured!</message>
</redirect>
</rule>
</navigation>
</page>
<!-- Special pages -->
<page view-id="/confirmRegistration.xhtml" action="#{authenticator.activate}">
<navigation>
<rule if-outcome="activated">
<redirect view-id="/message.xhtml">
<message severity="INFO">Your account has been activated, please log in.</message>
</redirect>
</rule>
<rule if-outcome="notFound">
<redirect view-id="/message.xhtml">
<message severity="ERROR">Your activation code is invalid.</message>
</redirect>
</rule>
</navigation>
</page>
<!-- These effectively "block" the user from navigating forward, he stays on the last browsed page and
gets an error message. -->
<page view-id="/loginRequired.xhtml" action="#{browser.redirectToLastBrowsedPageWithConversation}"/>
<page view-id="/permissionError.xhtml" action="#{browser.redirectToLastBrowsedPageWithConversation}"/>
<exception class="org.jboss.seam.security.AuthorizationException">
<end-conversation/>
<redirect view-id="/permissionError.xhtml">
<message severity="WARN">You do not have permission for this operation</message>
</redirect>
</exception>
</pages>
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/web.xml
Index: web.xml
===================================================================
<?xml version="1.0" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- Ajax4jsf (must come first!) -->
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<url-pattern>*.seam</url-pattern>
</filter-mapping>
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
</context-param>
<!-- Seam -->
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.web.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>org.jboss.seam.servlet.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Seam Resource Servlet</servlet-name>
<url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>
<!-- URL Rewrite -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
<init-param>
<param-name>statusEnabled</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- MyFaces -->
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
<!-- Facelets development mode (disable in production) -->
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<!-- JSF -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.seam</url-pattern>
</servlet-mapping>
<security-constraint>
<display-name>Restrict raw XHTML Documents</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>NONE</role-name>
</auth-constraint>
</security-constraint>
<!-- Wiki: File Download Servlet -->
<servlet>
<servlet-name>File Servlet</servlet-name>
<servlet-class>org.jboss.seam.wiki.core.ui.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>File Servlet</servlet-name>
<url-pattern>/files/*</url-pattern>
</servlet-mapping>
</web-app>
1.1 date: 2007/03/07 18:37:34; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/etc/WEB-INF/urlrewrite.xml
Index: urlrewrite.xml
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<!--
Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/
-->
<urlrewrite>
<rule>
<from>^/([0-9]+)\.html$</from>
<to last="true">/display.seam?nodeId=$1</to>
</rule>
<rule>
<from casesensitive="true">^/([A-Z0-9]+[A-Za-z0-9]*)$</from>
<to last="true">/display.seam?areaName=$1</to>
</rule>
<rule>
<from casesensitive="true">^/([A-Z0-9]+[A-Za-z0-9]*)/([A-Z0-9]+[A-Za-z0-9]*)$</from>
<to last="true">/display.seam?areaName=$1&nodeName=$2</to>
</rule>
<!--
INSTALLATION
in your web.xml add...
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
EXAMPLES
Redirect one url
<rule>
<from>/some/old/page.html</from>
<to type="redirect">/very/new/page.html</to>
</rule>
Redirect a directory
<rule>
<from>/some/olddir/(.*)</from>
<to type="redirect">/very/newdir/$1</to>
</rule>
Clean a url
<rule>
<from>/products/([0-9]+)</from>
<to>/products/index.jsp?product_id=$1</to>
</rule>
eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.
Browser detection
<rule>
<condition name="user-agent">Mozilla/[1-4]</condition>
<from>/some/page.html</from>
<to>/some/page-for-old-browsers.html</to>
</rule>
eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older
browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4.
-->
</urlrewrite>
More information about the jboss-cvs-commits
mailing list