<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2232200964984010638</id><updated>2026-06-02T01:11:13.660+05:30</updated><category term="All About Liferay"/><category term="liferay"/><category term="Liferay 6.1"/><category term="Liferay 7"/><category term="Liferay DXP"/><category term="Liferay OSGI"/><category term="Liferay OSGI Modules"/><category term="OSGI"/><category term="Liferay 6.2"/><category term="orderable search container"/><category term="sorting in search container"/><category term="Find Portlet Location"/><category term="Hook"/><category term="Jitendra Rajput"/><category term="Liferay Migration"/><category term="Migrate Liferay Database"/><category term="NTLM"/><category term="Portlet Location Tracker"/><category term="Portlet Preferences"/><category term="Sort Solr Result"/><category term="Upgrade Liferay"/><category term="Upgrade Liferay Database"/><category term="liferay market place"/><category term="popular journal article"/><category term="popular web contents"/><category term="Acess Custom Portlet Service in Velocity Template"/><category term="Add Resource Permission in LR 6.1"/><category term="Alloy ui pop up"/><category term="Asset Publisher"/><category term="Autocomplete using jquery"/><category term="Browser detection in liferay"/><category term="Browser restriction in Liferay 6.1"/><category term="Build number error in Liferay"/><category term="Change User Portrait"/><category term="Communication across war file"/><category term="Configuration mode in Liferay 6.1"/><category term="Connect Liferay with SAP"/><category term="Connection Untrusted"/><category term="Content Filter"/><category term="Create Portlet URL in Liferay"/><category term="Create scheduler in liferay"/><category term="Custom Fields"/><category term="DataTable"/><category term="Decryption"/><category term="Define resource permission in Liferay"/><category term="Document Download Tracking in Liferay"/><category term="Document download log hook"/><category term="Document download logs"/><category term="Dynamic Query"/><category term="Dynamic Query in Liferay"/><category term="Encrypt URL"/><category term="Encrypt URL Parameter in Liferay"/><category term="Encryption"/><category term="Expando Search in Liferay"/><category term="Ext-plugin"/><category term="Fck Editor in Liferay"/><category term="File upload in liferay"/><category term="Google Finance"/><category term="Http Session"/><category term="Implement scheduler in liferay 6.1"/><category term="Include external jar files"/><category term="Include portlet in theme in Liferay DXP"/><category term="Include static resource in Liferay DXP"/><category term="Increase DB column size in Liferay"/><category term="JSF"/><category term="JSON"/><category term="JSON Serialization"/><category term="JSON Serialization in Liferay"/><category term="Journal Article Version"/><category term="Language Hook in Liferay 6.1"/><category term="LiFERAY_SHARED_"/><category term="Liferay 6.1 Events"/><category term="Liferay 6.1 and NTLM"/><category term="Liferay Journal Article"/><category term="Liferay Plugin Upgrade"/><category term="Liferay Portal"/><category term="Liferay SAP Integration"/><category term="Liferay Search Container"/><category term="Liferay Session Error"/><category term="Liferay and SAP"/><category term="Liferay service in theme"/><category term="Liferya 6.1"/><category term="MVC Portlet in Liferay 6.1"/><category term="Module dependency"/><category term="Most viewed web contents in liferay"/><category term="Multiple File Upload in Liferay"/><category term="NTLM with Firefox"/><category term="OSGI module dependency"/><category term="OldServiceComponentException when deploying built service"/><category term="Oracle"/><category term="Oracle Commands"/><category term="Override Events using Hook in Liferay 6.1"/><category term="Override serviceimpl using ext"/><category term="Page URL in Liferay"/><category term="Passing credentials in url"/><category term="Plugin Portlet Migration"/><category term="Pop up in liferay"/><category term="Portlet Session"/><category term="Portlet Session in Liferay"/><category term="Portlet URL"/><category term="Preferences"/><category term="Queries"/><category term="Query"/><category term="Read Preferences in Liferay"/><category term="Read Preferences of Remote Portlet"/><category term="Read Properites File"/><category term="Remove Default Error Message in Liferay"/><category term="Remove Portlet From Page"/><category term="Report Portlet"/><category term="Reports Portlet Documentation"/><category term="Required deployment context"/><category term="Resource Permission"/><category term="ResourceBundle"/><category term="ResultSet"/><category term="SAP JCO Connector"/><category term="Save Preferences in Liferay"/><category term="Scheduler in Liferay 6.1"/><category term="Search Container"/><category term="Selenium Introduction"/><category term="Serviceimpl in ext"/><category term="Session"/><category term="Share services between portlets"/><category term="Solr"/><category term="Sql Command Line"/><category term="Track Portlet Location"/><category term="Upgrade Database From Liferay 5.2 SP 3 to Liferay 6.0"/><category term="Upgrade Database from Liferay 6.0 to Liferay 6.1"/><category term="User"/><category term="User Custom Attribute"/><category term="User Guide"/><category term="User based on Custom Attribute in Liferay"/><category term="User based on expando value"/><category term="VM"/><category term="Velocity template"/><category term="WYSING Editor"/><category term="X-Frame options"/><category term="X-frame Liferay"/><category term="Yahoo Finance"/><category term="add resource permission"/><category term="configuration mode"/><category term="configuration mode in liferay"/><category term="configuration-action-class"/><category term="create configurationactionimpl"/><category term="custom attribute"/><category term="custom liferay service in Veloctiy template"/><category term="custom mode in liferay"/><category term="expando"/><category term="liferay dynamic query"/><category term="liferay dynamic query example"/><category term="liferay facebook integration"/><category term="liferay-plugin-package"/><category term="liferay-ui:social bookmarks"/><category term="most downloaded documents"/><category term="most popular wiki"/><category term="most viewed journal article in liferay"/><category term="pass parameter in pop up"/><category term="popular assets in liferay"/><category term="popular blog"/><category term="read portlet properties file in Liferay DXP"/><category term="selenium IDE"/><category term="share data from localhost"/><category term="windows Authentication"/><title type='text'>All About Liferay</title><subtitle type='html'>Blog about Liferay, Java  and Selenium automation tool. Mainly writing on Liferay development and administration solutions.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-2705759965983517935</id><published>2017-06-14T00:34:00.000+05:30</published><updated>2017-06-14T00:44:16.368+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="X-frame Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="X-Frame options"/><title type='text'>Set &#39;X-Frame-Options&#39; in Liferay DXP to allow iframe access</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;
&lt;img alt=&quot;Set &#39;X-Frame-Options&#39; in Liferay DXP to allow iframe access&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDh082bbDeGGNS6KLu-I_VtbBj92Oxnba5nELlo8VqyZdeKIWftbnzLELie0xzUpYgp8wTPCFCOnhfRkFrPAmFeng-oeUkGFAGCdltxxX3VeDagnMGxsV0GVk2ilkraMdkNGoysJdP6r8/s1600/x-frame.png&quot; style=&quot;display: none;&quot; /&gt;

&lt;/div&gt;
You might have seen below error message in your browser console while including any of the Liferay page url in iframe.&lt;br /&gt;
&lt;br /&gt;
&lt;b style=&quot;background-color: yellow;&quot;&gt;Refused to display &#39;liferay-url&#39; in a frame because it set &#39;X-Frame-Options&#39; to &#39;sameorigin&#39;.&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;background-color: yellow;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
Liferay does not allow access to any of its url using iframe if the request is coming from different domain. If the domain is same you will be able to access Liferay url using iframe.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
To resolve this you can either disable check by keeping below property in system-ext.properties.&lt;br /&gt;
(Previous to Liferay DXP this property was part of portal.properties but from DXP it has been moved in system.properties).&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;#&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # Set this to true for the portal to send the &quot;X-Frame-Options: DENY&quot; HTTP&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # header to protect against clickjacking.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # Custom HTTP header values instead of &quot;DENY&quot; can be specified per URL via&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # the properties &quot;http.header.secure.x.frame.options.*&quot;.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; http.header.secure.x.frame.options=false&lt;/blockquote&gt;
&lt;br /&gt;
If you disable this property all your Liferay URL will be accessible through iframe and it cause any security issue. &lt;b&gt;This is not a recommended approach to fix this issue.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
As a alternative approach you can specify url you want include in iframe using below property in system-ext.properties. For each url you need to create separate property.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # If the property &quot;http.header.secure.x.frame.options&quot; is set to true, then&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # the portal will iterate through the properties&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # &quot;http.header.secure.x.frame.options.*&quot; where the wildcard &quot;*&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # is replaced with an int number starting from 0 and ending with 255 to find&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # a pipe (|) delimited URL and HTTP header value pair (e.g. &quot;/|SAMEORIGIN&quot;).&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # Upon finding a matched a URL, the portal will use the custom HTTP header&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # value instead of the &quot;DENY&quot; value.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # By default, URLs that start with &quot;/&quot; will use a custom HTTP header value&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # of &quot;SAMEORIGIN&quot;. Specify another URL and HTTP header value with a number&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # smaller than 255 to intercept this default behavior.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;http.header.secure.x.frame.options.1=/web/guest/home&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;http.header.secure.x.frame.options.4=/web/test/home&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;http.header.secure.x.frame.options.5=/servlet-url/servlet-content.&lt;/blockquote&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/2705759965983517935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/06/set-x-frame-options-in-liferay-dxp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2705759965983517935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2705759965983517935'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/06/set-x-frame-options-in-liferay-dxp.html' title='Set &#39;X-Frame-Options&#39; in Liferay DXP to allow iframe access'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDh082bbDeGGNS6KLu-I_VtbBj92Oxnba5nELlo8VqyZdeKIWftbnzLELie0xzUpYgp8wTPCFCOnhfRkFrPAmFeng-oeUkGFAGCdltxxX3VeDagnMGxsV0GVk2ilkraMdkNGoysJdP6r8/s72-c/x-frame.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-4359022724669837152</id><published>2017-03-05T03:39:00.001+05:30</published><updated>2017-03-20T23:57:23.880+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="read portlet properties file in Liferay DXP"/><title type='text'>How to read portlet.properties file in Liferay DXP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjML4dAFr4RwPIwN2ZuVmwvUegqnt9dY2hlC00ZCfuJjwahL0a-XrF-Mzus0ubE8WCNuyXI8S4KANDwBydgOH1Xa650-p7ib9C833iCx0AcQtx0D91gBSCdN8zCAHGR03_jfFCL5scxYQk/s320/post2.png&quot; style=&quot;display:none&quot; alt=&quot;How to read portlet.properties file in Liferay DXP&quot;/&gt;

&lt;/div&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In case if you are using portlet.properties file in Osgi module then using below snippet you can read property specified in portlet.properties file.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote&gt;
private static final Configuration _configuration = ConfigurationFactoryUtil&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;.getConfiguration(ReportUtil.class.getClassLoader(), &quot;portlet&quot;);&lt;br /&gt;
&lt;br /&gt;
String fromEmailAddress = _configuration.get(&quot;report.form.emailaddress&quot;);&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Read other posts on Liferay DXP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;Include static resource in Liferay OSGI module&quot;&gt;How To Include Static Resources (CSS/JS/Images) In Liferay OSGI Module&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html&quot; target=&quot;_blank&quot; title=&quot;Include custom portlet in theme Liferay DXP&quot;&gt;How To Include Custom Portlet In Theme - Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html&quot; target=&quot;_blank&quot; title=&quot;External Jar dependency in Liferay DXP&quot;&gt;How To Specify External Jar Dependency In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html&quot; target=&quot;_blank&quot; title=&quot;Module Dependency in Liferay DXP&quot;&gt;How To Specify Module Dependencies In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html&quot; target=&quot;_blank&quot; title=&quot;turn off re indexing of journal article version&quot;&gt;How To Disable Re-Indexing Of All Journal Article Versions In Liferay DXP&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/4359022724669837152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/read-portletproperties-file-liferaydxp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4359022724669837152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4359022724669837152'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/read-portletproperties-file-liferaydxp.html' title='How to read portlet.properties file in Liferay DXP'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjML4dAFr4RwPIwN2ZuVmwvUegqnt9dY2hlC00ZCfuJjwahL0a-XrF-Mzus0ubE8WCNuyXI8S4KANDwBydgOH1Xa650-p7ib9C833iCx0AcQtx0D91gBSCdN8zCAHGR03_jfFCL5scxYQk/s72-c/post2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-7429121889468147425</id><published>2017-03-05T03:31:00.000+05:30</published><updated>2017-03-24T19:54:54.797+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Include static resource in Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><title type='text'>How to include static resources (CSS/JS/Images) in Liferay OSGI module</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZNe7lYVCJPiR2czomWrlQMJjC0fBQK-qkvM0qqIyeZIPngVxvTOu_uditeFpYybU2KXroz5Cu2MUBtzYkqiSSaMebzItLORIr246aI1TDy-r_-dFQfVILpoSoyiRolIvitDmbs1Alkts/s320/post2.png&quot; style=&quot;display:none;&quot; alt=&quot;How to include static resources (CSS/JS/Images) in Liferay OSGI module&quot; /&gt;
As you know development approach has been completely changed with Liferay DXP. In older version of Liferay it was easy to include static resource like CSS , JS and Images as part of portlet but with Liferay DXP you have to do few additional changes to include them.&lt;br /&gt;
&lt;br /&gt;
First of all you need to add webcontext path in your modules bnd file.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Web-ContextPath: /my-custom-portlet&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After adding web context path you can add static resource inside META-INF folder.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;main\resources\META-INF\resources\css&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
You can access CSS files added in above folder by adding following line in your code.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;&lt;br /&gt;&amp;lt;link href=&quot;/o/my-custom-portlet/css/my-custom.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; &amp;nbsp;/&amp;gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Similar way you can add and use other static resource like JS and Images.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Read other posts on Liferay DXP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/read-portletproperties-file-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;portlet properties in Liferay DXP&quot;&gt;How To Read Portlet.Properties File In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html&quot; target=&quot;_blank&quot; title=&quot;Include custom portlet in theme Liferay DXP&quot;&gt;How To Include Custom Portlet In Theme - Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html&quot; target=&quot;_blank&quot; title=&quot;External Jar dependency in Liferay DXP&quot;&gt;How To Specify External Jar Dependency In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html&quot; target=&quot;_blank&quot; title=&quot;Module Dependency in Liferay DXP&quot;&gt;How To Specify Module Dependencies In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html&quot; target=&quot;_blank&quot; title=&quot;turn off re indexing of journal article version&quot;&gt;How To Disable Re-Indexing Of All Journal Article Versions In Liferay DXP&lt;/a&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/7429121889468147425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/7429121889468147425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/7429121889468147425'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html' title='How to include static resources (CSS/JS/Images) in Liferay OSGI module'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZNe7lYVCJPiR2czomWrlQMJjC0fBQK-qkvM0qqIyeZIPngVxvTOu_uditeFpYybU2KXroz5Cu2MUBtzYkqiSSaMebzItLORIr246aI1TDy-r_-dFQfVILpoSoyiRolIvitDmbs1Alkts/s72-c/post2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-2291329456124692135</id><published>2017-03-05T01:39:00.000+05:30</published><updated>2017-03-20T08:20:01.392+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Include portlet in theme in Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI"/><title type='text'>How to include custom portlet in theme - Liferay DXP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJD_KEs6adhiQrKRU6ikeXhiWGgsjlttF4y11Im8oNKFhlEMRAtNRdn2a1nVHzjkYLox1NMvE1MDLc1U47KRzBTspBAtScDD9eLbGxu7U-uY8ItPPvJeLZzvUy2YezSM8-yYnxKq9dy0/s320/post3.png&quot; style=&quot;display:none&quot; alt=&quot;How to include custom portlet in theme&quot;/&gt;
You can include out of box as well as custom portlet inside theme in Liferay dxp but way has been changed.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By default Liferay uses free marker templates for theme. You can use below snippet to include any custom portlet in theme.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;lt;#assign VOID = freeMarkerPortletPreferences.setValue(&quot;portletSetupPortletDecoratorId&quot;, &quot;barebone&quot;)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;@liferay_portlet[&quot;runtime&quot;]&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;defaultPreferences=&quot;${freeMarkerPortletPreferences}&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;portletProviderAction=portletProviderAction.VIEW&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;portletName=&quot;com_custom_portlet_themesearch_ThemeSearchPortlet&quot; /&amp;gt;&lt;/blockquote&gt;
&lt;br /&gt;
In above example we have included custom portlet called &#39;Theme Search Portlet&#39; in theme. You can also change preferences for portlet added in theme by passing preferences object to defaultPreferences attribute.&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Read other posts on Liferay DXP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/read-portletproperties-file-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;portlet properties in Liferay DXP&quot;&gt;How To Read Portlet.Properties File In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;Include static resource in Liferay OSGI module&quot;&gt;How to include static resources (CSS/JS/Images) in Liferay OSGI module&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html&quot; target=&quot;_blank&quot; title=&quot;External Jar dependency in Liferay DXP&quot;&gt;How To Specify External Jar Dependency In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html&quot; target=&quot;_blank&quot; title=&quot;Module Dependency in Liferay DXP&quot;&gt;How To Specify Module Dependencies In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html&quot; target=&quot;_blank&quot; title=&quot;turn off re indexing of journal article version&quot;&gt;How To Disable Re-Indexing Of All Journal Article Versions In Liferay DXP&lt;/a&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/2291329456124692135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2291329456124692135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2291329456124692135'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html' title='How to include custom portlet in theme - Liferay DXP'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJD_KEs6adhiQrKRU6ikeXhiWGgsjlttF4y11Im8oNKFhlEMRAtNRdn2a1nVHzjkYLox1NMvE1MDLc1U47KRzBTspBAtScDD9eLbGxu7U-uY8ItPPvJeLZzvUy2YezSM8-yYnxKq9dy0/s72-c/post3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-2311926908160010104</id><published>2017-03-05T01:29:00.001+05:30</published><updated>2017-05-19T01:43:12.143+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Include external jar files"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><category scheme="http://www.blogger.com/atom/ns#" term="Module dependency"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI"/><title type='text'>How to specify external jar dependency in Liferay DXP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img alt=&quot;How to specify external jar dependency in Liferay DXP&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3eReYevgUXCxPUqoXVy5_MfpVZ9Z2bdZE4mUFU0ZWQMhR0w2WU4veL8TYQ4mrJQ0WioXGBTTmZhAN89ftT4z865Sy3T2R6fZE6sHJo_JecqJJlS1_pgWCAM9zObhFwlk2uHdoMkTE-L0/s320/post5.png&quot; style=&quot;display: none;&quot; /&gt;
While doing development in Liferay DXP your module may depends on external jar files . If required jar file is available in Liferay Nexus Repository then you can include them by using BND and Gradle file.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can see Liferay nexus repository configured in your settings.gradle file under repository tag.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
repositories {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;maven {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;url &quot;https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;mavenLocal()&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&amp;nbsp;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In case if you dependency on jar file which is not part of this repository then either you can install your jar file in central repository &amp;nbsp;or you can setup your own local repository and install jar file in that (see &lt;a href=&quot;https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html&quot; target=&quot;_blank&quot;&gt;instruction here&lt;/a&gt; to install 3rd party jar in local repository ). &amp;nbsp;You can configure your local maven repository in your gradle file.&lt;br /&gt;
&lt;br /&gt;
By using &lt;b&gt;-includeresource&lt;/b&gt; option available in bnd file you can include dependent jar in your module. Also this option supports wildcards as you can see in below example. Here you can see [0-9] it means any version from this range would be picked.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
-includeresource:\&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@httpclient-[0-9]*.jar,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@httpcore-[0-9]*.jar,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@httpmime-[0-9]*.jar,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@commons-httpclient-[0-9]*.jar,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@commons-codec-[0-9]*.jar,\&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Alternate approach (not recommended)&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;
If you have jar file which is required by almost all the modules of your work space then you can move jar file into lib/ext directory. Copying simply jar file in [lib/ext] folder won&#39;t work in Liferay DXP (it used to work in older version of Liferay). You need to specify list of packages in your portal-ext file and listed packages will be accessible to all the modules.&lt;br /&gt;
&lt;br /&gt;
Disadvantage of this approach is that if your external jar has dependency on other jar files then you will have to bring all of them in [lib/ext] folder and you need to mentioned.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;&amp;nbsp;#&lt;br /&gt;&amp;nbsp; &amp;nbsp; # Set a comma delimited list of Java packages that are exported to the&lt;br /&gt;&amp;nbsp; &amp;nbsp; # module framework as extra system packages.&lt;br /&gt;&amp;nbsp; &amp;nbsp; #&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;module.framework.system.packages.extra=\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.faces.convert,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.faces.webapp,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Dynamic References&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.ibm.crypto.provider,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.mysql.jdbc,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.sun.security.auth.module,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.naming.java,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sun.misc,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sun.security.provider,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.bean,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.client,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.exception&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&amp;nbsp;#&lt;br /&gt;&amp;nbsp; &amp;nbsp; # Set a comma delimited list of headers that are required in cases where the&lt;br /&gt;&amp;nbsp; &amp;nbsp; # dependency analysis of the WAB does not resolve the dependency. This can&lt;br /&gt;&amp;nbsp; &amp;nbsp; # occur when the headers are dynamically loaded using the Java reflection&lt;br /&gt;&amp;nbsp; &amp;nbsp; # API.&lt;br /&gt;&amp;nbsp; &amp;nbsp; #&lt;/b&gt;&lt;br /&gt;
module.framework.web.generator.headers.DynamicImport-Package=\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.liferay.portal.kernel.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.liferay.portal.webserver,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.liferay.portal.webserver.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.sun.el.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.el.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.portlet.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.servlet.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.el.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.jasper.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.taglibs.standard.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.eclipse.jetty.*,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Dynamic References&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.liferay.portal.dao.orm.hibernate,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.liferay.portal.spring.hibernate,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.mysql.jdbc,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.naming.java,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.hibernate.type,\&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.springframework.orm.hibernate3,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.bean,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.client,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.exception&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;/blockquote&gt;
Note: During testing i have noticed that this approach does not works if we use Liferay workspace plugin 1.0.37 and it works if i use 1.0.40.&lt;br /&gt;
&lt;br /&gt;
You can check Liferay workspace plugin version from settings.gradle file.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;Include static resource in Liferay OSGI module&quot;&gt;How To Include Static Resources (CSS/JS/Images) In Liferay OSGI Module&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html&quot; target=&quot;_blank&quot; title=&quot;Include custom portlet in theme Liferay DXP&quot;&gt;How To Include Custom Portlet In Theme - Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html&quot; target=&quot;_blank&quot; title=&quot;Module Dependency in Liferay DXP&quot;&gt;How To Specify Module Dependencies In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html&quot; target=&quot;_blank&quot; title=&quot;turn off re indexing of journal article version&quot;&gt;How To Disable Re-Indexing Of All Journal Article Versions In Liferay DXP&lt;/a&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/2311926908160010104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2311926908160010104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2311926908160010104'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html' title='How to specify external jar dependency in Liferay DXP'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3eReYevgUXCxPUqoXVy5_MfpVZ9Z2bdZE4mUFU0ZWQMhR0w2WU4veL8TYQ4mrJQ0WioXGBTTmZhAN89ftT4z865Sy3T2R6fZE6sHJo_JecqJJlS1_pgWCAM9zObhFwlk2uHdoMkTE-L0/s72-c/post5.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-2912736916512260896</id><published>2017-03-05T01:02:00.000+05:30</published><updated>2017-03-20T08:22:00.126+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI module dependency"/><title type='text'>How to specify module dependencies in Liferay DXP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZE71xucyonrvMDe8QJMP8i7yDgQiyFklkMJa5nbKPHBDaRoC5oNjSBm-UjQskiQIQOu9ubLhyhPIe2BMncGpayFCksN_7BHIbwXiwXFn9hSWFmeNws0dAMizwDE-E46P8BvVla0eG8ac/s320/post4.png&quot;  style=&quot;display:none;&quot; alt=&quot;How to specify module dependencies in Liferay DXP&quot; /&gt;
Best advantages of using OSGi is that you can divide your components in small micro services and as when required module&#39;s can use each other&#39;s services.&lt;br /&gt;
&lt;br /&gt;
Let say if you have module A which depends on module B then can specify module dependency in bnd.bnd file of module A as below.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
compileOnly project(&quot;:modules:test-module-a&quot;)&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can also limit the services that you want to share with the other modules. In above example module B might be having lots of service but you may want to share only specific service with other modules. You can specify list of packages you want to share with other module using below in bnd.bnd file.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Export-Package: \&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.bean,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.client,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.exception,\&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;com.custom.common.service.constants&lt;/blockquote&gt;
&lt;b&gt;&lt;u&gt;Read other posts on Liferay DXP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;Include static resource in Liferay OSGI module&quot;&gt;How To Include Static Resources (CSS/JS/Images) In Liferay OSGI Module&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html&quot; target=&quot;_blank&quot; title=&quot;Include custom portlet in theme Liferay DXP&quot;&gt;How To Include Custom Portlet In Theme - Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html&quot; target=&quot;_blank&quot; title=&quot;External Jar dependency in Liferay DXP&quot;&gt;How To Specify External Jar Dependency In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html&quot; target=&quot;_blank&quot; title=&quot;turn off re indexing of journal article version&quot;&gt;How To Disable Re-Indexing Of All Journal Article Versions In Liferay DXP&lt;/a&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/2912736916512260896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2912736916512260896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2912736916512260896'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html' title='How to specify module dependencies in Liferay DXP'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZE71xucyonrvMDe8QJMP8i7yDgQiyFklkMJa5nbKPHBDaRoC5oNjSBm-UjQskiQIQOu9ubLhyhPIe2BMncGpayFCksN_7BHIbwXiwXFn9hSWFmeNws0dAMizwDE-E46P8BvVla0eG8ac/s72-c/post4.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-2149011689378436238</id><published>2017-03-05T00:32:00.000+05:30</published><updated>2017-03-08T09:08:07.094+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Journal Article Version"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay DXP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay Journal Article"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay OSGI Modules"/><category scheme="http://www.blogger.com/atom/ns#" term="OSGI"/><title type='text'>How to  disable re-indexing of all Journal Article Versions in Liferay DXP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In case if you have to turn off re indexing all Journal Article version then you can do this by placing below property in portlet-ext properties file. Yes its portlet-ext.properties not portal.properties.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
#&lt;br /&gt;
# Set this to true to index all article versions. Set this to false to index&lt;br /&gt;
# only the last indexable version.&lt;br /&gt;
#&lt;br /&gt;
journal.articles.index.all.versions=false&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In Liferay DXP portlet specific property has been moved to portlet.properties file and all portal specific property can be found in portal.properties.&lt;br /&gt;
&lt;br /&gt;
Any property of portlet.properties can be overridden by portlet-ext.properties similar way we override portal.properties by using portal-ext.properties file.&lt;br /&gt;
&lt;br /&gt;
Multiple out of box modules can have its own portlet.properties file but multiple portlet.properties can be overridden by one property file called portlet-ext.properties.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;You need to keep portlet-ext.properties file under below location of app server.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;
[Liferay_Home]/webapps/root/WEB-INF/classes&lt;/blockquote&gt;
&lt;b&gt;&lt;u&gt;Read other posts on Liferay DXP&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/include-static-resources-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;Include static resource in Liferay OSGI module&quot;&gt;How To Include Static Resources (CSS/JS/Images) In Liferay OSGI Module&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-portlet-in-theme.html&quot; target=&quot;_blank&quot; title=&quot;Include custom portlet in theme Liferay DXP&quot;&gt;How To Include Custom Portlet In Theme - Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-include-jar-files.html&quot; target=&quot;_blank&quot; title=&quot;External Jar dependency in Liferay DXP&quot;&gt;How To Specify External Jar Dependency In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/liferaydxp-osgi-module-dependency.html&quot; target=&quot;_blank&quot; title=&quot;Module Dependency in Liferay DXP&quot;&gt;How To Specify Module Dependencies In Liferay DXP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itsliferay.blogspot.com/2017/03/read-portletproperties-file-liferaydxp.html&quot; target=&quot;_blank&quot; title=&quot;portlet properties in Liferay DXP&quot;&gt;How To Read Portlet.Properties File In Liferay DXP&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/2149011689378436238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2149011689378436238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/2149011689378436238'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2017/03/liferaydxp-disable-article-reindexing.html' title='How to  disable re-indexing of all Journal Article Versions in Liferay DXP'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-6199833278420575371</id><published>2016-07-13T17:24:00.000+05:30</published><updated>2016-07-13T17:33:25.929+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Http Session"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet Session"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet Session in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Session"/><title type='text'>Liferay Portlet Session</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Portlet session is similar to HttpSession but both has different implementation. &lt;br /&gt;
&lt;br /&gt;
HttpSession created once for unique visitor in your web application while in Liferay PortletSession is getting created for each portlet placed on page. If there are 4 portlet placed on page then 4 PortletSession would be created for each request.&lt;br /&gt;
&lt;br /&gt;
In Liferay PortletSessionImpl class has implementation for 
javax.portlet.PortletSession interface. PortletSession internally uses 
HttpSession to get and set attribute. &lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
There are 2 scope supported in portlet session.&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Portlet Scope&lt;/li&gt;
&lt;li&gt;Application Scope&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Portlet Scope&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
In PortletSession attributes set using portlet scope would be accessible with in portlet only. If portlet A has set some attribute using portlet scope then no other portlet would be able to access it. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Application Scope&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Attribute set using application scope would be accessible across all portlets. If you have set some attribute from portlet A then you would be able to access this attribute in all other portlets as well.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;How it works ?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you see implementation class for PortletSession interface than you will get idea how multiple sessions are getting created for portlet scope.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;public void setAttribute(String name, Object value, int scope) {&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (name == null) {&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; throw new IllegalArgumentException();&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (_invalid) {&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; throw new IllegalStateException();&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (scope == PortletSession.PORTLET_SCOPE) {&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; name = _getPortletScopeName(name);&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; _session.setAttribute(name, value);&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Above method is used to set attribute in portlet session. If you see if scope it portlet scope then it adds namespace before then attribute name while this is not the case with application scope. Here namespace is combination of portlet name and plid.&lt;br /&gt;
&lt;br /&gt;
For example if portletName=&#39;47&#39; , plid =&#39;1234 &#39;&amp;nbsp; and portlet scope is selected then attribute name would be like &#39;javax.portlet.p.47_LAYOUT_1234?attributeName&#39;.&lt;br /&gt;
&lt;br /&gt;
If scope is application then attribute will be directly stores in HttpSession (_session is object of HttpSession).&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/6199833278420575371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2016/07/liferay-portlet-session.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/6199833278420575371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/6199833278420575371'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2016/07/liferay-portlet-session.html' title='Liferay Portlet Session'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-19420239562649604</id><published>2016-06-13T16:55:00.001+05:30</published><updated>2016-07-13T13:00:36.558+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Commands"/><category scheme="http://www.blogger.com/atom/ns#" term="Queries"/><category scheme="http://www.blogger.com/atom/ns#" term="Sql Command Line"/><title type='text'>Useful Oracle Queries and Commands</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In this blog post i would try to cover few of the import queries or commands of oracle.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Export/Import database&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to export/import database then you can use below commands from sql command line. &lt;br /&gt;
&lt;br /&gt;
To start sql command from command prompt hit &lt;b&gt;sqlplus &lt;/b&gt;command. You need to login with valid credentials before you execute any commands.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
By following way you can use export command.&lt;br /&gt;
&lt;br /&gt;
exp userid=system/password@XE schemas=SCHEMA_NAME dumpfile=DUMP_NAME.dmp logfile=LOG_FILE_NAME.log&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
exp userid=system/password@XE owner=SCHEMA_NAME&amp;nbsp;file=DUMP_NAME.dmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To import you can use below commands.&lt;br /&gt;
&lt;br /&gt;
impdp system/root@XE schemas=SCHEMA_NAME&amp;nbsp;dumpfile=SCHEMA_NAME_DMP.dmp logfile=client.log&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
imp userid=system/root@XE full=N IGNORE=Y FILE=C:/Users/SCHEMA_NAME_DMP.dmp&lt;br /&gt;
&lt;br /&gt;
To know difference between exp/imp and expdp/impdp please follow below link.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm#i1008963&quot; target=&quot;_blank&quot;&gt;Original Export and Import Versus Data Pump Export and Import&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Unlock system user in oracle&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
To unlock system user run following commands.&lt;br /&gt;
&lt;br /&gt;
C:\&amp;gt;sqlplus / as sysdba&lt;br /&gt;
&lt;br /&gt;
SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 26 15:53:22 2008&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 1982, 2005, Oracle. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Connected to:&lt;br /&gt;
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; alter user system account unlock;&lt;br /&gt;
&lt;br /&gt;
User altered.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Change password for system user&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;
SQL&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; alter user system identified by &amp;lt;new_password&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Reset password&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;
If password is expired then using below commands you can extend the default limit for password.&lt;br /&gt;
&lt;br /&gt;
Login as a system user and execute below query.&lt;br /&gt;
&lt;br /&gt;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/19420239562649604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2016/06/useful-oracle-queries-and-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/19420239562649604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/19420239562649604'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2016/06/useful-oracle-queries-and-commands.html' title='Useful Oracle Queries and Commands'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-6795817695491794572</id><published>2015-06-20T01:51:00.000+05:30</published><updated>2017-03-07T01:40:15.279+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="most downloaded documents"/><category scheme="http://www.blogger.com/atom/ns#" term="most popular wiki"/><category scheme="http://www.blogger.com/atom/ns#" term="popular assets in liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="popular blog"/><category scheme="http://www.blogger.com/atom/ns#" term="popular journal article"/><category scheme="http://www.blogger.com/atom/ns#" term="popular web contents"/><title type='text'>Popular Asset Portlet Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
As name suggest this app will help users to find out popular assets of Liferay. This app supports Journal Article , Blogs , Document and Media .&lt;br /&gt;
User can configure any of the asset listed above and they can find out most viewed , most rated , most commented and recently added asset in Liferay.&lt;br /&gt;
&lt;br /&gt;
For asset like Journal article user can also track where Journal Article is configured. User can check preview of Journal Article as well.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Supported Configuration&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Maximum Article To Display&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
User can decide how many record they want to see. i.e if user set this it 10 then application will display popular 10 records for selected asset.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Asset&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
From the new version user can configuration others assets like Blogs , Document media and Wiki along with Journal Article.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Scope&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There are 2 options supported for scope field 1) Company and 2) Current&lt;br /&gt;
&lt;br /&gt;
1) Company&lt;br /&gt;
- It means application will gather information from current portal instance . Application will gather information from all the sites available under current company.&lt;br /&gt;
&lt;br /&gt;
2) Current&lt;br /&gt;
- If user mark Current for scope field then assets from current site will be displayed to user.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;View&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There are two option supported for this field 1) Table and 2) Chart.&lt;br /&gt;
&lt;br /&gt;
1) If user select 1 st option as table then all information will be displayed in tabular manner.&lt;br /&gt;
&lt;br /&gt;
2) If user set view as chart then all information will be presented to user in form of chart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are few screen shot to understand more about this application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Table View&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjZwel7U9maEoVSu3GnidbtRt0LC6IJL_PEFL6QBrUWDDqGuIsP7Q74mQVBs1MiuGkKd5qxeHEizw-BjMlcpYsW8-D_2MABzXYHEwWYyP3KXGpoNt6uKEtUAdqJw6kGwdEs9kLOrJGK0o/s1600/Image+8+-+Copy.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Popular Asset Portlet Dashboard&quot; border=&quot;0&quot; height=&quot;520&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjZwel7U9maEoVSu3GnidbtRt0LC6IJL_PEFL6QBrUWDDqGuIsP7Q74mQVBs1MiuGkKd5qxeHEizw-BjMlcpYsW8-D_2MABzXYHEwWYyP3KXGpoNt6uKEtUAdqJw6kGwdEs9kLOrJGK0o/s640/Image+8+-+Copy.jpg&quot; title=&quot;Liferay Popular Asset Portlet Dashboard&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Liferay Popular Asset Portlet&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Chart View&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-easpcRk_cL60s0Fo7fnWCynGUBa3FAI4QV5aa_QInz8_9nZwMvnBAumj8ZoMYvqzKmSdMhZQGb-pY01i1tISyrfbuAhzX7-lVh_I70l-W8Oj3fmrCTavNK1ch834x4_uQIAXNToTAko/s1600/Image+9.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Chart View - Liferay Popular Asset Portlet&quot; border=&quot;0&quot; height=&quot;522&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-easpcRk_cL60s0Fo7fnWCynGUBa3FAI4QV5aa_QInz8_9nZwMvnBAumj8ZoMYvqzKmSdMhZQGb-pY01i1tISyrfbuAhzX7-lVh_I70l-W8Oj3fmrCTavNK1ch834x4_uQIAXNToTAko/s640/Image+9.jpg&quot; title=&quot;Chart View - Liferay Popular Asset Portlet&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Chart view - Liferay Popular Asset Portet&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu9BiFdD7jKOLT1I96D_2cx1RA5ohjTksCZGsRE3end2e6d_9MjkBBkR-Cng0A-9RGxKO8wkjunjEg1_-TpFz_adWGnxuA3r9QbUZjpOhVNttNEDEiNDQwV1GNj7PP02K-jFPzgYL-1Qs/s1600/Image+11.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Chart View - Liferay Popular Asset Portlet&quot; border=&quot;0&quot; height=&quot;477&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu9BiFdD7jKOLT1I96D_2cx1RA5ohjTksCZGsRE3end2e6d_9MjkBBkR-Cng0A-9RGxKO8wkjunjEg1_-TpFz_adWGnxuA3r9QbUZjpOhVNttNEDEiNDQwV1GNj7PP02K-jFPzgYL-1Qs/s640/Image+11.jpg&quot; title=&quot;Chart View - Liferay Popular Asset Portlet&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Chart View - Liferay Popular Asset Portlet&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Configuration Screen&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfIdpQLIBfWA9mcrbKOJuFbIoZeytm489pmc9Vj93GyUgGDY_xalFHDGmanHbf2NNZJrVjjg5QDhAR-F_hpl7crioTmFDmZj6D-P6_ApgeD2B_qCs4uDq8rnZThWumbcVoUKjs9boY7w0/s1600/Image+10.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Configuration-Liferay Popular Asset Portlet&quot; border=&quot;0&quot; height=&quot;516&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfIdpQLIBfWA9mcrbKOJuFbIoZeytm489pmc9Vj93GyUgGDY_xalFHDGmanHbf2NNZJrVjjg5QDhAR-F_hpl7crioTmFDmZj6D-P6_ApgeD2B_qCs4uDq8rnZThWumbcVoUKjs9boY7w0/s640/Image+10.jpg&quot; title=&quot;Configuration-Liferay Popular Asset Portlet&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/6795817695491794572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2015/06/popular-asset-portlet-liferay.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/6795817695491794572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/6795817695491794572'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2015/06/popular-asset-portlet-liferay.html' title='Popular Asset Portlet Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjZwel7U9maEoVSu3GnidbtRt0LC6IJL_PEFL6QBrUWDDqGuIsP7Q74mQVBs1MiuGkKd5qxeHEizw-BjMlcpYsW8-D_2MABzXYHEwWYyP3KXGpoNt6uKEtUAdqJw6kGwdEs9kLOrJGK0o/s72-c/Image+8+-+Copy.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-5858795310847996683</id><published>2014-12-23T12:34:00.000+05:30</published><updated>2017-05-05T07:37:26.348+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay Search Container"/><category scheme="http://www.blogger.com/atom/ns#" term="orderable search container"/><category scheme="http://www.blogger.com/atom/ns#" term="Search Container"/><category scheme="http://www.blogger.com/atom/ns#" term="Sort Solr Result"/><category scheme="http://www.blogger.com/atom/ns#" term="sorting in search container"/><title type='text'>Liferay Search Container</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I have posted couple of articles related to sort search container results in Liferay.&lt;br /&gt;
&lt;br /&gt;
You can refer to my blog post&amp;nbsp;&lt;a href=&quot;http://itsliferay.blogspot.in/2011/07/orderable-search-container.html&quot; target=&quot;_blank&quot;&gt;Orderable Search Container In Liferay&lt;/a&gt;&amp;nbsp;to sort database results using Liferay search container.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
If you want to sort results coming from solr using search container then refer to this blog post&amp;nbsp;&lt;a href=&quot;http://itsliferay.blogspot.in/2014/04/sort-search-container-result.html&quot; target=&quot;_blank&quot;&gt;Sort Solr Results Using Search Container&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what if you don&#39;t have any database/solr results and still you want to user Liferay search container ? . For example let say if &amp;nbsp;you List&amp;lt;Long&amp;gt; &amp;nbsp;and you want to display the same using Liferay search container.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/306a705209cf1c7ed739.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/5858795310847996683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/12/liferay-search-container.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5858795310847996683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5858795310847996683'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/12/liferay-search-container.html' title='Liferay Search Container'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-4686932345248812936</id><published>2014-12-20T00:48:00.000+05:30</published><updated>2016-07-13T13:02:12.368+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet Preferences"/><category scheme="http://www.blogger.com/atom/ns#" term="Preferences"/><category scheme="http://www.blogger.com/atom/ns#" term="Read Preferences in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Read Preferences of Remote Portlet"/><title type='text'>Read Portlet Preferences in Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
We know how to get preferences of current portlet from request object (&lt;span style=&quot;background-color: white; color: #4c4c4e; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 13px; line-height: 19.5px;&quot;&gt;renderRequest.getPreferences()&lt;/span&gt;) but some time we have requirement to read preferences of remote portlet placed on some other page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using PortletPreferenceLocalServiceUtil we can read preference of any portlet. We just need to take care while passing parameter like OWNER_ID ,OWNER_TYPE , Plid , and Default Preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;If the preferences are unique per group&amp;nbsp;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
OWNER_ID :&amp;nbsp;PortletKeys.PREFS_OWNER_TYPE_GROUP&lt;br /&gt;
&lt;br /&gt;
OWNER_TYPE : If the preferences are unique per group (Shared preferences between portlet placed on multiple page within same group) then pass groupId as OWNER_TYPE.&lt;br /&gt;
&lt;br /&gt;
Plid : 0 &amp;nbsp;(PortletKeys.PREFS_PLID_SHARED).&lt;br /&gt;
&lt;br /&gt;
PortletId : PortletId of remote portlet.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;u&gt;If the preferences are unique per layout&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
OWNER_ID :&amp;nbsp;PortletKeys.PREFS_OWNER_TYPE_LAYOUT&lt;br /&gt;
&lt;br /&gt;
OWNER_TYPE : 0&lt;br /&gt;
&lt;br /&gt;
Plid : Pass Plid of page where remote portlet is placed. If Blog portlet is placed on &quot;/home&quot; page then pass plid of &quot;/home&quot; page.&lt;br /&gt;
&lt;br /&gt;
PortletId : PortletId of remote portlet.&lt;br /&gt;
&lt;br /&gt;
Below is the example to read preferences of remote portlet.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/3200dd16c7cf7e6599ae.js&quot;&gt;&lt;/script&gt;

In case if you are using any other method of PortletPreferecesLocalServiceUtil which returns com.liferay.portal.model.PortletPreferences instead of javax.portlet.PortletPreferences then using below code you can do the converstion from com.liferay.portal.model.PortletPreferences to javax.portlet.PortletPreferences.
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/d9e7b5105335f13791ff.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/4686932345248812936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/12/read-portlet-preferences-in-liferay.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4686932345248812936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4686932345248812936'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/12/read-portlet-preferences-in-liferay.html' title='Read Portlet Preferences in Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-1295081818022572493</id><published>2014-09-26T12:46:00.000+05:30</published><updated>2017-03-07T01:42:20.126+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Asset Publisher"/><category scheme="http://www.blogger.com/atom/ns#" term="Content Filter"/><category scheme="http://www.blogger.com/atom/ns#" term="Custom Fields"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.2"/><category scheme="http://www.blogger.com/atom/ns#" term="User Custom Attribute"/><title type='text'>Content Filtering By User Custom Attribute in Asset Publisher</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This post will help you to configure assets based on user&#39;s custom attribute.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Steps are already available in&lt;a href=&quot;https://issues.liferay.com/browse/LPS-19681&quot;&gt; LPS-19681&lt;/a&gt;&amp;nbsp;but in case if you face any difficulty while configuring the same you can follow this post.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;u&gt;Scenario&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Filter content based on user&#39;s custom attribute. If user A logged in from India then asset publisher to display contents for India. If user B logged in from USA then asset publisher to display content from USA.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Step 1 :&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create custom attribute for user with the type Text and name it as &quot;Location&quot;.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Step 2 :&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Set &quot;India&quot; to location user custom attribute for user A.&lt;/div&gt;
&lt;div&gt;
Set &quot;USA&quot; to location user custom attribute for user B.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Step 3:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now navigate to global scope . From site menu move to global site.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create vocabulary called &quot;Location&quot; in global scope. Create category &quot;India&quot; &amp;amp; &quot;USA&quot; inside Location vocabulary.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8e-3NH8fNSiRU4Q7VDJrFbeGIHIR464-nWXl1tdr06f81NwjOGti1fB8WbuFlhtlBSCXyltwlXMjNnlav22Ngx8AeRgpE3bGX2y49tRvXzqfJ8ytdh7sMQ6wriDQGdUaJTj2k12uLjM/s1600/categories.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Categories Screen in Control Panel&quot; border=&quot;0&quot; height=&quot;394&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8e-3NH8fNSiRU4Q7VDJrFbeGIHIR464-nWXl1tdr06f81NwjOGti1fB8WbuFlhtlBSCXyltwlXMjNnlav22Ngx8AeRgpE3bGX2y49tRvXzqfJ8ytdh7sMQ6wriDQGdUaJTj2k12uLjM/s1600/categories.jpg&quot; title=&quot;Liferay Categories Screen in Control Panel&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Liferay Categories Screen in Control Panel&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Step 4 :&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create some web content or documents inside site (not global site) in which you want to configure asset publisher .&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Categorize few of the contents in &quot;India&quot; category and few of them in &quot;USA&quot; category.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Step : 5&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now place asset publisher on page and click on configuration icon.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Specify &quot;Location&quot; in&amp;nbsp;Displayed assets must match these custom user profile attributes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiYVLHU3ZSe5ZSUyM8DFu8ze66SN4W7AHZO3qDVt_IMv46tblYpDpH5SrftJnA-PZyGbZsGacIBEvjEJvZun-hz5iHM5mI55cS0M4nMEjCRqCJaPttF2g33-W4gyEaGl5KMx1X-D0b8aM/s1600/asset_publisher.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Asset Publisher Configuration&quot; border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiYVLHU3ZSe5ZSUyM8DFu8ze66SN4W7AHZO3qDVt_IMv46tblYpDpH5SrftJnA-PZyGbZsGacIBEvjEJvZun-hz5iHM5mI55cS0M4nMEjCRqCJaPttF2g33-W4gyEaGl5KMx1X-D0b8aM/s1600/asset_publisher.jpg&quot; title=&quot;Liferay Asset Publisher Configuration&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Liferay Asset Publisher Configuration&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That&#39;s it. Now log in using different account and verify contents.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/1295081818022572493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/09/liferay-asset-publisher-and-user-custom-attribute.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/1295081818022572493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/1295081818022572493'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/09/liferay-asset-publisher-and-user-custom-attribute.html' title='Content Filtering By User Custom Attribute in Asset Publisher'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8e-3NH8fNSiRU4Q7VDJrFbeGIHIR464-nWXl1tdr06f81NwjOGti1fB8WbuFlhtlBSCXyltwlXMjNnlav22Ngx8AeRgpE3bGX2y49tRvXzqfJ8ytdh7sMQ6wriDQGdUaJTj2k12uLjM/s72-c/categories.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-856855595639170115</id><published>2014-09-20T10:37:00.000+05:30</published><updated>2017-03-07T01:43:04.411+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Find Portlet Location"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet Location Tracker"/><category scheme="http://www.blogger.com/atom/ns#" term="Remove Portlet From Page"/><category scheme="http://www.blogger.com/atom/ns#" term="Track Portlet Location"/><title type='text'>Portlet Location Tracker - v1.1 Released for Liferay 6.2 and Liferay 6.1</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I am pleased to share that &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt; v1.1 has been released .&lt;br /&gt;
&lt;br /&gt;
New release of &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt; now supports &lt;a href=&quot;https://www.liferay.com/products/liferay-portal/liferay-portal-6.2&quot; target=&quot;_blank&quot;&gt;Liferay 6.2&lt;/a&gt; as well. &amp;nbsp;In the v1.1 of &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt; we have added functionality to remove portlet from page.&lt;br /&gt;
&lt;br /&gt;
Now user can remove any portlet from page in one shot using &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
No need to browse pages to remove portlet just use &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt; , search for your portlet and from results remove from portlet from desired page.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCNrv8rT6vevxuTVrKzqQC2J9enLMU2ttbZaoL2seweAFGTGMXeJm-sAPZ9KHkcm0oUlHPWgGw9yf-jbStbbSP_SvfQ5ryxJ3cjIa2qT684L8Ld43AUCe_iG4mEMs1E3c-THvW3c2HWE/s1600/Image+1.1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Portlet Location Tracker - Dashboard&quot; border=&quot;0&quot; height=&quot;353&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCNrv8rT6vevxuTVrKzqQC2J9enLMU2ttbZaoL2seweAFGTGMXeJm-sAPZ9KHkcm0oUlHPWgGw9yf-jbStbbSP_SvfQ5ryxJ3cjIa2qT684L8Ld43AUCe_iG4mEMs1E3c-THvW3c2HWE/s1600/Image+1.1.jpg&quot; title=&quot;Liferay Portlet Location Tracker - Dashboard&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Portlet Location Tracker - Dashboard&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thank you ,&lt;br /&gt;
Jitendra Rajput&lt;br /&gt;
Consultant @&amp;nbsp;&lt;a href=&quot;http://www.cignex.com/&quot; target=&quot;_blank&quot;&gt;CIGNEX Datamatics&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/856855595639170115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/09/liferay-portlet-location-tracker-v11-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/856855595639170115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/856855595639170115'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/09/liferay-portlet-location-tracker-v11-released.html' title='Portlet Location Tracker - v1.1 Released for Liferay 6.2 and Liferay 6.1'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCNrv8rT6vevxuTVrKzqQC2J9enLMU2ttbZaoL2seweAFGTGMXeJm-sAPZ9KHkcm0oUlHPWgGw9yf-jbStbbSP_SvfQ5ryxJ3cjIa2qT684L8Ld43AUCe_iG4mEMs1E3c-THvW3c2HWE/s72-c/Image+1.1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-812013828456830394</id><published>2014-09-12T19:39:00.000+05:30</published><updated>2014-09-13T22:00:06.259+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ext-plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="Override serviceimpl using ext"/><category scheme="http://www.blogger.com/atom/ns#" term="Serviceimpl in ext"/><title type='text'>Liferay - Override ServiceImpl Using Ext</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
It is recommended to implement hook to override any portal service but there are certain limitation if you are overriding portal service using hook.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/overriding-a-portal-service&quot; target=&quot;_blank&quot;&gt;Override a Portal Service using Hook&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You won&#39;t be able to access any class of portal-impl.jar inside hook so its better to use ext-plugin in such case.&lt;br /&gt;
&lt;br /&gt;
This post will describe how to override any service impl class using ext.&lt;br /&gt;
&lt;br /&gt;
First of all create ext-plugin. Inside ext-impl/src create META-INF folder.&lt;br /&gt;
&lt;br /&gt;
Create ext-spring.xml file. You might have question why we have to create xml file with this specific name. To know more on this you need to check spring.configs property of portal.properties file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3XineFFfyyVl_Zb7BKDlBV4bQvHYpjv1GW86fIgO61JuTkLtZfA6EZ5Pi2uwzjII7pl_3Mps_Fk6yQ21e9hhjQXaalV8hFK6_Wva8gP80NnXNDMbAtL5aexQmkVodNgK730G63RvDVo/s1600/service_impl.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3XineFFfyyVl_Zb7BKDlBV4bQvHYpjv1GW86fIgO61JuTkLtZfA6EZ5Pi2uwzjII7pl_3Mps_Fk6yQ21e9hhjQXaalV8hFK6_Wva8gP80NnXNDMbAtL5aexQmkVodNgK730G63RvDVo/s1600/service_impl.jpg&quot; height=&quot;640&quot; width=&quot;635&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Check at the bottom of this property. You will see ext-spring.xml so Liferay will look for this xml to override any class injected through spring.&lt;br /&gt;
&lt;br /&gt;
If you don&#39;t want to override default &amp;nbsp;ext-spring.xml then for your custom spring configuration you can copy spring.configs property from portal.properties file and paste it inside portal-ext.properties.&lt;br /&gt;
Append name of your custom-spring.xml at the end of this property.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To override method of&amp;nbsp;MBMessageLocalServiceImpl add following entry inside ext-spring.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&amp;lt;bean id=&quot;com.liferay.portlet.messageboards.service.MBMessageLocalService&quot; class=&quot;com.custom.portlet.messageboards.service.impl.CustomMBMessageLocalServiceImpl&quot; /&amp;gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You can get bean defination from spring configuration files mentioned in spring.configs property.&lt;br /&gt;
For MBMessageLocalServiceImpl bean details are available inside portal-spring.xml file.&lt;br /&gt;
&lt;br /&gt;
Similar way to override PortalLDAPImporterUtil you need look into ldap-spring.xml for bean defination.&lt;br /&gt;
&lt;br /&gt;
Now next thing is to create CustomMBMessageLocalServiceImpl which must extend MBMessageLocalServiceImpl .&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;public class&amp;nbsp;CustomMBMessageLocalServiceImpl&amp;nbsp;extends MBMessageLocalServiceImpl&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Now you can override any method of MBMessageLocalServiceImpl inside CustomMBMessageLocalServiceImpl .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You only need to write specific method you want to override. No need to copy entire code of original class.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/812013828456830394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/09/override-serviceimpl-using-ext.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/812013828456830394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/812013828456830394'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/09/override-serviceimpl-using-ext.html' title='Liferay - Override ServiceImpl Using Ext'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3XineFFfyyVl_Zb7BKDlBV4bQvHYpjv1GW86fIgO61JuTkLtZfA6EZ5Pi2uwzjII7pl_3Mps_Fk6yQ21e9hhjQXaalV8hFK6_Wva8gP80NnXNDMbAtL5aexQmkVodNgK730G63RvDVo/s72-c/service_impl.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-9156989947134228285</id><published>2014-09-05T17:30:00.000+05:30</published><updated>2016-07-13T13:03:24.729+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Create Portlet URL in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Page URL in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet URL"/><title type='text'>Create Portlet URL In Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Here is the example by which you can retrieve URL of portlet which is reside on another Page.&lt;br /&gt;
Let say if you have Portlet A on page A and there is one more portlet called Portlet B on some other page that you dont know&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
Option 1 

&lt;script src=&quot;https://gist.github.com/jitendra-rajput/eba806dcb7516d02dbc1.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Option 2

&lt;script src=&quot;https://gist.github.com/jitendra-rajput/ece9bc72b61ec42abb1c.js&quot;&gt;&lt;/script&gt;

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/9156989947134228285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/09/create-portlet-url-in-liferay.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/9156989947134228285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/9156989947134228285'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/09/create-portlet-url-in-liferay.html' title='Create Portlet URL In Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-4997791639640316247</id><published>2014-05-29T08:21:00.000+05:30</published><updated>2017-03-07T01:43:48.258+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.2"/><category scheme="http://www.blogger.com/atom/ns#" term="most viewed journal article in liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Most viewed web contents in liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="popular journal article"/><category scheme="http://www.blogger.com/atom/ns#" term="popular web contents"/><title type='text'>Popular Journal Article - Get Most Viewed Articles in Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/38046099&quot; target=&quot;_blank&quot;&gt;Popular Journal Article&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
My new application - &quot;&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/38046099&quot;&gt;Popular Journal Article&lt;/a&gt;&quot; is now available on Liferay market place.&lt;br /&gt;
This &amp;nbsp;application can be used to find out popular journal article/web contents of current group. Based on the view count of journal article this app will display list of articles. Application will not display any web content/Journal article with zero view counts. User can configure number of popular articles they want to see from configuration menu.&lt;br /&gt;
&lt;br /&gt;
i.e If user wants to see top 20 popular article for current group then they can set the maxium records to display from configuration menu.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KyOWaU-8fNXktKDtyWAQxV_cupVl5faRD84ycsct6wILd-icixVIejQAWHXXCzxlZdWfUseJNtylSEX6wB22vsJZc-KmCRqYnnzl8xoZO-o7jLPhSJiSsGBEVDNmGETn4kwjgFbkE_c/s1600/Image+1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Popular Journal Article Dashboard&quot; border=&quot;0&quot; height=&quot;283&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KyOWaU-8fNXktKDtyWAQxV_cupVl5faRD84ycsct6wILd-icixVIejQAWHXXCzxlZdWfUseJNtylSEX6wB22vsJZc-KmCRqYnnzl8xoZO-o7jLPhSJiSsGBEVDNmGETn4kwjgFbkE_c/s1600/Image+1.jpg&quot; title=&quot;Liferay Popular Journal Article Dashboard&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Popular Journal Article Dashboard&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
You can download this application from Liferay market place using below link.&lt;br /&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/38046099&quot;&gt;https://www.liferay.com/marketplace/-/mp/application/38046099&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To know how to use this application you can read user manual on below link.&lt;br /&gt;
&lt;a href=&quot;https://github.com/jitendra-rajput/popular-journal-article&quot;&gt;https://github.com/jitendra-rajput/popular-journal-article&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can provide issues or suggestion for this application by commenting on this post or you can write on &lt;a href=&quot;http://itsliferay.blogspot.in/p/support.html&quot; target=&quot;_blank&quot;&gt;support page&lt;/a&gt; of this blog.&lt;br /&gt;
&lt;br /&gt;
Download - Explore and Rate this App .&lt;br /&gt;
&lt;br /&gt;
Thank you,&lt;br /&gt;
Jitendra Rajput&lt;br /&gt;
Consultant @ &lt;a href=&quot;http://www.cignex.com/&quot; target=&quot;_blank&quot;&gt;CIGNEX Datamatics&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/4997791639640316247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/05/popular-journal-article-liferay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4997791639640316247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4997791639640316247'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/05/popular-journal-article-liferay.html' title='Popular Journal Article - Get Most Viewed Articles in Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KyOWaU-8fNXktKDtyWAQxV_cupVl5faRD84ycsct6wILd-icixVIejQAWHXXCzxlZdWfUseJNtylSEX6wB22vsJZc-KmCRqYnnzl8xoZO-o7jLPhSJiSsGBEVDNmGETn4kwjgFbkE_c/s72-c/Image+1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-5814210606772229928</id><published>2014-05-22T11:23:00.001+05:30</published><updated>2017-03-07T01:44:20.415+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Document download log hook"/><category scheme="http://www.blogger.com/atom/ns#" term="Document download logs"/><category scheme="http://www.blogger.com/atom/ns#" term="Document Download Tracking in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.2"/><title type='text'>Document Download Tracking - Check who downloaded your document in Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot; target=&quot;_blank&quot;&gt;Document Download Tracking&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
My 2nd app &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot; target=&quot;_blank&quot;&gt;Document Download Log Hook&lt;/a&gt; &amp;nbsp;is now available on Liferay market &amp;nbsp;place . Its a common requirement where we want to track document download activities. This can be done with any third party analytic tool as well but some times we can use Liferay persisted data itself to track downloads.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot; target=&quot;_blank&quot;&gt;Document download tracker&lt;/a&gt; can used as alternative to any analytic tool. It can be integrated with document library to track document downloads. Once you enable this app it will automatically persist all the information about who downloaded document. App will store information like User name and Remote IP address . This app has functionality clear logs for any document. User can also clear download logs for all document if they wish.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAgUSSk1w0wac0UJwDxlVMlbuN5EbKWaNPEHJwntyZDJkp1p4NSJnUnxnhaMWL-vT1rctTWh7rIvKzNr1eyIG0lPg6HlI8FjFpm4WHKeBJwpTtPPYMLejEywld_2jspgk0HKArzqJcYMc/s1600/Image+3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Document Download Logs&quot; border=&quot;0&quot; height=&quot;468&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAgUSSk1w0wac0UJwDxlVMlbuN5EbKWaNPEHJwntyZDJkp1p4NSJnUnxnhaMWL-vT1rctTWh7rIvKzNr1eyIG0lPg6HlI8FjFpm4WHKeBJwpTtPPYMLejEywld_2jspgk0HKArzqJcYMc/s1600/Image+3.jpg&quot; title=&quot;Liferay Document Download Logs&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Document Download Logs&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot; target=&quot;_blank&quot;&gt;Document Download Log Hook&lt;/a&gt; is available for both &lt;a href=&quot;https://www.liferay.com/products/liferay-portal/liferay-portal-6.2&quot; target=&quot;_blank&quot;&gt;Liferay 6.2&lt;/a&gt; and Liferay 6.1.&lt;br /&gt;
&lt;br /&gt;
There few steps you need to follow to use this application. Here are deployment steps.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Deployment steps for tomcat&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1) Stop application server. Download document-download-tracking-hook-service jar from bundle and place this service jar to [SERVER]/lib/ext . Set below property in portal-ext file.&lt;br /&gt;
&lt;br /&gt;
# # This property is used to enable/disable document download tracker app.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;document.download.logs.enabled=true&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
2) Place document-download-tracking-hook war in [Server]/deploy directory&lt;br /&gt;
&lt;br /&gt;
3) Once you are done with above steps next thing is to restart your server.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Deployment steps for JBoss (7.1)&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
1) Stop application server. Download document-download-tracking-hook-service jar from bundle and place this service jar to [server]/modules/com/liferay/portal/main folder .&lt;br /&gt;
&lt;br /&gt;
2) Navigate to [server]/modules/com/liferay/portal/main folder and add below entry in module.xml.&lt;br /&gt;
&lt;br /&gt;
3) Set below property in portal-ext file.&lt;br /&gt;
&lt;br /&gt;
# # This property is used to enable/disable document download tracker app.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;document.download.logs.enabled=true&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
4) Place document-download-tracking-hook war in [Server]/deploy directory&lt;br /&gt;
&lt;br /&gt;
5) Once you are done with above steps next thing is to restart your server.&lt;br /&gt;
&lt;br /&gt;
How to use this application&lt;br /&gt;
&lt;br /&gt;
1) If the logs are enabled and if you download any document then it will be displayed in log .&lt;br /&gt;
&lt;br /&gt;
2) If any logged in user download document then it will display name of the user along with IP Address and time of download.&lt;br /&gt;
&lt;br /&gt;
3) If any non-authenticated user download document in that case it will stored on the name of Guest.&lt;br /&gt;
&lt;br /&gt;
4) You can view download logs from Control Panel--&amp;gt; Document Library . Select any document and click on Download Logs action.&lt;br /&gt;
&lt;br /&gt;
5) You can clear logs for individual document as well for all documents.&lt;br /&gt;
&lt;br /&gt;
Below is the link to download application from Liferay market place.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot;&gt;https://www.liferay.com/marketplace/-/mp/application/37930491&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can report issues/suggestion related to this app by commenting on this post or you can post on &lt;a href=&quot;http://itsliferay.blogspot.in/p/support.html&quot; target=&quot;_blank&quot;&gt;support page&lt;/a&gt; of this blog.&lt;br /&gt;
At the end don&#39;t forget to rate this app on &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37930491&quot; target=&quot;_blank&quot;&gt;Liferay Market Place.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thank you,&lt;br /&gt;
Jitendra Rajput&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/5814210606772229928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/05/document-download-tracking-in-liferay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5814210606772229928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5814210606772229928'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/05/document-download-tracking-in-liferay.html' title='Document Download Tracking - Check who downloaded your document in Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAgUSSk1w0wac0UJwDxlVMlbuN5EbKWaNPEHJwntyZDJkp1p4NSJnUnxnhaMWL-vT1rctTWh7rIvKzNr1eyIG0lPg6HlI8FjFpm4WHKeBJwpTtPPYMLejEywld_2jspgk0HKArzqJcYMc/s72-c/Image+3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-8112402949934226636</id><published>2014-05-20T22:39:00.000+05:30</published><updated>2017-03-07T01:44:53.236+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Find Portlet Location"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay market place"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet Location Tracker"/><title type='text'>Portlet Location Tracker - Find Where your portlet is placed</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
My first app &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Portlet Location Tracker&lt;/a&gt; is now available on Liferay market place. This app will help developers as well as end user to locate the portlets placed on different pages. App will search in entire portal for the portlet you are looking for and display possible results. For big portal its difficult for Developers/QA and end users to locate the page. This application will help theme to track where portlet is placed .&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQqfj74akfsoGL19BB27pG_kxen6hrf4IUOvVjU4LHcL4qMTl_X1LSec2vBFoAtE_7_kumd1EGLqwzxvGqCCjzAv2u3iq55R6BMGDqs4mr9NjnwMicePxuz_zZshrImLnY2MsHE1NYGU0/s1600/Image+1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Liferay Portlet Location Tracker&quot; border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQqfj74akfsoGL19BB27pG_kxen6hrf4IUOvVjU4LHcL4qMTl_X1LSec2vBFoAtE_7_kumd1EGLqwzxvGqCCjzAv2u3iq55R6BMGDqs4mr9NjnwMicePxuz_zZshrImLnY2MsHE1NYGU0/s1600/Image+1.jpg&quot; title=&quot;Liferay Portlet Location Tracker&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Portlet Location Tracker&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the description about the functionalities available in Location Tracker Portlet&lt;/div&gt;
&lt;div&gt;
1) Find portlet&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;By default app will display all the portlets available in company except system portlets.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Entire list of portlet will be displayed using drop down&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;User can search for page locations by selecting any of the portlets from list.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;User can go to actual page as well from results it self.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;In results application will display more information about page (private or public page). It will also display group name in which page belongs.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
2) Export to Excel&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;User can export search results in to Excel file . For Export to Excel application uses Jasper report.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can download this app from &lt;a href=&quot;https://www.liferay.com/marketplace&quot; target=&quot;_blank&quot;&gt;Liferay market place&lt;/a&gt;&amp;nbsp;below is the to download this app.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot;&gt;https://www.liferay.com/marketplace/-/mp/application/37835124&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;freesans&amp;quot; , &amp;quot;clean&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 25.5px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
You can report issues/suggestion related to this app on &lt;a href=&quot;http://itsliferay.blogspot.in/p/support.html&quot; target=&quot;_blank&quot;&gt;support page&lt;/a&gt; of this blog.&lt;br /&gt;
&lt;span style=&quot;font-size: 15px; line-height: 25.5px;&quot;&gt;At the end don&#39;t forget to rate this app on &lt;a href=&quot;https://www.liferay.com/marketplace/-/mp/application/37835124&quot; target=&quot;_blank&quot;&gt;Liferay Market Place&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
Thank you ,&lt;br /&gt;
Jitendra Rajput&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/8112402949934226636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/05/find-portlet-location-in-liferay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8112402949934226636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8112402949934226636'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/05/find-portlet-location-in-liferay.html' title='Portlet Location Tracker - Find Where your portlet is placed'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQqfj74akfsoGL19BB27pG_kxen6hrf4IUOvVjU4LHcL4qMTl_X1LSec2vBFoAtE_7_kumd1EGLqwzxvGqCCjzAv2u3iq55R6BMGDqs4mr9NjnwMicePxuz_zZshrImLnY2MsHE1NYGU0/s72-c/Image+1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-8099880318674007600</id><published>2014-04-24T18:17:00.000+05:30</published><updated>2014-09-20T15:21:11.137+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="custom attribute"/><category scheme="http://www.blogger.com/atom/ns#" term="expando"/><category scheme="http://www.blogger.com/atom/ns#" term="Expando Search in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="User"/><category scheme="http://www.blogger.com/atom/ns#" term="User based on Custom Attribute in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="User based on expando value"/><title type='text'>Liferay - Get User Based On Expando Value</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Use below code snippet if you want to search users based on expando value. In below snippet ColumnName is the name of custom attribute (expando attribute) and data is expando value.&lt;br /&gt;
&lt;br /&gt;
One more point i would like to highlight here in below snippet we are looking for exact value of custom attribute . In few cases you might not have exact value of custom attribute in that case you can alter &lt;a href=&quot;http://itsliferay.blogspot.in/2012/03/dynamic-query-in-liferay.html&quot;&gt;dynamic query&lt;/a&gt; and instead of eq you can use like query. For more information on dynamic query you check this &lt;a href=&quot;http://itsliferay.blogspot.in/2012/03/dynamic-query-in-liferay.html&quot; target=&quot;_blank&quot;&gt;post&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/11253230.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/8099880318674007600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/04/get-user-based-on-expando-value.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8099880318674007600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8099880318674007600'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/04/get-user-based-on-expando-value.html' title='Liferay - Get User Based On Expando Value'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-4193953421556702147</id><published>2014-04-18T20:47:00.000+05:30</published><updated>2014-04-21T22:33:39.547+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay-plugin-package"/><category scheme="http://www.blogger.com/atom/ns#" term="Required deployment context"/><category scheme="http://www.blogger.com/atom/ns#" term="Share services between portlets"/><title type='text'>Share Services Between Plugin Portlets In Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Sharing services between plugin portlets is very easy in Liferay. Usually people place services jar manually when they want to access any other portlet&#39;s services.&lt;br /&gt;
&lt;br /&gt;
Here is the automated where liferay will take of the dependent service jar. You just need to name the dependent portlet&#39;s name.&lt;br /&gt;
&lt;br /&gt;
Let say for your library management portlet you want to access services of student portlet. In liferay-plugin-package.properties file you need to enter below entry.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
File liferay-plugin-package.properties you can locate inside WEB-INF folder.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;required-deployment-contexts=\&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; student-portlet&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
When you deploy library-portlet you will see below logs. As you can see in the logs before deploying library-portlet it will check for student-portlet.&lt;br /&gt;
It will build student-portlet first and then copy service jar from student-portlet into library-portlet.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;18 Apr 2014 05:23:35:866 INFO &amp;nbsp;[HotDeployEvent:109] Plugin library-portlet requires student-portlet&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;18 Apr 2014 05:23:36:111 INFO &amp;nbsp;[HotDeployImpl:178] Deploying library-portlet from queue&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;18 Apr 2014 05:23:36:112 INFO &amp;nbsp;[PluginPackageUtil:1033] Reading plugin package for library-portlet&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;18 Apr 2014 05:23:36:928 INFO &amp;nbsp;[PortletHotDeployListener:294] Registering portlets for library-portlet&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;18 Apr 2014 05:23:37:079 INFO &amp;nbsp;[PortletHotDeployListener:454] 1 portlet for library-portlet is available for use&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; There are other usage properties available inside liferay-plugin-package.properties file&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;portal-dependency-jars and portal-dependency-tlds).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;By using this properties you can use jars and tlds available Liferay portal.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/4193953421556702147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/04/share-services-between-portlets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4193953421556702147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/4193953421556702147'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/04/share-services-between-portlets.html' title='Share Services Between Plugin Portlets In Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-1373224789843171387</id><published>2014-04-17T12:34:00.000+05:30</published><updated>2014-04-21T22:37:06.656+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="JSON"/><category scheme="http://www.blogger.com/atom/ns#" term="JSON Serialization"/><category scheme="http://www.blogger.com/atom/ns#" term="JSON Serialization in Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><title type='text'>JSON Serialization in Liferay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Many times we have requirement to convert Liferay service response or any list into JSON object. Most of the time we are doing this manually.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10958962.js&quot;&gt;&lt;/script&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;

There are other ways as well by which we can convert List into JSON string.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
Service builder has support for JSON &amp;nbsp;serialization,too. The json-enabled attribute of entity tag specifies whether or not the entity should be annotated for JSONserialization.&lt;br /&gt;
By default, if the remote-service value is true, then thejson-enabled value is true.&lt;br /&gt;
Column tag has the same attribute, json-enabled.&lt;br /&gt;
It specifies whether or not the column should be annotated for JSON serialization. By default, if the json-enabled value in the entity element is true, then the json-enabled value in the column element is true.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10958996.js&quot;&gt;&lt;/script&gt;

json enabled is true for enttity TestJson so all the column tags will have by default json-enabled as true.&lt;br /&gt;
In case if you want to exclude any property to not to appear when you serialize then you can set json-enabled as false. For email column json-enabled is set to false.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
build-service and check TestJSONModelImpl class. For the field json-enabled is true you will see @JSON annotation. For excluded fields you will see @JSON(include = false) .&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10959028.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
Now you can easily convert your list returned using Liferay services into JSON format.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;JSONSerializer jsonSerializer = JSONFactoryUtil.createJSONSerializer();&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;String json = jsonSerializer.serialize(list);&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1dWJg6f2pM1KVZ5T63bIs69-n2SicumgEbE1ynio7hMkMN9GdbbtiwvgsYgLYHExuKNyhwcmgSMEja9GRmA-zJGd1hQongOXM0C-Cygw-SZgLGYCelxK8nKKDBhjvmHks-ASWoVWgEZQ/s1600/screenshot1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1dWJg6f2pM1KVZ5T63bIs69-n2SicumgEbE1ynio7hMkMN9GdbbtiwvgsYgLYHExuKNyhwcmgSMEja9GRmA-zJGd1hQongOXM0C-Cygw-SZgLGYCelxK8nKKDBhjvmHks-ASWoVWgEZQ/s1600/screenshot1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
You can also exclude fields you don&#39;t need in JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim35IvFQo4x0AMTycaLF3iZtKd4qF7KChwZJVa-z-FvvocniYbPRv86x0EGDrskY-4df7wNb6w659DTyvtIBtOJ0b3Otds3kJNt-c5WLOHxi8vUkN6USHPVto_FiF7QBbLRWSaomba3n4/s1600/screenshot2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim35IvFQo4x0AMTycaLF3iZtKd4qF7KChwZJVa-z-FvvocniYbPRv86x0EGDrskY-4df7wNb6w659DTyvtIBtOJ0b3Otds3kJNt-c5WLOHxi8vUkN6USHPVto_FiF7QBbLRWSaomba3n4/s1600/screenshot2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Same way you can use serialize OOB data as well like user.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;List&amp;lt;User&amp;gt; userList = UserLocalServiceUtil.getUsers(-1, -1);&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;String json = JSONFactoryUtil.looseSerialize(userList);&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;By default collections are excluded from serialization . You can include them using below way.&lt;br /&gt;
&lt;b&gt;&amp;nbsp;String json &amp;nbsp;= JSONFactoryUtil.looseSerialize(userList,&quot;organizations&quot;)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeiCdCGIAZ899QRS5AWWNcqMZhsvTuqBVZ2WjQGBnpjWA_zsNkXGeewakZjTxtTpNIBz30VyAx7kjFu4U96N2v6MwrYkS5f5jQsnyx7V6SnJJJ4nUC1s3KCD1DrsxJgyuxBlQmkbH22Ag/s1600/screenshot3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeiCdCGIAZ899QRS5AWWNcqMZhsvTuqBVZ2WjQGBnpjWA_zsNkXGeewakZjTxtTpNIBz30VyAx7kjFu4U96N2v6MwrYkS5f5jQsnyx7V6SnJJJ4nUC1s3KCD1DrsxJgyuxBlQmkbH22Ag/s1600/screenshot3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/1373224789843171387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/04/json-serialization-in-liferay.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/1373224789843171387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/1373224789843171387'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/04/json-serialization-in-liferay.html' title='JSON Serialization in Liferay'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1dWJg6f2pM1KVZ5T63bIs69-n2SicumgEbE1ynio7hMkMN9GdbbtiwvgsYgLYHExuKNyhwcmgSMEja9GRmA-zJGd1hQongOXM0C-Cygw-SZgLGYCelxK8nKKDBhjvmHks-ASWoVWgEZQ/s72-c/screenshot1.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-718929292844147302</id><published>2014-04-12T19:43:00.000+05:30</published><updated>2016-07-13T13:04:05.275+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="orderable search container"/><category scheme="http://www.blogger.com/atom/ns#" term="Solr"/><category scheme="http://www.blogger.com/atom/ns#" term="Sort Solr Result"/><category scheme="http://www.blogger.com/atom/ns#" term="sorting in search container"/><title type='text'>Sort Solr Search Result</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Below snippet will help you to sort solr search results.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10537404.js&quot;&gt;&lt;/script&gt;

Few things i would like to highlight about solr result sorting.&lt;br /&gt;
You can not sort tokenized field i mean if you have defined your solr field with the type text or textToTight.&lt;br /&gt;
You can sort the field which have type string . You can create dynamic fields easily in solr.&lt;br /&gt;
Add below entry in schema.xml and solr will automatically create field with the type string.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&amp;lt;dynamicField name=&quot;*_sortable&quot; type=&quot;string&quot; indexed=&quot;true&quot; multiValued=&quot;false&quot; stored=&quot;true&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use any field with suffix _sortable then solr will automatically create field if it is not exist.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/718929292844147302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/04/sort-solr-search-result.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/718929292844147302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/718929292844147302'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/04/sort-solr-search-result.html' title='Sort Solr Search Result'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-8176761491396888065</id><published>2014-04-12T19:22:00.001+05:30</published><updated>2014-09-20T15:17:28.968+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Jitendra Rajput"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay 6.1"/><category scheme="http://www.blogger.com/atom/ns#" term="orderable search container"/><category scheme="http://www.blogger.com/atom/ns#" term="sorting in search container"/><title type='text'>Liferay - Sort Search Container Result </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To sort &lt;a href=&quot;https://www.liferay.com/community/wiki/-/wiki/Main/SearchContainer&quot; target=&quot;_blank&quot;&gt;liferay search container&lt;/a&gt; result follow below steps.&lt;br /&gt;
&lt;br /&gt;
1) Create &lt;a href=&quot;https://www.liferay.com/community/wiki/-/wiki/Main/SearchContainer&quot; target=&quot;_blank&quot;&gt;liferay search container&lt;/a&gt; in your JSP.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10536707.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2) Create &lt;a href=&quot;https://www.liferay.com/community/wiki/-/wiki/Main/SearchContainer&quot; target=&quot;_blank&quot;&gt;search container&lt;/a&gt; in your controller and set result in search container object.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10536770.js&quot;&gt;&lt;/script&gt;

3) Get sorted results using &lt;a href=&quot;http://itsliferay.blogspot.in/2012/03/dynamic-query-in-liferay.html&quot; target=&quot;_blank&quot;&gt;dynamic query&lt;/a&gt;.
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/jitendra-rajput/10536806.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/8176761491396888065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2014/04/sort-search-container-result.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8176761491396888065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/8176761491396888065'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2014/04/sort-search-container-result.html' title='Liferay - Sort Search Container Result '/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2232200964984010638.post-5770326948566661738</id><published>2013-08-06T19:36:00.000+05:30</published><updated>2014-09-20T15:19:58.626+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="All About Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Connect Liferay with SAP"/><category scheme="http://www.blogger.com/atom/ns#" term="Jitendra Rajput"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay and SAP"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay SAP Integration"/><category scheme="http://www.blogger.com/atom/ns#" term="SAP JCO Connector"/><title type='text'>Connect Liferay with SAP using SAP JCO Connector</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
This post will elaborate you on how to
connect your &lt;a href=&quot;https://www.liferay.com/&quot;&gt;Liferay&lt;/a&gt; portal with SAP Database. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Many times we want need data from SAP
database either using web service call or using any third party
connector. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
In this post we are going to use &lt;a href=&quot;http://www.vogella.com/code/de.vogella.sap.jco/src/de/vogella/sap/jco/connection/Connection.html&quot;&gt;JCOconnector&lt;/a&gt; to connect &lt;a href=&quot;https://www.liferay.com/&quot;&gt;Liferay &lt;/a&gt;portal with SAP Database. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;u&gt;&lt;b&gt;Prerequisite&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
1) First download SAP JCO Connector for your operating system from&amp;nbsp;&lt;a href=&quot;http://service.sap.com/connectors&quot;&gt;http://service.sap.com/connectors&lt;/a&gt;.&lt;br /&gt;
If you are using windows then make sure you download correct version of sapjco dll and jar.&lt;br /&gt;
For windows you need to place sapjco dll inside Windows\System32 directory&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
2) Next thing is configure sapjco3.jar
inside Lifeary portal.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Place this jar inside
[LIFERAY_TOMCAT]/lib/ext. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;u&gt;&lt;b&gt;Liferay SAP
Integration&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Following diagram will give you some
idea on integrating Liferay with SAP. [Image 1 Diagram]&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5x4Lsn9ZSzOh-FMo3bujoaaIGkfgUp4dT7rdrco1LGmncZLWXh97BgzxOX-bDyXN77YLiecHk7318hNAZ0eVyhQcJtxwDFthBVUUnRAI1mqbXH1o3OD6xS8ZDGnrzc_A_PCCbFuqLKmw/s1600/Image+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5x4Lsn9ZSzOh-FMo3bujoaaIGkfgUp4dT7rdrco1LGmncZLWXh97BgzxOX-bDyXN77YLiecHk7318hNAZ0eVyhQcJtxwDFthBVUUnRAI1mqbXH1o3OD6xS8ZDGnrzc_A_PCCbFuqLKmw/s1600/Image+1.png&quot; height=&quot;226&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
SAP Java Connector (SAP JCo) is a
middle ware component that supports communication with the SAP Server
in both directions: inbound calls (Java calls ABAP) and outbound
calls (ABAP calls Java).&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
In this post we will only try to
understand inbound calls on how java calls ABAP (SAP)&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
There are basically 3 steps required to
connect with this SAP System.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;b&gt;Defining Destination&lt;/b&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Define and prepare property file
  with all connection details.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Connection details includes 
  &lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Host Name&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
System Number&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Client Details&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
User Name 
   &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Password&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;b&gt;Establishing Connection&lt;/b&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
In the 1 st step we created
  property file with all connection details.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
In this step we are going to use
  property file to establish connection with SAP System.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;b&gt;Executing Function&lt;/b&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
The
  RFCs enable you to call and execute predefined functions in a
  remote system.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
The
  RFCs manage the communication process, parameter transfer, and
  error handling.&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;u&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
I
 have created sample portlet in LR 6.1 GA2 to connect liferay with SAP database. 
 &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Portlet
 will display success message when connection is successfully done.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Download
 and play with this portlet.  Here is the download &lt;a href=&quot;https://github.com/jitendra-rajput/all-about-liferay/blob/master/liferay-sap-connector-portlet.rar?raw=true&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Following
 are some portlet screens that will help you to understand this
 sample portlet.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjny4CwRzw3l6rw9CDcezPnjy_xdglBmq9AE5R3xIp45OKn-rrGLlN0alWfFMqg70qnfMca5Ia9OD7oPAV9kcOCyCpDFNKYLUuCLvb5t-YL8V-S4u8zDdEVzRUl-cgHtWE4m-bkB9xCc34/s1600/SAP_Connection.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjny4CwRzw3l6rw9CDcezPnjy_xdglBmq9AE5R3xIp45OKn-rrGLlN0alWfFMqg70qnfMca5Ia9OD7oPAV9kcOCyCpDFNKYLUuCLvb5t-YL8V-S4u8zDdEVzRUl-cgHtWE4m-bkB9xCc34/s1600/SAP_Connection.png&quot; height=&quot;74&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Click
 on &lt;b&gt;Test
 SAP Connection &lt;/b&gt;button
 to connect with SAP System.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Once
 Connection is successfully done you will see following screen.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaTda9K-hhCy__T0jsbON4VK4JK-9K62IeLI9mE7OEUpN8eok7eDx-ZtffPgkYhB0ywu5jYGtuVIIqjy0XwyHcBHhaWxcXcQ2JPWzAOnkEl4QWnihIZT8958-23fYQ3YXPTkt9FjC4kPE/s1600/SAP_Connection_Success.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaTda9K-hhCy__T0jsbON4VK4JK-9K62IeLI9mE7OEUpN8eok7eDx-ZtffPgkYhB0ywu5jYGtuVIIqjy0XwyHcBHhaWxcXcQ2JPWzAOnkEl4QWnihIZT8958-23fYQ3YXPTkt9FjC4kPE/s1600/SAP_Connection_Success.png&quot; height=&quot;110&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Define
 all connection related properties inside portlet.properties file of
 this sample portlet.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1gv0Rff5qUGObc8YoEJa-jTov2Nwmwt5tYoniz3to6amRv5gUEQGjM3AAsq_TVay8mMJL8nxQipYkyLhKytbJtW8iKaDFk46qJmVU1le5p3Twsvt6J0Damp5F0F3UGm1u4QsyzlMCx-g/s1600/connection_properties.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1gv0Rff5qUGObc8YoEJa-jTov2Nwmwt5tYoniz3to6amRv5gUEQGjM3AAsq_TVay8mMJL8nxQipYkyLhKytbJtW8iKaDFk46qJmVU1le5p3Twsvt6J0Damp5F0F3UGm1u4QsyzlMCx-g/s1600/connection_properties.png&quot; height=&quot;120&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Thank You,&lt;/div&gt;
&lt;div&gt;
Jitendra Rajput&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://itsliferay.blogspot.com/feeds/5770326948566661738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://itsliferay.blogspot.com/2013/08/connect-liferay-with-sap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5770326948566661738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2232200964984010638/posts/default/5770326948566661738'/><link rel='alternate' type='text/html' href='http://itsliferay.blogspot.com/2013/08/connect-liferay-with-sap.html' title='Connect Liferay with SAP using SAP JCO Connector'/><author><name>Jitendra Rajput</name><uri>http://www.blogger.com/profile/17843459708811345550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURGMso0Ycz22vReopmYUERKwd-60xeg9GxvaQ6yZn3CXWzgY1iirU4_AZAJ-m9XkHeyuXnQNYQYs5ylY4eVJDDxe67Yh6hMv-4MyPPjWmsmK0Y-ttJWa5iTUhwEkE3g/s220/334571_310172089008578_100000473683621_1325758_1963814755_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5x4Lsn9ZSzOh-FMo3bujoaaIGkfgUp4dT7rdrco1LGmncZLWXh97BgzxOX-bDyXN77YLiecHk7318hNAZ0eVyhQcJtxwDFthBVUUnRAI1mqbXH1o3OD6xS8ZDGnrzc_A_PCCbFuqLKmw/s72-c/Image+1.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>