<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Liferay: Just another portal? No way.</title>
	<atom:link href="http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/</link>
	<description>From the artisans of open source</description>
	<pubDate>Fri, 10 Feb 2012 19:38:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Sigma Infosolutions</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-481</link>
		<dc:creator>Sigma Infosolutions</dc:creator>
		<pubDate>Tue, 20 Jul 2010 19:53:23 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-481</guid>
		<description>“Working out to integrate OpenLDAP in Liferay to incorporate single sign-on feature” Looking for a inputs.

Thanks,
Anil</description>
		<content:encoded><![CDATA[<p>“Working out to integrate OpenLDAP in Liferay to incorporate single sign-on feature” Looking for a inputs.</p>
<p>Thanks,<br />
Anil</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russ Danner</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-470</link>
		<dc:creator>Russ Danner</dc:creator>
		<pubDate>Fri, 27 Nov 2009 19:33:10 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-470</guid>
		<description>Hi Reynolds,

I'm not sure how much PHP is exposed in Liferay but it's based on Quercus PHP which is a full PHP 5 implementation written in Java.  Quercus PHP is awesome if you ask me.  It doesn't support every last feature -- but most are supported.</description>
		<content:encoded><![CDATA[<p>Hi Reynolds,</p>
<p>I&#8217;m not sure how much PHP is exposed in Liferay but it&#8217;s based on Quercus PHP which is a full PHP 5 implementation written in Java.  Quercus PHP is awesome if you ask me.  It doesn&#8217;t support every last feature &#8212; but most are supported.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reynolds</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-469</link>
		<dc:creator>Reynolds</dc:creator>
		<pubDate>Thu, 26 Nov 2009 01:57:50 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-469</guid>
		<description>For 2 days I've been trying to figure out how to build porlets with Liferay using PHP. It does support development of simple PHP scripts, but that's about it. 

Not sure about any other languages, but with support of PHP? it really SUCKS!. 

All thru out the day I was in 
the community forum, and trying to figure out, what? how? and why? 

Many PHP questions were given answers that of which can't be exactly called an "answer", others were never answered at all.

Saying that it supports was just for marketing, I guess... other non-java web developers won't appreciate something like this from an open-source view.</description>
		<content:encoded><![CDATA[<p>For 2 days I&#8217;ve been trying to figure out how to build porlets with Liferay using PHP. It does support development of simple PHP scripts, but that&#8217;s about it. </p>
<p>Not sure about any other languages, but with support of PHP? it really SUCKS!. </p>
<p>All thru out the day I was in<br />
the community forum, and trying to figure out, what? how? and why? </p>
<p>Many PHP questions were given answers that of which can&#8217;t be exactly called an &#8220;answer&#8221;, others were never answered at all.</p>
<p>Saying that it supports was just for marketing, I guess&#8230; other non-java web developers won&#8217;t appreciate something like this from an open-source view.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ries</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-464</link>
		<dc:creator>Ries</dc:creator>
		<pubDate>Tue, 29 Sep 2009 17:21:14 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-464</guid>
		<description>Seriously, the java community can learn something from a usability perspective from CMS systems like TYPO3, yes it's PHP.

I spend around 2 days figuring out how theming works and layout templating and seriously, creating two war files to make theme is just way off. ANY non technical person should beable to create a theme in there favorite CMS. TYPO3 provides the excellent Templavoila system as an example. You just get a template, map it in TYPO3 and off you go. you don't need to put ANY markers, engines or what not in it. If you get a new template from teh designer (given that the ID's are the same) you just drop it in a folder and your website will use that! Also the fact that a template is full with portal rubbish like application.css, portlet.css, wiki images , progress bar images etc etc...

When I try to look at it from a users perspective the screens in liferay looks messy and un-organized.

Form and presentation is quite nice for people that don't know, it allows you to define a custom way to present specific content.

When looking for a scripting language, I don't see anything in there, at least not by default, items like menu rendering is not in Liferay. It has some items like 'Navigation' But doesn't allow you to decide WHAT should be in the navigation.

What I really don't like is how content is edited IN the web-page currently for a designer this means you need to make much more CSS so it looks presentable. By default it looks horrible.

Currently I give Liferay still a change, but if you say TYPO3 has a steep learning curve, then better get double ready for Liferay!

Ries</description>
		<content:encoded><![CDATA[<p>Seriously, the java community can learn something from a usability perspective from CMS systems like TYPO3, yes it&#8217;s PHP.</p>
<p>I spend around 2 days figuring out how theming works and layout templating and seriously, creating two war files to make theme is just way off. ANY non technical person should beable to create a theme in there favorite CMS. TYPO3 provides the excellent Templavoila system as an example. You just get a template, map it in TYPO3 and off you go. you don&#8217;t need to put ANY markers, engines or what not in it. If you get a new template from teh designer (given that the ID&#8217;s are the same) you just drop it in a folder and your website will use that! Also the fact that a template is full with portal rubbish like application.css, portlet.css, wiki images , progress bar images etc etc&#8230;</p>
<p>When I try to look at it from a users perspective the screens in liferay looks messy and un-organized.</p>
<p>Form and presentation is quite nice for people that don&#8217;t know, it allows you to define a custom way to present specific content.</p>
<p>When looking for a scripting language, I don&#8217;t see anything in there, at least not by default, items like menu rendering is not in Liferay. It has some items like &#8216;Navigation&#8217; But doesn&#8217;t allow you to decide WHAT should be in the navigation.</p>
<p>What I really don&#8217;t like is how content is edited IN the web-page currently for a designer this means you need to make much more CSS so it looks presentable. By default it looks horrible.</p>
<p>Currently I give Liferay still a change, but if you say TYPO3 has a steep learning curve, then better get double ready for Liferay!</p>
<p>Ries</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruben Gerad Mathew</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-463</link>
		<dc:creator>Ruben Gerad Mathew</dc:creator>
		<pubDate>Sun, 23 Aug 2009 11:07:34 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-463</guid>
		<description>Hi Russ,
   I found your article to be informative, and precise.  I have recently been given the task of using Intalio BPM suite which uses Liferay.  I will need to build portlets using Icefaces.  I have extensive Richfaces/JBoss experience and have just updated myself in portlets. Generally I tend to use Spring/Hibernate/Facelets/Richfaces in most projects.  I have to architect a solution in this new environment, so I have a number of questions.  Like which is the best server for deployment of Lifray, I can see that many servers are supported, but what is the best one as per your opinion in terms of performance and ease of use.  I read a bit on developer feedbacks and some are keen on using Glassfish bundle as it posses less amount of hassles for development and deployment.  I was rebuilding the liferay source files, and I wanted to make changes to the database structure, such as User table, and I was unsure about the outcome, like where all these changes should be reflected, or maybe to add features like licensing for each user.  I can't find any documentation on the internals.  What will be the consequences to other PHP/Scripting if changes are made to core files ?  Since I don't use these technologies and not a part of my skill set or that used by my company will it pose any immediate problems if we were to disable support for other languages for leaner code.  Are any core modules working in PHP which may be affected by these changes.  How do I propagate these changes to the database to the services layer ?  Do I change existing code ?  Can I remove those services I don't require safely ? Is there some outline on support files for each specific language implementation, so we can safely remove or disable unused services.  Is there some good guide to assist us on the internals of liferay.  I have created UML models to better understand the working principles.  But I think I am still a long way from rewriting them.  Your assistance is greatly appriciated.

Thanks !

Warm Regards,
Ruben.</description>
		<content:encoded><![CDATA[<p>Hi Russ,<br />
   I found your article to be informative, and precise.  I have recently been given the task of using Intalio BPM suite which uses Liferay.  I will need to build portlets using Icefaces.  I have extensive Richfaces/JBoss experience and have just updated myself in portlets. Generally I tend to use Spring/Hibernate/Facelets/Richfaces in most projects.  I have to architect a solution in this new environment, so I have a number of questions.  Like which is the best server for deployment of Lifray, I can see that many servers are supported, but what is the best one as per your opinion in terms of performance and ease of use.  I read a bit on developer feedbacks and some are keen on using Glassfish bundle as it posses less amount of hassles for development and deployment.  I was rebuilding the liferay source files, and I wanted to make changes to the database structure, such as User table, and I was unsure about the outcome, like where all these changes should be reflected, or maybe to add features like licensing for each user.  I can&#8217;t find any documentation on the internals.  What will be the consequences to other PHP/Scripting if changes are made to core files ?  Since I don&#8217;t use these technologies and not a part of my skill set or that used by my company will it pose any immediate problems if we were to disable support for other languages for leaner code.  Are any core modules working in PHP which may be affected by these changes.  How do I propagate these changes to the database to the services layer ?  Do I change existing code ?  Can I remove those services I don&#8217;t require safely ? Is there some outline on support files for each specific language implementation, so we can safely remove or disable unused services.  Is there some good guide to assist us on the internals of liferay.  I have created UML models to better understand the working principles.  But I think I am still a long way from rewriting them.  Your assistance is greatly appriciated.</p>
<p>Thanks !</p>
<p>Warm Regards,<br />
Ruben.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CuriousCat</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-462</link>
		<dc:creator>CuriousCat</dc:creator>
		<pubDate>Wed, 17 Jun 2009 21:04:38 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-462</guid>
		<description>Russ,
  Great post! I have just started to look at Portal Frameworks.I am looking towards developing a pilot singles dating site. I am a bit lost with deciding how to pick the framework that is right for me?Are there are any cardinal rules that you go by that could help with the process?</description>
		<content:encoded><![CDATA[<p>Russ,<br />
  Great post! I have just started to look at Portal Frameworks.I am looking towards developing a pilot singles dating site. I am a bit lost with deciding how to pick the framework that is right for me?Are there are any cardinal rules that you go by that could help with the process?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russ Danner</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-460</link>
		<dc:creator>Russ Danner</dc:creator>
		<pubDate>Tue, 02 Jun 2009 14:41:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-460</guid>
		<description>Thanks for the thoughts. 

First I think the point of the post was that Liferay is much more than a portal. It’s a soup-to-nuts framework. It comes with scaffolding capability for creating database-driven applications, UI capabilities and many out of the box services. Some of these capabilities are stronger than others. I think there is little question that if you need to build an application that requires the kind of social frameworks and other services as well as the application aggregation that a portal provides, the Liferay framework is going to give you a very big boost in productivity.

On the subject of built-in portlets and the use of scriptlets: over time Liferay has built up its tag libraries and most recently, its use of client side UI based on JQuery. JSP based applications seems to be a preferred approach at Liferay but use of tag libs is definitely a best practice. There are portlets that have a lot of scriplets in them and I agree with you that it’s not ideal. My sense is that this is not the approach going forward.
With respect to the Dependency Injection concern, I’m note sure I follow how the static methods making debugging harder. The class loader proxies is not something I am a huge fan of and I would agree that they can make debugging more difficult — that is however a separate issue from the static method approach. Although Liferay uses Spring under the hood (which supports setter and constructor injection,) the IoC (inversion of control) pattern Liferay uses in their framework is more akin to a Service Registry (but without the lookup step.) If I had to point to an issue here, it would be that the static method based services sort of imply that there is one service implementation that meets the service interface. Some might think that in practical terms this is generally the case anyway but I disagree. I think you want to either use setter injection or a registry that allows you to get after more than one implementation. Long story short. I don’t think what Liferay is doing is “Wrong.” It doesn’t use Spring the way many projects do but this is mainly due to the fact that Liferay pre-dates Spring’s dominance. Also, it’s important to note that there is a lot of re-factoring in this area of Liferay still in play.
On documentation, I think the Service Builder methods should have more. Service Builder does allow you to add comments to many of the files it creates - and that capability should be used.

I hope to convey the sense here that we’re not just blogging for marketing effect. We’re not going to say that every last thing about Liferay is perfect. But let’s face it… no project is perfect. The best you can hope for is that the project is a) useful and, b) actively making progress. Brian Chan and Co. at Liferay work as hard as anyone I know at making their platform better with each release. IMO there is no doubt that Liferay can deliver value and that it can save you time and money. I’ve had both good and bad experiences with Liferay. It’s not the right framework for every need — and that’s the key. Liferay has a lot of features that tend to draw folks in. You need to ask hard questions about what you’re trying to do and what you actually need -- and then go with the framework that gets you there with the right balance of time, cost, and runway.

-R</description>
		<content:encoded><![CDATA[<p>Thanks for the thoughts. </p>
<p>First I think the point of the post was that Liferay is much more than a portal. It’s a soup-to-nuts framework. It comes with scaffolding capability for creating database-driven applications, UI capabilities and many out of the box services. Some of these capabilities are stronger than others. I think there is little question that if you need to build an application that requires the kind of social frameworks and other services as well as the application aggregation that a portal provides, the Liferay framework is going to give you a very big boost in productivity.</p>
<p>On the subject of built-in portlets and the use of scriptlets: over time Liferay has built up its tag libraries and most recently, its use of client side UI based on JQuery. JSP based applications seems to be a preferred approach at Liferay but use of tag libs is definitely a best practice. There are portlets that have a lot of scriplets in them and I agree with you that it’s not ideal. My sense is that this is not the approach going forward.<br />
With respect to the Dependency Injection concern, I’m note sure I follow how the static methods making debugging harder. The class loader proxies is not something I am a huge fan of and I would agree that they can make debugging more difficult — that is however a separate issue from the static method approach. Although Liferay uses Spring under the hood (which supports setter and constructor injection,) the IoC (inversion of control) pattern Liferay uses in their framework is more akin to a Service Registry (but without the lookup step.) If I had to point to an issue here, it would be that the static method based services sort of imply that there is one service implementation that meets the service interface. Some might think that in practical terms this is generally the case anyway but I disagree. I think you want to either use setter injection or a registry that allows you to get after more than one implementation. Long story short. I don’t think what Liferay is doing is “Wrong.” It doesn’t use Spring the way many projects do but this is mainly due to the fact that Liferay pre-dates Spring’s dominance. Also, it’s important to note that there is a lot of re-factoring in this area of Liferay still in play.<br />
On documentation, I think the Service Builder methods should have more. Service Builder does allow you to add comments to many of the files it creates - and that capability should be used.</p>
<p>I hope to convey the sense here that we’re not just blogging for marketing effect. We’re not going to say that every last thing about Liferay is perfect. But let’s face it… no project is perfect. The best you can hope for is that the project is a) useful and, b) actively making progress. Brian Chan and Co. at Liferay work as hard as anyone I know at making their platform better with each release. IMO there is no doubt that Liferay can deliver value and that it can save you time and money. I’ve had both good and bad experiences with Liferay. It’s not the right framework for every need — and that’s the key. Liferay has a lot of features that tend to draw folks in. You need to ask hard questions about what you’re trying to do and what you actually need &#8212; and then go with the framework that gets you there with the right balance of time, cost, and runway.</p>
<p>-R</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-458</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Wed, 27 May 2009 11:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-458</guid>
		<description>It's a nice marketing article, but really when you get down to actually developing on Liferay in my experience it is far from pleasurable.

The built-in portlets are extremely messy, with java scriptlets scattered all over the JSP pages, the architecture doesn't use dependency injection properly, instead relying on calls to static util classes which makes it very difficult to debug and fix anything.  If you use the service builder it creates method signatures that are longer than I would like an entire class to be.  There are no comments in the code (and I mean none) and the code is not self documenting in the slightest.  There's also no decent technical documentation for the code/architecture.

If you're just deploying your own portlets to it as a container then it's ok, but if you have to change anything that is built-in, or delve into the actual code then it quickly becomes a very painful way to go.</description>
		<content:encoded><![CDATA[<p>It&#8217;s a nice marketing article, but really when you get down to actually developing on Liferay in my experience it is far from pleasurable.</p>
<p>The built-in portlets are extremely messy, with java scriptlets scattered all over the JSP pages, the architecture doesn&#8217;t use dependency injection properly, instead relying on calls to static util classes which makes it very difficult to debug and fix anything.  If you use the service builder it creates method signatures that are longer than I would like an entire class to be.  There are no comments in the code (and I mean none) and the code is not self documenting in the slightest.  There&#8217;s also no decent technical documentation for the code/architecture.</p>
<p>If you&#8217;re just deploying your own portlets to it as a container then it&#8217;s ok, but if you have to change anything that is built-in, or delve into the actual code then it quickly becomes a very painful way to go.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russ Danner</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-449</link>
		<dc:creator>Russ Danner</dc:creator>
		<pubDate>Thu, 19 Mar 2009 05:08:48 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-449</guid>
		<description>Sergey,

You are right SURF is not a JSR-168/268 compliant portal.  If you need the kind of plugability of application frameworks that the standard provides -- then you need a portal.  That is to say, if you want to run a Struts application next to a Spring MVC application then a Portlet spec compliant container is going to give you a lot right out of the box.

SURF does not mandate a remote invocation from a framework perspective.  It's easy to conclude from what is provided out of the box that this is the case given the bias on webscripts but it is also very possible to implement other types of renders and from there consume local resources, spring bean based resources.</description>
		<content:encoded><![CDATA[<p>Sergey,</p>
<p>You are right SURF is not a JSR-168/268 compliant portal.  If you need the kind of plugability of application frameworks that the standard provides &#8212; then you need a portal.  That is to say, if you want to run a Struts application next to a Spring MVC application then a Portlet spec compliant container is going to give you a lot right out of the box.</p>
<p>SURF does not mandate a remote invocation from a framework perspective.  It&#8217;s easy to conclude from what is provided out of the box that this is the case given the bias on webscripts but it is also very possible to implement other types of renders and from there consume local resources, spring bean based resources.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sergey Sundukovskiy</title>
		<link>http://blogs.rivetlogic.com/rdanner/2009/02/24/liferay-just-another-portal-no-way/#comment-448</link>
		<dc:creator>Sergey Sundukovskiy</dc:creator>
		<pubDate>Thu, 19 Mar 2009 00:35:04 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rivetlogic.com/rdanner/?p=51#comment-448</guid>
		<description>Hi Russ, your answer is quite extensive, but it does not go to the core of the question. What is being contrasted is Alfresco Surf as a web development framework and Liferay as a portal engine. Alfresco Surf is a portal like framework, but certainly not JSR 168 compliant. Also, I do not really like the architecture of Alfresco Surf. In a two tier configuration it relies on remoting services which are impractical (EJB1 model). So, my vote is behind Liferay.</description>
		<content:encoded><![CDATA[<p>Hi Russ, your answer is quite extensive, but it does not go to the core of the question. What is being contrasted is Alfresco Surf as a web development framework and Liferay as a portal engine. Alfresco Surf is a portal like framework, but certainly not JSR 168 compliant. Also, I do not really like the architecture of Alfresco Surf. In a two tier configuration it relies on remoting services which are impractical (EJB1 model). So, my vote is behind Liferay.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

