Liferay Worldwide 6.2 Training Tour

Company Blogs February 26, 2014 By Edward Shin Staff

The Liferay team is pleased to announce the release of the Liferay worldwide public training tour! Training provides opportunities to learn the latest tips and best practices for the management, administration, and development of your portal.

Our launch will include updated 6.2 trainings, "Mastering Liferay Fundamentals" (formerly Portal Administrator), which covers every major feature of Liferay Portal, and "Developing for the Liferay Platform 1" (formerly Portal Developer).

New Liferay Portal features covered in "Mastering Liferay Fundamentals" include:

  • Sleek, Modern Interface – A new UI allows easy access to administrative tools.
  • Site Improvements – Sites can be managed hierarchically, enabling many new possibilities for sharing content between sites.
  • Recycle Bin – Certain assets can be easily restored if they were accidentally removed.

To see the full course description, click here.

Updated content covered in "Developing for the Liferay Platform 1" includes:

  • 6.2 Update – All training materials will be updated to Liferay Portal 6.2.
  • Marketplace – Participants will learn how to develop applications for the Liferay Marketplace.
  • Application Display Templates – This brings the power and flexibility of web content templates to the portlet level. Customize the look and feel of Liferay portlets through the user interface.

To see the full course description, click here.

6.2 Public Trainings:

Milan, Italy - Mastering Liferay Fundamentals (March 3-4, 2014)
Madrid, Spain - Developing for the Liferay Platform 1 (March 3-5, 2014)
Milan, Italy - Developing for the Liferay Platform 1 (March 5-7, 2014)
Toronto, Canada - Mastering Liferay Fundamentals (March 10-12, 2014)
Brasilia, Brazil - Mastering Liferay Fundamentals (March 10-11, 2014)
Quito, Ecuador - Mastering Liferay Fundamentals (March 10-11, 2014)
Brasilia, Brazil - Developing for the Liferay Platform 1 (March 12-14, 2014)
Quito, Ecuador - Developing for the Liferay Platform 1 (March 12-14, 2014)
Toronto, Canada - Developing for the Liferay Platform 1 (March 13-14, 2014)
Dalian, China - Mastering Liferay Fundamentals (March 14-15, 2014)
Dalian, China - Developing for the Liferay Platform 1 (March 16-18, 2014)
Cachan, France - Mastering Liferay Fundamentals (March 17-18, 2014)
Graz, Austria - Mastering Liferay Fundamentals (March 17-18, 2014)
Minneapolis, MN, US - Mastering Liferay Fundamentals (March 17-18, 2014)
Kuala Lumpur, Malaysia - Mastering Liferay Fundamentals (March 17-18, 2014)
Graz, Austria - Developing for the Liferay Platform 1 (March 19-21, 2014)
Cachan, France - Developing for the Liferay Platform 1 (March 19-21, 2014)
Minneapolis, MN, US - Developing for the Liferay Platform 1 (March 19-21, 2014)
Kuala Lumpur, Malaysia - Developing for the Liferay Platform 1 (March 19-21, 2014)
Warsaw, Poland - Mastering Liferay Fundamentals (March 24-25, 2014)
São Paulo, Brazil - Mastering Liferay Fundamentals (March 24-25, 2014)
Warsaw, Poland - Developing for the Liferay Platform 1 (March 26-28, 2014)
São Paulo, Brazil - Developing for the Liferay Platform 1 (March 26-28, 2014)
Amsterdam, Netherlands - Mastering Liferay Fundamentals (March 31 - Apr 1, 2014)
Sydney, Australia - Mastering Liferay Fundamentals (March 31-Apr 1, 2014)
Sydney, Australia - Developing for the Liferay Platform 1 (April 2-4, 2014)


Courses will be available worldwide in early March. To see a schedule of classes in your region or to register, click here. If you have any questions or don't see a training near your location, please contact us at, our website or call 1-877-LIFERAY.

Upgrading Your EXT Environment to an EXT Plugin

Company Blogs March 9, 2010 By Edward Shin Staff

Update: Please see the official documentation here:

Now that we have EXT Plugins, the million dollar question is what will happen to the EXT Environment?

First, let's cover the bad news. The EXT Environment will no longer exist in Liferay 6.0.

For those of you that use the EXT Environment primarily to change core code, this is a good thing because EXT Plugins handle core customizations better than the EXT Environment. You'll spend less time deploying and maintaining your changes with EXT plugins. See Introducing EXT Plugins! for more information.

For those of you (like me) that have made heavy customizations in the EXT Environment including custom portlets and services, you're probably a little nervous about this change.


The good news is that we have a script to help migrate your EXT Environments to EXT Plugins.

You can find the build.xml script in the Plugins SDK in trunk in the "ext" directory:

What the script does is create an EXT Plugin from the file and merge in your changes from your EXT Environment.

Let's take a look at how this works in practice.

Assuming that your EXT Environment is located in /Users/ed/projects/ext:
(The Windows equivalent would be C:/projects/ext)

We can run the following command to migrate the code from the EXT Environment to EXT Plugins:
ant upgrade-ext -Dext.dir=/Users/ed/projects/ext"Hello World"

-Dext.dir is a command line argument to the location of the EXT Environment is the name of the EXT Plugin that you want to create is the display name (See

This will create a hello-world-ext directory with the merged changes from your EXT Environment.

Both build-service (ServiceBuilder) and build-db (DBBuilder) have been ported to EXT Plugins to allow developers to regenerate their services and SQL code in EXT Plugins:


But as noted in the warning message, ServiceBuilder in EXT plugins will be deprecated in future versions, and custom services should be migrated to portlet plugins. Try to migrate your custom services to portlet plugins as soon as possible as this is the recommended practice.

Additional Notes:

1. "build-services" in the above example is a custom target. You can define custom targets like this in order to make them work properly with Service Builder:


<target name="build-service-test">

<antcall target="build-service">

<param name="service.file" value="docroot/WEB-INF/ext-impl/src/com/test/service.xml" />



2. If you're using a version of Liferay that uses ext-ejb instead of ext-impl, you must first upgrade to Liferay 5.2 before migrating your code to an EXT Plugin.


Creating Your First EXT Plugin

Company Blogs March 9, 2010 By Edward Shin Staff

Update: Please see the official documentation here:

The first step that we need to take is to "Check Out" or download the Plugins SDK here:

You'll have to know how to use an SVN client to check out the latest Plugins SDK, but you'll be able to download it from our website once we release 6.0.

I'll include some screenshots in case you just want a general idea of how it works before it's released.

After checking out the new Plugins SDK, you'll notice that there's a new "ext" directory available:

- We can create a hello-world-ext plugin using the the following command for Unix:
./ hello-world "Hello World"

Or the following command for Windows:
create hello-world "Hello World"

This will create a hello-world-ext plugin which should look like this:

Notice the similarities with the EXT Environment:

- Now let's run an "ant clean":

We get this error message because we haven't defined any of the properties: is the location of the zipped server bundle is the location where you want to unzip your server
app.server.dir is the location of your server directory

We'll need these properties so that ant knows the location of the app.server.dir (server directory), the location of the (zipped server bundle) and the (location where you want to unzip your server).

- You can create your own zipped Tomcat bundle by reading my blog post here:
Building a Tomcat Bundle from Liferay trunk

- Once you've created your zipped Tomcat bundle, you can point your "" property to it like this:

- Create your build.${}.properties file here:

- Set the location of your properties. I've set mine as follows:


That's all you need to do to set up the environment!

To recap, all we've done so far is set up 3 properties for the location of our server, the location of our zipped server bundle and the directory that we want to unzip the bundle to.

Now we can see how this works in action:

Running "ant clean" will now delete the server directory and unzip a clean copy of our zipped server bundle:

Running "ant compile" will compile all the necessary ext code.

Running "ant war" will create /plugins/dist/hello-world-ext-

You can hot deploy this war to a running Liferay bundle. It'll tell you to reboot after the ext plugin has been deployed (since you're changing core classes):

After creating your own hello-world-ext plugin, you'll now see how much lighter EXT Plugins is compared to the EXT Environment. Try modifying a few classes to see how it works in practice.

(Keep in mind that EXT plugins are designed to override the portal's core code that cannot be done with hooks, layout templates, portlets, or themes. EXT plugins are not meant to contain new custom services.)

Introducing EXT Plugins!

Company Blogs March 8, 2010 By Edward Shin Staff

 Like many great ideas in Liferay, EXT Plugins came from our community. This idea is credited to the company IBA CZ.

Rather than have a monolithic structure (EXT environment) that modifies the entire portal, we can now modify all of Liferay's core classes using EXT Plugins. Unlike the EXT Environment, EXT Plugins don't require the entire portal code (portal-impl.jar, portal-web.war, etc.) and have a smaller footprint since they only contain the differences / deltas.

This makes it much easier to extend and maintain changes to Liferay core and is more powerful since we can modify util-java and util-taglib which wasn't possible before.

This move is huge and drive us towards our goal of having a light weight core with modularized components that will be easy to develop, maintain and plug into other instances of Liferay. 

More information is available at the following links:


Building a Tomcat Bundle from Liferay trunk

Company Blogs March 8, 2010 By Edward Shin Staff

Update October 6, 2010: Now that we've officially packaged the bundles for Liferay 6 in both our CE and EE releases, you can now download the bundles from instead of building them from scratch. This blog was based on an ongoing revision of trunk so some of the steps will be outdated at this time.

If you've ever wondered which Tomcat bundle to use when deploying Liferay trunk, you can actually build your own using build-dist.xml. This step is the first one needed to check out the new Plugins EXT environment.

In the past, I used to download the latest version of our Tomcat bundle from our website, but using build-dist.xml is easier and requires less steps. Once Liferay 6.0 is released, you'll be able to download the bundle directly from our website.

You can download trunk here using an svn client:

From the Liferay trunk directory, you can run:
ant all

And then:
ant -buildfile build-dist.xml zip-tomcat

Assuming that you checked out Liferay trunk to the following directory:

Running the commands will look something like this:


Desktop Theme Updated for Liferay 5.0!

Company Blogs April 28, 2008 By Edward Shin Staff

In addition to being visually appealing, the Desktop Theme shows the depth to which Liferay themes can be customized. A lot of work has been done to overhaul the css and javascript, so even if you've already seen version 1.0, it's worth taking another look.




One of the interesting aspects of the theme is that the above screenshots are implemented as color schemes. Each color scheme contains the custom css and images that are different than the base theme. This was made possible by some enhancements made by Nate Cavanaugh and Brian Chan:

Here are some additional features available in the Desktop theme. Sliding arrow:

Embedding the Analog Clock and Date into the Add Content menu:


Taskbar that highlights the selected portlet in the taskbar and brings it to the front of the screen:

Address Bar: Community > Page > Portlet:

Hide all configuration icons other than minimize, maximize and close except on hover:

Customized warning message when the session is expired:

The theme has also been tested to work on ie6, ie7 and ff. If you like this theme, let us know about it, so that we continue to invest time and make improvements to it.

 (Please send any bugs/requests to Peter Shin, the designer of the theme:


Company Blogs October 26, 2007 By Edward Shin Staff

I needed to upload some docs to our Document Library today, so I decided to give WebDAV a try instead of uploading each document one by one. I heard that our WebDAV implementation was buggy, so I wasn't looking forward to it, but I thought i'd give it a try anyways.

To my pleasant surprise, it worked pretty well! There were a few catches, I wasn't sure what to put in for my username and I wasn't able to create new folders, but I was able to bulk upload my documents! (For those of you who are interested, the username is the numeric User ID.)

Here's our wiki on WebDAV:

All that we have to do now is allow users to create new folders, and WebDAV will be really good!

Showing 7 results.
Items 20
of 1