<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Steve On Java &#187; Liferay</title>
	<atom:link href="http://steveonjava.com/category/liferay/feed/" rel="self" type="application/rss+xml" />
	<link>http://steveonjava.com</link>
	<description>Hacking Java, JavaFX, and Flash with Agility</description>
	<lastBuildDate>Sun, 06 May 2012 08:58:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>JFXtras Community Site Launched!</title>
		<link>http://javafx.steveonjava.com/jfxtras-community-site-launched/</link>
		<comments>http://javafx.steveonjava.com/jfxtras-community-site-launched/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 11:44:42 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JFXtras]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[community]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=448</guid>
		<description><![CDATA[I am proud to announce the official launch of the JFXtras Community Site.  This site is a resource for the entire JavaFX community, and open for participation by all. Just like the JFXtras open-source library has been helping improve the JavaFX Platform, this site is focused on helping to expand and grow the JavaFX Community.  [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fjavafx.steveonjava.com%252Fjfxtras-community-site-launched%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22JFXtras%20Community%20Site%20Launched%21%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://javafx.steveonjava.com/jfxtras-community-site-launched/";
		var dzone_title = "JFXtras Community Site Launched!";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p><a href="http://jfxtras.org/"><img class="alignnone size-full wp-image-478" title="jfxtras_portal_mockup_community_version_03" src="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_031.png" alt="jfxtras_portal_mockup_community_version_03" width="409" height="66" /></a></p>
<p>I am proud to announce the official launch of the JFXtras Community Site.  This site is a resource for the entire JavaFX community, and open for participation by all.</p>
<p>Just like the JFXtras open-source library has been helping improve the JavaFX Platform, this site is focused on helping to expand and grow the JavaFX Community.  Some things you can do on the site today include:</p>
<h2>Explore -</h2>
<p><a href="http://steveonjava.files.wordpress.com/2009/07/boundisizer-screenshot-300.png"><img class="alignnone size-full wp-image-468" title="Boundisizer-screenshot-300" src="http://steveonjava.files.wordpress.com/2009/07/boundisizer-screenshot-300.png" alt="Boundisizer-screenshot-300" width="300" height="154" /></a></p>
<p>The <a href="http://jfxtras.org/portal/samples">JFXtras Samples</a> section is the largest JavaFX example repository outside of Sun, and is specifically focused on teaching JavaFX concepts from beginner to advanced.  Some of the featured samples include:</p>
<ul>
<li>Amy Fowler&#8217;s Boundisizer &#8211; Learn how to transform and manipulate nodes like a champ from Amy Fowler, the acclaimed layout expert on the JavaFX team.</li>
<li>Music Explorer FX &#8211; You may not have won the 25 thousand dollar prize, but you can learn from the expert.  Sten Anderson has posted his winning entry, and promised to share the full source code shortly (no pressure, Sten!)</li>
<li>Particle-O-Rama &#8211; Josh Marinacci, JavaFX evangelist and Rockstar<strong><sup>1</sup></strong>, creates another visual extravaganza with his super-customizable particle demo.</li>
<li>Generating Graphs from Hudson &#8211; Mark Macumber posted a great mash-up of the JavaFX 1.2 Charting support to display Hudson build status.</li>
</ul>
<p>The site is completely self-service, and provides free hosting of open-source JavaFX samples, so create an account and <a href="http://jfxtras.org/portal/samples/upload">start contributing</a> your own samples to grow the community!</p>
<hr /><strong>1.</strong> Yes, it is official, Joshua Marinacci and I are JavaOne Rockstars!  Josh and I received the JavaOne Rockstar award for having a top ranked JavaOne session this year (thanks to everyone who attended our <a href="http://steveonjava.com/2009/06/13/the-widgetfx-j1-recap/">WidgetFX Session</a>!)</p>
<h2>Learn -</h2>
<p>Through a collaborative effort from all the JavaFX book authors, we will be able to bring you the full set of samples from all 5 of the JavaFX books.  All the source code will be made available under a commercial-friendly open-source license, and the samples will be easily browseable online categorized by topic.</p>
<p><a href="http://jfxtras.org/portal/pro-javafx-platform"><img class="alignnone size-full wp-image-406" title="cover-100" src="http://steveonjava.files.wordpress.com/2009/06/cover-100.jpg" alt="cover-100" width="100" height="132" /></a> <a href="http://jfxtras.org/portal/javafx-developing-rich-internet-applications"><img class="alignnone size-full wp-image-451" title="JavaFXRIA-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxria-cover-100.jpg" alt="JavaFXRIA-cover-100" width="100" height="132" /></a><a href="http://steveonjava.files.wordpress.com/2009/07/essentialjavafx-cover-100.jpg"><img class="alignnone size-full wp-image-452" title="EssentialJavafx-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/essentialjavafx-cover-100.jpg" alt="EssentialJavafx-cover-100" width="100" height="131" /></a> <a href="http://jfxtras.org/portal/javafx-in-action"><img class="alignnone size-full wp-image-454" title="JavaFXInAction-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxinaction-cover-100.jpg" alt="JavaFXInAction-cover-100" width="100" height="125" /></a><a href="http://jfxtras.org/portal/javafx-developers-guide"><img class="alignnone size-full wp-image-453" title="JavaFXDevGuide-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxdevguide-cover-100.jpg" alt="JavaFXDevGuide-cover-100" width="100" height="129" /></a></p>
<address>What is on your bookshelf?<br />
</address>
<p>This includes all of the samples from <em><a href="http://projavafx.com/">Pro JavaFX Platform</a></em>, which is finally out in print! &#8212; The full realization that I was an author didn&#8217;t come until this morning when my copies arrived&#8230; for a brief moment the gaping hole in my life for the past six months seemed (almost) worth it.</p>
<p>The Sun <a href="http://jfxbook.com/"><em>JavaFX</em></a> and <a href="http://www.asgteach.com/books/javafxbook.html"><em>Essential JavaFX</em></a> books have been out since JavaOne and are great references to get started coding in JavaFX.  These samples should be available within the next couple weeks.</p>
<p>Finally, the <a href="http://www.manning.com/morris/"><em>JavaFX in Action</em></a> and <a href="http://my.safaribooksonline.com/9780321648983"><em>JavaFX Developer&#8217;s Guide</em></a> books are both due out later this year, and will post samples as soon as it makes sense to.</p>
<h2>Research -</h2>
<p><a href="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_22.jpg"><img class="alignnone size-full wp-image-469" title="jfxtras_portal_mockup_community_version_22" src="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_22.jpg" alt="jfxtras_portal_mockup_community_version_22" width="260" height="215" /></a></p>
<p>There is also a new section called <a href="http://jfxtras.org/portal/links">JFXtras Links</a> brought to you by <a href="http://jonathangiles.net/blog/">Jonathan Giles</a>, famous for his weekly desktop links of the week feature on his blog.  The plan is to aggregate and categorize all the best JavaFX links and resources in a single place.</p>
<p>This section is still in its infancy, so please give us feedback and contribute links that you find valuable.</p>
<h2>About the Site -</h2>
<p>The JFXtras Community Site is built on the principles of collaboration and agility, and is backed by technologies that make this possible.  Everything is 100% Java from the application server (Tomcat) to the portal engine (Liferay).  Also, wherever possible customization and design was done via the online portal user interface so that future changes to the site (both minor and major) can be done by the community.</p>
<p>Most importantly, the JFXtras Community Site will be what you make of it.  Just like everything else we do on the JFXtras project, we are open to new ideas and ways of doing things.  If you have a great idea for how to improve one of the existing sections, or something else we should add to the site, let us know, or better yet, help us make it happen!</p>
<div class="plus-one-wrap"><g:plusone href="http://javafx.steveonjava.com/jfxtras-community-site-launched/"></g:plusone></div><div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://javafx.steveonjava.com/jfxtras-community-site-launched/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Running Liferay on Shared Hosting</title>
		<link>http://steveonjava.com/running-liferay-on-shared-hosting/</link>
		<comments>http://steveonjava.com/running-liferay-on-shared-hosting/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 13:16:37 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Liferay]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[shared-hosting]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=381</guid>
		<description><![CDATA[This is a little off my usual set of topics, but something that hopefully others will find valuable, since there is such little information about this on the net. Let&#8217;s say that you have are launching a new portal website for a Java technology project (such as projavafx.com or buildings insurance engine), and have the [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Frunning-liferay-on-shared-hosting%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fe66Aly%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Running%20Liferay%20on%20Shared%20Hosting%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/running-liferay-on-shared-hosting/";
		var dzone_title = "Running Liferay on Shared Hosting";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>This is a little off my usual set of topics, but something that hopefully others will find valuable, since there is such little information about this on the net.</p>
<p>Let&#8217;s say that you have are launching a new portal website for a Java technology project (such as <a href="http://projavafx.com/">projavafx.com</a> or <a href="http://www.policyexpert.co.uk/home-insurance/buildings-insurance/">buildings insurance</a> engine), and have the following constraints/desires:</p>
<ol>
<li>You need a site that can handle dynamic content, access controls, forums, blogs, etc.</li>
<li>The underlying portal technology needs to be Java-based.  No way you are hacking PHP (been there, never again&#8230;)</li>
<li>You are on a budget.  It is a choice between server hosting and paying your cable bill, and not having the latter would impact your happiness more than the former.</li>
</ol>
<p>So, with those constraints, you might be brave enough to try putting <a href="http://www.liferay.com/">Liferay Portal</a> on a Shared Tomcat Hosting plan.  Would a dedicated VPS be easier?  Sure, but you also pay more $$$ per bandwidth/disk/cpu.</p>
<p>(I am intentionally not mentioned any hosting companies by name, but if you look around you should be able to find shared Tomcat hosting for under $10/month.)</p>
<h2>What to Download</h2>
<p><span id="more-381"></span>By default Liferay directs you to a self-contained Tomcat installer that will set up a new Tomcat instance from scratch.  You will need to grab this as well as the WAR distribution that is a little bit more buried on the site.  There are also some ancillary downloads, such as the tunnel-web jar that are helpful as well, all of which can be found in the Additional Files section:<a href="http://www.liferay.com/web/guest/downloads/additional"></p>
<p>http://www.liferay.com/web/guest/downloads/additional</a></p>
<p>At a minimum you will need:</p>
<ul>
<li>Liferay Portal 5.x Bundled with Tomcat 6.0 (default download)</li>
<li>Liferay Portal 5.x WAR</li>
</ul>
<p>(5.2.3 was the current version at the time of this writing, but feel free to grab the latest and let me know if anything has materially changed by leaving a comment.)</p>
<h2>Basic Setup</h2>
<p>The default Liferay configuration assumes that you have access to the Tomcat directory and can drop shared libraries and such into the base installation.  This is definitely not possible in a shared environment, so instead we will hack the WAR file to make everything work cleanly instead:</p>
<ol>
<li>Unpack liferay-portal-tomcat-6.0-5.x.zip</li>
<li>Look for the jar files under tomcat-6.x/lib/ext</li>
<li>Copy all the jar files from that folder into liferay-portal-5.x.war under WEB-INF/lib</li>
</ol>
<p><strong>Note</strong>:  You would think that the Liferay Portal Dependencies jar from the Additional Files section would contain all the jars you need, but it only has a subset.  Unfortunately, the only way to get the full set of jars is by grabbing them from the bundled Tomcat distribution.</p>
<p>The next problem is that you won&#8217;t have access to the shared Tomcat context to setup custom context properties.  Fortunately, all of this can be easily configured in a portal-ext.properties file, which is formatted as a standard Java properties file.  Some of the parameters that you will need to use include:</p>
<ul>
<li>portal.ctx &#8211; This allows you to set the LifeRay root context if you are running from a sub-folder (which is very common in a shared hosting environment)</li>
<li>liferay.home &#8211; Folder where liferay will store documents and artifacts.  This should be set to an absolute path within your home folder that is configured to be writable by the Tomcat process.</li>
<li>jdbc.default.* &#8211; You can set the dirverClassName, url, username, and password that are specific to your hosting environment.</li>
</ul>
<p>Here is an example portal-ext.properties file:</p>
<pre class="brush: plain; title: ; notranslate">
portal.ctx=/portal
liferay.home=/home/widgetfx/liferay
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/widgetfx_liferay?useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;amp;useFastDateParsing=false
jdbc.default.username=xxxxxxxx
jdbc.default.password=xxxxxxxx
</pre>
<p>Once you have updated it for your server hosting settings, add it to liferay-portal-5.x.war under WEB-INF/classes.</p>
<p>All that is left is to make sure your database is setup and deploy this WAR file to your hosting provider.  Liferay should come up by itself, or if not check catalina.out for common errors (like database access permissions).</p>
<p><strong>cPanel Tip:</strong> If your shared hosting provider uses cPanel to deploy Tomcat applications, you may have trouble getting it to map requests from Apache to Tomcat under the Liferay directory.  An easy way to do this without hacking Apache is to put a .htaccess file under the Liferay root directory with the following contents:</p>
<pre class="brush: bash; title: ; notranslate">
SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME ajp13
</pre>
<h2>Setting up Multiple Instances</h2>
<p>All the instructions so far assume you are only setting up one instance (and that no one else has already setup a Liferay instance on the same server).  However, if you want to go multi-instance or just prevent future collisions, some more invasive hacking is required.</p>
<p>Inside of liferay-portal-5.x.war, hidden in portal-impl.jar there is some magical JMX and MBean magic to handle statistcs and configuration that will blow up horribly with multiple instances.  To disable this you will need to:</p>
<ul>
<li>extract WEB-INF/lib/portal-impl.jar</li>
<li>inside portal-impl.jar edit META-INF/hibernate-spring.xml and change the statistics key to a unique value (highlighted in bold):<br />
<code>&lt;entry key="Hibernate:name=<strong>statistics</strong>"&gt;</code></li>
<li>inside portal-impl.jar edit META-INF/messaging-sprint.xml and comment out the JMX bean and reference to it in MessagingConfigurator bean:<br />
<code>&lt;!--&lt;ref bean="com.liferay.portal.kernel.messaging.jmx.JMXMessageListener" /&gt;--&gt;</code></li>
</ul>
<p>Once these changes are deployed you can now safely bring up multiple instances as separate Tomcat web applications.</p>
<p><strong>Congratulations, you now have a Liferay instance working on your shared server configuration!</strong></p>
<h2>What Next?</h2>
<p>While this covers the basics, here are some things that require additional tweaking:</p>
<ul>
<li>Plug-ins cannot be cannot be installed automatically</li>
<li>Additional Liferay themes need to be manually deployed</li>
<li>Tunnel-web needs to be configured differently</li>
</ul>
<p>If I am feeling adventurous (and there is interest), I will do a part 2 of this to go over tunnel-web and plug-in/theme configuration in a shared hosting environment.</p>
<div class="plus-one-wrap"><g:plusone href="http://steveonjava.com/running-liferay-on-shared-hosting/"></g:plusone></div><div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/running-liferay-on-shared-hosting/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>

