[Jsf4portlets-devel] SF.net SVN: jsf4portlets:[87] trunk
Status: Alpha
Brought to you by:
alonsoft
From: <alo...@us...> - 2012-06-24 13:05:36
|
Revision: 87 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=87&view=rev Author: alonsoft Date: 2012-06-24 13:05:29 +0000 (Sun, 24 Jun 2012) Log Message: ----------- aligning with spec on getFacesBridge preparing tck webapp Modified Paths: -------------- trunk/jsf4portlets-api/src/main/java/javax/portlet/faces/GenericFacesPortlet.java trunk/jsf4portlets-tck/pom.xml trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java Added Paths: ----------- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/context/ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/portlet/ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java trunk/jsf4portlets-tck/src/main/resources/ trunk/jsf4portlets-tck/src/test/resources/ trunk/jsf4portlets-tck/src/test/webapp/ trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/ trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/faces-config.xml trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/portlet.xml trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/web.xml Removed Paths: ------------- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycle.java trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycleFactory.java Modified: trunk/jsf4portlets-api/src/main/java/javax/portlet/faces/GenericFacesPortlet.java =================================================================== --- trunk/jsf4portlets-api/src/main/java/javax/portlet/faces/GenericFacesPortlet.java 2012-06-24 11:39:38 UTC (rev 86) +++ trunk/jsf4portlets-api/src/main/java/javax/portlet/faces/GenericFacesPortlet.java 2012-06-24 13:05:29 UTC (rev 87) @@ -273,7 +273,17 @@ return result; } - public Bridge getFacesBridge() { + public Bridge getFacesBridge(PortletRequest request, PortletResponse response) throws PortletException { + if (facesBridge == null) { + try { + facesBridge = facesBridgeClass.newInstance(); + facesBridge.init(this.getPortletConfig()); + } catch (final Exception e) { + throw new PortletException( + "getFacesBridge: error instantiating the bridge class", + e); + } + } return facesBridge; } @@ -340,14 +350,14 @@ private void doBridgeDispatch(final RenderRequest request, final RenderResponse response) throws PortletException { // initial Bridge if not already active - initBridge(); + Bridge bridge = getFacesBridge(request, response); // Push information for Bridge into request attributes setBridgeRequestContext(request); setResponseContentType(response, getResponseContentType(request), getResponseCharacterSetEncoding(request)); try { - facesBridge.doFacesRequest(request, response); + bridge.doFacesRequest(request, response); } catch (final BridgeException e) { throw new PortletException( "doBridgeDispatch failed: error from Bridge in executing the request", @@ -359,11 +369,11 @@ private void doBridgeDispatch(final ActionRequest request, final ActionResponse response) throws PortletException { // initial Bridge if not already active - initBridge(); + Bridge bridge = getFacesBridge(request, response); // Push information for Bridge into request attributes setBridgeRequestContext(request); try { - facesBridge.doFacesRequest(request, response); + bridge.doFacesRequest(request, response); } catch (final BridgeException e) { throw new PortletException( "doBridgeDispatch failed: error from Bridge in executing the request", @@ -400,19 +410,6 @@ } } - private void initBridge() throws PortletException { - if (facesBridge == null) { - try { - facesBridge = facesBridgeClass.newInstance(); - facesBridge.init(this.getPortletConfig()); - } catch (final Exception e) { - throw new PortletException( - "doBridgeDisptach: error instantiating the bridge class", - e); - } - } - } - private boolean isNonFacesRequest(final PortletRequest request, final PortletResponse response) { if (null != request.getParameter(Bridge.NONFACES_TARGET_PATH_PARAMETER)) { Modified: trunk/jsf4portlets-tck/pom.xml =================================================================== --- trunk/jsf4portlets-tck/pom.xml 2012-06-24 11:39:38 UTC (rev 86) +++ trunk/jsf4portlets-tck/pom.xml 2012-06-24 13:05:29 UTC (rev 87) @@ -12,6 +12,56 @@ <name>JSF 4 Portlets TCK</name> <artifactId>jsf4portlets-tck</artifactId> + <properties> + <test.webapp.source>${basedir}/src/test/webapp</test.webapp.source> + <test.webapp.runtime>${project.build.directory}/${project.artifactId}</test.webapp.runtime> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.7</version> + <executions> + <execution> + <id>add-test-webapp-resource</id> + <phase>generate-test-resources</phase> + <goals> + <goal>add-test-resource</goal> + </goals> + <configuration> + <resources> + <resource>${test.webapp.source}</resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.7</version> + <executions> + <execution> + <phase>process-test-resources</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target> + <mkdir dir="${test.webapp.runtime}" /> + <copy todir="${test.webapp.runtime}"> + <fileset dir="${test.webapp.source}" /> + </copy> + </target> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + <dependencies> <dependency> <groupId>javax.el</groupId> Modified: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java 2012-06-24 11:39:38 UTC (rev 86) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java 2012-06-24 13:05:29 UTC (rev 87) @@ -2,6 +2,10 @@ public final class TCKConstants { + public static final String TCK_TEST_BEAN_NAME = "net.sf.jsf4portlets.tck.testBeanName"; + + public static final String TCK_TEST_NAME = "net.sf.jsf4portlets.tck.testName"; + private TCKConstants() { } } Deleted: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycle.java =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycle.java 2012-06-24 11:39:38 UTC (rev 86) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycle.java 2012-06-24 13:05:29 UTC (rev 87) @@ -1,40 +0,0 @@ -package net.sf.jsf4portlets.tck.faces.application; - -import javax.faces.FacesException; -import javax.faces.context.FacesContext; -import javax.faces.event.PhaseListener; -import javax.faces.lifecycle.Lifecycle; - -public class TCKLifecycle extends Lifecycle { - - private Lifecycle delegate; - - public TCKLifecycle(Lifecycle delegate) { - this.delegate = delegate; - } - - @Override - public void addPhaseListener(PhaseListener listener) { - delegate.addPhaseListener(listener); - } - - @Override - public void execute(FacesContext context) throws FacesException { - delegate.execute(context); - } - - @Override - public PhaseListener[] getPhaseListeners() { - return delegate.getPhaseListeners(); - } - - @Override - public void removePhaseListener(PhaseListener listener) { - delegate.removePhaseListener(listener); - } - - @Override - public void render(FacesContext context) throws FacesException { - delegate.render(context); - } -} Deleted: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycleFactory.java =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycleFactory.java 2012-06-24 11:39:38 UTC (rev 86) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycleFactory.java 2012-06-24 13:05:29 UTC (rev 87) @@ -1,25 +0,0 @@ -package net.sf.jsf4portlets.tck.faces.application; - -import javax.faces.lifecycle.Lifecycle; -import javax.faces.lifecycle.LifecycleFactory; -import java.util.Iterator; - -public class TCKLifecycleFactory extends LifecycleFactory { - - private LifecycleFactory delegate; - - @Override - public void addLifecycle(String lifecycleId, Lifecycle lifecycle) { - delegate.addLifecycle(lifecycleId, lifecycle); - } - - @Override - public Lifecycle getLifecycle(String lifecycleId) { - return delegate.getLifecycle(lifecycleId); - } - - @Override - public Iterator<String> getLifecycleIds() { - return delegate.getLifecycleIds(); - } -} Added: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java (rev 0) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,21 @@ +package net.sf.jsf4portlets.tck.faces.context; + +import javax.faces.FacesException; +import javax.faces.context.FacesContext; +import javax.faces.context.FacesContextFactory; +import javax.faces.lifecycle.Lifecycle; + +public class TCKFacesContextFactory extends FacesContextFactory { + + private FacesContextFactory delegate; + + public TCKFacesContextFactory(FacesContextFactory delegate) { + this.delegate = delegate; + } + + @Override + public FacesContext getFacesContext(Object context, Object request, Object response, Lifecycle lifecycle) + throws FacesException { + return delegate.getFacesContext(context, request, response, lifecycle); + } +} Copied: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java (from rev 85, trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycle.java) =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java (rev 0) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,40 @@ +package net.sf.jsf4portlets.tck.faces.lifecycle; + +import javax.faces.FacesException; +import javax.faces.context.FacesContext; +import javax.faces.event.PhaseListener; +import javax.faces.lifecycle.Lifecycle; + +public class TCKLifecycle extends Lifecycle { + + private Lifecycle delegate; + + public TCKLifecycle(Lifecycle delegate) { + this.delegate = delegate; + } + + @Override + public void addPhaseListener(PhaseListener listener) { + delegate.addPhaseListener(listener); + } + + @Override + public void execute(FacesContext context) throws FacesException { + delegate.execute(context); + } + + @Override + public PhaseListener[] getPhaseListeners() { + return delegate.getPhaseListeners(); + } + + @Override + public void removePhaseListener(PhaseListener listener) { + delegate.removePhaseListener(listener); + } + + @Override + public void render(FacesContext context) throws FacesException { + delegate.render(context); + } +} Copied: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java (from rev 85, trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKLifecycleFactory.java) =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java (rev 0) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,25 @@ +package net.sf.jsf4portlets.tck.faces.lifecycle; + +import javax.faces.lifecycle.Lifecycle; +import javax.faces.lifecycle.LifecycleFactory; +import java.util.Iterator; + +public class TCKLifecycleFactory extends LifecycleFactory { + + private LifecycleFactory delegate; + + @Override + public void addLifecycle(String lifecycleId, Lifecycle lifecycle) { + delegate.addLifecycle(lifecycleId, lifecycle); + } + + @Override + public Lifecycle getLifecycle(String lifecycleId) { + return delegate.getLifecycle(lifecycleId); + } + + @Override + public Iterator<String> getLifecycleIds() { + return delegate.getLifecycleIds(); + } +} Added: trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java =================================================================== --- trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java (rev 0) +++ trunk/jsf4portlets-tck/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,65 @@ +package net.sf.jsf4portlets.tck.portlet; + +import net.sf.jsf4portlets.tck.TCKConstants; + +import javax.portlet.*; +import javax.portlet.faces.Bridge; +import javax.portlet.faces.GenericFacesPortlet; +import java.io.IOException; + +public class TCKFacesPortlet extends GenericFacesPortlet { + + public static final String SEPARATOR = "_"; + + private String testBeanName; + private String testName; + + @Override + public void init(PortletConfig portletConfig) throws PortletException { + super.init(portletConfig); + + String portletName = portletConfig.getPortletName(); + if (portletName.indexOf(SEPARATOR) < 0) { + throw new UnavailableException("Invalid portlet name."); + } + + String[] parts = portletName.split(SEPARATOR); + testBeanName = parts[1]; + if (parts.length > 2) { + testName = parts[2]; + } else { + testName = parts[1]; + if (!testName.endsWith("Test")) { + testName = testName.concat("Test"); + } + } + } + + @Override + public void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException { + initTestRequest(request); + super.doDispatch(request, response); + } + + @Override + public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException { + initTestRequest(request); + super.processAction(request, response); + } + + @Override + public Bridge getFacesBridge(PortletRequest request, PortletResponse response) throws PortletException { + initTestRequest(request); + return super.getFacesBridge(request, response); + } + + public String getTestName() { + return testName; + } + + private void initTestRequest(PortletRequest request) { + request.setAttribute(TCKConstants.TCK_TEST_BEAN_NAME, testBeanName); + request.setAttribute(TCKConstants.TCK_TEST_NAME, testName); + } + +} Added: trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/faces-config.xml =================================================================== --- trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/faces-config.xml (rev 0) +++ trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/faces-config.xml 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:bridge="http://jsf4portlets.sf.net/jsfportlet" + 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"> + + <factory> + <application-factory>net.sf.jsf4portlets.tck.faces.application.TCKApplicationFactory</application-factory> + <faces-context-factory>net.sf.jsf4portlets.tck.faces.context.TCKFacesContextFactory</faces-context-factory> + <lifecycle-factory>net.sf.jsf4portlets.tck.faces.lifecycle.TCKLifecycleFactory</lifecycle-factory> + </factory> + +</faces-config> Added: trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/portlet.xml =================================================================== --- trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/portlet.xml (rev 0) +++ trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/portlet.xml 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<portlet-app version="1.0" + xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> + + +</portlet-app> Added: trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/web.xml =================================================================== --- trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/web.xml (rev 0) +++ trunk/jsf4portlets-tck/src/test/webapp/WEB-INF/web.xml 2012-06-24 13:05:29 UTC (rev 87) @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!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>JSR-301 - TCK Web</display-name> + + <context-param> + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> + <param-value>.jsp</param-value> + </context-param> + <context-param> + <param-name>javax.portlet.faces.LIFECYCLE_ID</param-name> + <param-value>TCKLifecycle</param-value> + </context-param> + + + <!-- Faces Servlet --> + <servlet> + <servlet-name>faces</servlet-name> + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> + </servlet> + + + <!-- Faces Servlet Mappings --> + <!-- + In this demo application, I chose to use suffix mapping. I did this because it makes urls + in the portlet world look nicer in the source. The portlet url should be the same + reguardless. + --> + <servlet-mapping> + <servlet-name>faces</servlet-name> + <url-pattern>*.jsf</url-pattern> + </servlet-mapping> +</web-app> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |