Migrating Traditional Plugins to Workspace Web Applications

After you’ve adapted your traditional plugin to Liferay Portal’s API, you can continue maintaining it in the Plugins SDK. The Plugins SDK, however, is deprecated as of Liferay Portal CE 7.0. Maintaining plugins in the SDK will become increasingly difficult. Liferay Workspace replaces the Plugins SDK, providing a comprehensive Gradle development environment and more. A simple command migrates traditional plugins (such as portlets) to Gradle-based web application projects. From there you can build and deploy them to Liferay Portal CE 7.0 as Web ARchives (WARs).

Running the Migration Command

Blade CLI’s convert command migrates Plugins SDK plugins to web application projects in Workspace’s wars folder. Plugin files are re-organized to follow the standard web application folder structure.

Standard Web Application Anatomy:

  • [project root]
    • src
      • main
        • webapp
          • WEB-INF
            • classes
            • lib → Libraries
            • descriptor files
        • css → CSS files
        • js → JavaScript files
        • icons
        • JSP files
      • java → Java source
    • build files

In a terminal, navigate to the Liferay Workspace root folder. Then pass your Plugins SDK project’s name to Blade’s convert command:

blade convert [PLUGIN_PROJECT_NAME]

Blade extracts the plugin from the Plugins SDK and reorganizes it in a standard web application project in Workspace’s wars folder.

Note: You can execute blade convert -l to show a list of projects that can be migrated in your Plugins SDK. Run blade convert --all to migrate all plugin projects in your Plugins SDK to Workspace.

The image below shows the plugin files before and after they’re migrated to Workspace.

migrate-war-compare-folder-structure.png

Figure 1: The convert command migrates a Plugins SDK project to a Workspace web application project. It moves Java source files to src/main/java and all other files/folders to src/main/webapp.

The following table maps traditional plugin source files to the standard web application folder structure Workspace uses.

Plugins SDK folders to web application folders:

Files Plugins SDK folder (old) Web app folder (new)
Java docroot/WEB-INF/src src/main/java
JSPs docroot src/main/webapp
icons docroot src/main/webapp
CSS docroot/css src/main/webapp/css
JS docroot/js src/main/webapp/js
descriptors docroot/WEB-INF src/main/webapp/WEB-INF
libraries docroot/WEB-INF/lib src/main/webapp/lib

From your plugin’s new location, you can invoke Workspace Gradle tasks on it and build its .war file.

blade gw war 

To deploy the .war, copy it from the plugin’s build/libs folder to the [LIFERAY_HOME]/deploy folder.

Welcome to your plugin’s new home in Workspace!

Related Topics

Workspace Development lifecycle

Workspace Gradle Tasks

0 (0 Votes)
Optimizing Plugins for Liferay Portal CE 7.0 Previous