Sunday, April 6, 2014

Liferay Learning resources

Various resources which a person can use to learn Liferay

The best option is to go through the official documentation its available in multiple formats. Official documentation is a comprehensive resource for developers.
web / online - https://www.liferay.com/documentation/liferay-portal/6.2/user-guide
                      https://www.liferay.com/documentation/liferay-portal/6.2/development

print - http://www.lulu.com/shop/rich-sezov/using-liferay-portal-61/paperback/product-21014853.html

downloadable pdf  - new version pdf will be released soon

Liferay also offers trainings in different modules, person can enroll for these trainings as per their requirements.
I would recommend undergoing  Mastering Liferay fundamentals before taking on developing for Liferay platform course

https://www.liferay.com/services/training

There are many videos available on youtube, search with keyword + liferay
Video of Liferay web events along with slides are available at - https://www.liferay.com/events/web-events

If you are stuck with any issue or need expert help , community resources like wiki, blog forum are best place to seek pointers - https://www.liferay.com/community/welcome/dashboard

Books from independent authors are also available in print and ebook format.

Also join various active Liferay user group where people meet regularly and share their knowledge.

Liferay CE vs EE

It has always been a big question which edition of Liferay should someone use and what are the difference between the various edition.

Liferay offers Liferay portal in two edition the first one is the community version  popularly called as CE and the other as enterprise edition or EE

In my personal opinion CE should be used in project which are not mission critical and have a limited scope.
Enterprise edition comes with a gamete of functionality and is much robust than CE
The enterprise edition comes with Liferay's product support which is offered through the enterprise subscription.

https://www.liferay.com/products/liferay-portal/ee/overview

Check the comparison Tab

FAQ

Q: Is it possible to move my existing solution from Liferay CE to EE
A: Yes, its possible to move from CE to EE however the custom components and other custom functionality need to be rebuild / recompiled using the EE sdk.

Q: Is it possible to develop a new project on CE and then move to EE
A: It is almost like moving from CE to EE and its not a good approach as migration effort is required alongwith manual effort of rebuilding the apps / custom functionality with EE sdk.
EE edition and Liferay developer studio for EE (LDS ) is available to free 30 day trial.

Q:What kind of support Liferay offers
A: https://www.liferay.com/products/liferay-portal/ee/service-levels

Thursday, October 24, 2013

Sunday, September 2, 2012

What`s New in Liferay


I will keep updating this post with new feature and apps in Liferay.

Liferay Sync:  Explanation + details, I will update them this week

Marketplace:

Sunday, March 11, 2012

Liferay Sync

Share files by Simple drag and drop. LR Sync will work with version 6.1
I would be sharing the ease of usage and performance report soon .

Official link -- Click Here to go to LR Sync page
Download the installer -- Click Here
You need to be registered to download , registration takes few minutes.

Run the installer file





Set the install path




















Run Liferay Sync on completion




















Fill in the required settings















Edit general , site and account settings






















Installation creates a desktop shortcut and LR-sync minimizes to tray




Sunday, January 8, 2012

How to change Favicon in Liferay

Going through LinkedIn I found out a review requested for website based on LR ,it had the default Favicon showing in the address bar of the browser and I instantly decided to write this post Its really simple to change the Favicon and site logo
using the control Panel change default site logo :
1. Login as admin
2. Go to control Panel
3. Click portal setting under portal section (left hand side bar)
4. Under miscellaneous heading click display setting (right hand side bar) make sure checkbox with label Allow community administrators to use their own logo? -- is checked
5. Click on change appearing below the logo
6. Browse and upload image (good to use .png image)
7. Click save
8 . Click save under right hand side bar For updating for a particular click 1> mange on top bar 2> Setting 3>Click on logo 4>Upload image 5>Save Use

Below is the link of Wiki Post on LR website --
VM file of Theme or portal-ext.properties to change Favicon
Click here for Wiki Post @ LR to change Favicon

Monday, October 10, 2011

Some CSS tips ,quick reference for various components

CSS Changes for updating look and feel of various components
Ver 5.2.X
for changes in portlet title change class="portlet-title"

I will add more over the weekend , please share your learning as comments 

Thursday, July 14, 2011

Liferay quick start a wonderful guide for beginners

Liferay has got a new post for beginners ,interesting post I thought of sharing it with all .

Quick start guide

Thursday, March 3, 2011

Sucessful Integrations with different tools and services

List of few tools and services which I have successfully integrated or have come to know.

CAS -- The Central Authentication Service the most widely used tool works with almost all version of LR ,very less issues while integrating.
Read on -- CAS

Ease of configuration & integration with Liferay --- 4/5
Performance -------------------------------------- 4/5


SOLR -- features include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, and rich document (e.g., Word, PDF) handling. Solr is highly scalable, providing distributed search and index replication, and it powers the search and navigation features of many of the world's largest internet sites.
Read on --SOLR

Ease of configuration & integration with Liferay ---- 2.5/5
Performance -------------------------------------- 4/5

Terracotta -- Ehcache boost application performance, enhance operational control, and easily scale to large virtualized environments and clouds.
Read On

Ease of configuration & integration with Liferay --- 2.5/5
Performance -------------------------------------- 4/5

LDAP -- All open source LDAP work fairly good ,coolest features in LR 6.0
Read On Open LDAP

NTLM Works perfectly fine

Facebook Works perfectly however make sure to do cross browser testing use at least LR ver6.0.5

PayPal Works with almost all versions of Liferay

Alfresco It has been used in many project ,I am awaiting more feedback to comment on capabilities on different version
Read on Alfresco

Monday, February 28, 2011

Book I am reading currently

Hi currently I am going through Liferay User Interface Development book

This book is amongst few compact reference resources of LR UI development, the book has a lot of information and will be very helpful in deciding which UI technology to use as per your specification .It has good section on theme,template,layout ,portlet UI ,use of alloy etc.


You can get a free chapter for advanced theme

Friday, February 4, 2011

Liferay based tech stack

I would like to discuss some Liferay Portal project tech stacks

I will clean the post in coming days :) ,Please share your tech stack as comments

1> Liferay Portal ,defaults CMS , Spring Portlet MVC for custom portlets ,MYSql Databse ,Jqery /JS ,CAS for authentication ,open LDAP.
I believe this stack is most readily used stack with minor changes.

2>Liferay Portal , Default CMS ,Struts MVC , MYSql database ,NTLM authentication ,Open LDAP.

3>Liferay Portal ,Alfresco , Spring Portlet MVC

4> Liferay Portal +Vaadin

Friday, December 31, 2010

Velocity Templating and its application in liferay

Velocity is my favorite template language which enables me to get the static pages up in no time with rich content(thanks to the document and image library).
I would like to share some of its fantastic capabilities.
Web content in Liferay is controlled by template scrip file,Velocity can be used for simple transformations in web content/journal portlets which detrmines how the content will be displayed on the page.Velocity can also be utlilized for making custom changes in vm files of Liferay themes.
GUI requirements determine the degree of customization required in VM templates. I have observed cases where a lot of coding effort can be reduced if velocity is used in optimally.

In liferay portal services can also be used with help of velocity in Liferay themes(VM templates)or templates of Articles (web content portlet).
Lifeay provides service locator to use the services with velocity.
TO enable access of services in liferay make following changes in portal-ext.properties
# Input a comma delimited list of variables which are restricted from the
# context in Velocity based Journal templates.
#
journal.template.velocity.restricted.variables=serviceLocator
remove serviceLocator in property it will now look as
journal.template.velocity.restricted.variables=


example --- (a complete example is available in my earlier post named quick tips)
#set ($userLocalService = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#set ($roleLocalService = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))

----------------------------------------------------------
Objects that can be used OOB in VM files
$user, $company, $layout, and $themeDisplay
example ---> $user.getFirstName()

themeDisplay,company,user,realUser,layout,layouts,plid,layoutTypePortlet,scopeGroupId,permissionChecker,locale,timeZone,theme,colorScheme,portletDisplay,

other variable you can from VelocityVariables.java class from source code
com.liferay.portal.velocity.VelocityVariables

Check null -- #if ($validator.isNotNull($variable))

Example
Now if you have a page which displays news article for a person with his name and a custom welcome message you can get his name in through web content portlet , template along with his name which can be dropped at top of page so no need to write a java portlet just use velocity
< b > Welcome to news page< /b >
$user.getFirstName()
< tags> news begins

Velocity references
Official documentation
Advanced concepts
Quick Learning
My Favourite reference link

Tuesday, October 26, 2010

Hardware Requirements and few examples of possible combinations

There have been many post in Liferay forum around Hardware Requirements
I will share few successful implementation I am aware of and minimum requirements for server and developer sandboxes.
I will update this post every time I come across new config so watch out this space for newer Hardware configs :)

The best resources for server sizing and hardware requirements are Liferay whitepaper, choose the one which is relevant to your version
LPEE 6.2 Deployment Checklist
Liferay Portal 6.2 Performance Whitepaper
https://www.liferay.com/documentation/additional-resources/whitepapers

There can be unlimited combination so please leave your requirements and I will try to device optimal hardware requirements for you as per my learning's :D

General thumb rule before finalizing the architecture and server sizing / hardware configuration is

1. Gather requirements for
a. Total number of users
b. Concurrent users  & maximum logged in users expected at one time
c. Operation expected WCM scenario, Content reading, content access, transaction / login, search etc
d. High availability required
e. Clustering required (Need to request for a cluster key)

Based on the inputs you can reach a rough sizing estimate using the performance whitepaper

make sure when you are taking vCPU into consideration use 2 vCPU = 1 physical core.

Again hardware will also depend on the application being built on top of Liferay so if its a page with login and WCM etc it will handle smaller number of user than plain text age and you need to prorate and adjust the users based on the application and OOB components used from Liferay.

Make sure in a HA architecture the nodes / cluster node are in same network / DC

Liferay portal 6.2

 Production Box
RAM --Min : 16 GB , Good to have 32 - 64 GB RAM
Processor - Min 4 CPU (I1 quad core processor) , Good to have 8 CPU ( 2 quad core processor)
example - 2 X Intel core 2 Quad X5677 3.46GHz, 12MB L2 cache

Liferay portal 6.1 and below :
Developer Box
Minimal -- 1 GB RAM , processor with clocks more than 2.X Ghz for example celeron processor will suffice if you provide 2 GB RAM and Processor 2.6GHz
if you are working with LR portal 5.1X below you can use processor with lower clock.

In scenarios where developers have a complete sandbox setup on their local machine my recommendation is at least 2 GB RAM is used with dual core CPU @2.50GHz
(MySQL , eclipse , LR portal , Apache webserver +3rd party integration component

----------
For Testing /UAT / Staging environment
The number of nodes will depend on the load / traffic expected however its good to have Minimum of 2 portal nodes 2 authentication server nodes and a hot standby of DB

Minimal --
Liferay portal 1.5 GB RAM , dual core CPU @2.50GHz or more (per node)
------------
Production Environment
Some possible combination

1>
OS: Redhat Linux
Sever : Dell Power edge
CPU :1 quad core @2.5Ghz or 2 Dual core with no less clock
Ram :4GB

2>
Sever : Dell Power edge or Sunfire in case of Solaris
2X 2.0Ghz
quad core
8GB
Linux
--------------------------
For DB and third party servers

Sever : Dell Power edge or Sunfire in case of Solaris
4X1.6GHz
8Gb
Solaris

Monday, October 25, 2010

Liferay Installation Checklist

I wanted to share a checklist to follow after Liferay installation to minimize portal start up failures

1>Check your JAVA_HOME variable .It`s good to use JRE available in JDK bundle
Check for compatibility of JRE required for portal version being used

2>Check LIFERAY_HOME variable This folder is one folder higher than the location of the application server itself

3>Check database connection setting & verify database JDBC driver .jar

4>Check consistency of Liferay portal bundle and dependency jars .
corrupt or incompletely downloaded jars create issues hard to investigate

4b>Check consistency of The portal-ext.properties File verify changes made as per your environment

5>Check for folder permissions (mostly this issue come in Linux/UNIX or other open source OS)

Troubleshooting
a>If server does not start check for setenv.bat
{tomcat-home}/bin/setenv.bat and point JRE_HOME to folder where you installed Java. You setenv.bat haas following entries :
set "JRE_HOME=C:\Program Files\Java\jre6"
set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF8 -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"

b>Check for database availability
c> Cheksum jar /portal library

Thursday, October 21, 2010

Database connection settings

I have seen numerous post around database connection not working or portal server not starting properly due to the database connections not working properly.Many post including mine are available on Liferay forum for resolving the issue however I thought of making a checklist here for database connection settings.

Developer need to keep in mind that settings have been changing for every version in lower version till 5.1X DB setting were done in Root.xml , 5.2.X onwards all the setting entries are made in portal-ext.properties file
lets discuss the different version setting first.

Version 6.X and 5.2X have same config
put JDBC setting in portal-ext.properties
location : \\webapps\ROOT\WEB-INF\classes
< 6.X or 5.X>

copy your JDBC settings from portal.properties ---> ## JDBC section
get file from the downloaded source or tomcat setup or directly from SVN
SVN location : http://svn.liferay.com/repos/public/portal/trunk/portal-impl/src/portal.properties

username is : guest and password is : leave the password field blank

e.g.
# MySQL
#
#jdbc.default.driverClassName=com.mysql.jdbc.Driver
#jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
#jdbc.default.username=
#jdbc.default.password=

Liferay 5.1.X and lower versions

Make JDBC changes in Root.xml
ROOT.xml can be found in tomcat\conf\Catalina\localhost\ROOT.xml

e.g. Sample setting get exact setting from portal.properties file
MySQL

Resource
name="jdbc/LiferayPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8"
username=""
password=""
maxActive="20"


Set properties for schema
## Schema
##

#
# Set this to true to automatically create tables and populate with default
# data if the database is empty.
#
schema.run.enabled=true

#
# Set this to to true to populate with the minimal amount of data. Set this
# to false to populate with a larger amount of sample data.
#
schema.run.minimal=true


Checklist:
1> Make sure you have copied your database driver support
e.g. for oracle copy ojdbc14.jar to \\lib\ext

2> Test your DB availability and creation of schema
Schema name should match the schema name mentioned in jdbc.default.url

3>Check that you have correct version of driver support jar and is compatible with your your installation I have seen number of user facing problem due to incompatible version.

4> Check for proper character set settings for your database

Detailed Learning resource official documentation