Announcement: Liferay Faces 4.x M1 Released

On March 1, 2014 Liferay released the 1st Milestone of Liferay Faces 4.x:

Liferay Faces 4.2.0-m1 JSF 2.2 + Liferay Portal 6.2 *NEW* Release Notes
Liferay Faces 4.1.0-m1 JSF 2.1 + Liferay Portal 6.1 *NEW* Release Notes

Download Instructions

Since the 4.2.0-m1 and 4.1.0-m1 releases are not General Availability (GA), the JAR artifacts are *not* published at Maven Central. Instead, they are published at the new Liferay Previews Nexus Repository along with the demo portlets.

Maven Project Dependencies

<dependencies>
  <dependency>
    <groupId>com.liferay.faces</groupId>
    <artifactId>liferay-faces-alloy</artifactId>
    <version>4.2.0-m1</version>
  </dependency>
  <dependency>
    <groupId>com.liferay.faces</groupId>
    <artifactId>liferay-faces-bridge-impl</artifactId>
    <version>4.2.0-m1</version>
  </dependency>
  <dependency>
    <groupId>com.liferay.faces</groupId>
    <artifactId>liferay-faces-portal</artifactId>
    <version>4.2.0-m1</version>
  </dependency>
</dependencies>
<repositories>
  <repository>
    <id>liferay-previews</id>
    <url>
      https://repository.liferay.com/nexus/content/repositories/liferay-previews
    </url>
  </repository>
</repositories>

Ivy Project Dependencies

<dependencies>
  <dependency org="com.liferay.faces" name="liferay-faces-alloy" rev="4.2.0-m1" />
  <dependency org="com.liferay.faces" name="liferay-faces-bridge-impl" rev="4.2.0-m1" />
  <dependency org="com.liferay.faces" name="liferay-faces-portal" rev="4.2.0-m1" />
</dependencies>
...
<resolvers>
  <ibiblio m2compatible="true" name="liferay-previews"
    root="https://repository.liferay.com/nexus/content/repositories/liferay-previews" />
</resolvers>

Version Scheme

Please refer to the Liferay Faces Version Scheme wiki article for a detailed explanation of the version numbering.

Stability

This 4.x M1 release is based off the stable codebase of the 3.x GA5 release. The main difference is support for JSF 2.2 and new demo portlets (see below). This M1 (Milestone) release is suitable for development purposes, however 4.x will not be supported under the Liferay EE subscription until it reaches GA (General Availability) status.

Support For JSF 2.2

  • This is the first release of Liferay Faces that is compatible with JSF 2.2

  • If deploying portlets to Liferay Portal 6.2, then developers should read the new Migrating From Liferay Faces 3.1 to Liferay Faces 3.2/4.2 section in the Developer's Guide. Specifically, JSF portlets require the following option in the WEB-INF/liferay-portlet.xml descriptor: <requires-namespaced-parameters>false</requires-namespaced-parameters>

Tomcat 7 Only

Developed under JSR 344, JSF 2.2 is part of the larger Java EE 7 specification from the JCP. Even though Java EE 7 includes technologies like CDI 1.1 and Servlet 3.1, JSF 2.2 only depends on Java EE 6 technologies like CDI 1.0 and Servlet 3.0. This means that JSF 2.2 webapps and portlets can be deployed in Java EE 6 (Servlet 3.0) servlet containers such as Tomcat 7. However, Java EE 6 full-profile application servers such as GlassFish 3.2, JBoss 7.1, and WebLogic 12c bundle JSF 2.1 and cannot be upgraded to JSF 2.2. At the time of this writing, Liferay, Inc. has not released any Liferay Portal 6.1/6.2 bundles with Java EE 7 servers such as Tomcat 8, GlassFish 4.0 or JBoss/WildFly 8. Therefore this milestone has only been tested for compatibility with Liferay Portal 6.1/6.2 on Tomcat 7.
 

JSF 2.2 Component Suites

Portlets can be developed with JSF 2.2 component suites including Liferay Faces Alloy and PrimeFaces 4.0. Future milestones will include planned support for ICEfaces 4.0 and RichFaces 5.0 portlets.
 

JSF 2.2 Feature Demos

In order to test JSF 2.2, we developed the following new demo portlets:

Roadmap

The Liferay Faces team is hard at work developing JSF components and a Showcase for AlloyUI 2.0. Stay tuned!
 

Feedback Requested

If you find any problems with this release, please post a message in the Liferay Faces forums.

Blogs
Great News,

I am very interested on the implementing of alloy and liferay-ui:tags as JSF components (ratings, discussions, permissions...). These will allow integrating JSF-Portlets with other Liferay Frameworks (search Portlet, Asset Publisher, Comments, Social Bookmarks etc.). Since the most important advantage using JSF are ready to use components (in think so), this will be a huge step forward. Missing these tags make me prefer using MVCPortlet/jsp, although I normaly would work with JSF...

Thanks Neil,
Morad.
Hi Morad,

Thanks for the feedback. Our initial focus will be on Facelet component tags for liferay-faces-allloy but we will also be focussing on adding more tags for liferay-faces-portal as well. We plan on releasing new tags in an iterative manner.

I would be interested to know what priority you would assign to developing specific Facelet tags for liferay-faces-portal. For example, is liferay-ui:discussion more important than liferay-ui:ratings?

Kind Regards,

Neil
Hi Neil,

yes i think ui:rating is a complicated tag for displaying comments threads and adding comments ... With only 1 tag. A developer needs days (even weeks) to implement it in JSF...

The ui-ratings is much simpler and can be implemented with e.g. primeFaces Rating component.

Are their any comments/notes/samples about integrating JSF-Portlets with:

- Asset Publisher
- Search Portlet
- Categories

Thank to the LiferayFaces-Team for the great work.

Best Regards,
Morad.
Hi Morad,

Thanks so much for the kind and encouraging words. We are very excited about the Liferay Faces project and the opportunity to develop these new components.

Although we have many demo portlets available, we don't have any comments/notes/samples on how to integrate JSF with out-of-the-box Liferay featuers like the Asset Publisher, Search Portlet, Categories, etc.. But will keep those use-cases in our thinking as we prioritize development of components.

Kind Regards,

Neil
Hi Neil,

since PrimeFaces-4.1.0.m1 is now implemented for JSF2.2, so it is possible to update the pom.xml and web.xml for using the EL-Impl. by SUN (com.sun.el.ExpressionFactoryImpl) for using the Method-Expression with parameters! It have tried it, and it worked!

Question: Is there any causes, for continueing to use EL-Impl by JBOSS (org.jboss.el.ExpressionFactoryImpl) ?

1) Untill now:
pom.xml:
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-el</artifactId>
<version>2.0.1.GA</version>
</dependency>

web.xml:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<!-- Instruct Mojarra to utilize JBoss-EL instead of the EL implementation provided by the servlet container. -->
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>

2) coud/should update to ?:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>

web.xml:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
Thanks so much for raising the issue about our usage of JBoss-EL. I just did an investigation and created the following issue: https://issues.liferay.com/browse/FACES-1892