<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <title>Mika Koivisto&amp;#039;s random thoughts</title>
  <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/rss" />
  <subtitle>Mika Koivisto&amp;#039;s random thoughts</subtitle>
  <entry>
    <title>Replaced Wordpress with Liferay finally</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/replaced-wordpress-with-liferay-finally" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/replaced-wordpress-with-liferay-finally</id>
    <updated>2010-10-08T08:42:08Z</updated>
    <published>2010-10-06T19:52:19Z</published>
    <summary type="html">&lt;p&gt;
	I've finally replaced my Wordpress blog with Liferay. This is something I've wanted to do for long time and now I think Liferay's blog portlet is good enough to do it. The CMS has been superior for quite sometime. The site a little bit under construction still but I've brought the most popular posts. If you want to comment you must create an account but it's really simple and fast if you have Facebook account or OpenID.&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-06T19:52:19Z</dc:date>
  </entry>
  <entry>
    <title>Clustering Liferay with Terracotta</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/clustering-liferay-with-terracotta" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/clustering-liferay-with-terracotta</id>
    <updated>2010-10-02T16:11:19Z</updated>
    <published>2010-10-02T16:10:51Z</published>
    <summary type="html">&lt;p&gt;
	Here's a post I made to my Liferay blog on how to cluster &lt;a href="http://www.liferay.com/web/mika.koivisto/blog/-/blogs/how-do-i-cluster-liferay-with-terracotta"&gt;Liferay with Terracotta&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:10:51Z</dc:date>
  </entry>
  <entry>
    <title>Book Review Liferay Portal 6 Enterprise Intranets</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/book-review-liferay-portal-6-enterprise-intranets" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/book-review-liferay-portal-6-enterprise-intranets</id>
    <updated>2011-10-17T22:03:39Z</updated>
    <published>2010-10-02T16:08:36Z</published>
    <summary type="html">&lt;p&gt;
	My review copy of &lt;a href="http://www.amazon.com/Liferay-Portal-6-Enterprise-Intranets/dp/1849510385"&gt;Liferay Portal 6 Enterprise Intranets&lt;/a&gt; from &lt;a href="http://www.packtpub.com/"&gt;Packt Publishing&lt;/a&gt; was waiting for me at my desk in June already but haven't had time to go through it until now. Thanks again Packt for providing the opportunity to review their books.&lt;/p&gt;
&lt;p&gt;
	&lt;a href="http://www.amazon.com/Liferay-Portal-6-Enterprise-Intranets/dp/1849510385"&gt;&lt;img alt="" class="alignleft size-full wp-image-162" src="http://javaguru.fi/image/image_gallery?uuid=cb07cd90-7d7f-4b4b-b484-77d9f7ebb128&amp;amp;groupId=11031&amp;amp;t=1286528656699" style="float: left; width: 125px; height: 152px; " title="Liferay Portal 6 Enterprise Intranets" /&gt;&lt;/a&gt;&lt;strong&gt;Book details:&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;Publisher&lt;/strong&gt;: Packt Publishing&lt;br /&gt;
	&lt;strong&gt;Language&lt;/strong&gt;: English&lt;br /&gt;
	&lt;strong&gt;Pages&lt;/strong&gt;: 692&lt;br /&gt;
	&lt;strong&gt;Release date&lt;/strong&gt;: May 7, 2010&lt;br /&gt;
	&lt;strong&gt;ISBN&lt;/strong&gt;: 1849510385&lt;br /&gt;
	&lt;strong&gt;ISBN 13&lt;/strong&gt;: 978-1849510387&lt;br /&gt;
	&lt;strong&gt;Author&lt;/strong&gt;: Jonas X. Yuan&lt;br /&gt;
	&lt;strong&gt;Product Dimensions&lt;/strong&gt;: 9.2 x 7.5 x 1.5 inches&lt;/p&gt;
&lt;p&gt;
	This book is an updated version of Liferay Portal Enterprise Intranets which was written for Liferay Portal 5.2. The book has been reorganized and has doubled in the number of pages from the first one. This book is targeted to beginners and portal administrators. Notice the difference: Portal administrator is the person responsible of composing the portal pages where as system administrator is responsible of installing, configuring and tuning of the portal. The book introduces you to the terminologi used by Liferay portal as well as to many of the features Liferay has. Overall Jonas has done a good job with the book and it provides you a starting place to learn to use Liferay Portal.&lt;/p&gt;
&lt;p&gt;
	Now if you are looking to become a Liferay expert the fastest route there is through Liferay trainings. Liferay has great trainings that will teach you hands on to use Liferay the way it was intended.&lt;/p&gt;
&lt;p&gt;
	You might also be interested in the authors &lt;a href="http://www.liferay.com/web/jonas.yuan/blog/-/blogs/liferay-book:-liferay-portal-6-enterprise-intranets"&gt;blog post&lt;/a&gt; about the book and my previous &lt;a href="http://javaguru.fi/tag/review/"&gt;book reviews&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
	&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="175px" id="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" width="500"&gt; &lt;param name="movie" value="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;amp;Operation=GetDisplayTemplate" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed align="middle" allowscriptaccess="always" bgcolor="#ffffff" height="175px" id="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" name="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" quality="high" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;amp;Operation=GetDisplayTemplate" type="application/x-shockwave-flash" width="500"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;NOSCRIPT&gt;&lt;A HREF="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;Operation=NoScript"&gt;Amazon.com Widgets&lt;/A&gt;&lt;/NOSCRIPT&gt;&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:08:36Z</dc:date>
  </entry>
  <entry>
    <title>Waiting for my review copy of Liferay Portal 6 Enterprise Intranets</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/waiting-for-my-review-copy-of-liferay-portal-6-enterprise-intranets" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/waiting-for-my-review-copy-of-liferay-portal-6-enterprise-intranets</id>
    <updated>2010-10-08T09:07:01Z</updated>
    <published>2010-10-02T16:06:04Z</published>
    <summary type="html">&lt;p&gt;
	I was recently contacted by &lt;a href="http://www.packtpub.com"&gt;Packt Publishing&lt;/a&gt; if I would be interested in reviewing &lt;a href="http://www.amazon.com/Liferay-Portal-6-Enterprise-Intranets/dp/1849510385"&gt;Liferay Portal 6 Enterprise Intranets&lt;/a&gt;. Of course I say yes and now I'm eagerly waiting for my review copy to arrive any day now. Here's the details of the book if you want to get your copy.&lt;/p&gt;
&lt;p&gt;
	&lt;a href="http://www.amazon.com/Liferay-Portal-6-Enterprise-Intranets/dp/1849510385"&gt;&lt;img alt="" class="alignleft size-full wp-image-162" src="http://javaguru.fi/image/image_gallery?uuid=cb07cd90-7d7f-4b4b-b484-77d9f7ebb128&amp;amp;groupId=11031&amp;amp;t=1286528656699" style="float: left; width: 125px; height: 152px; " title="Liferay Portal 6 Enterprise Intranets" /&gt;&lt;/a&gt;&lt;strong&gt;Book details:&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;Publisher&lt;/strong&gt;: Packt Publishing&lt;br /&gt;
	&lt;strong&gt;Language&lt;/strong&gt;: English&lt;br /&gt;
	&lt;strong&gt;Pages&lt;/strong&gt;: 692&lt;br /&gt;
	&lt;strong&gt;Release date&lt;/strong&gt;: May 7, 2010&lt;br /&gt;
	&lt;strong&gt;ISBN&lt;/strong&gt;: 1849510385&lt;br /&gt;
	&lt;strong&gt;ISBN 13&lt;/strong&gt;: 978-1849510387&lt;br /&gt;
	&lt;strong&gt;Author&lt;/strong&gt;: Jonas X. Yuan&lt;br /&gt;
	&lt;strong&gt;Product Dimensions&lt;/strong&gt;: 9.2 x 7.5 x 1.5 inches&lt;/p&gt;
&lt;p&gt;
	&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="175px" id="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" width="500"&gt; &lt;param name="movie" value="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;amp;Operation=GetDisplayTemplate" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed align="middle" allowscriptaccess="always" bgcolor="#ffffff" height="175px" id="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" name="Player_c6746b6d-c5aa-48e3-bc38-e189d390e967" quality="high" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;amp;Operation=GetDisplayTemplate" type="application/x-shockwave-flash" width="500"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;NOSCRIPT&gt;&lt;A HREF="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822%2FUS%2Fmskdesign-20%2F8010%2Fc6746b6d-c5aa-48e3-bc38-e189d390e967&amp;Operation=NoScript"&gt;Amazon.com Widgets&lt;/A&gt;&lt;/NOSCRIPT&gt;&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:06:04Z</dc:date>
  </entry>
  <entry>
    <title>GateIn 3.0</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/gatein-3-0" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/gatein-3-0</id>
    <updated>2010-10-02T16:03:59Z</updated>
    <published>2010-10-02T16:03:01Z</published>
    <summary type="html">&lt;p&gt;The new GateIn portal was released few days ago. I’ve been following both JBoss Portal and eXo Platform for many years now. Both of them have been quite static and haven’t done much innovation on their portal products for years sure both were JSR-286 compliant. When I first heard that eXo and Jboss will be combining their forces to come out with a new portal product that would challenge the market, I was expecting something amazing and completely different. 
&lt;p&gt;
After downloading it and playing around with it for a while I was quite disappointed. So I decided to dig little deeper and go through the user guide and reference documentation. Didn’t find anything mind blowing or amazing there either. What I found nice was the existence of up to date documentation and Gadget server. 
&lt;p&gt;
I won’t start comparing GateIn with Liferay because the comparison wouldn’t be fair to GateIn. I will continue to see if will truly become a market challenger and actually do some innovation for a change.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:03:01Z</dc:date>
  </entry>
  <entry>
    <title>Liferay goes LGPL with the release of Liferay Portal 6</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-goes-lgpl-with-the-release-of-liferay-portal-6" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-goes-lgpl-with-the-release-of-liferay-portal-6</id>
    <updated>2010-10-02T16:02:26Z</updated>
    <published>2010-10-02T16:02:14Z</published>
    <summary type="html">&lt;p&gt;
	Liferay CEO Bryan Cheung just &lt;a href="http://www.liferay.com/web/bryan.cheung/blog/-/blogs/liferay-adopting-the-lgpl-license"&gt;announced&lt;/a&gt; that starting from Liferay Portal 6 it will be licensed using GNU Lesser GNU Public License (LGPL) v2.1. I think this is really good idea especially for the community at large. It will facilitate the marketplace that Liferay is planning on opening for third party extensions.&lt;/p&gt;
&lt;p&gt;
	LGPL is the less restrictive of the GPL licenses you can still develop extensions to Liferay and licensing those with any license that you choose to, even proprietary but if you go and fork Liferay by modifying its internals you must provide that as LGPL. This will prevent large corporations from creating incompatible forks of Liferay. However if you need to tightly integrate your product with Liferay you can always opt to Liferay EE OEM license and thus giving Liferay resources to continue innovate on its product for everyone's benefit.&lt;/p&gt;
&lt;p&gt;
	Disclaimer: I am Liferay employee but also coming from the community I want to make sure we don't do anything that would prevent the community from thriving.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:02:14Z</dc:date>
  </entry>
  <entry>
    <title>A look back on year 2009</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/a-look-back-on-year-2009" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/a-look-back-on-year-2009</id>
    <updated>2010-10-02T16:01:03Z</updated>
    <published>2010-10-02T16:00:32Z</published>
    <summary type="html">&lt;p&gt;Another year has passed now looking back on 2009 it's been a really good and busy year. The major event that dominated my year was when I joined Liferay and moved to Germany to work from our German branch office. Even though my job description didn't change that much the nature of the job did. When I worked for Logica I did mostly long projects and worked long term with same clients that were mostly on the same city as I did. Now I do also work long term with some clients but I do also a lot of short term consulting and training. The major difference is that the clients are all over Europe and as a result of that according to TripIt I've travelled to 23 cities in 14 countries and had 104 travel days since April 2009. Now that does include couple holiday trips too.
&lt;p&gt;
One of the goals I had for 2009 is to be more involved in Liferay's core development. Few of the latest fruits of that are FreeMarker support for Liferay themes and web content templates as well as starting to support maven users by providing Liferay artifacts and a sdk for maven users. You read up on the maven support from my &lt;a href="http://www.liferay.com/web/mika.koivisto/blog/-/blogs/liferay-maven-sdk"&gt;Liferay.com blog&lt;/a&gt;. I haven't blogged about the FreeMarker support yet. 
&lt;p&gt;
In December I had an opportunity to attend Liferays yearly retreat in Los Angeles as well as spend couple weeks working from our LA office. I already knew that I was working for a great company but seeing it myself made me realize just how great. Liferay truly cares about people and for that we have established Liferay Foundation, a non-profit separate from the Inc. 
&lt;p&gt;
That about sums it up. I have high hopes for 2010 and I'm really exited to work here.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T16:00:32Z</dc:date>
  </entry>
  <entry>
    <title>Good bye Logica, Hello Liferay!</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/good-bye-logica-hello-liferay!" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/good-bye-logica-hello-liferay!</id>
    <updated>2010-10-02T15:59:34Z</updated>
    <published>2010-10-02T15:59:16Z</published>
    <summary type="html">It's the end of my over seven year career at Logica and start of a new one at Liferay. It has been really great working in the Digital Media unit at Logica Finland but now new challenges awaits me as I move to Germany starting from monday when the moving truck is picking up all my possessions and start heading to Langen, Germany. On Wednesday morning (Apr 1st) I'm due to start working as Senior Consultant for Liferay GmbH. I wish all the best to all my colleagues at Logica.
&lt;p&gt;
I'll report back later on all the things involved in getting settled to Germany.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:59:16Z</dc:date>
  </entry>
  <entry>
    <title>Logica to partner with Liferay</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/logica-to-partner-with-liferay" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/logica-to-partner-with-liferay</id>
    <updated>2010-10-08T09:09:04Z</updated>
    <published>2010-10-02T15:57:26Z</published>
    <summary type="html">&lt;p&gt;
	&lt;img align="right" alt="Logica" height="80" src="http://javaguru.fi/image/image_gallery?uuid=b6ec5a2c-eb2b-45b5-8b94-d3bb5fbf9fbd&amp;amp;groupId=11031&amp;amp;t=1286528656727" style="padding-left: 10px" title="Logica" width="160" /&gt;I'm pleased to tell you that my employer &lt;a href="http://www.logica.fi"&gt;Logica Finland&lt;/a&gt; has become &lt;a href="http://www.liferay.com/web/guest/partners/services"&gt;Liferay Service Partner&lt;/a&gt;. This is really important to me since I'm the one that has been pushing Liferay as our preferred portal. This is also good news to Logica customers since now they can buy Liferay support and services from Logica.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:57:26Z</dc:date>
  </entry>
  <entry>
    <title>What's new in Liferay Portal 5.2?</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/what-s-new-in-liferay-portal-5-2" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/what-s-new-in-liferay-portal-5-2</id>
    <updated>2010-10-02T15:56:15Z</updated>
    <published>2010-10-02T15:54:39Z</published>
    <summary type="html">&lt;p&gt;
	Liferay Portal 5.2 is should be out any day now. It's been a while since I've been so excited about a new release so I thought I'd share it with you. There are a lot of improvements both under covers and in the UI. If you are looking for the complete list of changes in the JIRA you need too take a look at both &lt;a href="http://issues.liferay.com/secure/ReleaseNote.jspa?projectId=10952&amp;amp;styleName=Html&amp;amp;version=10344"&gt;Liferay Portal Standard Edition&lt;/a&gt; and the &lt;a href="http://issues.liferay.com/secure/ReleaseNote.jspa?projectId=10014&amp;amp;styleName=Html&amp;amp;version=10311"&gt;Old Liferay Porta&lt;/a&gt;l project since division to standard edition and enterprise edition.&lt;/p&gt;
&lt;h3&gt;
	Control Panel&lt;/h3&gt;
&lt;p&gt;
	Control Panel is a unified place to administrate your portal. No more need for creating your own admin pages every time you setup a new portal. You can manage content (web content, blogs, polls etc.), users, communities and everything else from a single place. You can even add your own custom portlets to it. See &lt;a href="http://www.liferay.com/web/jferrer/blog/-/blogs/1791601"&gt;Jorge's post&lt;/a&gt; for screenshots and more information.&lt;/p&gt;
&lt;h3&gt;
	Data Scoping Framework&lt;/h3&gt;
&lt;p&gt;
	Now you can have more than one message board, blog or wiki per community. This feature is also available for custom portlets.&lt;/p&gt;
&lt;h3&gt;
	API improvements&lt;/h3&gt;
&lt;p&gt;
	Eduardo made a nice JavaScript api for creating portlet urls. See &lt;a href="http://www.liferay.com/web/elundgren/blog/-/blogs/liferay-portleturl-in-javascript"&gt;Eduardo's post&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;
	Service API now takes ServiceContext as a parameter. This makes the apis much cleaner and in the future the don't change as much since ServiceContext holds all context related info. You don't even need to worry about instantiating ServiceContext yourself since there is a ServiceContextFactory to extract that information from the request.&lt;/p&gt;
&lt;h3&gt;
	Performance Improvements&lt;/h3&gt;
&lt;p&gt;
	Mike added a possibility for Read-Write database splitting allowing you to scale your database with a master-slave setup. Very nice work Mike! See details from &lt;a href="http://www.liferay.com/web/myoung/blog/-/blogs/liferay-read-write-database-splitting"&gt;Mike's post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
	Eduardo and Brian did some nice improvements to speed up the front-end:&lt;br /&gt;
	- CSS Sprites&lt;br /&gt;
	- Caching strip and compress filters&lt;br /&gt;
	- Moved scripts to footer&lt;br /&gt;
	- Far future expires to static resources&lt;/p&gt;
&lt;p&gt;
	See &lt;a href="http://www.liferay.com/web/elundgren/blog/-/blogs/best-practices-for-speeding-up-liferay"&gt;Eduardo's post&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;
	Terracotta DSO support enables you to cluster caches with Terracotta.&lt;/p&gt;
&lt;p&gt;
	Ray made some &lt;a href="http://www.liferay.com/web/rauge/blog/-/blogs/velocity-improvements"&gt;Velocity optimizations&lt;/a&gt;. I can't wait to run some benchmarks for the final release.&lt;/p&gt;
&lt;h3&gt;
	Custom Attributes&lt;/h3&gt;
&lt;p&gt;
	The Expando stuff has been around for a while now (since 5.0.1). Custom Attributes leverage that framework to provide you a way to extend the portal objects such as User or Organization. The framework allows you to add custom attributes to any entity created with ServiceBuilder.&lt;/p&gt;
&lt;h3&gt;
	Taxonomies&lt;/h3&gt;
&lt;p&gt;
	Taxonomies or categories framework allows you to add categorization support to custom portlets. Journal, Wiki and Knowledge base was enhanced with categorization support. There is also a category navigation portlet that allows you to filter content based on category.&lt;/p&gt;
&lt;h3&gt;
	Developer Enhancements&lt;/h3&gt;
&lt;p&gt;
	Previously Liferay has been in developer mode by default but that has caused some confusion and many production sites are running in development mode. Now the default mode is production mode and turning development mode on has been made really easy. See &lt;a href="http://www.liferay.com/community/wiki/-/wiki/Main/Liferay+Developer+Mode"&gt;Liferay Wiki&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;
	Previously CSS and JavaScripts where combined in compile time now that has been deferred to deploy time. This makes it easier to make quick fixes to production and just touch the web.xml to reload the changes.&lt;/p&gt;
&lt;h3&gt;
	Content Management&lt;/h3&gt;
&lt;p&gt;
	With this release Journal has been renamed as Web Content to describe it better. You can now export content as pdf, doc, txt and rtf through OpenOffice integration. And speaking about office integration Liferay can now act as a SharePoint Server with the SharePoint protocol support.&lt;/p&gt;
&lt;p&gt;
	Overall a really good release containing a solid base for future enhancements. As you might know Liferay is never finished there is always something to improve and by doing it incrementally Liferay is always head of the competition. I recently read a review about Liferay vs. Jboss Portal and some of the comments by JBoss developers were that JBoss is a framework for you to build your portal the way you want. Well I think of Liferay the same way except that Liferay provides you a heck of lot more usable functionality in form of portlets and APIs than JBoss does.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:54:39Z</dc:date>
  </entry>
  <entry>
    <title>Liferay Portal Enterprise Edition is out now</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-portal-enterprise-edition-is-out-now" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-portal-enterprise-edition-is-out-now</id>
    <updated>2010-10-02T15:52:32Z</updated>
    <published>2010-10-02T15:51:22Z</published>
    <summary type="html">&lt;p&gt;Not so long ago Liferay announced that they would be releasing a commercially licensed Liferay Portal. The very first EE version was published yesterday. It's version number is 5.1.3 i.e. it is a direct successor of Liferay Portal SE 5.1.2. The  next SE version will be the soon to be released 5.2.0.
&lt;p&gt;
So what's the difference between SE and EE? &lt;br/&gt;
- SE is licensed as MIT and EE is a commercial license. &lt;br/&gt;
- EE is a matured SE as you can see from the version number. It is a hardened and stabilized version. &lt;br/&gt;
- EE is supported beyond next major release and continues to get bug fixes long after SE versions bug fix releases are discontinued. &lt;br/&gt;
&lt;p&gt;
Why should I pay for EE when I get SE for free?&lt;br/&gt;
- You'll get a stable version that has all the infant symptoms of a SE version weeded out.&lt;br/&gt;
- You'll get peace of mind knowing that you won't need to upgrade in the mid way of project because your version won't get fixes any more since a newer major SE version was release.&lt;br/&gt;
- You'll get backported performance fixes you'd otherwise have to do yourself or upgrade to a newer version.
&lt;p&gt;
As a software architect I have to recommend buying the EE version. With a year's basic EE subscription you'll save a lot of aspirin and money. 
&lt;p&gt;
Read the Liferay &lt;a href="http://www.liferay.com/web/guest/news/latest/-/blogs/1939939"&gt;press release&lt;/a&gt;.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:51:22Z</dc:date>
  </entry>
  <entry>
    <title>Liferay Social Office beta is available now</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-social-office-beta-is-available-now" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-social-office-beta-is-available-now</id>
    <updated>2010-10-02T15:48:53Z</updated>
    <published>2010-10-02T15:48:14Z</published>
    <summary type="html">&lt;p&gt;Last weekend I noticed that Liferay had uploaded the first beta version of Social Office to SourceForge and of course I had to test drive it. It looks really good and quite easy to use. This really shows how solid base Liferay is for creating different kinds of applications and that's what Social Office is an application. Social Office is built on upcoming Liferay Portal 5.2 using mostly features that are in the portal but using them in a easy to use social collaboration context. 
&lt;p&gt;
One of the features I found it lacking is restricted sites. Now all the sites are public in the sense that anyone can access them.  Having used MOSS for document management and collaboration they many times need to be able to create also restricted workspaces that are used to for collaboration with a smaller more restricted team. One such example could be the PR department of a publicly listed company preparing a press release. It would be a catastrophe if someone other than the company insiders could access that information before it is released to general public. 
&lt;p&gt;
All in all really good job guys. I think there is a lot of potential for Social Office and I there is already a lot of interest from some of the organizations I work with.
&lt;p&gt;
Bryan wrote yesterday a good &lt;a href="http://www.liferay.com/web/bcheung/blog/-/blogs/introducing-social-office"&gt;post&lt;/a&gt; about the features so I won't go over them instead I recommend you read it. You can also &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=49260&amp;package_id=300610"&gt;download&lt;/a&gt; it yourself if you want to play with it.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:48:14Z</dc:date>
  </entry>
  <entry>
    <title>Running Rails apps as a JSR-286 portlet</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/running-rails-apps-as-a-jsr-286-portlet" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/running-rails-apps-as-a-jsr-286-portlet</id>
    <updated>2010-10-02T15:50:16Z</updated>
    <published>2010-10-02T15:49:59Z</published>
    <summary type="html">I recently run into this project that allows you to run your Rails app as a JSR-286 portlet. The reference portal is ofcourse Liferay. As you might be aware Liferay can run portlets written in other languages than just Java. Liferay supports scripting languages such as PHP, Ruby and Groovy. Read more about &lt;a href="http://rails-portlet.rubyforge.org/"&gt;rails portlet&lt;/a&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:49:59Z</dc:date>
  </entry>
  <entry>
    <title>Liferay European Symposium 2008 Day 2 report</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008-day-2-report" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008-day-2-report</id>
    <updated>2010-10-02T15:47:04Z</updated>
    <published>2010-10-02T15:46:17Z</published>
    <summary type="html">I was yesterday way too tired to write a report but here it comes. Yesterday had also some interesting talks but also one quite boring one. 
&lt;p&gt;
The most interesting ones where Michael Han's talk about Liferay performace tuning and benchmarks. Liferay has setup a performance testing environment that is quite realistic for production. They will be running benchmarks for following real world scenarios: 
&lt;ul&gt;
	&lt;li&gt;Content intensive site&lt;/li&gt;
	&lt;li&gt;Social network and collaboration&lt;/li&gt;
	&lt;li&gt;Integration portal&lt;/li&gt;
&lt;/ul&gt;
Michael also &lt;a href="http://www.liferay.com/web/mhan/blog/-/blogs/portal-performance-benchmarking"&gt;blogged&lt;/a&gt; about that so go check it for more detailed specs on the env.
&lt;p&gt;
Suresh Shamanna and Brian Chan showed off how to you Liferays staging and publishing workflow as well as remote publishing features. They are really cool. The only thing it's missing is the ability to create remote publishing configurations that you can just go hit publish. Easy publishing to multiple locations. It's currently too technical for our customers to use.
&lt;p&gt;
At the end of the day Bryan and Brian showed that Social Office is more than just slide ware by demoing it. It really looked cool and the best thing is that you can use it directly for Microsoft Office since it talks Sharepoint protocol. The Sharepoint protocol addition should be part of the portal and if I understood correctly they are also releasing Social Office under GPL. 
&lt;p&gt;
All in all very successful symposium. Great work guys especially Suresh and his team for making it happen. Also thanks for having me over dinner after the symposium it was great meeting you all of you in person.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:46:17Z</dc:date>
  </entry>
  <entry>
    <title>Liferay European Symposium 2008 Day 1 report</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008-day-1-report" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008-day-1-report</id>
    <updated>2010-10-02T15:45:08Z</updated>
    <published>2010-10-02T15:44:13Z</published>
    <summary type="html">&lt;p&gt;
	Thought I'd write a quite report of todays talks to those that weren't able to attend Liferay European Symposium in Frankfurt. Both Brian Chan and Bryan Cheung talked about Liferays philosophy of giving. They both showed interesting things that you can do with the upcoming Liferay 5.2. Brian show a climps of a new Liferay product called Social Office. It is basically is a Liferay portal that provides a lot of the same features as Sharepoint including Sharepoint protocol support.&lt;/p&gt;
&lt;p&gt;
	Bryan showed what they have done with &lt;a href="http://www.ifad.org"&gt;IFAD&lt;/a&gt; (International Fund for Agricultural Development) and their &lt;a href="http://www.ruralpovertyportal.org"&gt;Rural Poverty Portal&lt;/a&gt;. What they have done their is use and extend the Liferay tagging system and JSR-286 support by creating tagging aware portlets both custom ones and Liferay ones that should be available in later releases. The most interesting thing was the tag aware navigation and asset publisher.&lt;/p&gt;
&lt;p&gt;
	Jorge Ferrer gave a really good presentation on JSR-286 and gave some background why things like page to page linking will never be in the portlet spec. The portlet spec only describes the container where the portlets are run and not the portal itself. There should be a punch of other specs for different aspects of the portal. Hopefully well see those someday.&lt;/p&gt;
&lt;p&gt;
	Brian Kim announced that Liferay will create a commercial Enterprise version. Now before you start worrying too much about it I must tell you that it WON'T follow the Alfresco model. Basically nothing changes except companies that NEED long support over releases will get it if they buy an enterprise version subscription. Also enterprise version release cycle will be a bit slower than community version. Community version will be released about every 4 months where as enterprise will be every 8 months. Each enterprise version will be supported for about 4 years so you will get bug fixes backported to your version as long as you pay the enterprise subscription. Community versions will be only supported until the next major version is released as it is currently. They also told that there won't be any enterprise only features but there might be some Liferay products like the Social Office that is available to paying customers only.&lt;/p&gt;
&lt;p&gt;
	Nate gave a really good speech about usability and user interaction and how patterns help create more usable and maintainable software.&lt;/p&gt;
&lt;p&gt;
	There was also two Liferay customers BMW and HanseMerkur talking about what they are doing with Liferay. The day ended with free beer and games. Yes you read it right FREE beer.&lt;/p&gt;
&lt;p&gt;
	I've taken some pictures during the symposium and will post the in &lt;a href="http://www.flickr.com/photos/30670896@N07/sets/72157607451216843/"&gt;Flickr&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:44:13Z</dc:date>
  </entry>
  <entry>
    <title>Liferay European Symposium 2008</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-european-symposium-2008</id>
    <updated>2010-10-02T15:43:07Z</updated>
    <published>2010-10-02T15:42:39Z</published>
    <summary type="html">&lt;p&gt;
	Haven't been blogging for a while so I thought I'd write a quite post about Liferay European Symposium. If you've missed it you still have time to register. It's in Frankfurt, Germany from September 23rd to 24th. The agenda and featured speakers were announced today. Some of the speakers will include Brian Chan, Jorge Ferrer, Bryan Cheung, Nate Cavanaugh and Paul Bakaus so all in all it should be interesting.&lt;/p&gt;
&lt;p&gt;
	I couldn't attend the LA meetup but thankfully I'll be able to attend this event so if you want to meetup for bear or what ever just drop me a note.&lt;/p&gt;
&lt;p&gt;
	Details for the event from &lt;a href="http://www.liferay.com/web/guest/about_us/events/liferayeu_2008"&gt;Liferay's site&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:42:39Z</dc:date>
  </entry>
  <entry>
    <title>Book review: Liferay Portal Enterprise Intranets</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/book-review:-liferay-portal-enterprise-intranets" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/book-review:-liferay-portal-enterprise-intranets</id>
    <updated>2010-10-08T09:09:53Z</updated>
    <published>2010-10-02T15:40:30Z</published>
    <summary type="html">&lt;p&gt;
	&lt;a href="http://javaguru.fi/wp-content/uploads/2008/06/packt_liferay_portal_enterprise_intranets_cover.jpg"&gt;&lt;img align="left" alt="Packt Liferay Portal Enterprise Intranets" class="alignleft size-medium wp-image-56" height="300" src="http://javaguru.fi/image/image_gallery?uuid=70f9eff4-86f1-47b6-928c-af9d22be718f&amp;groupId=11031&amp;t=1286528656756" title="Packt Liferay Portal Enterprise Intranets cover" width="243" /&gt;&lt;/a&gt; I got a little while ago &lt;a href="http://www.packtpub.com/building-liferay-portal-enterprise-intranets/book"&gt;Liferay Portal Enterprise Intranets&lt;/a&gt; book review copy courtesy of &lt;a href="http://www.packtpub.com/"&gt;Packt Publishing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Book details:&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;Publisher&lt;/strong&gt;: Packt Publishing&lt;br /&gt;
	&lt;strong&gt;Language&lt;/strong&gt;: English&lt;br /&gt;
	&lt;strong&gt;Pages&lt;/strong&gt;: 336&lt;br /&gt;
	&lt;strong&gt;Release date&lt;/strong&gt;: April 2008&lt;br /&gt;
	&lt;strong&gt;ISBN&lt;/strong&gt;: 1847192726&lt;br /&gt;
	&lt;strong&gt;ISBN 13&lt;/strong&gt;: 978-1-847192-72-1&lt;br /&gt;
	&lt;strong&gt;Author&lt;/strong&gt;: Jonas X. Yuan&lt;/p&gt;
&lt;p&gt;
	The book is targeted to Liferay beginners and "Do-It-Yourselfers" who want to develop a simple but powerful corporate intranet. The book goes thought how to install Liferay and use it's built in portlets quite well. After reading this book you should be able to install Liferay, manage pages, users, groups and roles, create discussion forums and use the Liferay Journal, document library and image gallery for your basic content management needs.&lt;/p&gt;
&lt;p&gt;
	I can recommend this book to anyone who want's to learn how to use Liferay and it's built in portlets. It might also be good reference to administrators on how to do basic tasks in Liferay. It doesn't though offer much to developers already familiar with Liferay but then again that's not it's target audience.&lt;/p&gt;
&lt;p&gt;
	Please be free to give feedback and suggestions since this is my first book review. Also give your opinions on the book if you've read it.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:40:30Z</dc:date>
  </entry>
  <entry>
    <title>Configuring ActiveMQ 5 jms topic in Tomcat 6</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/configuring-activemq-5-jms-topic-in-tomcat-6" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/configuring-activemq-5-jms-topic-in-tomcat-6</id>
    <updated>2010-10-02T15:38:19Z</updated>
    <published>2010-10-02T15:35:17Z</published>
    <summary type="html">&lt;p&gt;
	For some reason it is quite difficult to find a clear instruction on howto configure ActiveMQ jms topic in tomcat as a JNDI reference and the consume message from it into message driven pojo. I chose to use ActiveMQ 5 since it requires less dependent libraries to run than previous versions.&lt;/p&gt;
&lt;p&gt;
	Start by downloading ActiveMQ 5.0.0 from &lt;a href="http://activemq.apache.org/download.html"&gt;Apache ActiveMQ site&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	You need following jars to be located under CATALINA_HOME/lib:&lt;br /&gt;
	- activemq-core-5.0.0.jar&lt;br /&gt;
	- commons-logging-1.1.jar&lt;br /&gt;
	- geronimo-j2ee-management_1.0_spec-1.0.jar (or another jar that has javax.management apis)&lt;br /&gt;
	- geronimo-jms_1.1_spec-1.0.jar (or another jar that has javax.jms apis)&lt;br /&gt;
	- geronimo-jta_1.0.1B_spec-1.0.jar (or another jar that has javax.transaction apis)&lt;/p&gt;
&lt;p&gt;
	You can find above libraries from ACTIVEMQ_HOME/lib&lt;/p&gt;
&lt;p&gt;
	That configure the topic and connection factory to CATALINA_HOME/conf/server.xml&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;Resource 
	name="jms/ConnectionFactory" 
	auth="Container" 
	type="org.apache.activemq.ActiveMQConnectionFactory" 
	description="JMS Connection Factory"
	factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
	brokerURL="vm://localhost" brokerName="LocalActiveMQBroker"/&amp;gt;

&amp;lt;Resource 
	name="jms/SampleTopic" 
	auth="Container" 
	type="org.apache.activemq.command.ActiveMQTopic" 
	description="my Topic"
	factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
	physicalName="SAMPLE.TOPIC"/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Then you need to add resource-link to either CATALINA_HOME/conf/context.xml or webapps META-INF/context.xml&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;Context&amp;gt;
....
	&amp;lt;ResourceLink global="jms/ConnectionFactory" name="jms/ConnectionFactory" type="javax.jms.ConnectionFactory"/&amp;gt;
	&amp;lt;ResourceLink global="jms/SampleTopic" name="jms/SampleTopic" type="javax.jms.Topic"/&amp;gt;
&amp;lt;/context&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	You also need to add a resource-ref to your webapps web.xml&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;resource-ref&amp;gt;
	&amp;lt;res-ref-name&amp;gt;jms/ConnectionFactory&amp;lt;/res-ref-name&amp;gt;
	&amp;lt;res-type&amp;gt;javax.jms.ConnectionFactory&amp;lt;/res-type&amp;gt;
	&amp;lt;res-auth&amp;gt;Container&amp;lt;/res-auth&amp;gt;
	&amp;lt;res-sharing-scope&amp;gt;Shareable&amp;lt;/res-sharing-scope&amp;gt;
&amp;lt;/resource-ref&amp;gt;	
&amp;lt;resource-ref&amp;gt;
	&amp;lt;res-ref-name&amp;gt;jms/SampleTopic&amp;lt;/res-ref-name&amp;gt;
	&amp;lt;res-type&amp;gt;javax.jms.Topic&amp;lt;/res-type&amp;gt;
	&amp;lt;res-auth&amp;gt;Container&amp;lt;/res-auth&amp;gt;
	&amp;lt;res-sharing-scope&amp;gt;Shareable&amp;lt;/res-sharing-scope&amp;gt;
&amp;lt;/resource-ref&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Then configure message driven pojo with spring. You should notice that this is really a pojo that does not know anything about jms.&lt;/p&gt;
&lt;p&gt;
	 &lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;package fi.javaguru.mdp;

public class SamplePojo {

    public void doSomething(final String msg) {

        System.out.println("Got message: " + msg);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Spring configuration for consuming messages&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd"&amp;gt;

    &amp;lt;jee:jndi-lookup id="jmsConnectionFactory" jndi-name="jms/ConnectionFactory" resource-ref="true"/&amp;gt;
    &amp;lt;jee:jndi-lookup id="jmsTopic" jndi-name="jms/SampleTopic"
		resource-ref="true" proxy-interface="javax.jms.Topic"/&amp;gt;

    &amp;lt;bean id="pojo" class="fi.javaguru.mdp.SamplePojo" /&amp;gt;
	
    &amp;lt;bean id="listener" class="org.springframework.jms.listener.adapter.MessageListenerAdapter"&amp;gt;
        &amp;lt;property name="delegate" ref="pojo"/&amp;gt;
        &amp;lt;property name="defaultListenerMethod" value="doSomething"/&amp;gt;
    &amp;lt;/bean&amp;gt;

    &amp;lt;bean id="container" class="org.springframework.jms.listener.SimpleMessageListenerContainer"&amp;gt;
        &amp;lt;property name="connectionFactory" ref="jmsConnectionFactory"/&amp;gt;
        &amp;lt;property name="messageListener" ref="listener"/&amp;gt;
        &amp;lt;property name="destination" ref="jmsTopic"/&amp;gt;
    &amp;lt;/bean&amp;gt;

&amp;lt;/beans&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	This sample assumes you are sending String messages to the topic. You could also send other objects as long as the consumer knows about those objects. Thats it for now. I will write another post later that will continue this sample with producing messages to a topic.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:35:17Z</dc:date>
  </entry>
  <entry>
    <title>Liferay Portal 4.3 is out!</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/liferay-portal-4-3-is-out!" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/liferay-portal-4-3-is-out!</id>
    <updated>2010-10-02T15:33:07Z</updated>
    <published>2010-10-02T15:32:41Z</published>
    <summary type="html">&lt;p&gt;As I mentioned in my previous post Liferay 4.3 is out. Congratulations to Brian and the whole Liferay team for doing excellent work. There are some new and really cool new features that weren't present when I did my sneak peak review of 4.3 release. 

&lt;h3&gt;Multiple Enterprise Management&lt;/h3&gt;

Now you can virtual host multiple companies with their own data and all that in a single Liferay installation. That is great news for anyone wanting to ASP host a service built on top of Liferay. It saves a lot of server resources compared to the old way of ASP hosting by creating multiple copies of the portal webapp.  
&lt;p&gt;
This really shows the power of community since this feature was first submitted as a proof of concept against a 4.2 release. Since I really liked it and wanted to use it I ported it to latest 4.3 trunk. Brian then refactored the code to use db for storing the configuration instead of the original properties file and he also created a nice UI for adding and removing companies.

&lt;h3&gt;Mobile Device Support&lt;/h3&gt;

There is now possible to set a mobile device theme for pages and you can also set whether Journal content portlet article supports a mobile device. That is really cool since quite a few companies want to make their websites mobile device aware. 

&lt;h3&gt;Journal&lt;/h3&gt;

You can now override the default template for a article and thus reusing it. For instance you could have a news article and the main template which would show the whose article content and then you could have another template that would show only a portion of it and link to the full article.  You can now also add rating and commenting to your articles from Journal content portlet.

&lt;h3&gt;Security&lt;/h3&gt;

There is now support for Active Directory and domain based SSO via NTLM. Also a password policy management was added and support for OpenId.

&lt;h3&gt;Integration&lt;/h3&gt;

You can now also use Mule if you prefer it over ServiceMix.

&lt;h3&gt;Other&lt;/h3&gt;

You might have noticed that there is no download for Liferay Professional version anymore. That is because all the ejbs have been eliminated and there is now only Liferay Enterprise Portal which is basically the the same as Professional only more lightweight. 

&lt;h3&gt;Future directions&lt;/h3&gt;

Some improvements I would like to see is Axis to be replaced with XFire or its successor Apache CeltiXfire. I have used XFire for some time now and I love it. It is so easy to expose existing spring wired services as webservices and they are no nasty rpc encoded webservices. 
&lt;p&gt;
After using the new ehcache and its replication feature I'm convinced thats the caching solution that should be used over OSCache especially after seeing a benchmark where it kicked the crap out of OSCache.</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:32:41Z</dc:date>
  </entry>
  <entry>
    <title>Google guice vs Spring</title>
    <link rel="alternate" href="http://javaguru.fi/blog/-/blogs/google-guice-vs-spring" />
    <author>
      <name>Mika Koivisto</name>
    </author>
    <id>http://javaguru.fi/blog/-/blogs/google-guice-vs-spring</id>
    <updated>2010-10-02T15:29:22Z</updated>
    <published>2010-10-02T15:28:23Z</published>
    <summary type="html">&lt;p&gt;
	Arsenalist quite captures my thoughts about guice in his &lt;a href="http://arsenalist.com/2007/04/13/google-guice-vs-spring/"&gt;Arsenalist blog&lt;/a&gt;. Who in their right mind wants to right code for DI. I my mind the whole idea is to abstract it out from code.&lt;/p&gt;
&lt;p&gt;
	Also using annotations to configure everything is just plain insane. What happened to reusable code or has that just been a fantasy that never realizes? I think not. I annotations could be used to give some default configuration but there always needs to be some other external way to configure things whether that is OR-mapping or DI.&lt;/p&gt;
&lt;p&gt;
	I use JPA annotations to configure my hibernate mappings. Spring also offers @Transactional annotation for configuring transactions but you can always revert to XML based declarations. I'm really now drifting off topic but my point is that Spring is not perfect either with it's horde of XML configurations but it's getting better on every release. With the 2.0 release they added XML namespace handler and now getting something from JNDI is a one liner.&lt;/p&gt;
&lt;p&gt;
	And for those who desire writing code to configure Spring should take a look at Rod's post on &lt;a href="http://blog.interface21.com/main/2006/11/28/a-java-configuration-option-for-spring/"&gt;using java as a configuration option for spring&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Mika Koivisto</dc:creator>
    <dc:date>2010-10-02T15:28:23Z</dc:date>
  </entry>
</feed>


