You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by gv...@apache.org on 2006/11/15 05:12:41 UTC
svn commit: r475112 - in /shale/sandbox/shale-clay-trinidad: ./
src/main/java/org/apache/myfaces/trinidad/blank/ src/main/resources/
src/main/webapp/WEB-INF/ src/main/webapp/pages/
Author: gvanmatre
Date: Tue Nov 14 20:12:40 2006
New Revision: 475112
URL: http://svn.apache.org/viewvc?view=rev&rev=475112
Log:
Added a shale view controller managed error page and uncovered a Trinidad bug (http://issues.apache.org/jira/browse/ADFFACES-291). The error page is a Clay managed view and uses nested tr:iterator components.
Added:
shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java (with props)
shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml (with props)
shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html (with props)
Modified:
shale/sandbox/shale-clay-trinidad/pom.xml
shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/HelloWorldBacking.java
shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ShowDisplayElementBacking.java
shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-config.xml
shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-tiles-config.xml
shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/web.xml
shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/index.html
Modified: shale/sandbox/shale-clay-trinidad/pom.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/pom.xml?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/pom.xml (original)
+++ shale/sandbox/shale-clay-trinidad/pom.xml Tue Nov 14 20:12:40 2006
@@ -13,19 +13,6 @@
<build>
<finalName>${artifactId}</finalName>
- <resources>
- <resource>
- <targetPath>
- ${project.build.outputDirectory}/META-INF
- </targetPath>
- <directory>
- ${project.build.outputDirectory}/src/main/resources/META-INF
- </directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
<plugins>
@@ -164,6 +151,14 @@
<artifactId>commons-el</artifactId>
<version>1.0</version>
</dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.13</version>
+ <scope>compile</scope>
+ </dependency>
+
<!-- Apache Trinidad
You need to build for the source.
Added: shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java?view=auto&rev=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java (added)
+++ shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java Tue Nov 14 20:12:40 2006
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.myfaces.trinidad.blank;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.shale.tiger.managed.Bean;
+import org.apache.shale.tiger.managed.Scope;
+import org.apache.shale.tiger.view.Prerender;
+import org.apache.shale.tiger.view.View;
+import org.apache.shale.view.AbstractRequestBean;
+import org.apache.shale.view.faces.FacesConstants;
+
+@Bean(name = "error", scope = Scope.REQUEST)
+@View
+public class ErrorBacking extends AbstractRequestBean {
+
+ /**
+ * <p>
+ * Common logger utility class.
+ * </p>
+ */
+ private static Log log;
+ static {
+ log = LogFactory.getLog(ErrorBacking.class);
+ }
+
+ private String httpErrorCode = null;
+
+ private String exceptionType = null;
+
+ private String message = null;
+
+ private String requestUri = null;
+
+ private String servletName = null;
+
+ @Prerender
+ public void load() {
+ if (log.isDebugEnabled()) {
+ log.debug("Removing exceptions stack");
+ }
+
+ Map requestMap = getRequestMap();
+
+ Exception exception = (Exception) requestMap
+ .get("javax.servlet.error.exception");
+
+ FacesContext facesContext = getFacesContext();
+ if (facesContext == null) return;
+
+ UIViewRoot root = facesContext.getViewRoot();
+ if (root == null) return;
+
+ List exceptions = (List) requestMap.get(FacesConstants.EXCEPTIONS_LIST);
+ if (exception != null && exceptions != null) {
+ // save on the view root
+ getFacesContext().getViewRoot().getAttributes().put("errors", exceptions);
+ requestMap.remove(FacesConstants.EXCEPTIONS_LIST);
+
+
+ Integer errorCode = (Integer) requestMap.get("javax.servlet.error.status_code");
+ if (errorCode != null) {
+ setHttpErrorCode(errorCode.toString());
+ }
+
+ Object clazz = requestMap.get("javax.servlet.error.exception_type");
+ if (clazz != null) {
+ setExceptionType(clazz.toString());
+ }
+ setMessage((String) requestMap.get("javax.servlet.error.message"));
+ setRequestUri((String) requestMap
+ .get("javax.servlet.error.request_uri"));
+ setServletName((String) requestMap
+ .get("javax.servlet.error.servlet_name"));
+
+
+
+ log.error(exception);
+ }
+
+
+
+ }
+
+ public String getExceptionType() {
+ return exceptionType;
+ }
+
+ public void setExceptionType(String exceptionType) {
+ this.exceptionType = exceptionType;
+ }
+
+ public String getHttpErrorCode() {
+ return httpErrorCode;
+ }
+
+ public void setHttpErrorCode(String httpErrorCode) {
+ this.httpErrorCode = httpErrorCode;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public String getRequestUri() {
+ return requestUri;
+ }
+
+ public void setRequestUri(String requestUri) {
+ this.requestUri = requestUri;
+ }
+
+ public String getServletName() {
+ return servletName;
+ }
+
+ public void setServletName(String servletName) {
+ this.servletName = servletName;
+ }
+}
Propchange: shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ErrorBacking.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/HelloWorldBacking.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/HelloWorldBacking.java?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/HelloWorldBacking.java (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/HelloWorldBacking.java Tue Nov 14 20:12:40 2006
@@ -17,6 +17,7 @@
package org.apache.myfaces.trinidad.blank;
import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -81,4 +82,13 @@
log.info(event);
}
+ public String throwException() {
+
+ throw new NullPointerException("action: Testing Exception page.");
+ }
+
+ public void throwActionListener(ActionEvent event) {
+ throw new NullPointerException("actionListener: Testing Exception page.");
+
+ }
}
Modified: shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ShowDisplayElementBacking.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ShowDisplayElementBacking.java?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ShowDisplayElementBacking.java (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/java/org/apache/myfaces/trinidad/blank/ShowDisplayElementBacking.java Tue Nov 14 20:12:40 2006
@@ -42,10 +42,10 @@
import org.apache.shale.tiger.managed.Scope;
import org.apache.shale.tiger.view.Prerender;
import org.apache.shale.tiger.view.View;
-import org.apache.shale.view.AbstractFacesBean;
+import org.apache.shale.view.AbstractRequestBean;
@Bean(name="page3", scope=Scope.REQUEST)
-@View public class ShowDisplayElementBacking extends AbstractFacesBean {
+@View public class ShowDisplayElementBacking extends AbstractRequestBean {
/**
* <p>
Added: shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml?view=auto&rev=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml (added)
+++ shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml Tue Nov 14 20:12:40 2006
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <appender name="CA" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%p-%m%n" />
+ </layout>
+ </appender>
+
+ <category name="org.apache.myfaces.lifecycle" additivity="false">
+ <priority value="trace" />
+ <appender-ref ref="CA" />
+ </category>
+ <category name="org.apache.shale.view" additivity="false">
+ <priority value="trace" />
+ <appender-ref ref="CA" />
+ </category>
+ <category name="org.apache.shale.clay.faces" additivity="false">
+ <priority value="trace" />
+ <appender-ref ref="CA" />
+ </category>
+ <root>
+ <priority value="info" />
+ <appender-ref ref="CA" />
+ </root>
+</log4j:configuration>
Propchange: shale/sandbox/shale-clay-trinidad/src/main/resources/log4j.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-config.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-config.xml?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-config.xml (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-config.xml Tue Nov 14 20:12:40 2006
@@ -33,7 +33,7 @@
</attributes>
<symbols>
<set name="@title"
- value="Apache MyFaces Trinidad Archetype Demo" />
+ value="Apache MyFaces Clay/Trinidad Demo" />
<set name="@bodycontent" value="space" />
<set name="@navigationPaneHint" value="bar"/>
</symbols>
Modified: shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-tiles-config.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-tiles-config.xml?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-tiles-config.xml (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/clay-tiles-config.xml Tue Nov 14 20:12:40 2006
@@ -42,5 +42,14 @@
<set name="@bodycontent" value="/pages/showDisplayElement.html" />
</symbols>
</component>
+
+ <component jsfid="/error.jsf" extends="basePage">
+ <symbols>
+ <set name="@bodycontent" value="/pages/error.html" />
+ <set name="@title" value="Application Exception" />
+
+ </symbols>
+ </component>
+
</view>
Modified: shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/web.xml?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/web.xml (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/webapp/WEB-INF/web.xml Tue Nov 14 20:12:40 2006
@@ -79,6 +79,10 @@
<param-value>.jsf</param-value>
</context-param>
+ <context-param>
+ <param-name>org.apache.shale.view.EXCEPTION_DISPATCH_PATH</param-name>
+ <param-value>/error.jsf</param-value>
+ </context-param>
<!-- Clay XML View Suffix -->
<context-param>
<param-name>
Added: shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html?view=auto&rev=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html (added)
+++ shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html Tue Nov 14 20:12:40 2006
@@ -0,0 +1,81 @@
+<!-- ### clay:page charset="UTF-8" /### -->
+<!-- ### clay:remove ### -->
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- ### /clay:remove ### -->
+<form>
+ <table border="0">
+ <tr>
+ <td>HTTP Error Error Status Code:</td>
+ <td>
+ <span jsfid="tr:outputText" value="#{@managed-bean-name.httpErrorCode}" allowBody=false>
+ 200
+ </span>
+ <span jsfid="h:inputHidden" value="#{@managed-bean-name.httpErrorCode}"/>
+ </td>
+ </tr>
+ <tr>
+ <td>Exception Type:</td>
+ <td>
+ <span jsfid="tr:outputText" value="#{@managed-bean-name.exceptionType}" allowBody=false>
+ NullPointerException
+ </span>
+ <span jsfid="h:inputHidden" value="#{@managed-bean-name.exceptionType}"/>
+ </td>
+ </tr>
+ <tr>
+ <td>Message:</td>
+ <td>
+ <span jsfid="tr:outputText" value="#{@managed-bean-name.message}" allowBody=false>
+ Something was null
+ </span>
+ <span jsfid="h:inputHidden" value="#{@managed-bean-name.message}"/>
+ </td>
+ </tr>
+ <tr>
+ <td>Request URI:</td>
+ <td>
+ <span jsfid="tr:outputText" value="#{@managed-bean-name.requestUri}" allowBody=false>
+ /somepage.jsf
+ </span>
+ <span jsfid="h:inputHidden" value="#{@managed-bean-name.requestUri}"/>
+ </td>
+ </tr>
+ <tr>
+ <td>Servlet Name:</td>
+ <td>
+ <span jsfid="tr:outputText" value="#{@managed-bean-name.servletName}" allowBody=false>
+ FacesServlet
+ </span>
+ <span jsfid="h:inputHidden" value="#{@managed-bean-name.servletName}"/>
+ </td>
+ </tr>
+ </table>
+
+ <dl>
+ <dt>Error Stack:</dt>
+ <span jsfid="tr:iterator" var="e" value="#{facesContext.viewRoot.attributes.errors}">
+ <dd><dl>
+ <dt>#{e.message}</dt>
+ <span jsfid="tr:iterator" var="s" value="#{e.stackTrace}">
+ <dd>#{s}</dd>
+ </span>
+ </dl>
+ </dd>
+ </span>
+ </dl>
+</form>
Propchange: shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/error.html
------------------------------------------------------------------------------
svn:eol-style = native
Modified: shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/index.html
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/index.html?view=diff&rev=475112&r1=475111&r2=475112
==============================================================================
--- shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/index.html (original)
+++ shale/sandbox/shale-clay-trinidad/src/main/webapp/pages/index.html Tue Nov 14 20:12:40 2006
@@ -36,6 +36,10 @@
<tr:form>
<tr:panelPage>
<tr:commandLink id="button2" text="check it out" action="page3" />
+ <tr:commandLink id="throw" text="throw exceptions"
+ action="#{helloWorldBacking.throwException}" />
</tr:panelPage>
</tr:form>
+
+
</span>