Showing posts with label ant. Show all posts
Showing posts with label ant. Show all posts

Wednesday, November 12, 2014

Liferay’s Development Platform Quick Notes


What is web application?

A web application or web app is any software that runs in a web browser.
It is created in a browser-supported programming language (such as the combination of JavaScript, HTML and CSS) and relies on a web browser to render the application.


Generally web application can serve static data or dynamic data to the client when it send request to the server.Web application will be available in the network such as Internet or Intranet.

What is Portal?

A portla application is web application consist of more content(files,images) and other dynamic functionality.

What is Liferay?

Liferay is portal based web application which reduce development cost and as developer can easily develop applications and they can run into liferay portal. 

What are the ways to incorporate application into Liferay?

Liferay supports two main, standards-based technologies for incorporating your applications into Liferay Portlets and Open Social gadgets.

What is hot deployment?

Hot deployment is process in web application deployment so that we need not stop server while deployment of application and the changes can be applied as soon as deployment is finished.so it makes application available with zero downtime.

What is portlet?

Portlets are small web applications written in Java that run in a portion of a web page and portal container is responsible to aggregate all portlets content and make it as web page.

What are the portlet features?

portlet are hot deployed applications.

zero down time.

Large functionality we can split it and make it as portlets.

What are the technologies can we use in portlet application?

We can use Java web based frame works to developer portlets(spring, struts, jsf, vaadin)
Liferay is also providing their own portlet development frameworks such as MVC Portlet and Alloy Portlet.

What is open social gadget?

open social gadgets are small application developed using browser based technologies such as HTML,JavaScript,Ajax. 

What are the features of open social gadgets ?

Open Social gadgets provide a standard way to develop applications for a portal environment.

Open social gadgets can use any of the back end technologies such as php,python,ruby and groovy. 

Open social gadgets are specific to develop social application.

How many types of Open social gadgets?

There are two types of Open social gadgets Remote gadgets and Local gadgets.

What is remote Gadget?

Remote gadgets run in remote server but present or use in any of portal and its developed in any of technologies but deployed in respective portal server but we can use it any where. its not advisable some intranets are not allowed to run remote apps in local portal.

What is Local Gadget?

local gadgets deployed in local server and use in portal which is already deployed in same server. 

How portlet can exposed to outside world?

Liferay lets you expose portlets to the outside world as Open Social gadgets. 

How liferay can Reuse existing web application in portals?

Redevelop an exist application into portlet applications. 

Web service based integrations like we expose web application features as web services and we will consume in liferay portlets. 

Iframe based usage. 

Using Web proxy liferay portlet 

If web application is used Struts or JSF then we can convert as portlets with minimal changes.

What are the technologies liferay supports?

Liferay support any of J2EE technologies so that we can develop portlet applications any of your choices. 

We can use Spring MVC, Struts 2, Ruby, PHP.

We can also use component based frameworks such as JSF,Vaadin and GWT.

The simpler way we can use liferay specific portlet framework such as MVC Portlet and Alloy Portlet 

What are the JavaScript libraries liferay supports?

Liferay supported JavaScript libraries such as Jquery, YUI, AUI, ExtJS and Dojo. 

What are the notable JSF component libraries?

We can use Component libraries such as ICE Faces, Rich Faces,Prime Faces with combination of JSF framework. 

What is advantage of Component based framework?

Component based framework work helps us to develop user Interface very quickly because we can find plenty of UI components that makes UI development easy as much easy. 

From Which version AUI is in Liferay ?

From version 6 liferay have come up with their own JavaScript implementation called Alloy UI which is based on YUI3. 

Most of the liferay portlets have used AUI Java script and its components to develop liferay user interface. 

What is AUI?

Alloy UI(AUI) is user interface component library consist of JavaScript,CSS and JSP tags. AUI provide many UI components for quick UI development in liferay and its built it on top of YUI3.

What is Service Builder Tool(SB)?

Liferay developed tool called Service Builder which can develop database services with simple configuration. 

Liferay’s Service Builder automates creating interfaces and classes for database persistence and service layers

What type of web services generated by Service Builder?

SB also implemented SOAP, JSON based web services to expose services to out side world.

Liferay not impose you to use specific technologies we can use any of technologies when we develop applications. 

Liferay have given many out of box features so that we can extend to customize liferay.

Which mechanism Liferay provided for extending or customize the liferay portal?

Liferay introduces mechanism called Plugins so that we can extend or customize liferay portal.we have different types of Plugins based on its contextual use.

Each plugin we can package as war file and deploy into liferay portal server so that we can see changes or add new features to the portal. 

Whats are the liferay plugins available?

Liferay have given Plugins SDK so that we can develop liferay plugins such as portlet,hook,layout,theme,ext and web.

What is Theme and its features?

Theme is liferay plugin and Themes are used to customize look and feel of liferay portal.

Themes consist of many css files, velocity,free marker template and java script files. 

Liferay 6 come up with responsive feature so that we can view lifera portla in mobile phone,tablets and desktops with consistence view. 

Most importantly, themes let you focus on designing your site’s UI, while leaving its functionality to the portlets. 

Themes are hot deployment capable plugin 

What is Layout Template and its features?

Layout Templates provide predefined page layout.we can split page as sections so that we can fill sections with portlets means arrangement of portlet in the page can decided by layout templates.

We can embded common use portlets in the layout so that it will be visible whenever we applied layout to the page. 

Like themes, layout templates are also written in Velocity and free marker templates and are hot-deployable. 

What is Hook Plugin and its features?

Hooks are used to Customizing or Extending the Out-of-Box Functionality and its 
hot-deployable. 

Hook pluigins to user to modify portla properties not all some limited properties. 

Hooks can used to modify language properties files, JSP files, Struts Actions and modify portal services using Using service wrapper.

Hooks perform custom actions on startup, shutdown, login, logout, session creation, and session destruction. 

Liferay have many kind of hooks like JSP Hook,Portal Properties Hook, Language Properties hook, Service wrapper hook, Indexer Post Processor Hook, Struts Action Hook, Custom Action hook and Servlet filter hook

What is Ext Plugin and its features?

We will use Ext Plugins for advanced customization. ext can modify or change any of portal existed behaviors we can change any part of portal using ext plugins.

Ext plugins provide the largest degree of flexibility in modifying the Liferay core, allowing you to replace essentially any class with a custom implementation.

Ext Pluins not hot deployable so we need to restart server to see changes. 

Ext Plugin was introduced from Liferay 6 version before it was a separate component along with plugins SDK. 

What is Portlet Plugin and its features?

Portlet is used to add new features to liferay portal and its look like independent application and it uses the Liferay Portla API and Services.

Portlets are hot deployable applications. 

Portlet pluigins are very flexible application and its have independent database schema and its own services to fulfill requirements. 

Each portlet plugin may have one or more portlets. 
Portlet plugin use the Service Builder tool to generate the service layer. 

What is Web Plugins?

Web plugin is separate web application and that can be deployed into liferay portal. 

What are the Liferay development Choices?

Liferay Plugin development have many choices so that developer can choose their flexible tools.
Liferay have given many ways to develop liferay plugins such as 
 
Apache Ant and the Plugins SDK
Eclipse and the Liferay IDE
Liferay Developer Studio
Maven Based Development
Other IDE tools(NetBeans, IntelliJ IDEA )

What is default Build Mechanism in Liferay?

Liferay used ANT based build to deploy plugins into portal we can also use MAVEN based build.

What is Plugins SDK?

Liferay have given Plugins SDK so that we can develop plugin applications and its consist set of libraries and plugin templates so that we can simply create plugins and deploy into liferay portal. 

What is ANT?

ANT is a build tool for build and deploy applications. Its xml based configuration to defined application build process and its includes task called compile, packaging and deploy into server.

What is Apache ANT and the Plugins SDK?

Liferay Plugins SDK have provided ANT based commands so that we can run commands for create plugins and deploy plugins into portal. 

Plugins SDK provided command based UI with help of ANT tool. 

Before Start Development we need to install ANT in our machine and need to set required environment variable such as ANT_HOME and need to set ANT path variable. 

What is Eclipse and the Liferay IDE?

Liferay have developed Liferay IDE for eclipse so that we can integrate Liferay IDE with eclipse to develop Liferay Plugin.

Liferay IDE is GUI based interface to crate plugins ant its also provide different plugin templates so that we can create basic plugin very quickly and its consist of all basic configuration and its files. 

Liferay IDE is Eclipse Plugin and we need configure Plugins SDK into Eclipse to start development. 

Liferay IDE created plugins are used ANT tool to build and deploy into portal.

Liferay IDE/Eclipse by default have ANT tool if you want use your local installed ANT we need to configure in eclipse. 

What is Liferay Developer Studio?

Liferay Have developed Developer Studio and its Enterprise Edition for plugin development.

Its also like Liferay IDE but its have many features so that we can create and deploy liferay plugins. 

What is MAVEN?

Maven is application build tool so that we can build and deploy applications into server with minimal effort. If can do many tasks like compile,packaging and deploy into server.

What is MAVEN Based Development?

Many developers prefer other command-line alternatives to Apache Ant. The most popular of these alternatives is Maven. To support developers that want to use Maven we have mavenized Liferay artifacts for referencing in your Maven projects. See the next chapter for an in-depth look at developing plugins in Maven. 

What are the other IDE tool liferay can use?

We can also use NetBeans, IntelliJ IDEA for plugins development. 

Author

Sunday, December 15, 2013

Liferay Environment Challenges and Solutions with Eclipse

Liferay Environment Challenges and Solutions with Eclipse
  • ECJ is not installed Error when deploy the portlet from eclipse
  • PermGen Space Error / Out of Memory Error


ECJ is not installed Error when deploy portlet in eclipse



Solution: 1

Generally in liferay to compile and build the application it uses ECJ jar. When we use following properties in build.properits file of Liferay Plugins SDK


#javac.compiler=modern
   javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter


When we use JDT compiler in eclipse then It will expect ecj.jar should be available in global ant runtime path.

So we need to add ecj.jar file to ANT global class path as follows

Go to eclipse windows preferences


Select ANT run time as follows




Now add jar file to ant global class path. Select external jar file button then brows ecj.jar file

Note:

ecj.jar file available in Plugins SDK lib directory (liferay-plugins-sdk-6.2.0/lib)




Solution: 2

Now we can also skip this error by using java compiler to modern.

We already know we have created SystemUserName.build.properties to override properties in Plugins SDK build.properties file.

We just uncomment JDT compiler and enable java complier to modern in SystemUserName.build.propertis file of your Plugins SDK.

Do as follows in properties file

    javac.compiler=modern
   #javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter


PermGen Space Error / Out of Memory Error

When we run liferay we need to set heap memory for JVM that is used by liferay application server

The following three options witch control the JVM Heap memory so that we need to set this values as JAVA_OPTS.


-Xms
-Xmx
-XX:MaxPermSize


Set this following values as JAVA_OPTS so that liferay portal can run without PermGen space error or Out of Memory Error


-Xms1024m -Xmx1024m -XX:MaxPermSize=256m


We can set JAVA_OPTS in following ways

  1. Set JAVA_OPTS as System Variable
  2. Set JAVA_OPTS in Application Server
  3. Set JAVA_OPTS to Eclipse Configured Server


Set JAVA_OPTS as System Variable in Windows

When we set JAVA_OPTS as System Environment Variable then all servers uses the same java opts to all servers and applications which are running in the machine

To set JAVA_OPTS in windows operating system we need to go to computer properties and need to choose Advanced System Settings

The following screen shows to select computer properties




Now click on Environment variables

The following screen shows advances system settings



In the system variables section click on new button to create new system environment variables

The following screen shows create system environment variables




Once click on new it will ask variable name and its value and click on OK then JAVA_OPTS will be created as System Environment Variables.

Enter following values

Variable Name:  JAVA_OPTS
Variable Value:  -Xms1024m -Xmx1024m -XX:MaxPermSize=256m




Note:

When we set JAVA_OPTS as system variables then all application servers which are running in the machine will use these values.

This variable not only for Liferay portal it can be for any web applications which are running in the server.

This variables setting in windows environment and its same for other OS like Linux but setting of variable is bit different.

Set JAVA_OPTS in Application Server

We can also set JAVA_OPTS values in application serves. For each server there some configuration files we can set server configuration in the file so that it can be read by when server is starting.

When we set the value in server then it can be used by application which is running in the server.
Server configuration file is different with respect to server vendor.

Tomcat Server:

In tomcat we will use setenv.bat/setenv.sh file to configure JAVA_OPTS
Go to tomcat server bin directory and create setenv.bat file for windows environment and setenv.sh for Linux environment.


Once we create the files add JAVA_OPTS in file as follows

In windows setenv.bat as follows

set "JAVA_OPTS=%JAVA_OPTS% -Xmx1024m -XX:MaxPermSize=256m"

In Linux setenv.sh as follows

export JAVA_OPTS="$JAVA_OPTS -Xmx1024m -XX:MaxPermSize=256m"

In tomcat server we can also use CATALINA_OPTS instead of JAVA_OPTS. This is only for tomcat server

In windows setenv.bat as follows

set " CATALINA_OPTS =% CATALINA_OPTS % -Xmx1024m -XX:MaxPermSize=256m"

In Linux setenv.sh as follows

export CATALINA_OPTS ="$ CATALINA_OPTS -Xmx1024m -XX:MaxPermSize=256m"

Note:

In liferay tomcat server setenv.bat/setenv.sh and configuration already have done. If any problem occurred we just need adjust the values in configuration.

This configuration not only for liferay environment we can use for any web applications which are in running in server.

JBOSS Server

Jboss in windows

Jboss server in windows OS we will use standalone.conf.bat this file available in jboss server bin directory (jboss-7.1.1\bin).





Open jboss standalone.conf.bat and set JAVA_OPTS as follows


set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"



Jboss in Linux

Jboss server in Linux we will use standalone.conf this file available in jboss server bin directory(jboss-7.1.1\bin).




Open jboss standalone.conf and set JAVA_OPTS as follows


JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"


Note:

In liferay jboss bundle all configurations already done and when we get any problems then we just need to adjust values.

These configuration can use for any web application not only for liferay.


Set JAVA_OPTS to Eclipse Configured Server

Generally we configure application servers to eclipse. We can also configure the values through eclipse.

In ellipse go to servers view and double click on server and then click open launch configuration



Once opened configuration winnow select arguments tab and see the VM arguments
Now you can see memory related variables and you can adjust the size of variables



 Related Articles:

http://www.liferaysavvy.com/2012/09/setting-environment-variables-and.html

Author

Meera Prince

Recent Posts

Recent Posts Widget

Popular Posts