<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>Liferay Portal 6.2 Community Edition</title>
	<style type="text/css" media="screen">
		body {
			background: #EEF4F9;
			color: #474A4B;
			font: 12px/16px 'Helvetica', Arial, sans-serif;
			margin: 0;
		}

		blockquote {
			margin: 1em 2.5em;
		}

		h1,
		h2,
		h3,
		h4,
		h5,
		h6 {
			clear: both;
			display: block;
			margin: 0 0 0.75em;

		}

		h1 {
			font-size: 2.22em;
			font-weight: normal;
			line-height: 1;
			margin: 0.75em 0 0.5em;
		}

		h2 {
			font-size: 2em;
			margin-bottom: 0.75em;
		}

		h3 {
			font-size: 1.5em;
			line-height: 1;
			margin-bottom: 1em;
		}

		h4 {
			font-size: 1.2em;
			line-height: 1.25;
			margin-bottom: 1.25em;
		}

		h5 {
			font-size: 1em;
			font-weight: bold;
			margin-bottom: .5em;
		}

		h6 {
			font-size: 1em;
			font-weight: bold;
		}

		hr {
			border: 0 solid #BFBFBF;
			border-width: 0 0 1px;
			height: 0;
		}

		ol,
		ul {
			padding: 0 0 0 2.5em;
		}

		ol,
		p,
		pre,
		ul {
			margin: 1em 0;
		}

		abbr {
			border-bottom: 1px dotted #000;
			border-bottom-color: inherit;
		}

		img {
			border: 0;
			vertical-align: text-bottom;
		}

		table {
			border-collapse: collapse;
		}

		p {
			margin: 0 0 1.5em;
		}

		blockquote {
			margin: 1.5em;
			font-style: italic;
		}

		strong {
			font-weight: bold;
		}

		em,
		dfn {
			font-style: italic;
		}

		abbr {
			border-bottom: 1px dotted #666;
		}

		code {
			font: 1em 'andale mono', 'lucida console', monospace;
			line-height: 1.5;
		}

		a {
			border-bottom: 1px dotted #446D77;
			color: #446D77;
			outline: none;
			text-decoration: none;
		}

		a:hover {
			color: #CD171D;
		}

		p,
		ul,
		blockquote {
			padding: 0 15px;
		}

		li {
			line-height: 20px;
		}

		#wrapper {
			margin: 0 auto 20px;
			padding: 20px;
			width: 550px;
		}

		.header a {
			border: none;
		}

		.contents {
			background: #FFF;
			border: 1px solid #AAA;
			border-radius: 5px;
			-moz-border-radius: 5px;
			-webkit-border-radius: 5px;
			margin: 2em 0;
			padding: 15px 15px 0;
		}

		.contents li ul,
		.contents li ol {
			margin: 0 10px;
			padding: 0 10px;
		}

		.features li ol li {
			list-style-type: lower-alpha;
			padding: 0;
		}

		.image-left {
			float: left;
			margin-right: 10px;
		}

		.image-right {
			float: right;
			margin-left: 10px;
		}

		.note {
			font-family: 'Trebuche MS', Verdana, sans-serif;
			font-style: italic;
		}

		hr,
		.hr {
			border-top: 1px solid #FFF;
			border-bottom: 1px solid #BABEC2;
			margin: 2em 0;
		}

	</style>

</head>

<body>

<div id="wrapper">
	<div class="header">
		<a href="http://www.liferay.com"><img src="http://cdn.www.liferay.com/osb-community-theme/images/custom/heading.png" alt="www.liferay.com"></a>
	</div>

	<h1 id="top">Liferay 6.2 Community Edition</h1>

	<p>
		Thank you for choosing Liferay Portal. This release further expands Liferay's ability to be used in an extremely broad range of applications for web sites, portals, and collaboration services. Remember Liferay Portal is built by and for a very large open community. Be sure to participate by contributing back to the <a href="http://liferay.org">Liferay Community</a>.
	</p>

	<div class="contents">
		<h3>Contents</h3>

		<ol type="I">
			<li>
				<a href="#features">New Features</a>
			</li>
			<li>
				<a href="#resources">Community Resources</a>

				<ol>
					<li>
						<a href="#install">Installation and Documentation</a>
					</li>
					<li>
						<a href="#collab">Liferay's Open Source Community</a>
					</li>
					<li>
						<a href="#bugs">Bug Reporting</a>
					</li>
					<li>
						<a href="#ideas">Have an Idea?</a>
					</li>
					<li>
						<a href="#marketplace">Liferay Marketplace</a>
					</li>
				</ol>
			</li>
			<li>
				<a href="#enterprise">Enterprise and Mission Critical Deployments</a>
			</li>
			<li>
				<a href="#devteam">The Liferay Development Team</a>
				<ol>
					<li>
						<a href="#communitycontrib">Community Contributors</a>
					</li>
				</ol>
			</li>
			<li>
				<a href="#license">Licensing and Trademark</a>
			</li>
		</ol>
	</div>

	<hr/>

	<h2 id="features">I. New Features</h2>

	<p>
		Liferay Portal 6.2 includes many new features targeting end users (power users), systems administrators and developers for enterprise deployments. Each area includes multiple features designed to support the most complex deployments. Liferay includes a web content management and document repository with multiple collaboration services all wrapped up in a portal framework. These features combine to allow Liferay to support an extremely broad range of use cases. See the full list of new features here on the <a href="http://www.liferay.com/community/wiki/-/wiki/Main/New+Features+in+Liferay+Portal+v6.2">Liferay 6.2 New Features Wiki Page</a>.
	</p>

	<h2 id="resources">II. Community Resources</h2>

	<p>
		Find information, participate in discussions and contribute back to the community at: <a href="http://liferay.org">Liferay.org</a>. Be sure to "Like" Liferay on <a href="https://www.facebook.com/liferay">Facebook</a> to collaborate with others and to find people in your field or specialty who are also using Liferay. Also be sure to "Follow" us and the community on <a href="https://twitter.com/#!/liferay">Twitter</a> which uses <a href="http://tweetray.com">TweetRay</a> to repost all tweets from the community who use the tag #Liferay.
	</p>

	<ol type="a">
		<li id="install">
			Documentation and Installation
		</li>
		<ol type="I">
			<a href="http://www.liferay.com/documentation/"><img alt="Liferay Portal Administration Guide" class="image-right" src="http://www.manning.com/sezov/sezov_cover150.jpg" width="100"></a>

			<li>
				A <a href="http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Quick%20Installation%20Instructions">quick installation																															guide</a> is available on the Liferay Wiki.
			</li>
			<li>
				<a href="http://www.liferay.com/documentation">Official Documentation</a> for Liferay is available on liferay.com as well as from online publishers.
			</li>
			<li>
				<a href="http://www.manning.com/sezov/">Liferay in Action</a> is available from Manning Publications and includes a definitive review of many Liferay features and capabilities.
			</li>
		</ol>
		<li id="collab">
			Liferay's Open Source Community
		</li>
		<ol type="I">
			<li>
				Go to <a href="http://liferay.org">liferay.org</a> to search for answers within the forums, to post answers for others, and to find online reference materials in the Wiki section.
			</li>
		</ol>
		<li id="bugs">
			Bug Reporting
		</li>
		<ol type="I">
			<li>
				While the Liferay Community cannot ensure all reported bugs will get fixed or receive a response right away, contributing bug information to Liferay supports everyone and is one of the most valuable ways you can contribute back to the Liferay Community. If you find a bug, please log as much information as possible into a new ticket at: <a href="http://issues.liferay.com">http://issues.liferay.com</a>.
			</li>
		</ol>
		<li id="ideas">
			Suggesting New Features
		</li>
		<ol type="I">
			<li>
				The Liferay open source project relies on its community for many of the evolutionary and revolutionary ideas that eventually find their way into a release. Liferay strongly believes in empowering the community not only to be able to create change through feature requests but also to feel responsible for socializing, recommending, and implementing their own and others' ideas. If you have a great idea for Liferay, check out the <a href="http://liferay.com/community/ideas">Feature Request Dashboard</a>, which provides an easy way to create, view, and recommend feature requests, and help steer the direction of Liferay!
			</li>
		</ol>
		<li id="marketplace">
			Liferay Marketplace
		</li>
		<ol type="I">
			<li>
                <a href="http://liferay.com/marketplace">The Liferay Marketplace</a> is an exciting new hub for sharing, browsing and downloading Liferay-compatible applications. As enterprises look for ways to build and enhance their existing platforms, developers and software vendors are searching for new avenues to reach this market. Marketplace leverages the entire Liferay ecosystem to release and share apps in a user-friendly, one-stop site. Browse the available apps, or visit the <a href="http://www.liferay.com/marketplace-help">developer resources pages</a> to learn how to build your own apps! 
			</li>
		</ol>
	</ol>

	<h2 id="enterprise">III. Enterprise and Mission Critical Deployments</h2>

	<ol type="a">
		<li>
			Preparing for Production
		</li>
		<ol type="i">
			<li>
				Liferay can be used in a variety of mission critical deployments. While Liferay CE meets many of the most demanding requirements, the following should be considered and evaluated prior to deployment.
			</li>
			<ol>
				<li>
					Review the following <a href="http://www.liferay.com/documentation/additional-resources/whitepapers">white papers</a>:
				</li>
				<ol type="a">
					<li>
						Advanced Liferay Architecture: Clustering and High Availability
					</li>
					<li>
						Liferay EE Reference Architecture & Hardware Requirements
					</li>
					<li>
						LPEE 6.2 Deployment Checklist
					</li>
					<li>
						Liferay Application Integration Strategies
					</li>
					<li>
						Identity Management in Liferay – Overview and Best Practices
					</li>
				</ol>
				<li>
					Request a review of Liferay's deployment services:
				</li>
				<ol type="a">
					<li>
						Liferay Quickstart Program
					</li>
					<li>
						Liferay GoLive Program
					</li>
				</ol>
				<li>
					Liferay Enterprise Support Program
				</li>
				<ol type="a">
					<li>
						Review <a href="http://www.liferay.com/products/liferay-portal/get-it-now">Liferay's Enterprise support program</a>, which provides access to LESA (online support system).
					</li>
				</ol>
				<li>
					Liferay Professional Support Program
				</li>
				<ol type="a">
					<li>
						As Liferay Portal is used in an extremely broad range of use cases, Liferay provides professional services engagements for Liferay Portal EE to support many services such as, installation, customization, application development, integration, life-cycle management and more. Find out more on <a href="http://liferay.com">liferay.com</a>.
					</li>
				</ol>
			</ol>
		</ol>
	</ol>

	<h2 id="devteam">IV. The Liferay Development Team</h2>

	<p>
		This release was produced by Liferay's worldwide <a href="https://www.liferay.com/community/liferay-projects/liferay-portal/overview">portal engineering team</a>, and involved many hours of development, testing, writing documentation, and working with the wider Liferay community of customers, partners, and open source developers. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!
	</p>

	<ol type="a">
		<li id="communitycontrib">
			Community Contributors
		</li>

		<p>
			In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, or other contribution that helped to improve this release. Check out the <a href="http://www.liferay.com/community/wiki/-/wiki/Main/Community+Contributor+Hall+of+Fame">Community Contributor Hall of Fame</a> and be sure to thank them if you run across them in the community!
		</p>
    </ol>

	<h2 id="license">V. Licensing and Trademark</h2>

	<ol type="a">
		<li>
			Liferay is licensed under the <a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License (LGPL)</a> which defines the conditions for its use and extension. The Liferay Community supports the use of this license to ensure the further advancement of this technology for the betterment of the entire community. We strongly recommend all members of the community who use or support Liferay deployments to contribute back to the community itself through any of the available programs at <a href="http://liferay.org">Liferay.org</a>. This can include everything from answering questions on the forums to contributing code to the community or Liferay Marketplace to purchasing Liferay EE. Each has a value that benefits the entire community.
		</li>
		<li>
			The Liferay Trademark includes the logo and name Liferay. Its use is governed by the Trademark policy posted at: <a href="http://liferay.com/trademark">liferay.com/Trademark</a>. When using Liferay in any form, this policy should be reviewed to understand if your use requires permission from the Liferay community manager.
		</li>
		<li>
			License Declaration:

			<blockquote>
				<p>
					This library, Liferay Portal Community Edition, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the <a href="http://www.gnu.org/licenses/lgpl-2.1.html">GNU Lesser General Public License</a> as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
				</p>

				<p>
					This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
				</p>

				<p>
					You should have received a copy of the <a href="http://www.gnu.org/licenses/lgpl-2.1.html">GNU Lesser General Public License</a> along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
				</p>
			</blockquote>
		</li>
	</ol>

	<a href="#top">Top</a>
</div>

</body>

</html>