| 
Liferay Modules | 
Liferay Plugins | 
  | 
 
Introduced
  in Liferay 7 | 
 
Introduced
  since Liferay Started. 
From
  Liferay 4.x to Liferay 7/DXP 
 | 
  | 
 
Liferay
  Modules are based on OSGi framework | 
 
Liferay
  Plugins based traditional Java web application framework. Like we use more
  J2EE web application Frameworks. 
 | 
  | 
 
Liferay
  Module will run in OSGi Run Time Environment. 
 | 
 
Liferay
  Plugins run in Traditional Application Servers such as Tomcat, JBoss , Glassfish 
 | 
  | 
 
Liferay
  Module we can call it as OSGi bundles and packaged as JAR file. 
 | 
 
Liferay
  Plugins are web applications and packaged as WAR files. | 
  | 
 
Liferay
  Module provides the dynamic component injection with help OSGi so that we can
  make most of the features as independent components and can easily inject
  into the other components when it required. 
 | 
Liferay plugins are like independent web applications we cannot share
  anything between two web applications. It is more coupled. If we want share
  some classes we have to put these jar files in some global class loaders then
  only other web application can use that classes.
 
 | 
  | 
 
We
  can avoid all the problems of class loader issues. 
 | 
 
We
  can see more class loader issues. | 
  | 
 
No
  Class Definition Found, Class Not Found Run time errors completely vanished
  in the runtime. 
 | 
 
We
  frequently experience No Class Definition Found, Class Not Found Run time
  errors in the runtime. 
 | 
  | 
 
Liferay
  Modules have different types like Portlet Modules, Hook Modules. 
Themes
  and Layouts partially support modularity. 
 | 
 
Liferay
  plugins have different types such as portlets, themes, ext, layout and hooks. | 
  | 
 
Liferay
  Modules developed based on OSGi Framework and it used the several framework
  to develop modules such as Declarative Services (DS), Apache Blueprint and
  OSGi API. 
 | 
 
Liferay
  Plugins uses the J2EE web application frameworks such as Struts, Spring,
  Liferay MVC, JSF and other web application frameworks. 
 | 
  | 
 
Liferay
  Modules followed 3-tier architecture application development such as Persistence,
  Service and Presentation layered architecture. 
 | 
 
Liferay
  Plugins uses the same 3-tier architecture application development such as
  Persistence, Service and Presentation layers architecture. 
 | 
  | 
 
Usually
  Liferay Module development we separated each Layer as Independent Modules 
Persistence
  Tier Module 
Service
  Tier Module 
Web
  Tier Module 
 | 
 
Liferay
  Plugins Development all 3 tiers packaged as single WAR file. | 
  | 
 
Liferay
  Modules support the dynamic deployment feature and we can stop and start
  module without un-deploy the module. 
 | 
 
Liferay
  Plugins we must un-deploy the war file from server to remove features. 
 | 
  | 
 
Liferay
  Modules uses the Apache Gogo shell Command Line Interface (CLI) to manage the
  Liferay Modules in the OSGi run time environment. Like stop, start, activate
  and deactivate. 
 
Liferay
  Portal Admin screen also have to manage these Liferay modules. 
 | 
 
Liferay
  plugins does not have any Command Line Interface to un-deploy the bundles and
  we have to removed plugin war files from servers. 
 
Some
  Enterprise Application Servers have administrative feature to do these things. 
 
Liferay
  Portal Admin screen also have option to manage these Liferay plugins. 
 
 | 
  | 
 
Liferay
  modules are available in Liferay Portal Server Bundle inside OSGI directory once the module is deployed. 
 | 
 
All
  Liferay Plugins are available in Liferay Portal Server webapps directory. | 
  | 
 
Liferay
  Module have important configuration file METAINF
  which is like module deployment configuration file have more information used
  by OSGi run time environment. 
 | 
 
Liferay
  Plugins have web.xml file and used by Portlet/Servlet containers. 
 | 
  | 
 
Liferay
  portlet module all xml configuration files information turn into Declarative Services (DS) Component
  properties. Like portlet.xml, liferay-portlet.xml and liferay-display.xml
  files tags and values. 
 
 | 
 
Liferay
  Plugins used the XML configuration such as portlet.xml, liferay-portlet.xml
  and liferay-display.xml | 
  | 
 
If
  the Liferay Application have more features then we divided into multiple independent
  modules and these modules can communicate each other very easy in OSGi environment. 
 | 
 
Modularity
  is not that easy in Liferay Plugins development so we have to keep all the
  files in single WAR file. | 
  | 
 
Liferay
  Module introduced new tool called BLADE
  CLI to develop Liferay Modules. 
 | 
 
Liferay
  Plugins have Plugins SDK to develop Liferay Applications. 
 | 
  | 
 
Liferay
  Modules have several tools such as Liferay IDE, Liferay Studio, BLADE CLI 
 | 
 
Liferay
  Plugins have tools such as Liferay IDE, Liferay Studio. 
 | 
  | 
 
Liferay
  Module support GRADLE and MAVEN build environment. 
 | 
 
Liferay
  Plugins support ANT and MAVEN build environment. 
 | 
  | 
 
Liferay
  Modules used the Liferay Workspace concept to manage the application and its
  configuration across the platforms. 
 | 
 
Liferay
  Plugins uses the Plugins SDK to develop and manage the plugins. 
 | 
  | 
 
Liferay
  Modules used the OSGi API, Declarative Services and Apache Blueprint
  framework. So we have limited choice to use popular we application framework
  like Spring. Liferay still not fully supporting Spring Modules, it means we
  have to use the WAR deployment. 
 
 | 
 
We
  can use any J2EE popular web application frameworks such as Spring, Struts
  and JSF.  | 
  | 
 
Liferay
  Modules provides the Micro services Architecture based applications. 
 | 
 
To
  bring Micro services Architecture we have to depend on other frameworks such
  as Spring Micro Services. 
 | 
  | 
 
Liferay
  Modules have dynamic component development feature so we can easily turn on
  and off the feature at any point of time with minimal effort. 
 | 
 
Liferay
  Plugins not like Dynamic Component Development so bunch of feature in one
  plugin application. If we remove one plugin, it can turn off many features. 
 | 
  | 
 
Liferay
  Modules can provide easy way deployment process and we can move easily from
  one environment to other with minimal effort. Liferay Workspace provided this
  capability. 
 
 | 
 
Liferay
  Plugin Deployment process and moving from one environment to other tedious.
  We do not have any special mechanism like Liferay Workspace. | 
  | 
 
Liferay
  Modules uses the Bndtools to develop and build the modules. We have BLADE
  CLI, Liferay IDE, GRADLE and MAVEN are used the Bndtools internally. 
 
 | 
 
Liferay
  Plugins follow the J2EE web application development so MAVEN Liferay Plugin
  or Liferay IDE handle the Development and Deployment. 
 |