Understanding the Liferay Faces Version Scheme

In this article, you’ll learn which Liferay Faces artifacts should be used with your portlet and explore the Liferay Faces versioning scheme by discovering what each component of a version means. For Liferay Portal 6.2, there are two supported version schemes. The first “older” version scheme is supported from previous Liferay versions up to Liferay Portal 6.2. This version scheme is supported by all Liferay Faces releases up to Liferay Faces GA6.

The newer version scheme is supported for Liferay 6.2 and all future releases of Liferay Portal. Any Liferay Faces release after Liferay Faces GA6 will follow the newer version scheme.

Using The Liferay Faces Archetype Portlet

The Liferay Faces Archetype portlet can be used to determine the Liferay Faces artifacts and versions that you should include in your portlet. Select your preferred Liferay Portal version, JSF version, component suite (optional), and build tool, and the portlet will provide you with both a command to generate your portlet from a Maven archetype and a list of dependencies that can be copied into your build files. In the next section, you’ll be provided with compatibility information about each version of the Liferay Faces artifacts after GA6.

Liferay Faces Version Scheme for Releases After Liferay Faces GA6

In this section, you’ll learn about the versioning scheme for each component of Liferay Faces for releases following Liferay Faces GA6. Once you have the versioning scheme mastered, you can view several example configurations.

Liferay Faces Alloy

Provides a suite of JSF components that utilize AlloyUI.

Branch Example Artifact AlloyUI JSF API Additional Info
master (3.x) com.liferay.faces.alloy-3.0.1.jar 3.0.x 2.2+ AlloyUI 3.0.x is the version that comes bundled with Liferay Portal 7.0.
2.x com.liferay.faces.alloy-2.0.1.jar 2.0.x 2.1+ AlloyUI 2.0.x is the version that comes bundled with Liferay Portal 6.2.
1.x com.liferay.faces.alloy-1.0.1.jar 2.0.x 1.2 AlloyUI 2.0.x is the version that comes bundled with Liferay Portal 6.2.

Liferay Faces Bridge

Provides the ability to deploy JSF web applications as portlets within Apache Pluto, the reference implementation for JSR 286 (Portlet 2.0) and JSR 362 (Portlet 3.0).

Branch Example Artifacts Portlet API JSF API JCP Specification Additional Info
API: 5.x
IMPL: 5.x
com.liferay.faces.bridge.api-5.0.0.jar
com.liferay.faces.bridge.impl-5.0.0.jar
3.0 2.2 JSR 378 The Expert Group began work in September 2015 and the Specification is currently under development.
API: 4.x
IMPL: 4.x
com.liferay.faces.bridge.api-4.1.0.jar
com.liferay.faces.bridge.impl-4.0.0.jar
2.0 2.2 JSR 329 Includes non-standard bridge extensions for JSF 2.2.
API: 3.x
IMPL: 3.x
com.liferay.faces.bridge.api-3.1.0.jar
com.liferay.faces.bridge.impl-3.0.0.jar
2.0 2.1 JSR 329 Includes non-standard bridge extensions for JSF 2.1.
API: 2.x
IMPL: 2.x
com.liferay.faces.bridge.api-2.1.0.jar
com.liferay.faces.bridge.impl-2.0.0.jar
2.0 1.2 JSR 329 (MR1) Includes support for Maintenance Release 1 (MR1).
1.x N/A 1.0 1.2 JSR 301 N/A (Not Applicable) since Liferay Faces Bridge has never implemented JSR 301.

Liferay Faces Bridge Ext

Extension to Liferay Faces Bridge that provides compatibility with Liferay Portal and also takes advantage of Liferay-specific features such as friendly URLs.

Branch Example Artifact   Liferay Portal API     Bridge API     Portlet API   JSF API
6.x com.liferay.faces.bridge.ext-6.0.0.jar Future 5.x 3.0 2.2
5.x com.liferay.faces.bridge.ext-5.0.1.jar 7.0.x 4.x 2.0 2.2
4.x RESERVED N/A N/A N/A N/A
3.x com.liferay.faces.bridge.ext-3.0.1.jar 6.2.x 4.x 2.0 2.2
2.x com.liferay.faces.bridge.ext-2.0.1.jar 6.2.x 3.x 2.0 2.1
1.x com.liferay.faces.bridge.ext-1.0.1.jar 6.2.x 2.x 2.0 1.2

Liferay Faces Metal

Provides a suite of JSF components that utilize metal.js.

Branch Example Artifact Liferay Portal API     JSF API
3.x com.liferay.faces.portal-3.0.1.jar 7.0.x 2.2+
2.x com.liferay.faces.portal-2.0.1.jar 6.2.x 2.1+
1.x com.liferay.faces.portal-1.0.1.jar 6.2.x 1.2

Liferay Faces Util

Library that contains general purpose JSF utilities to support many of the sub-projects that comprise Liferay Faces.

Branch Example Artifact   JSF API
3.x com.liferay.faces.util-3.1.0.jar 2.2
2.x com.liferay.faces.util-2.1.0.jar 2.1
1.x com.liferay.faces.util-1.1.0.jar 1.2

Now that you know all about the Liferay Faces versioning scheme, you may be curious as to how these components interact with each other. Refer to the following figure to view the Liferay Faces dependency diagram.

liferay-faces-dependency-diagram.png

Figure 1: The Liferay Faces dependency diagram helps visualize how components interact and depend on each other.

Next, you can view some example configurations to see the new versioning scheme in action.

Example Configurations

Liferay Portal 7.0: AlloyUI 3.0 / Liferay Faces Portal 3 / Portlet 2.0 / JSF 2.2

<dependencies>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.alloy</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.impl</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.ext</artifactId>
        <version>5.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.portal</artifactId>
        <version>3.0.1</version>
    </dependency>
</dependencies>

Liferay Portal 6.2: AlloyUI 2.0 / Liferay Faces Portal 2 / Portlet 2.0 / JSF 2.2

<dependencies>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.alloy</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.impl</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.ext</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.portal</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

Liferay Portal 6.2: AlloyUI 2.0 / Liferay Faces Portal 2 / Portlet 2.0 / JSF 2.1

<dependencies>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.alloy</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.impl</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.ext</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.portal</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

Apache Pluto 3.0: Portlet 3.0 / JSF 2.2

<dependencies>
    <dependency>
       <groupId>com.liferay.faces</groupId>
       <artifactId>com.liferay.faces.bridge.impl</artifactId>
       <version>5.0.0</version>
    </dependency>
</dependencies>

Liferay Faces Version Scheme for Releases Up to Liferay Faces GA6

Liferay Faces follows a Major1.Major2.Minor-Type versioning scheme:

Major1:

  • 1 = Portlet 1.0 Bridge for JSF 1.2 (JSR 301) (Note that Liferay Faces does not support Portlet 1.0)
  • 2 = Portlet 2.0 Bridge for JSF 1.2 (JSR 329)
  • 3 = Portlet 2.0 Bridge for JSF 2.1 (JSR TBA)
  • 4 = Portlet 2.0 Bridge for JSF 2.2 (JSR TBA)

Major2:

  • 0-legacy = Liferay 5.2
  • 0 = Liferay 6.0
  • 1 = Liferay 6.1
  • 2 = Liferay 6.2

Minor:

  • May contain bug fixes, improvements, and new features.

Type:

  • GA (General Availability)
  • RC (Release Candidate)
  • BETA (Beta Quality)
  • ALPHA (Alpha Quality)

Examples:

  • 3.1.0-ga1: First GA release for JSF 2.0/2.1 for use with Liferay 6.1.x
  • 3.1.1-ga2: Second GA release for JSF 2.0/2.1 for use with Liferay 6.1.x

The following table displays the Liferay Faces version and its compatible Liferay Portal and JSF versions:

Liferay Faces Version    JSF Version (Major1)    Liferay Portal Version (Major2)
2.1.x 1.2 6.1
3.0.x-legacy 2.1 5.2
3.0.x 2.1 6.0
3.1.x 2.1 6.1
3.2.x 2.1 6.2
4.2.x (master) 2.2 6.2

While Liferay Faces Bridge is theoretically compatible with any portal that implements the Portlet 2.0 standard, it has been carefully tested for use with Liferay Portal versions 5.2, 6.0, 6.1, and 6.2 and has several optimizations that provide increased performance on Liferay.

If you’ve developed portlets that use the PortletFaces Bridge, you’ll need to migrate them to Liferay Faces in order to deploy them using the Liferay Faces Bridge–don’t worry, it’s very straightforward.

Related Topics

Creating and Deploying JSF Portlets

Developing Liferay Faces Portlets with Maven

Using Portlet Preferences with JSF

Liferay Faces Alloy UI Components

Liferay Faces Bridge UI Components

0 (0 Votes)
Understanding Liferay Faces Alloy Previous