Sunday, November 16, 2014

Liferay Development with Liferay IDE Quick Notes


Liferay offers many development tools for develop liferay applications. Liferay not forcing to use one technology its have many choices .

We can use popular IDE tools like Eclipse, Net Beans, or IntelliJ Idea and also we can simply use text editors such as Notepad, Vim, or Emacs.

We have may choices for liferay developer to start developing liferay application the following are different ways to start development.

Develop Plugins with Liferay IDE

Develop Plugins with Liferay Plugins SDK+ANT

Develop Plugins Using MAVEN

Develop Plugins with Liferay Developer Studio

The suggestible and convenient to develop liferay plugins using Liferay IDE with Eclipse and it have many features and GUI based interface to create liferay Plugin applications.

We also can use Plugins SDK and it is based on ANT command line interface to create liferay Plugin applications and we can use any editor to write or modify code.

If we have maven experience then its recommended to use MAVEN and liferay have plenty of Liferay archetypes it makes you can create and develop different Plugin applications.

Develop Liferay Plugin Applications with Liferay IDE

Liferay IDE is extension or plugins for eclipse IDE to develop liferay Plugin applications such as portlet,hook, theme,layout, web and ext.

Required Things for Development

JDK
Eclipse Latest version
Liferay IDE
Liferay Plugins SDK
Liferay Portal Server
ANT(optional)
MySQL Data Base(Optional)

JDK/JRE

Liferay portal is Java based portal so first we need to install JDK .we need to set important environment variables such as JAVA_HOME and need to set Java path variable. We need Java 6.0 JRE or greater.

Eclipse IDE:

Eclipse is IDE for rapid development of applications and which have many features with GUI based interface to create and develop different JAVA/J2EE applications.

Liferay need latest versions of eclipse for liferay plugins development and the recommended versions are Eclipse Kepler Java EE (4.3.x),Eclipse Juno Java EE (4.2.x),Eclipse Indigo Java EE (3.7.x)

You can download Eclipse from http://eclipse.org site or you can download from liferay.com



Note:

If you download eclipse from Liferay.com then Liferay IDE will be bundled with Eclipse so that we need not to install Liferay IDE again.

Liferay IDE

Liferay IDE is extension for eclipse to develop liferay plugins applications. Its pure GUI based interface that makes easy and rapid development of liferay applications. We must install Liferay IDE with Eclipse so that we can use Liferay IDE capabilities.

We have many ways to install Liferay IDE with Eclipse.


Installing Liferay IDE Bundled with Eclipse
Installing Liferay IDE from the Update Site onto Eclipse
Installing Liferay IDE from an Archive File onto Eclipse

Installing Liferay IDE Bundled with Eclipse 
 
Liferay provided Liferay IDE bundled with Eclipse. We can download Liferay IDE+Eclipse Bundle from liferay website. In this bundle Liferay IDE already installed in Eclipse and these will be available for Latest eclipse versions.


Once you downloaded then extract zip file then you can see eclipse directory. open directory and click eclipse icon then ellipse will be started.

Once eclipse started then Select Window -->Open Perspective -->Other -->Liferay to use Liferay IDE.

Once liferay IDE installed then you can see Liferay Related Icons Header part of eclipse.

Installing Liferay IDE from the Update Site onto Eclipse

We can install different eclipse plugins using Update Site Method same we can also Install Liferay IDE extension/Plugin from Update Site Method and this is very common method in eclipse.


Start Eclipse. 
 
When Eclipse opens, go to Help -->Install New Software.
 
In the Work with field, paste in the Liferay IDE update site URL(http://releases.liferay.com/tools/ide/latest/stable/) and press Enter. 
 
Make sure the Liferay IDE features are selected, then click Next. 
 
After calculating dependencies, click Next, accept the license agreement, and click Finish to complete the installation. 
 
Restart Eclipse to verify that Liferay IDE is properly installed. 
 
Select Window -->Open Perspective-->Other-->Liferay to use Liferay IDE.


Installing Liferay IDE from an Archive File onto Eclipse(Zip)

Liferay IDE we can download as Archive File(Zip) from Liferay IDE download page. Once we downloaded then we can install in eclipse IDE.

Go to Liferay IDE download page select Liferay IDE 2.2.0-ga1 Archived Update-site from Select Option List and click on download button.

Start Eclipse and go to Help-->Install New Software

In the Add Site dialog, click the Archive button and browse to the location of the downloaded Liferay IDE archive file. 
 
Make sure the Liferay IDE features are selected, then click Next. 
 
After calculating dependencies, click Next, accept the license agreement, and click Finish to complete the installation 
 
Restart Eclipse to verify that Liferay IDE is properly installed. 
 
Select Window-->Open Perspective-->Other-->Liferay to use Liferay IDE.

Liferay Plugins SDK

Liferay Plugins SDK is set of libraries, files and templates to develop Liferay plugins applications such as portlet,theme,layout,web and ext.

Plugins SDK provides ANT based build system and it consist set of commands i.e. ANT targets to create and deploy liferay applications into liferay portal server.

It will provide default templates for each Plugin so that we can create liferay project with required files and its configuration so that we can ready with sample project in quick time.

Plugins SDK alone we can start development of liferay applications but for easy development we will use Plugins SDK with Liferay IDE so that developer can get more flexibility in development of liferay applications.

To use Plugins SDK with Liferay IDE we need to configure Liferay Plugins SDK with Liferay IDE.

Download Liferay Plugins SDK from liferay Download Page and also make sure which version of Plugins SDK you will use. Go to download page and select Plugins SDK option then click on download.


Once you downloaded Plugins SDK then extract it in any of your desired location.

In Eclipse, open the Installed Plugin SDK dialog box–from your Windows drop down menu, click Preferences → Liferay → Installed Plugin SDK.

Click Add to bring up the Add SDK Dialog.

Browse to your Plugins SDK Directory where you extracted before. The default name is the directory name; you can change it if you want.

Select OK and verify that your SDK was added to the list of Installed Liferay Plugin SDK.

Plugins SDK Directory Structure.



Liferay Portal Server

Liferay Portal Server is actual environment to run liferay Plugin applications. Liferay Portal Run time come up with different application servers such as tomcat,jboss,glashfish, jetty, geromino, JOnAS and resin.

Liferay provided these run time bundle with different server so that we can use any one based on developer choice.

Liferay Server Bundle Consist Application server and Deployed Liferay Portal Application. When we observed server deployment directory(for tomcat/webapps) we can see deployed Liferay Portal application with name ROOT.

Setting Liferay portal Server Run Time In Liferay IDE+Eclipse.

Download Liferay Portal Server with Tomcat Bundle. And extract in your desired location


Eclipse Window → Preferences → Server → Runtime Environments.

Click Add to add a new Liferay runtime; find Liferay v6.2 (Tomcat 7) under the Liferay, Inc. category and click Next.

Click Browse and select your liferay-portal-6.2.x/tomcat-7.x directory.

Select Run Time JRE
Click Finish; you should see your Liferay portal runtime listed in Preferences → Server → Runtime Environments.
Click OK to save your runtime preferences


Easy Steps to Setting Up Liferay Development Environment With Liferay IDE


Download JDK 1.6 or later versions and install in your machine and set requires environment variables such JAVA_HOME and path variable.


Now Create One Directory Called WorkSpace


Now copy downloaded Liferay IDE+Eclipse Bundle into WorkSpace then extract into same place (after extraction you find directory name eclipse).


Copy Downloaded Liferay Portal Server Bundle Archive file into WorkSpace then extract in same place then change directory name liferay-portal-tomcat-6.2-ce-ga2 to bundles.


Copy Downloaded Plugins SDK archive file into WorkSpace then extract into same place(liferay-plugins-sdk-6.2) then change directory name from liferay-plugins-sdk-6.2 to plugins


Finally our Directory Structure As Follows


WorkSpace
            bundles(liferay-portal-tomcat-6.2-ce-ga2)
            plugins(liferay-plugins-sdk-6.2)
            eclipse


Go to eclipse directory and click on eclipse icon then eclipse will be started now select WorkSpace as default workspace in eclipse dialog.


Install Liferay IDE simply Window-->Open Perspective-->Other-->Liferay to use Liferay IDE


Install Plugins SDK by Window-->Preferences → Liferay → Installed Plugin SDK in the dialog select plugins directory i.e(WorkSpace-->plugins)

Setup Liferay Portal Service Run time by WindowPreferencesServerRuntime Environments.


Click Add to add a new Liferay runtime; find Liferay v6.2 (Tomcat 7) under the Liferay, Inc. category and click Next then Click Browse and select your bundles/tomcat-7.x directory.


In the Eclipse you can find Server view there you can launch/Start server by click on start option then portal will be started after few minutes for first time.


Access portal with http://localhost:8080 then follows steps to complete configurations.


Now you start develop Liferay Plugins Applications and you can deploy into portal server.


Note:

Liferay default will use HSQL database it already available with Portal Server bundle and it will be start along with server startup.

Liferay IDE will use ANT or MAVEN to deploy liferay Plugin applications. default one is ANT.

Eclipse IDE already have ANT tool so we need not to install it. If you want change it you can install ANT and configure ANT in eclipse.

Liferay Plugin portlet Development Please follow below link


http://www.liferaysavvy.com/2014/04/liferay-mvc-portlet-development.html


Liferay Development Environment With Liferay IDE


http://www.liferaysavvy.com/2013/12/liferay-62-portal-development.html


Whats is Plugins SDK?


Plugins SDK is liferay applications development kit consist of libraries,files and Plugin templates. with this we can create and develop liferay plugins.
Plugins SDK provided command bases user interface i.e. ANT command and its targets to create and develop liferay plugins.


What is Portal Server Run Time?


Liferay Portal Run time is run time environment run liferay Plugin application and it consist of application server with deployed liferay portal along with HSQL database and one deployment directory i.e deploy.
Liferay Portal Run time come up with different Application server developer can choose any one among those(tomcat,jboss, glashfish, jetty,geromino, JOnAS and resin).
The portal run time available as bundle and no more configuration is required we can directly start server and access liferay portal.


What is Liferay IDE?


Liferay IDE extension/Plugin for eclipse to support Liferay Plugin Application Development.
Liferay IDE provides GUI based interfaces and it makes easy and fast development.


What are the minimum Artifacts required for Liferay Application Development?


Liferay Portal Server Bundle
JRE/JDK
Liferay Plugins SDK
ANT
One Text Editor


What are development tools for liferay plugins Development?


Liferay IDE
Liferay Developer Studio
Liferay Plugins SDK+ANT+Editor
MAVEN+Liferay MAVEN Artifacts


What are the basic Artifact when we develop with Liferay IDE?


Eclipse+Liferay IDE bundle
Plugins SDK
Liferay Portal Server Bundle
JDK/JRE
ANT(optional)


What is default database in liferay?


Liferay use HSQL as default database and this will be bundled with Liferay Portal Server Bundle.


Where we need to configure liferay server information?


We will use build.properties file available in Plugins SDK but we should not modify these properties so we need to clone build.properties file and change name as build.UserName.properties then modify the configurations


Can i modify build.properties file directly?


Yes you can modify but its not recommended process instead of that simply clone file in same location and change name as build.userName.properties


If suppose system user Name is meeraprince then what is the name of cloned properties file?


build.meeraprince.properties


What is server configuration in builld.userName.properties file for tomcat?

app.server.type = tomcat
app.server.parent.dir = /opt/LiferayWorkSpace62/bundles
app.server.tomcat.dir =${app.server.parent.dir}/tomcat-7.0.42
app.server.tomcat.deploy.dir =${app.server.parent.dir}/tomcat-7.0.42/webapps
app.server.tomcat.lib.global.dir =${app.server.parent.dir}/tomcat-7.0.42/lib/ext
app.server.tomcat.portal.dir =${app.server.parent.dir}/tomcat-7.0.42/webapps/ROOT


where is the hot/auto deployment directory?


The directory name is deploy which is available in liferay portal server run time bundle.
Example: liferay-portal-6.2-ce-ga2/deploy or bundles/deploy


Can i change hot/auto deployment directory location?


Yes you can change but you need to configure in build.username.properties with below property.
app.server.parent.dir = /opt/WorkSpace/bundles
auto.deploy.dir = ${app.server.parent.dir}/deploy


What is app.server.parent.dir ?


app.server.parent.dir is directory where portal server available
example: in our case tomcat7.x server available in the directory WorkSpace/bundles
Note: these directory is your choice but make sure portal server should be available in specified location .please provide fully qualified path.


What is Liferay Home?


Liferay Home directory and app.server.parent.dir are same where liferay portal servers are placed.


How can I change liferay database configurations?


Liferay Data base configurations are placed in portal-ext.properties file and this file should be placed on Liferay Home/ app.server.parent.dir directory.Liferay Support Many Databases so we can configure any one that specified by Liferay.


What are the databased supported by liferay?


db2,derby,hypersonic,ingres,mysql,oracle,postgresql,sqlserver,sybase


Suppose my database Mysql then how could configure in Liferay?


We need to configure Mysql database connection settings in portal-ext.properties with following properties and this file should be available in Liferay Home/ app.server.parent.dir directory.
# 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=


Note:
When we change database then we need to add respective jdbc implementation jar file in sever global lib directory. For MySQL we can find mysql.jar file. Fortunately liferay already added mysql.jar file in server global lib directory.


What is Server Global lib directory?


Server global lib directory consist of all jar files those are required by applications which are deployed in server. When we place any jar file in server global lib directory then it will be available to all applications. For tomcat tomcat-7.0.42/lib is server global lib directory.


What is liferay portal global lib directory?


Liferay portal global directory consist of all jar files which is used by liferay portal and all liferay deployed Plugin applications. If any library jar file placed in liferay global lib directory then it will be accessible to liferay portal and all Plugin applications. This directory name is ext which is sub directory of tomcat server lib directory that is /tomcat-7.0.42/lib/ext


If my data base then how can configure it in Liferay?


Liferay Data base configurations are placed in portal-ext.properties file and this file should be placed on Liferay Home/ app.server.parent.dir directory. The following are the Oracle Database connection properties.
# Oracle
jdbc.default.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.default.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.default.username=lportal
jdbc.default.password=lportal

Note:
Here we need to add oracle jdbc implementation ojdbc6.jar file in server global lib directory


What is portal-setup-wizard.properties?


portal-setup-wizard.properties file is properties file this will be created when we start liferay portal for first time.
When we access liferay portal for first time we will get some configuration pages such as admin user registration and liferay database configurations and all these configuration will be stored in portal-setup-wizard.properties.


Where portal-setup-wizard.properties file will be created?


portal-setup-wizard.properties will be created in Liferay Home/ app.server.parent.dir directory
Example properites stored in portal-setup-wizard.properties
admin.email.from.name=Test Test
liferay.home=/opt/LiferayWorkSpace62/bundles
admin.email.from.address=test@liferay.com
setup.wizard.enabled=false


How many places can I configure liferay database connection details?


We can use portal-setup-wizard.properties or portal-ext.properties and make sure both should be available in Liferay Home/ app.server.parent.dir.
portal-setup-wizard.properties will be created automatically by liferay when we access liferay portal first time but portal-ext.properties we need create to override existed portal properties.


Is this mandatory portal-ext.properties file should be in Liferay Home/ app.server.parent.dir directory?


No. We can also placed portal-ext.properties in portal classes directory i.e. /tomcat-7.0.42/webapps/ROOT/WEB-INF/classes.
But use Liferay Home/ app.server.parent.dir is best practice to place portal-ext.properties file.


If place portal-ext.properties all above three places then what could be the my configuration?


Liferay will finally read the properties from Liferay Home/ portal-ext.properties.


How plugins are packaged?


All liferay plugins will be packaged as .WAR file and these war files places on dist directory it will be available in plugins SDK directory.


What is the ANT target to deploy liferay plugins?


We will use ant deploy target and its default target for each liferay Plugin application. We can also use ant direct-deploy too.


Where is application build process will be defined?


In plugins SDK we can find buid.xml file where all liferay Plugin application build process will be defined. This file available in Plugins SDK root directory.


Do i need to modify liferay plugins build file?


No. all build process defined by liferay we never get chance to change those file.


What is difference between ant war and ant deploy targets?


Ant war target do the job like compile and package Plugin application as .WAR file and places .war file dist directory.
Ant deploy target do the job like compile and package plugins application as .war file place .WAR file in dist directory in addition to that it will copy .WAR file into liferay portal deploy(${app.server.parent.dir}/deploy) directory so that it makes Plugin application available to deployment.

Author

Popular Posts

Recent Posts

Recent Posts Widget