You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mf...@apache.org on 2010/06/02 01:35:49 UTC
svn commit: r950308 [9/13] - in /myfaces/portlet-bridge/core/trunk_2.0.x: ./
api/src/main/java/javax/portlet/faces/
api/src/main/java/javax/portlet/faces/component/ examples/ examples/blank/
examples/blank/src/main/webapp/WEB-INF/ examples/carstore/ ex...
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/java/guess/facelets/PortletFaceletViewHandler.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/java/guess/facelets/PortletFaceletViewHandler.java?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/java/guess/facelets/PortletFaceletViewHandler.java (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/java/guess/facelets/PortletFaceletViewHandler.java Tue Jun 1 23:35:42 2010
@@ -0,0 +1,225 @@
+/**
+ * Licensed 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 guess.facelets;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Writer;
+
+import java.net.URL;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.el.ELException;
+
+import javax.faces.FacesException;
+import javax.faces.application.StateManager;
+import javax.faces.application.ViewHandler;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.RenderKit;
+
+import com.sun.facelets.FaceletViewHandler;
+import com.sun.facelets.util.DevTools;
+
+import javax.portlet.faces.Bridge;
+
+import javax.portlet.RenderResponse;
+import javax.portlet.PortletResponse;
+
+
+public class PortletFaceletViewHandler
+ extends FaceletViewHandler
+{
+
+ public PortletFaceletViewHandler(ViewHandler parent)
+ {
+ super(parent);
+ }
+
+
+ protected ResponseWriter createResponseWriter(FacesContext context)
+ throws IOException, FacesException
+ {
+ // Only override if in a portlet request
+ if (context.getExternalContext().getRequestMap().get(Bridge.PORTLET_LIFECYCLE_PHASE) == null)
+ {
+ return super.createResponseWriter(context);
+ }
+
+ ExternalContext extContext = context.getExternalContext();
+ RenderKit renderKit = context.getRenderKit();
+ // Avoid a cryptic NullPointerException when the renderkit ID
+ // is incorrectly set
+ if (renderKit == null)
+ {
+ String id = context.getViewRoot().getRenderKitId();
+ throw new IllegalStateException("No render kit was available for id \"" +
+ id + "\"");
+ }
+
+ RenderResponse response = (RenderResponse) extContext.getResponse();
+
+ // get our content type
+ String contentType =
+ (String) extContext.getRequestMap().get("facelets.ContentType");
+
+ // get the encoding
+ String encoding =
+ (String) extContext.getRequestMap().get("facelets.Encoding");
+
+ ResponseWriter writer;
+ //append */* to the contentType so createResponseWriter will succeed no matter
+ //the requested contentType.
+ if (contentType != null && !contentType.equals("*/*"))
+ {
+ contentType += ",*/*";
+ }
+ // Create a dummy ResponseWriter with a bogus writer,
+ // so we can figure out what content type the ReponseWriter
+ // is really going to ask for
+ try
+ {
+ writer =
+ renderKit.createResponseWriter(NullWriter.Instance, contentType,
+ encoding);
+ }
+ catch (IllegalArgumentException e)
+ {
+ //Added because of an RI bug prior to 1.2_05-b3. Might as well leave it in case other
+ //impls have the same problem. https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=613
+ log.fine("The impl didn't correctly handled '*/*' in the content type list. Trying '*/*' directly.");
+ writer =
+ renderKit.createResponseWriter(NullWriter.Instance, "*/*", encoding);
+ }
+
+ //Override the JSF provided content type if necessary
+ contentType = getResponseContentType(context, writer.getContentType());
+ encoding = getResponseEncoding(context, writer.getCharacterEncoding());
+
+ // apply them to the response
+ response.setContentType(contentType + "; charset=" + encoding);
+
+ // removed 2005.8.23 to comply with J2EE 1.3
+ // response.setCharacterEncoding(encoding);
+
+ // Now, clone with the real writer
+ writer = writer.cloneWithWriter(response.getWriter());
+
+ return writer;
+ }
+
+ /**
+ * Generate the encoding
+ *
+ * @param context
+ * @param orig
+ * @return
+ */
+ protected String getResponseEncoding(FacesContext context, String orig)
+ {
+ String encoding = orig;
+
+ // see if we need to override the encoding
+ Map m = context.getExternalContext().getRequestMap();
+ Map sm = context.getExternalContext().getSessionMap();
+
+ // 1. check the request attribute
+ if (m.containsKey("facelets.Encoding"))
+ {
+ encoding = (String) m.get("facelets.Encoding");
+ if (log.isLoggable(Level.FINEST))
+ {
+ log.finest("Facelet specified alternate encoding '" + encoding +
+ "'");
+ }
+ sm.put(CHARACTER_ENCODING_KEY, encoding);
+ }
+
+ // 2. get it from request
+ if (encoding == null)
+ {
+ encoding =
+ context.getExternalContext().getResponseCharacterEncoding();
+ }
+
+ // 3. get it from the session
+ if (encoding == null)
+ {
+ encoding = (String) sm.get(CHARACTER_ENCODING_KEY);
+ if (log.isLoggable(Level.FINEST))
+ {
+ log.finest("Session specified alternate encoding '" + encoding +
+ "'");
+ }
+ }
+
+ // 4. default it
+ if (encoding == null)
+ {
+ encoding = "UTF-8";
+ if (log.isLoggable(Level.FINEST))
+ {
+ log.finest("ResponseWriter created had a null CharacterEncoding, defaulting to UTF-8");
+ }
+ }
+
+ return encoding;
+ }
+
+
+ protected static class NullWriter
+ extends Writer
+ {
+
+ static final NullWriter Instance = new NullWriter();
+
+ public void write(char[] buffer)
+ {
+ }
+
+ public void write(char[] buffer, int off, int len)
+ {
+ }
+
+ public void write(String str)
+ {
+ }
+
+ public void write(int c)
+ {
+ }
+
+ public void write(String str, int off, int len)
+ {
+ }
+
+ public void close()
+ {
+ }
+
+ public void flush()
+ {
+ }
+ }
+
+}
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/resources/META-INF/NOTICE?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/resources/META-INF/NOTICE (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/resources/META-INF/NOTICE Tue Jun 1 23:35:42 2010
@@ -0,0 +1,20 @@
+Apache MyFaces Portlet Bridge
+Copyright [2007, 2008, 2009] The Apache Software Foundation
+
+This is an implementation of a public review specification
+developed under the Java Community Process (JCP). This
+implementation may not fully conform to this specification.
+This implementation may differ from the final specification.
+The code is not compatible with any specification of the JCP.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+Portions of this software are Copyright (c) 2007, Oracle
+Corporation, <http://www.oracle.com/> and are licensed to
+the Apache Software Foundation under the "Software Grant
+and Corporate Contribution License Agreement"
+
+See the LICENSE.txt file for information on all licenses
+associated with this software.
+
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/faces-config.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/faces-config.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/faces-config.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+ Licensed 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.
+
+ $Id: faces-config.xml,v 1.4 2008/07/13 19:01:52 rlubke Exp $
+-->
+<!DOCTYPE faces-config PUBLIC
+ "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+
+<faces-config>
+
+ <!-- from project setup -->
+ <application>
+ <view-handler>
+ guess.facelets.PortletFaceletViewHandler
+ </view-handler>
+ </application>
+
+ <!-- our NumberBean we created before -->
+ <managed-bean>
+ <managed-bean-name>NumberBean</managed-bean-name>
+ <managed-bean-class>guess.NumberBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>min</property-name>
+ <value>1</value>
+ </managed-property>
+ <managed-property>
+ <property-name>max</property-name>
+ <value>10</value>
+ </managed-property>
+ </managed-bean>
+
+ <!-- going from guess.xhtml to response.xhtml -->
+ <navigation-rule>
+ <from-view-id>/guess.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/response.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <!-- going from response.xhtml to guess.xhtml -->
+ <navigation-rule>
+ <from-view-id>/response.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/guess.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+</faces-config>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+
+-->
+
+<!-- This web.xml file is used in order to configure pluto to run with jetty in order to test the appropriate web applications -->
+<web-app
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ metadata-complete="true"
+ version="2.5">
+
+ <context-param>
+ <param-name>org.mortbay.jetty.webapp.NoTLDJarPattern</param-name>
+ <param-value>start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar</param-value>
+ </context-param>
+
+ <!-- Listeners -->
+ <listener>
+ <listener-class>
+ com.bekk.boss.pluto.embedded.jetty.util.OverrideContextLoaderListener
+ </listener-class>
+ </listener>
+
+ <listener>
+ <listener-class>
com.bekk.boss.pluto.embedded.util.PortalStartupListener
+ </listener-class>
+ </listener>
+
+ <!-- Filters and Mappings -->
+ <filter>
+ <filter-name>plutoResourceFilter</filter-name>
+ <filter-class>com.bekk.boss.pluto.embedded.util.PlutResourcesFilter</filter-class>
+ </filter>
+
+ <filter>
+ <filter-name>plutoPortalDriver</filter-name>
+ <filter-class>com.bekk.boss.pluto.embedded.util.PlutoPortalDriverFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>plutoResourceFilter</filter-name>
+ <url-pattern>*.css</url-pattern>
+ <url-pattern>*.gif</url-pattern>
+ <url-pattern>*.png</url-pattern>
+ <url-pattern>*.js</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>plutoPortalDriver</filter-name>
+ <url-pattern>/pluto/index.jsp</url-pattern>
+ <url-pattern>/pluto/index.jsp/*</url-pattern>
+ </filter-mapping>
+
+ <!-- Servlets and Mappings -->
+
+ <!--
+ The default servlet.
+ This servlet, normally mapped to /, provides the handling for static
+ content, OPTIONS and TRACE methods for the context.
+ The following initParameters are supported:
+
+ acceptRanges If true, range requests and responses are
+ supported
+
+ dirAllowed If true, directory listings are returned if no
+ welcome file is found. Else 403 Forbidden.
+
+ redirectWelcome If true, redirect welcome file requests
+ else use request dispatcher forwards
+
+ gzip If set to true, then static content will be served
+ as gzip content encoded if a matching resource is
+ found ending with ".gz"
+
+ resoureBase Can be set to replace the context resource base
+
+ relativeResourceBase
+ Set with a pathname relative to the base of the
+ servlet context root. Useful for only serving
+ static content from only specific subdirectories.
+
+ useFileMappedBuffer
+ If set to true (the default), a memory mapped
+ file buffer will be used to serve static content
+ when using an NIO connector. Setting this value
+ to false means that a direct buffer will be used
+ instead. If you are having trouble with Windows
+ file locking, set this to false.
+
+ cacheControl If set, all static content will have this value
+ set as the cache-control header.
+
+ maxCacheSize Maximum size of the static resource cache
+
+ maxCachedFileSize Maximum size of any single file in the cache
+
+ maxCachedFiles Maximum number of files in the cache
+ -->
+
+ <servlet>
+ <servlet-name>default</servlet-name>
+ <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
+ <init-param>
+ <param-name>acceptRanges</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>dirAllowed</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>redirectWelcome</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCacheSize</param-name>
+ <param-value>4000000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCachedFileSize</param-name>
+ <param-value>254000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCachedFiles</param-name>
+ <param-value>1000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>gzip</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>useFileMappedBuffer</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ </servlet>
+
+ <servlet id="jsp">
+ <servlet-name>jsp</servlet-name>
+ <servlet-class>com.bekk.boss.pluto.embedded.util.PortletJspServlet</servlet-class>
+ <init-param>
+ <param-name>logVerbosityLevel</param-name>
+ <param-value>DEBUG</param-value>
+ </init-param>
+ <init-param>
+ <param-name>fork</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>xpoweredBy</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>default</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>jsp</servlet-name>
+ <url-pattern>*.jsp</url-pattern>
+ <url-pattern>*.jspf</url-pattern>
+ <url-pattern>*.jspx</url-pattern>
+ <url-pattern>*.xsp</url-pattern>
+ <url-pattern>*.JSP</url-pattern>
+ <url-pattern>*.JSPF</url-pattern>
+ <url-pattern>*.JSPX</url-pattern>
+ <url-pattern>*.XSP</url-pattern>
+ </servlet-mapping>
+
+ <!-- Other settings -->
+ <session-config>
+ <session-timeout>60</session-timeout>
+ </session-config>
+
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+ <locale-encoding-mapping-list>
+ <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping>
+ </locale-encoding-mapping-list>
+</web-app>
+
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/portlet.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/portlet.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/portlet.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+-->
+<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
+ http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ id="CarStore" version="2.0">
+
+
+ <portlet>
+ <description>Facelets Guess Number Demo</description>
+ <portlet-name>portlet-bridge-facelets-guess</portlet-name>
+ <display-name>Mojarra Car Demo</display-name>
+ <portlet-class>javax.portlet.faces.GenericFacesPortlet</portlet-class>
+
+ <init-param>
+ <name>javax.portlet.faces.defaultViewId.view</name>
+ <value>/guess.xhtml</value>
+ </init-param>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>view</portlet-mode>
+ </supports>
+
+ <supported-locale>en</supported-locale>
+
+ <portlet-info>
+ <title>Facelets Guess Number Demo</title>
+ <short-title>Guess Number</short-title>
+ </portlet-info>
+
+ </portlet>
+
+</portlet-app>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/web.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/web.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/WEB-INF/web.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,86 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+ Licensed 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.
+
+ $Id: web.xml,v 1.5 2008/07/13 19:01:52 rlubke Exp $
+-->
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+
+<web-app>
+
+ <display-name>Facelets Tutorial</display-name>
+ <description>Number Guess Game</description>
+
+ <context-param>
+ <param-name>facelets.REFRESH_PERIOD</param-name>
+ <param-value>2</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <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>
+
+ <context-param>
+ <param-name>com.sun.faces.validateXml</param-name>
+ <param-value>true</param-value>
+ <description>
+ Set this flag to true if you want the JavaServer Faces
+ Reference Implementation to validate the XML in your
+ faces-config.xml resources against the DTD. Default
+ value is false.
+ </description>
+ </context-param>
+
+ <context-param>
+ <param-name>com.sun.faces.verifyObjects</param-name>
+ <param-value>true</param-value>
+ <description>
+ Set this flag to true if you want the JavaServer Faces
+ Reference Implementation to verify that all of the application
+ objects you have configured (components, converters,
+ renderers, and validators) can be successfully created.
+ Default value is false.
+ </description>
+ </context-param>
+
+ <!-- Faces Servlet -->
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+
+
+ <!-- Faces Servlet Mapping -->
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+
+
+</web-app>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/guess.xhtml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/guess.xhtml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/guess.xhtml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/guess.xhtml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,51 @@
+<!--
+ Licensed 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.
+
+ $Id: guess.xhtml,v 1.2 2008/07/13 19:01:42 rlubke Exp $
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html">
+<body>
+
+This text above will not be displayed.
+
+<ui:composition template="/template.xhtml">
+
+This text will not be displayed.
+
+ <ui:define name="title">
+ I'm thinking of a number from #{NumberBean.min} to #{NumberBean.max}. Can you guess it?
+ </ui:define>
+
+This text will also not be displayed.
+
+ <ui:define name="body">
+ <h:form id="helloForm">
+ <h:inputText type="text" id="userNo" value="#{NumberBean.guess}" validator="#{NumberBean.validate}"/>
+ <br/>
+ <h:commandButton type="submit" id="submit" action="success" value="Submit" />
+ <br/>
+ <h:message showSummary="true" showDetail="false" style="color: red; font-weight: bold;" id="errors1" for="userNo"/>
+ </h:form>
+ </ui:define>
+
+This text will not be displayed.
+
+</ui:composition>
+
+This text below will also not be displayed.
+
+</body>
+</html>
\ No newline at end of file
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/index.html?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/index.html (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/index.html Tue Jun 1 23:35:42 2010
@@ -0,0 +1,26 @@
+<!--
+ Licensed 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.
+
+ $Id: index.html,v 1.3 2008/07/13 19:01:42 rlubke Exp $
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<meta http-equiv="refresh" content="0; url=./guess.jsf" />
+<title>Untitled Document</title>
+</head>
+
+<body>
+</body>
+</html>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/response.xhtml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/response.xhtml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/response.xhtml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/response.xhtml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,37 @@
+<!--
+ Licensed 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.
+
+ $Id: response.xhtml,v 1.3 2008/07/13 19:01:42 rlubke Exp $
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html">
+<body>
+
+<ui:composition template="/template.xhtml">
+
+ <ui:define name="title">
+ #{NumberBean.message}
+ </ui:define>
+
+ <ui:define name="body">
+ <form jsfc="h:form">
+ <input jsfc="h:commandButton" type="submit" id="back" value="Back" action="success"/>
+ </form>
+ </ui:define>
+
+</ui:composition>
+
+</body>
+</html>
\ No newline at end of file
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/template.xhtml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/template.xhtml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/template.xhtml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/facelets-guess/src/main/webapp/template.xhtml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,39 @@
+<!--
+ Licensed 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.
+
+ $Id: template.xhtml,v 1.2 2008/07/13 19:01:42 rlubke Exp $
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Facelets: Number Guess Tutorial</title>
+<style type="text/css">
+body {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: small;
+}
+</style>
+</head>
+
+<body>
+<h1>
+ <ui:insert name="title">Default Title</ui:insert>
+</h1>
+<p>
+ <ui:insert name="body">Default Body</ui:insert>
+</p>
+</body>
+
+</html>
\ No newline at end of file
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/pom.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/pom.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/pom.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,278 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <name>MyFaces Portlet Bridge GuessNumber JSP Demo</name>
+ <artifactId>portlet-bridge-guessNumber-jsp</artifactId>
+ <packaging>war</packaging>
+
+ <parent>
+ <groupId>org.apache.myfaces.portlet-bridge</groupId>
+ <artifactId>portlet-bridge-examples</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
+ <artifactId>portlet-bridge-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
+ <artifactId>portlet-bridge-impl</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jdev-plugin</artifactId>
+ <groupId>org.apache.myfaces.trinidadbuild</groupId>
+ <configuration>
+ <libraries>
+ <library>JSP Runtime</library>
+ </libraries>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>pluto-assemble</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <warName>${pom.artifactId}-pluto-${pom.version}</warName>
+ <outputDirectory>${project.build.directory}/../../assembly/target/webapp</outputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!-- sets up the webapp for deployment to pluto 2.0 "mvn clean install -Ppluto" -->
+ <profile>
+ <id>pluto</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.portals.pluto</groupId>
+ <artifactId>maven-pluto-plugin</artifactId>
+ <version>2.0.0</version>
+ <executions>
+ <execution>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>assemble</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+<!-- sets up the webapp for deployment to pluto 2.0 (this is included as its the command in 1.0 for building to 2 - i.e. backwards compat) "mvn clean install -Ppluto2" -->
+ <profile>
+ <id>pluto2</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.portals.pluto</groupId>
+ <artifactId>maven-pluto-plugin</artifactId>
+ <version>2.0.0</version>
+ <executions>
+ <execution>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>assemble</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!-- To run jetty, issue "mvn clean -PjettyConfig jetty:run" -->
+ <profile>
+ <id>jettyConfig</id>
+ <dependencies>
+ <dependency>
+ <groupId>com.bekk.boss</groupId>
+ <artifactId>maven-jetty-pluto-embedded</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <configuration>
+ <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
+ <webDefaultXml>src/main/webapp/WEB-INF/jetty-pluto-web-default.xml</webDefaultXml>
+ <systemProperties>
+ <systemProperty>
+ <name>org.apache.pluto.embedded.portletIds</name>
+ <value>portlet-bridge-guessNumber-jsp</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.pluto</groupId>
+ <artifactId>maven-pluto-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!-- By default the war examples uses mojarra and packages for a nonjavaee environment (includes the Faces jars)! :) -->
+
+ <!-- If you are running in a nonJavaEE environment (i.e. Faces isn't already deployed) and hence need to have Mojarra packaged in the war: -->
+ <profile>
+ <id>mojarra-nonjavaee</id>
+ <activation>
+ <property>
+ <name>!jsf</name>
+ </property>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>${mojarra.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>${mojarra.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jsf_implementation>JSF-RI</jsf_implementation>
+ </properties>
+ </profile>
+
+ <!-- If you are running in a JavaEE environment (i.e. Faces is already deployed) and hence don't need to have Mojarra packaged in the war: -->
+ <!-- mvn install -Djsf=mojarra-javaee -->
+ <profile>
+ <id>mojarra-javaee</id>
+ <activation>
+ <property>
+ <name>jsf</name>
+ <value>mojarra-javaee</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jsf_implementation>JSF-RI</jsf_implementation>
+ </properties>
+ </profile>
+
+
+ <!-- To use this examples using the MyFacesImplementation: mvn clean install -Djsf=myfaces-javaee -->
+ <!-- Note: currently carstore doesn't work properly in a myfaces environment -->
+ <profile>
+ <id>myfaces-javaee</id>
+ <activation>
+ <property>
+ <name>jsf</name>
+ <value>myfaces-javaee</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-impl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+
+
+
+ <!-- If you are running in a nonJavaEE environment (i.e. Faces isn't already deployed) and hence need to have MyFaces packaged in the war: -->
+ <!-- mvn install -Djsf=myfaces-nonjavaee -->
+ <!-- Note: currently carstore doesn't work properly in a myfaces environment -->
+ <profile>
+ <id>myfaces-nonjavaee</id>
+ <activation>
+ <property>
+ <name>jsf</name>
+ <value>myfaces-nonjavaee</value>
+ </property>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-api</artifactId>
+ <version>${myfaces.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-impl</artifactId>
+ <version>${myfaces.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
+</project>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/MessageFactory.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/MessageFactory.java?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/MessageFactory.java (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/MessageFactory.java Tue Jun 1 23:35:42 2010
@@ -0,0 +1,340 @@
+/*
+ * $Id: MessageFactory.java,v 1.6 2005/12/14 22:27:25 rlubke Exp $
+ */
+
+/*
+* The contents of this file are subject to the terms
+* of the Common Development and Distribution License
+* (the License). You may not use this file except in
+* compliance with the License.
+*
+* You can obtain a copy of the License at
+* https://javaserverfaces.dev.java.net/CDDL.html or
+* legal/CDDLv1.0.txt.
+* See the License for the specific language governing
+* permission and limitations under the License.
+*
+* When distributing Covered Code, include this CDDL
+* Header Notice in each file and include the License file
+* at legal/CDDLv1.0.txt.
+* If applicable, add the following below the CDDL Header,
+* with the fields enclosed by brackets [] replaced by
+* your own identifying information:
+* "Portions Copyrighted [year] [name of copyright owner]"
+*
+* [Name of File] [ver.__] [Date]
+*
+* Copyright 2005 Sun Microsystems Inc. All Rights Reserved
+*/
+
+package guessNumber;
+
+import javax.el.ValueExpression;
+import javax.faces.FactoryFinder;
+import javax.faces.application.Application;
+import javax.faces.application.ApplicationFactory;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * <p>supported filters: <code>package</code> and
+ * <code>protection</code>.</p>
+ */
+
+public class MessageFactory extends Object {
+ //
+ // Protected Constants
+ //
+
+ //
+ // Class Variables
+ //
+
+ //
+ // Instance Variables
+ //
+
+ // Attribute Instance Variables
+
+ // Relationship Instance Variables
+
+ //
+ // Constructors and Initializers
+ //
+
+ private MessageFactory() {
+ }
+
+ //
+ // Class methods
+ //
+
+ //
+ // General Methods
+ //
+
+ /**
+ * This version of getMessage() is used in the RI for localizing RI
+ * specific messages.
+ */
+
+ public static FacesMessage getMessage(String messageId, Object params[]) {
+ Locale locale = null;
+ FacesContext context = FacesContext.getCurrentInstance();
+ // context.getViewRoot() may not have been initialized at this point.
+ if (context != null && context.getViewRoot() != null) {
+ locale = context.getViewRoot().getLocale();
+ if (locale == null) {
+ locale = Locale.getDefault();
+ }
+ } else {
+ locale = Locale.getDefault();
+ }
+
+ return getMessage(locale, messageId, params);
+ }
+
+ public static FacesMessage getMessage(Locale locale, String messageId,
+ Object params[]) {
+ FacesMessage result = null;
+ String
+ summary = null,
+ detail = null,
+ bundleName = null;
+ ResourceBundle bundle = null;
+
+ // see if we have a user-provided bundle
+ if (null != (bundleName = getApplication().getMessageBundle())) {
+ if (null !=
+ (bundle =
+ ResourceBundle.getBundle(bundleName, locale,
+ getCurrentLoader(bundleName)))) {
+ // see if we have a hit
+ try {
+ summary = bundle.getString(messageId);
+ detail = bundle.getString(messageId + "_detail");
+ }
+ catch (MissingResourceException e) {
+ }
+ }
+ }
+
+ // we couldn't find a summary in the user-provided bundle
+ if (null == summary) {
+ // see if we have a summary in the app provided bundle
+ bundle = ResourceBundle.getBundle(FacesMessage.FACES_MESSAGES,
+ locale,
+ getCurrentLoader(bundleName));
+ if (null == bundle) {
+ throw new NullPointerException();
+ }
+ // see if we have a hit
+ try {
+ summary = bundle.getString(messageId);
+ detail = bundle.getString(messageId + "_detail");
+ }
+ catch (MissingResourceException e) {
+ }
+ }
+
+ // we couldn't find a summary anywhere! Return null
+ if (null == summary) {
+ return null;
+ }
+
+ if (null == summary || null == bundle) {
+ throw new NullPointerException(" summary " + summary + " bundle " +
+ bundle);
+ }
+ // At this point, we have a summary and a bundle.
+ //
+ return (new BindingFacesMessage(locale, summary, detail, params));
+ }
+
+
+ //
+ // Methods from MessageFactory
+ //
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId) {
+ return getMessage(context, messageId, null);
+ }
+
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId,
+ Object params[]) {
+ if (context == null || messageId == null) {
+ throw new NullPointerException(" context "
+ + context
+ + " messageId "
+ +
+ messageId);
+ }
+ Locale locale = null;
+ // viewRoot may not have been initialized at this point.
+ if (context != null && context.getViewRoot() != null) {
+ locale = context.getViewRoot().getLocale();
+ } else {
+ locale = Locale.getDefault();
+ }
+ if (null == locale) {
+ throw new NullPointerException(" locale " + locale);
+ }
+ FacesMessage message = getMessage(locale, messageId, params);
+ if (message != null) {
+ return message;
+ }
+ locale = Locale.getDefault();
+ return (getMessage(locale, messageId, params));
+ }
+
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId,
+ Object param0) {
+ return getMessage(context, messageId, new Object[]{param0});
+ }
+
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId,
+ Object param0, Object param1) {
+ return getMessage(context, messageId, new Object[]{param0, param1});
+ }
+
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId,
+ Object param0, Object param1,
+ Object param2) {
+ return getMessage(context, messageId,
+ new Object[]{param0, param1, param2});
+ }
+
+ public static FacesMessage getMessage(FacesContext context,
+ String messageId,
+ Object param0, Object param1,
+ Object param2, Object param3) {
+ return getMessage(context, messageId,
+ new Object[]{param0, param1, param2, param3});
+ }
+
+ // Gets the "label" property from the component.
+
+ public static Object getLabel(FacesContext context,
+ UIComponent component) {
+ Object o = component.getAttributes().get("label");
+ if (o == null) {
+ o = component.getValueExpression("label");
+ }
+ // Use the "clientId" if there was no label specified.
+ if (o == null) {
+ o = component.getClientId(context);
+ }
+ return o;
+ }
+
+ protected static Application getApplication() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ if (context != null) {
+ return (FacesContext.getCurrentInstance().getApplication());
+ }
+ ApplicationFactory afactory = (ApplicationFactory)
+ FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
+ return (afactory.getApplication());
+ }
+
+ protected static ClassLoader getCurrentLoader(Object fallbackClass) {
+ ClassLoader loader =
+ Thread.currentThread().getContextClassLoader();
+ if (loader == null) {
+ loader = fallbackClass.getClass().getClassLoader();
+ }
+ return loader;
+ }
+
+ /**
+ * This class overrides FacesMessage to provide the evaluation
+ * of binding expressions in addition to Strings.
+ * It is often the case, that a binding expression may reference
+ * a localized property value that would be used as a
+ * substitution parameter in the message. For example:
+ * <code>#{bundle.userLabel}</code>
+ * "bundle" may not be available until the page is rendered.
+ * The "late" binding evaluation in <code>getSummary</code> and
+ * <code>getDetail</code> allow the expression to be evaluated
+ * when that property is available.
+ */
+ static class BindingFacesMessage extends FacesMessage {
+ BindingFacesMessage(
+ Locale locale,
+ String messageFormat,
+ String detailMessageFormat,
+ // array of parameters, both Strings and ValueExpressions
+ Object[] parameters) {
+
+ super(messageFormat, detailMessageFormat);
+ this.locale = locale;
+ this.parameters = parameters;
+ if (parameters != null) {
+ resolvedParameters = new Object[parameters.length];
+ }
+ }
+
+ public String getSummary() {
+ String pattern = super.getSummary();
+ resolveBindings();
+ return getFormattedString(pattern, resolvedParameters);
+ }
+
+ public String getDetail() {
+ String pattern = super.getDetail();
+ resolveBindings();
+ return getFormattedString(pattern, resolvedParameters);
+ }
+
+ private void resolveBindings() {
+ FacesContext context = null;
+ if (parameters != null) {
+ for (int i = 0; i < parameters.length; i++) {
+ Object o = parameters[i];
+ if (o instanceof ValueExpression) {
+ if (context == null) {
+ context = FacesContext.getCurrentInstance();
+ }
+ o = ((ValueExpression) o)
+ .getValue(context.getELContext());
+ }
+ // to avoid 'null' appearing in message
+ if (o == null) {
+ o = "";
+ }
+ resolvedParameters[i] = o;
+ }
+ }
+ }
+
+ private String getFormattedString(String msgtext, Object[] params) {
+ String localizedStr = null;
+
+ if (params == null || msgtext == null) {
+ return msgtext;
+ }
+ StringBuffer b = new StringBuffer(100);
+ MessageFormat mf = new MessageFormat(msgtext);
+ if (locale != null) {
+ mf.setLocale(locale);
+ b.append(mf.format(params));
+ localizedStr = b.toString();
+ }
+ return localizedStr;
+ }
+
+ private Locale locale;
+ private Object[] parameters;
+ private Object[] resolvedParameters;
+ }
+} // end of class MessageFactory
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/UserNumberBean.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/UserNumberBean.java?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/UserNumberBean.java (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/java/guessNumber/UserNumberBean.java Tue Jun 1 23:35:42 2010
@@ -0,0 +1,210 @@
+/*
+ * The contents of this file are subject to the terms
+ * of the Common Development and Distribution License
+ * (the License). You may not use this file except in
+ * compliance with the License.
+ *
+ * You can obtain a copy of the License at
+ * https://javaserverfaces.dev.java.net/CDDL.html or
+ * legal/CDDLv1.0.txt.
+ * See the License for the specific language governing
+ * permission and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL
+ * Header Notice in each file and include the License file
+ * at legal/CDDLv1.0.txt.
+ * If applicable, add the following below the CDDL Header,
+ * with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * [Name of File] [ver.__] [Date]
+ *
+ * Copyright 2005 Sun Microsystems Inc. All Rights Reserved
+ */
+
+package guessNumber;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.LongRangeValidator;
+import javax.faces.validator.ValidatorException;
+
+import java.util.Random;
+
+
+public class UserNumberBean {
+
+ Integer userNumber = null;
+ Integer randomInt = null;
+ String response = null;
+
+
+ public UserNumberBean() {
+ Random randomGR = new Random();
+ do {
+ randomInt = new Integer(randomGR.nextInt(10));
+ } while (randomInt.intValue() == 0);
+ System.out.println("Duke's number: " + randomInt);
+ }
+
+
+ public void setUserNumber(Integer user_number) {
+ userNumber = user_number;
+ System.out.println("Set userNumber " + userNumber);
+ }
+
+
+ public Integer getUserNumber() {
+ System.out.println("get userNumber " + userNumber);
+ return userNumber;
+ }
+
+
+ public String getResponse() {
+
+ if (userNumber != null && userNumber.compareTo(randomInt) == 0) {
+ return "Yay! You got it!";
+ } else if (userNumber == null) {
+ return "Sorry, " + userNumber +
+ " is incorrect. Try a larger number.";
+ } else {
+ int num = userNumber.intValue();
+ if (num > randomInt.intValue()) {
+ return "Sorry, " + userNumber +
+ " is incorrect. Try a smaller number.";
+ } else {
+ return "Sorry, " + userNumber +
+ " is incorrect. Try a larger number.";
+ }
+ }
+ }
+
+
+ protected String[] status = null;
+
+
+ public String[] getStatus() {
+ return status;
+ }
+
+
+ public void setStatus(String[] newStatus) {
+ status = newStatus;
+ }
+
+
+ private int maximum = 0;
+ private boolean maximumSet = false;
+
+
+ public int getMaximum() {
+ return (this.maximum);
+ }
+
+
+ public void setMaximum(int maximum) {
+ this.maximum = maximum;
+ this.maximumSet = true;
+ }
+
+
+ private int minimum = 0;
+ private boolean minimumSet = false;
+
+
+ public int getMinimum() {
+ return (this.minimum);
+ }
+
+
+ public void setMinimum(int minimum) {
+ this.minimum = minimum;
+ this.minimumSet = true;
+ }
+
+
+ public void validate(FacesContext context,
+ UIComponent component,
+ Object value) throws ValidatorException {
+
+ if ((context == null) || (component == null)) {
+ throw new NullPointerException();
+ }
+ if (value != null) {
+ try {
+ int converted = intValue(value);
+ if (maximumSet &&
+ (converted > maximum)) {
+ if (minimumSet) {
+ throw new ValidatorException(
+ MessageFactory.getMessage
+ (context,
+ LongRangeValidator.NOT_IN_RANGE_MESSAGE_ID,
+ new Object[]{
+ new Integer(minimum),
+ new Integer(maximum),
+ MessageFactory.getLabel(context,
+ component)
+ }));
+
+ } else {
+ throw new ValidatorException(
+ MessageFactory.getMessage
+ (context,
+ LongRangeValidator.MAXIMUM_MESSAGE_ID,
+ new Object[]{
+ new Integer(maximum),
+ MessageFactory.getLabel(context,
+ component)
+ }));
+ }
+ }
+ if (minimumSet &&
+ (converted < minimum)) {
+ if (maximumSet) {
+ throw new ValidatorException(MessageFactory.getMessage
+ (context,
+ LongRangeValidator.NOT_IN_RANGE_MESSAGE_ID,
+ new Object[]{
+ new Double(minimum),
+ new Double(maximum),
+ MessageFactory.getLabel(context, component)
+ }));
+
+ } else {
+ throw new ValidatorException(
+ MessageFactory.getMessage
+ (context,
+ LongRangeValidator.MINIMUM_MESSAGE_ID,
+ new Object[]{
+ new Integer(minimum),
+ MessageFactory.getLabel(context,
+ component)
+ }));
+ }
+ }
+ } catch (NumberFormatException e) {
+ throw new ValidatorException(
+ MessageFactory.getMessage
+ (context, LongRangeValidator.TYPE_MESSAGE_ID,
+ new Object[]{MessageFactory.getLabel(context,
+ component)}));
+ }
+ }
+
+ }
+
+
+ private int intValue(Object attributeValue)
+ throws NumberFormatException {
+
+ if (attributeValue instanceof Number) {
+ return (((Number) attributeValue).intValue());
+ } else {
+ return (Integer.parseInt(attributeValue.toString()));
+ }
+
+ }
+
+}
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/resources/META-INF/NOTICE?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/resources/META-INF/NOTICE (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/resources/META-INF/NOTICE Tue Jun 1 23:35:42 2010
@@ -0,0 +1,20 @@
+Apache MyFaces Portlet Bridge
+Copyright [2007, 2008, 2009] The Apache Software Foundation
+
+This is an implementation of a public review specification
+developed under the Java Community Process (JCP). This
+implementation may not fully conform to this specification.
+This implementation may differ from the final specification.
+The code is not compatible with any specification of the JCP.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+Portions of this software are Copyright (c) 2007, Oracle
+Corporation, <http://www.oracle.com/> and are licensed to
+the Apache Software Foundation under the "Software Grant
+and Corporate Contribution License Agreement"
+
+See the LICENSE.txt file for information on all licenses
+associated with this software.
+
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/faces-config.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/faces-config.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/faces-config.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,132 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License"). You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code. If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above. However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
+ version="1.2">
+
+ <application>
+ <locale-config>
+ <default-locale>en</default-locale>
+ <supported-locale>de</supported-locale>
+ <supported-locale>fr</supported-locale>
+ <supported-locale>es</supported-locale>
+ </locale-config>
+ </application>
+
+ <navigation-rule>
+ <description>
+ The decision rule used by the NavigationHandler to
+ determine which view must be displayed after the
+ current view, greeting.jsp is processed.
+ </description>
+ <from-view-id>/greeting.jsp</from-view-id>
+ <navigation-case>
+ <description>
+ Indicates to the NavigationHandler that the response.jsp
+ view must be displayed if the Action referenced by a
+ UICommand component on the greeting.jsp view returns
+ the outcome "success".
+ </description>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/response.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <description>
+ The decision rules used by the NavigationHandler to
+ determine which view must be displayed after the
+ current view, response.jsp is processed.
+ </description>
+ <from-view-id>/response.jsp</from-view-id>
+ <navigation-case>
+ <description>
+ Indicates to the NavigationHandler that the greeting.jsp
+ view must be displayed if the Action referenced by a
+ UICommand component on the response.jsp view returns
+ the outcome "success".
+ </description>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/greeting.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <managed-bean>
+ <description>
+ The "backing file" bean that backs up the guessNumber webapp
+ </description>
+ <managed-bean-name>UserNumberBean</managed-bean-name>
+ <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>minimum</property-name>
+ <property-class>int</property-class>
+ <value>1</value>
+ </managed-property>
+ <managed-property>
+ <property-name>maximum</property-name>
+ <property-class>int</property-class>
+ <value>10</value>
+ </managed-property>
+
+ </managed-bean>
+
+ <managed-bean>
+ <description>
+ The "backing file" bean that backs up the guessNumber webapp
+ </description>
+ <managed-bean-name>requestBean</managed-bean-name>
+ <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>minimum</property-name>
+ <property-class>int</property-class>
+ <value>12</value>
+ </managed-property>
+ <managed-property>
+ <property-name>maximum</property-name>
+ <property-class>int</property-class>
+ <value>22</value>
+ </managed-property>
+
+ </managed-bean>
+
+
+</faces-config>
Added: myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml?rev=950308&view=auto
==============================================================================
--- myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml (added)
+++ myfaces/portlet-bridge/core/trunk_2.0.x/examples/guessNumber/src/main/webapp/WEB-INF/jetty-pluto-web-default.xml Tue Jun 1 23:35:42 2010
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+
+-->
+
+<!-- This web.xml file is used in order to configure pluto to run with jetty in order to test the appropriate web applications -->
+<web-app
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ metadata-complete="true"
+ version="2.5">
+
+ <context-param>
+ <param-name>org.mortbay.jetty.webapp.NoTLDJarPattern</param-name>
+ <param-value>start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar</param-value>
+ </context-param>
+
+ <!-- Listeners -->
+ <listener>
+ <listener-class>
+ com.bekk.boss.pluto.embedded.jetty.util.OverrideContextLoaderListener
+ </listener-class>
+ </listener>
+
+ <listener>
+ <listener-class>
com.bekk.boss.pluto.embedded.util.PortalStartupListener
+ </listener-class>
+ </listener>
+
+ <!-- Filters and Mappings -->
+ <filter>
+ <filter-name>plutoResourceFilter</filter-name>
+ <filter-class>com.bekk.boss.pluto.embedded.util.PlutResourcesFilter</filter-class>
+ </filter>
+
+ <filter>
+ <filter-name>plutoPortalDriver</filter-name>
+ <filter-class>com.bekk.boss.pluto.embedded.util.PlutoPortalDriverFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>plutoResourceFilter</filter-name>
+ <url-pattern>*.css</url-pattern>
+ <url-pattern>*.gif</url-pattern>
+ <url-pattern>*.png</url-pattern>
+ <url-pattern>*.js</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>plutoPortalDriver</filter-name>
+ <url-pattern>/pluto/index.jsp</url-pattern>
+ <url-pattern>/pluto/index.jsp/*</url-pattern>
+ </filter-mapping>
+
+ <!-- Servlets and Mappings -->
+
+ <!--
+ The default servlet.
+ This servlet, normally mapped to /, provides the handling for static
+ content, OPTIONS and TRACE methods for the context.
+ The following initParameters are supported:
+
+ acceptRanges If true, range requests and responses are
+ supported
+
+ dirAllowed If true, directory listings are returned if no
+ welcome file is found. Else 403 Forbidden.
+
+ redirectWelcome If true, redirect welcome file requests
+ else use request dispatcher forwards
+
+ gzip If set to true, then static content will be served
+ as gzip content encoded if a matching resource is
+ found ending with ".gz"
+
+ resoureBase Can be set to replace the context resource base
+
+ relativeResourceBase
+ Set with a pathname relative to the base of the
+ servlet context root. Useful for only serving
+ static content from only specific subdirectories.
+
+ useFileMappedBuffer
+ If set to true (the default), a memory mapped
+ file buffer will be used to serve static content
+ when using an NIO connector. Setting this value
+ to false means that a direct buffer will be used
+ instead. If you are having trouble with Windows
+ file locking, set this to false.
+
+ cacheControl If set, all static content will have this value
+ set as the cache-control header.
+
+ maxCacheSize Maximum size of the static resource cache
+
+ maxCachedFileSize Maximum size of any single file in the cache
+
+ maxCachedFiles Maximum number of files in the cache
+ -->
+
+ <servlet>
+ <servlet-name>default</servlet-name>
+ <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
+ <init-param>
+ <param-name>acceptRanges</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>dirAllowed</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>redirectWelcome</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCacheSize</param-name>
+ <param-value>4000000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCachedFileSize</param-name>
+ <param-value>254000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>maxCachedFiles</param-name>
+ <param-value>1000</param-value>
+ </init-param>
+ <init-param>
+ <param-name>gzip</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>useFileMappedBuffer</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ </servlet>
+
+ <servlet id="jsp">
+ <servlet-name>jsp</servlet-name>
+ <servlet-class>com.bekk.boss.pluto.embedded.util.PortletJspServlet</servlet-class>
+ <init-param>
+ <param-name>logVerbosityLevel</param-name>
+ <param-value>DEBUG</param-value>
+ </init-param>
+ <init-param>
+ <param-name>fork</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>xpoweredBy</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>0</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>default</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>jsp</servlet-name>
+ <url-pattern>*.jsp</url-pattern>
+ <url-pattern>*.jspf</url-pattern>
+ <url-pattern>*.jspx</url-pattern>
+ <url-pattern>*.xsp</url-pattern>
+ <url-pattern>*.JSP</url-pattern>
+ <url-pattern>*.JSPF</url-pattern>
+ <url-pattern>*.JSPX</url-pattern>
+ <url-pattern>*.XSP</url-pattern>
+ </servlet-mapping>
+
+ <!-- Other settings -->
+ <session-config>
+ <session-timeout>60</session-timeout>
+ </session-config>
+
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+ <locale-encoding-mapping-list>
+ <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping>
+ <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping>
+ </locale-encoding-mapping-list>
+</web-app>
+