Introduction
Note: References to liferay.com/marketplace will be available once the Marketplace is generally available. This tutorial is meant to give the community an idea of how users and developers can use Marketplace and will be updated as the Marketplace evolves.
It is very important to Liferay that we embrace and support the community. In line with our vision, the Marketplace will allow anyone to buy and sell Liferay modules as well as advertise jobs or find resources for working on the platform. It will be the premier destination for solutions built on the Liferay Platform, enabling Liferay customers, partners, ISVs, and the wider community to easily publish, share, and monetize these applications.
What is Liferay Marketplace
Liferay aims to facilitate the development and sale of third party Liferay applications and to make it easy for end users to find, purchase, download, and install these applications.
How to Access the Marketplace
There are two ways to access Liferay Marketplace.

- From within the portal application Control Panel

How Many Liferay Users Can I Reach through the Marketplace?
Not only will Marketplace give Liferay developers exposure to all the users on Liferay.com, but it will also reach users who may not be on Liferay.com and accessing the Marketplace in-product. Liferay Marketplace is the defacto center of Liferay Portal application distribution and e-commerce.
Liferay Platform Overview
Liferay is the world's leading open source enterprise portal solution using the latest in Java and Web 2.0 technologies. In development since 2000, the award-winning Liferay Portal is one of the most widely deployed portal technologies on the market, with an estimated 250,000 deployments worldwide.
Description of Major Liferay Features
More than a portal, Liferay is a platform for creating effective business applications and solutions. It offers a robust feature set, impressive scalability, time-saving development tools, support for over 30 languages, and a flexible, scalable architecture that is open source developed and enterprise refined. Notable differentiators include:
- Compatible with all major databases, operating systems, and app servers
- Hierarchical system of communities and organizations
- Granular, delegable permissioning system
- Highly scalable, supporting more than 5,000 concurrent transactions (33,000 simultaneous users) per server
- Real-world performance of millions of page views and 1.3 million users
- Supports 22 languages, out-of-the-box
- Award-winning user interface
- More information at: http://www.liferay.com/products/liferay-portal/features/portal
Integration of External Services and Products
Liferay Portal is an open source project that uses the LGPL open source license. This is the GPL license you know and love with one important exception: Liferay can be "linked" to software that is not open source. As long as you use Liferay's extension points for your custom code, you don't have to release your code as open source if you don't wish to. You can keep it, sell it, or do whatever you want with it; it's yours. If, however, you make a change to Liferay itself by modifying Liferay's source code and want to redistribute the product thereafter, then you need to contribute that change back to Liferay. So you get an important exception with the LGPL: You can still use Liferay as a base for your own product and either open source the result or sell it commercially if you wish. Or, if you want to change Liferay directly, you can contribute to the open source project. It's entirely up to you. You can download the open source version of Liferay Portal for free from Liferay's web site.
Alternatively, Liferay sells an Enterprise Edition of Liferay Portal. This is no way limits the availability of your Marketplace application. Simply define which version of Liferay Portal your application is compatible with. It's also worth noting that a portlet application can be compatible on both the free Community Edition (CE) and the commercial Enterprise Edition (EE) of Liferay Portal.
Liferay provides a toolkit for developing portlet applications that may integrate with 3rd-party services and products. This toolkit comes in the form of an Eclipse-based IDE. Liferay IDE is for development targeted for Liferay Portal CE, and Liferay Developer Studio is for development targeting Liferay Portal EE.
Your First App
Let's get started on your first Liferay portlet application!
Develop a Sample Portlet Application
Let's first make a new portlet plugin using
Liferay Developer Studio. After downloading/installing Liferay Developer Studio, and configuring it with a Liferay 6.1 Runtime, go to the plugin menu and create a "New Liferay Project". We'll call ours "MyNewPortlet". Click finish.
Make some simple modifications to the JSP (view.jsp) that is displayed. We'll simply add another line of text. Save.
Deploy and add to your configured development test server. You can use the Ant task window/menu in Eclipse to run the "ant deploy" command. Double-clicking the buildfile for your plugin will by default issue the "ant deploy" command. This will build the WAR file and place a copy in the Auto Deploy directory, finally deploying the plugin to your Liferay server.
From the log (catalina.out for Tomcat):
Next, you can go to the "Add" menu to place it on a page and test it out:
Since my portlet app looks great, after running my app through some testing, I can upload the WAR file and fill in the fields for all of the application's meta data.
Establishing and Linking A Marketplace Account
Your existing liferay.com user login is used when accessing the Marketplace. Before you upload or download your first app, you must agree to the Marketplace Terms of Use agreement. Additionally, if you are going to access the Marketplace from within Liferay (e.g. through the Control Panel), you must link your local Liferay account (Typically an administrator account) to the account on liferay.com that will be used for accessing the Marketplace. This is required so that when accessing the Marketplace from within Liferay, you will have the same visibility and access that you would if you were accessing the Marketplace from outside of Liferay. Apps that you have purchased and any associated licenses will be accessible from within Liferay, once you establish this link.
When accessing Marketplace from within Liferay's Control Panel, you will see a screen similar to this:

Provide your liferay.com credentials (username and password) to access Marketplace content.
Creating and Uploading (Publishing) Packages
Once you are finished creating and polishing your app, you're ready to upload! Visit your Marketplace Profile page, and click on the "Upload an App" tab. You are presented with the publishing screen:

With the new Liferay Marketplace publishing tool, there is specific information requested:
- Ability to combine WARs - When uploading an app, your individual plugins (WAR files) are automatically combined into a Liferay App.
- Title - The main title of your app. Do not include versions in the title unless this is some kind of sequel. e.g. "Angry Birds 2: More Anger".
- Subtitle: A short (one-liner) description of your app.
- Description: A longer (1 or 2 paragraph) description, displayed when a user is viewing your app.
- Tags: arbitrary list of strings used to create a tag cloud on the Marketplace front page.
- Category Specification - You specify which category your app belongs in (for example, Utility, Social, Communication, Productivity, and more).
- Support Information - You specify who supports your app, and how support is contacted. Typically this is a pointer to a website.
- Compatibility - You specify which Liferay versions your app is compatible with (See section on Compatibility for more detail).
- Price - You specify the price of your app.
- Corporate Identity - When uploading in the context of a company, your app will appear to be authored by a company, rather than an individual, and is reflected on the corporate profile page for your company.
Fill in the required information, and click Preview to see an example listing of your app, and Confirm the upload once you are satisfied. Congratulations, you've created an app on the Liferay Marketplace!
Developing For Marketplace
This section gives an overview of the process of creating apps for the Liferay Marketplace. The next sections shows you how to upload (publish) your apps.
What Makes A Good Liferay App for Marketplace?
Other than the obvious -- A good idea, focus, determination and lots of luck -- the characteristics of a good Liferay App for Marketplace are many.
- Useful - A great app is one that people will use because they need it. Connectors and adapters are in high demand, as well as other integration plugins
- Bug-Free - What good is an app with great features if it has lots of errors? Testing and getting feedback is key to avoiding negative reviews. Understandably, every app will have room to improve, but getting feedback early and often will give you the best chance of success.
A 2011 article from mashable.com interviews some of the most successful app developers on iTunes. They had the most downloaded and highest-grossing apps. Here is an outline of what they said made a successful app:
- Customize for the Device - In this case, the device is based on the Liferay Platform, which can be run on hundreds of combinations of hardware and software, including mobile devices. Think about your target audience, and code accordingly.
- See the Potential for the Platform - Liferay has loads of features, and it is important that you take them into consideration as much as possible when building your app. Building a collaboration tool? Check out Liferay's Document Library, and use it to its fullest potential. Managing forums? Don't re-invent the wheel, but also do not feel limited by exactly what the Liferay Message Boards can do. Experiment!
- Make It Personal - Make apps that you would personally benefit from, and you'll have immediate access to feedback from users that would like your app - YOU!
- Get Feedback Early On - Get your app in front of others early and often.
- Think Big - Appeal to the widest possible audience to maximize the success (even for free apps!)
- Start Free - Don't limit your audience by charging money, especially if you're not sure there's demand. It's nice to profit, but when trying to establish a successful product, giving it away is sure to attract more people.
- Listen to your Customers - Make sure subsequent versions address what current users desire, rather than what you think it needs.
- Delight the User - Make your app a satisfier, which means that when it works well, people praise, and when it doesn't work well, people forget. A dissatisfier is something that when it works well, people are silent, and when it doesn't, people complain (often loudly)
- Have a Vision - Know what you are trying to achieve, and don't over-reach or let the scope creep too widely before your first release.
- Never Give Up - Have patience, tenacity, and persistence!
What Kinds of Apps Can I Create?
There are many types of apps you can create, limited to your own imagination. Liferay Apps consist of a combination of one or more of the basic Liferay plugin types: Portlets, Hooks, Themes, Layout Templates, Webs, etc. In addition, the features of Liferay allow one to create apps that consist of OpenSocial gadgets, or simple web-based widgets (HTML, JavaScript, CSS) that access Liferay Remote Web Services.
Compatibility And Versioning
- Backward compatibility - If a plugin works with a specific CE GA release, Liferay will guarantee its compatibility with future maintenance releases. In other words, Liferay remains backward compatible when new releases are made within a specific minor release family. So for example, if you create a plugin that works with Liferay 6.1, it will continue to work in 6.0.9, and so forth. It will not be guaranteed to work in 6.2 (though we make every effort to reduce or eliminate upgrade pain by providing compatibility as much as possible).
- No forward compatibility - No guarantee that a plugin which works with a particular maintenance release will work with a previous maintenance release. This means that a given Liferay release is not compatible with future liferay releases (we cannot predict the future).
Developing and Testing on Liferay
The best way to develop and test your Liferay App is to use the Liferay IDE or Liferay Developer Studio. Liferay IDE is meant to be used with Liferay Portal CE, and Liferay Developer Studio (LDS) is meant to be used with Liferay Portal EE. LDS is more full featured, with more wizards, and includes the Liferay Portal Tomcat bundle and Liferay Plugins SDK, making it the easiest and fastest way to get started on creating your Liferay App! More information about the differences of IDE vs. Developer Studio.
Testing on Multiple App Servers, Databases
Liferay IDE and Liferay Developer Studio (LDS) are configured out-of-the-box to run on Tomcat and the embedded HSQL database. Additionally, LDS has support for Websphere Application Server development and deployment. Both environments will produce the WAR file for your Liferay App, located in the "dist" directory of your Liferay Plugins SDK after a build.

If you would like to test your Liferay App against a different database, or application server, you can:
- Take the WAR file of your Liferay App and deploy it to your Liferay + [you app server] + [your database] setup, or
- Configure your current development environment to connect to a different database and application server. For more details on configuring Liferay Portal to different databases and application servers, please see the Portal Administrator's Guide in the "Initial Setup" section, or the "Database Setup".
Requirements for Publishing Apps
Above and beyond the basics of creating apps in the form of Liferay Plugins, there are additional considerations to take into account when designing and publishing apps.
How Much Should I Charge?
Developers and/or the organizations they are working with will need to figure out the best price point for their application. Liferay Marketplace has a royalty model of 20% to Liferay, 80% to you or your organization. Of course, for free apps, 20% of zero is still zero! Guidelines on pricing are difficult to give, given the number and type of different apps one can create. You can look at other apps or solutions in a similar area to get an idea on pricing.
What versions of Liferay should I target?
Of course, targeting the widest possible range of versions will ensure you a larger audience, however there are certain features in specific versions of Liferay that you may wish to take advantage of. When uploading apps, you can specify which versions your app is compatible with, and you can have multiple versions of your app designed for different versions of the Liferay Platform.
Note that apps on the Liferay Marketplace must be designed for Liferay 6.1 and later. That's not to say that they will not work with prior versions, however only Liferay 6.1 has support for installing apps directly from the Marketplace. If you wish to use an app for an earlier version, there are specific instructions for how to download the app outside of Liferay, and manually deploy it to earlier versions.
What kinds of validation are performed by Liferay?
Liferay will ensure that apps meet a minimum set of requirements, such as
- Running basic anti-virus checks
- Ensuring titles, descriptions, images, etc. are appropriate
- Basic sanity checking of functionality (e.g. deployment testing, etc)
Liferay does not do source code reviews, and does not ask for your source code.
EE Certification
As an additional option for publishers, Liferay has created the EE Certification program. If you participate in this program, your app will go through more rigorous testing against the supported Liferay EE version your app is designed for. Additional checks and features include:
- All of the minimal checks done for all apps
- Additional Functional testing against the specified EE versions
- Guaranteed compatibility with all future maintainence release for that EE version
- Featured in the "EE Certified" section of Marketplace, along with an icon representing the app has been EE Certified
Maintaining and Updating Apps
Once your app is uploaded to the Marketplace and you start getting users, you may get bug reports, usability feedback, or want to upload new versions of your app with new features, bugfixes, etc.
User Feedback
Users can leave comments, reviews, and ratings for your app when viewing the app in Marketplace:

It is important to continually review this feedback. The more positive feedback, the better chance your app has of showing up in a "Top 10" list in the future!
How to upload new versions?
You have the ability to upload new versions of your app, and display the versions that are available. Visit your "My Marketplace" tab on your Profile page, and click "Update". You are presented with an "Add a Version" screen:
Fill in the required data, click Add, and you're done!
Tracking App Performance
Liferay Marketplaces provides data on how your app is doing in terms of the number of downloads, and revenue generated for your apps.
My Marketplace
My Marketplace is your management center for applications and assets that you are working on or have contributed, as well, those applications that you have purchased.
Reference Documentation
Visit the Marketplace Developer Community to find more information on reference documentation, user guides, and additional breaking news regarding the Marketplace!