Liferay 7 /DXP is new release from Liferay Inc.
Liferay 7 / DXP came up with new architecture based development that is OSGi.
As we know OSGi (Open
Services Gateway Initiative) is Dynamic Component Development for Java platform.
Its modular framework, where we can compose the application into several module
and the modules communicate each other. Liferay
7 / DXP have OSGi support so we can develop liferay applications as OSGi modules.
Modularity is interesting feature and
have many capabilities to make application into several modules.
Follow the bellow articles to know more about OSGi
Interesting
features of OSGi
Reduce the complexity and make the application sampler
Easy Deployment of applications
Reasonability of the components and modules
Easy version management
Cross platform support we can run anywhere
Widely used platform now a days.
When we consider all above interesting features OSGi promising
platform to deliver many interesting capabilities.
Liferay 7 / DXP have used OSGi modularity features to
build and develop the Liferay 7/ DXPApplications.
OSGi specification available in two popular
implementations such as Apache Felix and Eclipse Equinox.
Liferay 7 have used both implementation capabilities to
strengthen the Liferay Modular Application development.
Traditional Web application development have
application servers, which runs the web applications. It means, we will develop
applications based on web application standards using some J2EE Web application
frameworks. We will package these applications as WAR files and deploy into the
Application Servers. This is basic web application development and runs the
applications.
Whereas OSGi environment have OSGi container to run
the OSGi applications.
OSGi applications can call it as OSGi bundles. OSGi bundles is JAR file, which consist of Java and other configuration files. These bundle developments follow the OSGi specification so that it can run in OSGi containers.
OSGi applications can call it as OSGi bundles. OSGi bundles is JAR file, which consist of Java and other configuration files. These bundle developments follow the OSGi specification so that it can run in OSGi containers.
When we are talking about OSGi bundles, we use Component terminology many times. Component is piece of code, which runs independently
and deliver some reusable feature or task.
OSGi application composed of several components and
these components are talk each other and all together deliver complex feature
or task.
We package the group of components as bundle. Bundles
is an OSGi application based on OSGi specification and runs in OSGi containers.
Interesting feature of OSGi is application composed into small components.
OSGi have other interesting artifact called OSGi Service Registry, which manage the
component and its service registration and manage the references. OSGi component
dependency management controlled via OSGi
service registry. OSGi service registry implemented by OSGi Declarative Services and shorty we call it as DS.
We also have other implementation called Apache Blueprint, which is similar to
DS.
Liferay 7 /DXP can use both implementation while develop
Liferay Application Modules.
Structure
of OSGi Module
As per OSGi module development, we have following
pieces in the application.
Service
API:
Service API bundles container the all service interfaces
Service
Provider: Service provider bundles provide the implementation
for the interfaces which definer in the Service API
Service
Client: It will consume the component services.
Liferay 7 / DXP module development follows the same structure
while developing the Liferay 7/DXP application bundles.
Structure
of a Modular App in Liferay 7 / DXP
As per OSGi, we can break the application into several
bundles. Same way Liferay 7 / DXP have several bundles/modules.
The following are important parts or bundles in the
Liferay 7 / DXP module development.
API
API contains all interfaces java classes. It is separated
from implementation bundle.
Service
Contains the service (business logic) and persistence
implementations.
Web
Web contains the presentation layer files such as HTML,
JSP, CSS and JavaScript files.
Test
Contains the tests. These are not included in the app
for production.
Liferay
Modular Architecture
Picture source form Liferay.com
Liferay 7/DXP have several layers in the architecture like
Liferay Core, Foundation, and Web experience,
Collaboration, Forms & Workflows and Independent Apps.
Liferay
Core
Liferay Core consist of all core APIs and Liferay Kernel.
Its basic components which will used by all other modules or layers in the
Liferay portal.
Foundation
This layer consist of Liferay building blocks
implementation such as Users, Roles, Groups, Themes and Permission System.
Applications
Layer
Liferay application layer separated with different group
of modules and these all are independent apps separated from Liferay Core and
Foundation. It uses the both Liferay Core and Foundation layer APIs and Its independent modules.
Liferay core and Foundation layers are packaged as WAR
file deployed in the traditional application layer. Usually all these APIs and Implementations
available in ROOT directory that
deployed in Application server deployment directory.
Liferay independent Apps are made it as OSGi bundles, deployed
in the OSGi container. All liferay bundles are found in OSGi directory of Liferay portal.
Liferay have provides the gateway which communicate
with Liferay Core and Foundation layer to fulfill liferay application features.
Liferay 7 /DXP still support the plugins development
and its deployment. This is a reason still we can see traditional application server.
Liferay older versions migration to Liferay 7 / DXP possible through to keep traditional
application server in the Liferay 7/DXP.
To customize or develop new features in Liferay 7/DXP,
Developer follows the OSGi modularity specification to develop Liferay 7 / DXP apps.
Now all liferay applications possible through the OSGi
bundles. Still some of the limitations for Liferay Themes, so we follows the
Web based development for themes. Portlets, hooks can make it as OSGi
bundles and themes can make it as WARs. Liferay 7 / DXP still support
Plugins SDK so that we can develop liferay applications as plugin wars.
Liferay 7 / DXP suggested using OSGi Declarative Services (DS) framework to develop Liferay 7 application
bundles. We can use Apache Blueprint
framework as well.
Liferay have used Apache
Gogo shell Command Line Interface to manage bundles, its means Activate/Deactivate Start/Stop bundles
in the OSGi container. Bundles lifecycle controlled via Apache Gogo shell.
Interesting point is, we can disable/ enable Liferay
features through Apache Gogo shell and we do not need to un-deploy or remove
bundle from OSGi container. Just we can deactivate or activate is enough.
Liferay have provided good tools to develop Liferay
7/DXP modules. Follow the below articles to know more about Liferay 7/DXP
Module Development. Follow below link to find more details about Liferay Application Development Tools
Author
0 comments :
Post a Comment