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

Friday, November 7, 2014

Liferay Developer Certification Topics and Reference Links


Liferay Certification Program

Liferay is very popular open source portal. Liferay also offers Certification in liferay.
Liferay offers different Certification programs such as Portal Administration Certification ,Portal Developer Certification and Portal System Administration Certification.


Following article is for Portal Developer Certification and its topics and reference links.

Note:

The Topics and its descriptions are inherited from Liferay website.


Liferay 6.2 Certification



Liferay 6.1 Certification


Certification FAQs


Register for Certification


Liferay Development Best Practices

Liferay Portal is a powerful platform for designing and developing robust web applications. While Liferay provides many exciting enterprise caliber features out of the box, there will be times when it's necessary to develop applications to extend or modify Liferay. By following Liferay's best practices, developers can ensure this development will enhance the current version of Liferay and will allow for a smooth upgrade when upgrading the core portal. Liferay developers should be familiar with these best practices.







Development Environment Setup:





Understanding Liferay Plugins





Liferay Architecture and APIs

Understanding Liferay Architecture:





Liferay APIs


Service Builder:










Liferay Utilities:

Liferay provides a host of utilities that make developing for the Liferay Platform easy and efficient. Liferay developers should know how to leverage the more common utilities (ParamUtil, GetterUtil, HTMLUtil, etc.) to enhance their productivity.


User Management and Group APIs:

One of the most commonly used APIs for developing solutions with Liferay is the User and Group Management API. Liferay developers should be familiar with the methods provided by this API and how they can leverage it when developing custom solutions





AlloyUI:

AlloyUI is a framework built on top of YUI3 that provides a simple API for building highly scalable applications. Liferay developers should be familiar with how AlloyUI can be leveraged in custom development and to extend Liferay's capabilities.





Expando API:

Liferay's Expando Service provides an elegant way to extend the Liferay schema without the pain associated with modifying the underlying database. Liferay developers should be familiar with the capabilities of the Expando Service and understand how to write code that creates and utilizes Expandos.






Application Display Templates

Application Display Templates enable customization to the default views of many Liferay applications. Liferay Developers should be familiar with how to enable Application Display Templates in their own portlets.




Liferay Portlet Plugin Development



Portlet API

While Liferay does support portlet development with a wide variety of languages and frameworks, the most common portlets will be based on the JSR-286 specification. Liferay developers should be very familiar with the JSR-286 specification and understand how its features are at the core of other popular portlet application frameworks.




Configuration

The standard deployment descriptor (portlet.xml) and Liferay specific configuration files allow portlets to inform Liferay which features they will be implementing. Liferay developers should know how to use these configuration files to leverage standard portlet features as well as Liferay specific features.


IPC

The JSR-286 specification adds support for Inter Portlet Communication (IPC). IPC allows developers to build powerful, multi-portlet applications that can share and update data seamlessly. Liferay developers should be familiar with both methods of IPC and understand how to leverage them to create powerful portlet applications.






Liferay MVCPortlet

The Liferay MVCPortlet framework is a simple, lightweight, easy to use framework that builds on top of GenericPortlet, but removes much of the boilerplate code that is common when directly extending GenericPortlet. Liferay developers should understand how the Liferay MVCPortlet framework works so they can understand the Liferay provided portlet plugins as well as leverage the features in their own portlets, if desired.








JSP and UI Technologies

When working with portlets that extend Liferay's MVCPortlet or GenericPortlet the most common view technology will be Java Server Pages (JSP). Liferay provides a significant number of tag libraries that can be leveraged in JSPs to improve developer productivity and efficiency. Liferay developers should be familiar with JSPs and know how to leverage the Liferay provided tag libraries.

JSP Tag Libs


Alloy UI JS libraries and Its Modules


Permissions

Liferay provides a robust, fine-grained permission system that is available in core portlets as well as portlet plugins. Liferay developers should know how to leverage this permission system when developing their own portlet plugins.






Liferay Hook Plugin Development

Best Practices

When used properly, Hooks are ideal for customizing core Liferay features and will allow for easier upgrades. However, it is important for Liferay developers to follow best practices when developing hooks to ensure maintainable code.



Configuration Hook

Configuration Hooks provide a hot-deployable mechanism for customizing portal properties. Not all portal properties can be modified with a hook, but when possible, it is recommended to use a hook. Liferay developers should be aware of how to best leverage Configuration Hooks and know their limitations.

JSP Hook

A JSP Hook can override JSP files or other web resources found in portal-web in the Liferay source. By properly leveraging this feature, Liferay developers can easily accomplish many of the most common user interface customizations in the Liferay Platform. Liferay developers need to know how to properly apply JSP Hooks to create robust solutions that will upgrade gracefully and how to avoid the most common errors made when implementing JSP Hook solutions.





Language Hook

A Language Hook can override existing language keys in the portal or can be used to add new language keys. Liferay developers need to know how to use Language Hooks to know how to properly override default and new language keys in both the default language and any other supported language keys of the portal.



Indexer Post Processor Hook

An Indexer Post Processor Hook provides a powerful post-processing mechanism on top of the existing indexer to allow plugin hook developers to modify the search summaries, indexes, and queries. Liferay developers should know how to leverage this exciting feature to enhance the search capabilities of the portal.



Service Wrapper Hook

One of Liferay's many strengths is its powerful Services Oriented Architecture. Service Wrapper Hooks allow plugin developers to take something great, and make it even better. Liferay developers should know how to properly leverage a Service Wrapper Hook to customize and extend Liferay's core services.





Struts Action Hook

Struts Action Hooks can be used to override core portal and portlet struts actions and to add new struts actions, when necessary. Liferay developers should be familiar with the recommended approach for implementing a Struts Action Hook.





Servlet Filter Hook

Liferay provides a set of servlet filters to pre-process requests going to Liferay and post-process responses coming from Liferay. A Liferay developer should know how to leverage the Servlet Filter Hook plugin to customize these existing servlet filters or to implement new servlet filters.




Portal Properteis Hook


Events Hook



Liferay Theme Plugin Development

Liferay Themes allow you to completely transform the look and feel of your portal. Liferay developers must be familiar with the proper approach to creating a theme to ensure that themes are efficient and don't incur a performance penalty on each request. Following best practices will also ensure that themes are easily upgradable.


Understanding Liferay Theme Development

Liferay Themes follow a well organized, modular structure. Custom themes are based on modifications or differences from a base theme. Liferay developers must know how to properly create or customize a theme to ensure that the theme follows the proper structure. Failure to follow Liferay's standards can lead to themes that are not easily upgradable.


Color Schemes and Theme Settings

Color schemes allow you to package a collection of pre-defined theme variations in a single plugin. Theme settings allow you to provide options that can be set at run-time to customize the look or functionality of your theme. Liferay developers should be familiar with how to leverage both of these features when developing or customizing a Liferay Theme.






Theme settings


Embedded Portlets

mbedding portlets in a theme provides a powerful mechanism to get the most out of limited screen real estate, but when not done properly, it can have a significant negative effect on portal performance. Liferay developers should know how to properly embed portlets in a Liferay Theme to improve the usability of the Theme without negatively impacting the Theme performance.






Liferay Layout Template Plugin Development

Liferay Layout Templates provide the framework or skeleton of a page. When dragging and dropping portlets to a page, the layout template is what defines the number and size of columns available to you. Liferay developers should know how to properly define and customize layout templates.



Understanding Liferay Layout Template Development

Liferay Layout Templates can be created with any combination of required rows and columns and the columns can be sized as needed. Layout templates can also include embedded portlets to ensure page consistency. Liferay developers should know how to leverage all of these layout template features to create customized layout templates as needed.





Liferay Advanced Customization

Liferay provides many options for customizing all aspects of Liferay's behavior. Many of the more advanced customizations one may encounter will involve modifying the core behavior of the portal itself. Liferay developers should be familiar with the customization options.



Understanding EXT Plugins

The Ext plugin provides the most powerful method of extending Liferay. Liferay developers should understand the capabilities of the EXT plugin and should understand the special scenarios that require the use of the EXT plugin.


Modifying Portal Configuration

There are some types of portal configuration changes that are not possible when using hooks. Liferay developers should understand when these changes are required and how they should be best implemented.



Customizing Core Portlets

Liferay ships with a robust set of core portlets which provide a wide range of features that satisfy many different use cases. In some cases, these core portlets will need to be modified in ways that are not supported by the Liferay Hook Plugin. Liferay developers should understand when this type of modification is required and how to best implement these types of customizations


Tips:

Read all DTD Definitions So that we can know all Configuration tags


Read all Tag Libraries Tags and its attributes


Read all portal properties other related properties


Suggested Books

Liferay Cook Book



Liferay In Action


Liferay Developer Guide



Liferay Developer Nerwork


Liferay Blogs


Liferay Wikis


Author

Recent Posts

Recent Posts Widget

Popular Posts