[Jsf4portlets-devel] SF.net SVN: jsf4portlets: [27] trunk
Status: Alpha
Brought to you by:
alonsoft
From: <alo...@us...> - 2007-09-03 09:53:03
|
Revision: 27 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=27&view=rev Author: alonsoft Date: 2007-09-03 01:08:54 -0700 (Mon, 03 Sep 2007) Log Message: ----------- Fixed parent's pom.xml Modified Paths: -------------- trunk/jsf4portlets/src/main/java/javax/portlet/faces/component/PortletNamingContainerUIViewRoot.java trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/application/ViewHandlerImpl.java trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/ExternalContextImpl.java trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/FacesContextImpl.java trunk/jsf4portlets/src/main/resources/net/sf/jsf4portlets/LogMessages.properties trunk/jsf4portlets-ext/pom.xml trunk/pom.xml Added Paths: ----------- trunk/jsf4portlets-ext/src/ trunk/jsf4portlets-ext/src/main/ trunk/jsf4portlets-ext/src/main/java/ trunk/jsf4portlets-ext/src/main/java/net/ trunk/jsf4portlets-ext/src/main/java/net/sf/ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxConstants.java trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletContext.java trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletLifecycleListener.java trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletViewRootRenderer.java trunk/jsf4portlets-ext/src/main/resources/ trunk/jsf4portlets-ext/src/main/resources/META-INF/ trunk/jsf4portlets-ext/src/main/resources/META-INF/faces-config.xml Modified: trunk/jsf4portlets/src/main/java/javax/portlet/faces/component/PortletNamingContainerUIViewRoot.java =================================================================== --- trunk/jsf4portlets/src/main/java/javax/portlet/faces/component/PortletNamingContainerUIViewRoot.java 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets/src/main/java/javax/portlet/faces/component/PortletNamingContainerUIViewRoot.java 2007-09-03 08:08:54 UTC (rev 27) @@ -63,7 +63,7 @@ if (additionalId != null) return namespace + additionalId; else - return namespace; + return namespace.substring(0, namespace.length() - 1); } else { return null; } Modified: trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/application/ViewHandlerImpl.java =================================================================== --- trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/application/ViewHandlerImpl.java 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/application/ViewHandlerImpl.java 2007-09-03 08:08:54 UTC (rev 27) @@ -42,6 +42,7 @@ import javax.faces.context.ResponseWriter; import javax.faces.render.RenderKit; import javax.faces.render.RenderKitFactory; +import javax.portlet.PortletConfig; import javax.portlet.PortletContext; import javax.portlet.RenderResponse; import javax.portlet.faces.Bridge; @@ -52,6 +53,7 @@ import net.sf.jsf4portlets.BridgeConstants; import net.sf.jsf4portlets.config.PortletConfiguration; import net.sf.jsf4portlets.config.PortletConfiguration.PortletParameter; +import net.sf.jsf4portlets.util.Util; public class ViewHandlerImpl extends ViewHandlerWrapper { @@ -98,6 +100,14 @@ viewRoot.getClass().getName())) { viewRoot = new PortletNamingContainerUIViewRoot(viewRoot); } + + if(logger.isLoggable(Level.FINE)) { + PortletConfig portletConfig = Util + .getPortletConfig(context.getExternalContext()); + logger.log(Level.FINE, "J4P_000044", new Object[]{ + viewRoot.getClass().getName(), portletConfig.getPortletName() + }); + } } return viewRoot; } Modified: trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/ExternalContextImpl.java =================================================================== --- trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/ExternalContextImpl.java 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/ExternalContextImpl.java 2007-09-03 08:08:54 UTC (rev 27) @@ -206,8 +206,8 @@ portletURL.setParameter(BridgeConstants.VIEW_ID_PARAMETER, viewId); result = portletURL.toString(); } else if(PortletPhase.ActionPhase.equals(phase)) { - //RequestScope requestScope = Util.getRequestScope(this); - //requestScope.setParameters(qs.getParameterMap()); + RequestScope requestScope = Util.getRequestScope(this); + requestScope.setParameters(qs.getParameterMap()); result = viewId; } else { throw new IllegalStateException(); @@ -430,10 +430,8 @@ viewId = requestScope.getViewId(); } } else if(PortletPhase.ActionPhase.equals(phase)) { - if(viewId == null) { - viewId = getRequestParameterMap().get( + viewId = getRequestParameterMap().get( BridgeConstants.VIEW_ID_PARAMETER); - } } if(viewId == null) { viewId = (String) getRequestMap().get( Modified: trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/FacesContextImpl.java =================================================================== --- trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/FacesContextImpl.java 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets/src/main/java/net/sf/jsf4portlets/context/FacesContextImpl.java 2007-09-03 08:08:54 UTC (rev 27) @@ -92,6 +92,7 @@ } this.econtext = econtext; this.lifecycle = lifecycle; + setCurrentInstance(this); logger.log(Level.FINEST, "J4P_000031", this); } @@ -260,6 +261,7 @@ renderResponse = false; responseComplete = false; viewRoot = null; + // Make sure to clear our ThreadLocal instance. setCurrentInstance(null); } Modified: trunk/jsf4portlets/src/main/resources/net/sf/jsf4portlets/LogMessages.properties =================================================================== --- trunk/jsf4portlets/src/main/resources/net/sf/jsf4portlets/LogMessages.properties 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets/src/main/resources/net/sf/jsf4portlets/LogMessages.properties 2007-09-03 08:08:54 UTC (rev 27) @@ -60,4 +60,5 @@ J4P_000040=J4P000040: Executing faces context previous to render. J4P_000041=J4P000041: RestoreView phase has been invoked during bridge's RENDER_PHASE. Cortocircuiting faces lifecycle. J4P_000042=J4P000042: Exception caught when delegating the faces request during renderView. -J4P_000043=J4P000043: Portlet {0} has init param {1} but it is deprecated. It should be replaced by {2}. +J4P_000043=J4P000043: Portlet {0} has init param {1} but it is deprecated. It should be replaced by {2}. +J4P_000044=J4P000044: Using {0} as view root for portlet {1} Modified: trunk/jsf4portlets-ext/pom.xml =================================================================== --- trunk/jsf4portlets-ext/pom.xml 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/jsf4portlets-ext/pom.xml 2007-09-03 08:08:54 UTC (rev 27) @@ -44,9 +44,22 @@ </dependency> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets</artifactId> + </dependency> + <dependency> + <groupId>org.ajax4jsf</groupId> + <artifactId>ajax4jsf</artifactId> </dependency> + <dependency> + <groupId>com.sun.facelets</groupId> + <artifactId>jsf-facelets</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> </dependencies> <reporting> @@ -71,26 +84,6 @@ </reporting> <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.5</source> - <target>1.5</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <configuration> - <descriptors> - <descriptor>src/assembly/bin.xml</descriptor> - <descriptor>src/assembly/src.xml</descriptor> - </descriptors> - </configuration> - </plugin> - </plugins> </build> </project> Added: trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxConstants.java =================================================================== --- trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxConstants.java (rev 0) +++ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxConstants.java 2007-09-03 08:08:54 UTC (rev 27) @@ -0,0 +1,16 @@ +package net.sf.jsf4portlets.ajax; + +public final class AjaxConstants { + + public static final String ACTION_URL_PARAM = + "org.ajax4jsf.portlet.ACTION_URL"; + + public static final String NAMESPACE_PARAM = + "org.ajax4jsf.portlet.NAMESPACE"; + + public static final String PORTLET_MODE_PARAM = + "org.ajax4jsf.portlet.PORTLET_MODE"; + + private AjaxConstants() { } + +} Added: trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletContext.java =================================================================== --- trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletContext.java (rev 0) +++ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletContext.java 2007-09-03 08:08:54 UTC (rev 27) @@ -0,0 +1,61 @@ +package net.sf.jsf4portlets.ajax; + +import javax.faces.component.UIViewRoot; +import javax.faces.context.ExternalContext; +import javax.faces.context.FacesContext; + +import org.ajax4jsf.framework.ajax.AjaxContext; +import org.ajax4jsf.framework.util.config.WebXml; + +public class AjaxPortletContext extends AjaxContext { + + @Override + public String getAjaxActionURL(FacesContext context) { + if(context == null) { + throw new NullPointerException("FacesContext is null"); + } + + UIViewRoot viewRoot = context.getViewRoot(); + if(viewRoot == null) { + throw new NullPointerException("Faces' view tree is null"); + } + + String viewId = viewRoot.getViewId(); + if(viewId == null) { + throw new NullPointerException("Faces' viewId is null"); + } + if(!viewId.startsWith("/")) { + throw new IllegalArgumentException("Illegal viewId: " + viewId); + } + + ExternalContext externalContext = context.getExternalContext(); + WebXml webXml = (WebXml) externalContext + .getApplicationMap().get(WebXml.CONTEXT_ATTRIBUTE); + if(webXml == null) { + throw new IllegalStateException("Ajax Filter not properly configured"); + } + + StringBuffer actionURL = new StringBuffer( + externalContext.getRequestContextPath()); + if(webXml.isPrefixMapping()) { + String facesFilterPrefix = webXml.getFacesFilterPrefix(); + if(facesFilterPrefix.endsWith("/")) { + facesFilterPrefix = facesFilterPrefix + .substring(0, facesFilterPrefix.length() - 1); + } + actionURL.append(facesFilterPrefix).append(viewId); + } else { + int dot = viewId.lastIndexOf('.'); + if(dot < 0) { + actionURL.append(viewId).append( + webXml.getFacesFilterSuffix()); + } else { + actionURL.append(viewId.substring(0, dot)) + .append(webXml.getFacesFilterSuffix()); + } + } + + return externalContext.encodeActionURL(actionURL.toString()); + } + +} Added: trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletLifecycleListener.java =================================================================== --- trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletLifecycleListener.java (rev 0) +++ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletLifecycleListener.java 2007-09-03 08:08:54 UTC (rev 27) @@ -0,0 +1,52 @@ +package net.sf.jsf4portlets.ajax; + +import javax.faces.application.ViewHandler; +import javax.faces.component.UIViewRoot; +import javax.faces.context.FacesContext; +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; +import javax.portlet.RenderRequest; +import javax.portlet.faces.component.PortletNamingContainer; +import javax.portlet.faces.component.PortletNamingContainerUIViewRoot; + +import org.ajax4jsf.framework.ajax.AjaxContext; + +public class AjaxPortletLifecycleListener implements PhaseListener { + + public void afterPhase(PhaseEvent event) {} + + @SuppressWarnings("unchecked") + public void beforePhase(PhaseEvent event) { + FacesContext context = event.getFacesContext(); + ViewHandler viewHandler = context.getApplication().getViewHandler(); + RenderRequest request = (RenderRequest) context + .getExternalContext().getRequest(); + + AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context); + String viewId = context.getViewRoot().getViewId(); + String actionURL = viewHandler.getActionURL(context, viewId); + ajaxContext.getCommonAjaxParameters().put( + AjaxConstants.ACTION_URL_PARAM, actionURL); + + String portletMode = request.getPortletMode().toString(); + ajaxContext.getCommonAjaxParameters().put( + AjaxConstants.PORTLET_MODE_PARAM, portletMode); + + String namespace; + UIViewRoot viewRoot = context.getViewRoot(); + if(viewRoot instanceof PortletNamingContainer) { + namespace = viewRoot.getClientId(context); + } else { + namespace = PortletNamingContainerUIViewRoot.getContainerClientId( + context, viewRoot.getContainerClientId(context)); + } + ajaxContext.getCommonAjaxParameters().put( + AjaxConstants.NAMESPACE_PARAM, namespace); + } + + public PhaseId getPhaseId() { + return PhaseId.RENDER_RESPONSE; + } + +} Added: trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletViewRootRenderer.java =================================================================== --- trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletViewRootRenderer.java (rev 0) +++ trunk/jsf4portlets-ext/src/main/java/net/sf/jsf4portlets/ajax/AjaxPortletViewRootRenderer.java 2007-09-03 08:08:54 UTC (rev 27) @@ -0,0 +1,56 @@ +package net.sf.jsf4portlets.ajax; + +import java.io.IOException; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.context.ResponseWriter; +import javax.portlet.faces.component.PortletNamingContainerUIViewRoot; + +import org.ajax4jsf.framework.ajax.AjaxContext; +import org.ajax4jsf.framework.renderer.AjaxContainerRenderer; +import org.ajax4jsf.framework.renderer.AjaxRendererUtils; +import org.ajax4jsf.framework.renderer.AjaxViewRootRenderer; + +public class AjaxPortletViewRootRenderer extends AjaxViewRootRenderer { + + @Override + protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) + throws IOException { + AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context); + String namespace = PortletNamingContainerUIViewRoot + .getContainerClientId(context, null); + String ajaxParameterName = context.getExternalContext() + .getRequestParameterMap().get(AjaxContainerRenderer.AJAX_PARAMETER_NAME); + + if(!ajaxContext.isAjaxRequest() && null != namespace && null != ajaxParameterName) { + // Navigation, encode window + writer.startElement("div", component); + writer.writeAttribute("id", namespace, null); + } + + super.doEncodeBegin(writer, context, component); + } + + @Override + protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) + throws IOException { + super.doEncodeEnd(writer, context, component); + + AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context); + String namespace = PortletNamingContainerUIViewRoot + .getContainerClientId(context, null); + String ajaxParameterName = context.getExternalContext() + .getRequestParameterMap().get(AjaxContainerRenderer.AJAX_PARAMETER_NAME); + + if(!ajaxContext.isAjaxRequest() && null != namespace && null != ajaxParameterName) { + writer.endElement("div"); + ajaxContext.setAjaxRequest(true); + ajaxContext.addRenderedArea(namespace); + AjaxRendererUtils.encodeAreas(context, component); + } + } + + + +} Added: trunk/jsf4portlets-ext/src/main/resources/META-INF/faces-config.xml =================================================================== --- trunk/jsf4portlets-ext/src/main/resources/META-INF/faces-config.xml (rev 0) +++ trunk/jsf4portlets-ext/src/main/resources/META-INF/faces-config.xml 2007-09-03 08:08:54 UTC (rev 27) @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + JSF 4 Portlets - JSF Portlet Bridge (JSR-301) + Copyright (C) 2007 A. Alonso Dominguez + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A. Alonso Dominguez + alo...@us... +--> + +<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"> + + <lifecycle> + <phase-listener> + net.sf.jsf4portlets.ajax.AjaxPortletLifecycleListener + </phase-listener> + </lifecycle> + + <managed-bean> + <managed-bean-name>ajaxContext</managed-bean-name> + <managed-bean-class> + net.sf.jsf4portlets.ajax.AjaxPortletContext + </managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + </managed-bean> + + <render-kit> + <renderer> + <component-family> + javax.faces.ViewRoot + </component-family> + <renderer-type> + javax.faces.ViewRoot + </renderer-type> + <renderer-class> + net.sf.jsf4portlets.ajax.AjaxPortletViewRootRenderer + </renderer-class> + </renderer> + </render-kit> + +</faces-config> \ No newline at end of file Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2007-08-23 17:29:22 UTC (rev 26) +++ trunk/pom.xml 2007-09-03 08:08:54 UTC (rev 27) @@ -74,7 +74,7 @@ </distributionManagement> <modules> - <module>jsf4portlets-core</module> + <module>jsf4portlets</module> <module>jsf4portlets-ext</module> </modules> @@ -89,7 +89,7 @@ <target>1.5</target> </configuration> </plugin> - <plugins> + </plugins> </pluginManagement> <plugins> <plugin> @@ -191,18 +191,34 @@ </dependency> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <scope>test</scope> + <groupId>org.ajax4jsf</groupId> + <artifactId>ajax4jsf</artifactId> + <version>1.1.1</version> + <scope>compile</scope> + <optional>true</optional> </dependency> <dependency> + <groupId>com.sun.facelets</groupId> + <artifactId>jsf-facelets</artifactId> + <version>1.1.11</version> + <scope>compile</scope> + <optional>true</optional> + </dependency> + + <dependency> <groupId>net.sf.jsf4portlets</groupId> <artifactId>jsf4portlets</artifactId> <version>${pom.version}</version> <scope>compile</scope> </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> </dependencies> </dependencyManagement> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |