Hi,
> <dependency>
> + <groupId>org.apache.myfaces.portlet-bridge</groupId>
> + <artifactId>portlet-bridge-api</artifactId>
> + <version>1.0.0-alpha</version>
> + <scope>provided</scope>
> + </dependency>
I wonder fi is the right scope.
Pretty much all containers don't really ship that JAR.
-M
> +
> + <dependency>
> <groupId>org.apache.myfaces.core</groupId>
> <artifactId>myfaces-api</artifactId>
> <version>${myfaces.version}</version>
>
> Modified: myfaces/trinidad/trunk/trinidad-impl/pom.xml
> URL:
> http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/pom.xml?rev=629242&r1=629241&r2=629242&view=diff
> ==============================================================================
> --- myfaces/trinidad/trunk/trinidad-impl/pom.xml (original)
> +++ myfaces/trinidad/trunk/trinidad-impl/pom.xml Tue Feb 19 13:35:43 2008
> @@ -206,6 +206,11 @@
> </dependency>
>
> <dependency>
> + <groupId>org.apache.myfaces.portlet-bridge</groupId>
> + <artifactId>portlet-bridge-api</artifactId>
> + </dependency>
> +
> + <dependency>
> <groupId>org.apache.myfaces.trinidad</groupId>
> <artifactId>trinidad-build</artifactId>
> </dependency>
>
> Modified:
> myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java
> URL:
> http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java?rev=629242&r1=629241&r2=629242&view=diff
> ==============================================================================
> ---
> myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java
> (original)
> +++
> myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java
> Tue Feb 19 13:35:43 2008
> @@ -51,6 +51,11 @@
>
> import java.io.IOException;
>
> +import javax.portlet.faces.annotation.PortletNamingContainer;
> +import javax.portlet.faces.component.PortletNamingContainerUIViewRoot;
> +
> +import org.apache.myfaces.trinidad.util.ExternalContextUtils;
> +
> /**
> * StateManager that handles a hybrid client/server strategy: a
> * SerializedView is stored on the server, and only a small token
> @@ -966,6 +971,17 @@
> UIViewRoot newRoot = (UIViewRoot)
> fc.getApplication().createComponent(UIViewRoot.COMPONENT_TYPE);
>
> + //This code handles automatic namespacing in a JSR-301 environment
> + if(ExternalContextUtils.isPortlet(fc.getExternalContext()))
> + {
> + //To avoid introducing a runtime dependency on the bridge,
> + //this method should only be executed when we have a portlet
> + //request. If we do have a portlet request then the bridge
> + //should be available anyway.
> + newRoot = _getPortletRoot(newRoot);
> + }
> +
> +
> // must call restoreState so that we setup attributes, listeners,
> // uniqueIds, etc ...
> newRoot.restoreState(fc, viewRootState);
> @@ -984,6 +1000,37 @@
>
> return null;
> }
> +
> + /**
> + * This should only be executed if we are currently in a Portlet Request.
> + * If executed, this method introduces a dependency on the JSR-301 bridge
> + * which is required for Trinidad to run in a portal environment. If
> this
> + * method is not run, then the bridge api's remain optional at runtime.
> + *
> + * This method checks the current UIViewRoot to see if it is a
> + * PortletNamingContainer. If it is, then this class simply returns the
> + * UIViewRoot. If it does not then the current UIViewRoot is used to
> create
> + * a new PortletNamingContainerUIViewRoot.
> + */
> + private UIViewRoot _getPortletRoot(UIViewRoot root)
> + {
> + Class<? extends UIViewRoot> rootClass = root.getClass();
> + //If the current root is not the real UIViewRoot object in faces then
> + //is no need to escape it. It is assumed it handles namespacing on its
> + //own. This is the same as the logic in the JSR-301 Bridge spec.
> + if(rootClass == UIViewRoot.class)
> + {
> + _LOG.fine("Creating PortletUIViewRoot for use with the portal.");
> + root = new PortletNamingContainerUIViewRoot(root);
> + }
> +
> + //TODO: Do we need a warning here if the view root is not annotated
> + //properly? This could happen if another renderkit is involved and
> does
> + //not correctly implement JSR-301. This will NOT be an issue in Trin
> only
> + //environments.
> + return root;
> + }
> +
> }
>
>
>
>
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
mail: matzew-at-apache-dot-org