<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Vaadin Framework @version@</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css" />
    
    <!--[if lte IE 6]>
		<link rel="stylesheet" type="text/css" href="css/ie.css" />
		<![endif]-->
    <style type="text/css">
.nested-list ol {
	counter-reset: item
}

.nested-list li {
	display: block
}

.nested-list li:before {
	content: counters(item, ".") ". ";
	counter-increment: item
}
</style>
  </head>

  <body>
    <div id="header">
      <h1>Vaadin &ndash; thinking of U and I</h1>
      <div id="version">
        <strong>Version @version@</strong>
      </div>
    </div> <!-- /header -->

    <div id="content">
      <p>Version @version@ built on @builddate@.</p>

      <h2 id="tableofcontents">Release Notes for Vaadin Framework @version@</h2>
      <ul>
        <li><a href="#overview">Overview</a></li>
        <li><a href="#enhancements">Enhancements in Vaadin @version-minor@</a></li>
        <li><a href="#changelog">Complete change log for Vaadin @version@</a></li>
        <li><a href="#migrating">Migrating from Vaadin 6 to Vaadin 7</a></li>
        <li><a href="#dependencies">Vaadin @version@ dependencies</a></li>
        <li><a href="#upgrading">Upgrading to Vaadin @version-minor@</a></li>
        <li><a href="#supportedversions">Supported technologies</a></li>
        <li><a href="#vaadinontheweb">Vaadin on the Web</a></li>
      </ul>

      <h2 id="overview">Overview</h2>

      <p>
        <b>Vaadin</b> is a Java framework for building modern web applications that look
        great, perform well and make you and your users happy. <b>Vaadin</b> and is
        available under the Apache 2 license (see <tt>license.html</tt>).
      </p>
      
      <p>
        The easiest ways to install <b>Vaadin</b> are:
      </p>

      <ul>
        <li>If using Maven, define it as a dependency or use any of the available
        archetypes (only <tt>vaadin-application</tt> is available for Vaadin 7 at the time
        of this release) to create a new project</li>

        <li>If using Eclipse, use the Vaadin Plugin for Eclipse, which automatically
        downloads the Vaadin libraries</li>
      </ul>

      <p>
        It is also available as a ZIP package downloadable from <a
        href="http://vaadin.com/download">Vaadin Download page</a>.
      </p>

      <h3 id="package">Package Contents</h3>

      <p>Inside the ZIP installation package you will find:</p>

      <ul>
        <li>Separate server-side (<tt>vaadin-server</tt>) and client-side (<tt>vaadin-client</tt>, <tt>vaadin-client-compiler</tt>) development libraries</li>
        <li>Precompiled widget set (<tt>vaadin-client-compiled</tt>) for server-side development</li>
        <li>Shared library (<tt>vaadin-shared</tt>) for both server- and client-side libraries</li>
        <li>Built-in themes (<tt>vaadin-themes</tt>) and the theme compiler (<tt>vaadin-theme-compiler</tt>)
        <li>Dependency libraries provided under the <tt>lib/</tt> folder</li>
      </ul>

      <p>
        See the <tt>README.TXT</tt> in the installation package for detailed information
        about the package contents. <a href="http://vaadin.com/book">Book of Vaadin</a>
        (for Vaadin 7) will give more detailed instructions; it is not yet up-to-date at
        the time of this release, but will be updated soon after.
      </p>

      <p>
        For server-side development, copy the <tt>vaadin-server</tt>,
        <tt>vaadin-client-compiled</tt>, <tt>vaadin-shared</tt>,
        <tt>vaadin-theme-compiler</tt>, and <tt>vaadin-themes</tt> from the main
        folder and the dependencies from the <tt>lib</tt> folder to the
        <tt>WEB-INF/lib</tt> folder of your Vaadin project. (The
        <tt>vaadin-client-compiled</tt> is necessary if you do not wish to compile the
        widget set by your own, which you need to do if you use almost any add-on
        components.)
      </p>

      <p>
        For pure client-side development, you only need the <tt>vaadin-client</tt> and
        <tt>vaadin-client-compiler</tt> JARs, which should be put to a non-deployed
        project library folder, such as <tt>lib</tt>. You also need them if you compile
        the widget set for any reason, such as using Vaadin add-ons, or create new
        server-side components integrated with client-side widgets.
      </p>

      <h2 id="enhancements">Enhancements in Vaadin @version-minor@</h2>

      <p>
        @version-minor@ is the first beta release release of the upcoming Version 7 of the
        Vaadin Framework. It introduces the final major set of new features in Vaadin 7,
        for the purpose of receiving feedback about the changes.
      </p>

      <p>The major new changes in this first beta release are:</p>

      <ul>
        <li>Applications are now written by extending the <b>UI</b> class
          <ul>
            <li>UIs use heartbeat to detect closing</li>
          </ul>
        </li>
        <li>The <b>Application</b> class is removed altogether
          <ul>
            <li><b>ApplicationServlet</b> is replaced with <b>VaadinServlet</b></li>
            <li><b>ApplicationResource</b> is replaced with <b>ConnectorResource</b></li>
          </ul>
        </li>
        <li>Themeing with <a href="http://sass-lang.com/">SASS</a> in addition to CSS
          <ul>
            <li>SASS themes need to (and CSS themes can) be compiled to a single CSS stylesheet with the <tt>vaadin-theme-compiler</tt></li>
          </ul>
        </li>
        <li>Add-ons can modify the startup page</i></li>
        <li>All <tt>addListener()</tt> methods have changed to listener-specific methods, such as <tt>addClickListener()</tt>, <tt>addValueChangeListener()</tt>, etc.</li>
        <li>Packaging has changed, now in a ZIP package (see <a href="package">Package Contents</a> above)
        </li>
      </ul>

      <p>
        The following major changes were first introduced in the alpha releases:
      </p>

      <ul>
        <li>GWT is now built into Vaadin Framework
          <ul>
            <li>New SuperDevMode allows debugging client-side Java code in the browser without any plugins</li>
          </ul>
        </li>
        <li>Navigation API for view navigation
          <ul>
            <li>View navigation with bookmarking/linking with URI fragments and browser history support</li>
            <li>Access control for views, view change confirmation</li>
          </ul>
        </li>
        <li>Component and UI extensions</li>
        <li>Resource loading (JS/CSS) by the framework</li>
        <li>Complete overhaul of the client-server communication architecture
          <ul>
            <li>All add-on components that have widgets need to be ported to Vaadin 7</li>
            <li>Integration of a GWT widget is done in a connector class</li>
            <li>Component-to-widget mapping now defined on the client-side, in the connector</li>
            <li>No more Paintable or VariableOwner</li>
            <li>Server-side component and client-side widget can have a shared state object which is automatically synchronized</li>
            <li>Both client-side and server-side can make RPC calls to the other side
              <ul>
                <li>Communicated in the next request/response</li>
                <li>No return values</li>
                <li>Typically for communicating events</li>
              </ul>
            </li>
            <li>Support for JavaScript components - GWT integration code not required</li>
            <li>Handle JavaScript callbacks on the server-side</li>
            <li>UIDL is deprecated</li>
            <li>Compatibility layer for Vaadin 6 included for easy migration</li>
          </ul>
        </li>
        <li><b>Form</b> is deprecated and form hand is replaced with the <b>FieldGroup</b></li>
        <li>Get computed style of a component from the browser</li>
        <li>Support for border, padding, and margin in core layout components</li>
      </ul>
        
      <p>
        There are many other enhancements. Most of them are described in more detail in
        the <a href="https://vaadin.com/wiki/-/wiki/Main/Vaadin+7">mini-tutorials</a> in
        the Vaadin Wiki.
      </p>

      <p>
        Please see the release notes for <a
        href="http://vaadin.com/download/prerelease/7.0/7.0.0/7.0.0.alpha1/release-notes.html">alpha1</a>,
        <a
        href="http://vaadin.com/download/prerelease/7.0/7.0.0/7.0.0.alpha2/release-notes.html">alpha2</a>,
        and <a
        href="http://vaadin.com/download/prerelease/7.0/7.0.0/7.0.0.alpha3/release-notes.html">alpha3</a>
        for the lists of where the major enhancements were introduced.
      </p>

      <h3 id="changelog">ChangeLog</h3>

      <p>
        For a complete list of changes in this release, please see the <a
        href="http://dev.vaadin.com/query?status=closed&group=resolution&milestone=Vaadin+7.0.0.beta1">list
        of closed tickets</a>.
      </p>

      <h2 id="migrating">Migrating from Vaadin 6</h2>

      <p>
        All Vaadin 6 applications need some changes when migrating to Vaadin 7. The most
        obvious changes are in the application/window API and require extending either
        <b>UI</b> or <b>UI.LegacyApplication</b> instead of <b>Application</b>. A detailed
        list of migration changes are given in the <a
        href="http://dev.vaadin.com/wiki/Vaadin7/MigrationGuide">Vaadin 7 Migration
        Guide</a>.
      </p>

      <p>
        Any custom client-side widgets need to be ported to use the new client-server
        communication API, or the Vaadin 6 compatibility API.
      </p>

      <p>
        Vaadin 6 add-ons (ones that contain widgets) do not work in Vaadin 7 - please
        check the add-ons in <a href="http://vaadin.com/directory/">Vaadin Directory</a>
        for Vaadin 7 support.
      </p>

      <h2 id="dependencies">Vaadin @version@ Dependencies</h2>

      <h3>Dependencies Included in Installation package</h3>
      
      <p>
        The Vaadin ZIP installation package includes the following dependencies in the
        <tt>lib</tt> subfolder:
      </p>

      <ul>
        <li>Apache Ant (<tt>ant-*.jar</tt>)</li>
        <li>Args4j (<tt>args4j-*.jar</tt>)</li>
        <li>Apache Commons CLI, Collections, Discovery, IO, Lang, Logging, and Math (<tt>commons-*.jar</tt>)</li>
        <li>CSS Parser (<tt>cssparser-*.jar</tt>)</li>
        <li>Flute (<tt>flute-*.jar</tt>)</li>
        <li>Google Collections Library (<tt>google-collections-*.jar</tt>)</li>
        <li>JSON (<tt>json-*.jar</tt>)</li>
        <li>jsoup (<tt>jsoup-*.jar</tt>)</li>
        <li>JUnit (<tt>junit-*.jar</tt>)</li>
        <li><tt>portal-service-*.jar</tt></li>
        <li>SAC (<tt>sac-*.jar</tt>)</li>
        <li>SmartSprites (<tt>smartsprites-*.jar</tt>)</li>
        <li>Validation API (<tt>validation-*.jar</tt>)</li>
      </ul>

      <h3>Bean Validation</h3>

      <p>
        If you want to use the bean validation feature in Vaadin 7, you need a Bean
        Validation API implementation. You need to install the JAR in the
        <tt>WEB-INF/lib</tt> directory.
      </p>

      <h2 id="upgrading">Upgrading to Vaadin @version-minor@</h2>

      <h3>Upgrading the Eclipse Plugin</h3>

      <p>
        This release requires that you use the <i>experimental</i> Vaadin Plugin for
        Eclipse. Its update site is
        <tt>http://vaadin.com/eclipse/experimental</tt>. Please see the <a
        href="http://vaadin.com/eclipse">installation instructions</a> for more details.
      </p>

      <h3>General Upgrading Instructions</h3>

      <p>
        When upgrading from an earlier Vaadin version, you must:
      </p>
		
      <ul>
        <li>Recompile your classes using the new Vaadin version. Binary
          compatibility is only guaranteed for maintenance releases of
          Vaadin.</li>

        <li>Recompile any add-ons you have created using the new Vaadin</li>

        <li>Unless using the precompiled widget set, recompile your widget set using the
        new Vaadin version</li>
      </ul>

      <p>
        Remember also to refresh the project in your IDE to ensure that the new version of
        everything is in use.
      </p>

      <p>
        By using the "<tt>?debug</tt>" URL parameter, you can verify that the version of
        the servlet, the theme, and the widget set all match.
      </p>

      <p>
        <b>Eclipse</b> users should always check if there is a new version of
        the Eclipse Plug-in available. The Eclipse Plug-in can be used to
        update the Vaadin version in the project (Project properties &raquo;
        Vaadin).
      </p>

      <p>
        <b>Maven</b> users should update the Vaadin dependency version in the
        <tt>pom.xml</tt> unless it is defined as <tt>LATEST</tt> . You must also ensure
        that the GWT dependency uses the correct version and recompile your project and
        your widget set.
      </p>

      <p>
        <b>Liferay and other portal</b> users must install the Vaadin libraries in
        <t>ROOT/WEB-INF/lib/</b> in the portal (and remove a possibly obsolete older
        <tt>vaadin.jar</tt>). Additionally, the contents of the
        <tt>vaadin-client-compiled</tt> and <tt>vaadin-themes</tt> must be
        extracted to the <tt>ROOT/html/VAADIN</tt> directory in the Liferay
        installation. If your portal uses custom widgets, install the latest version of <a
        href="http://vaadin.com/directory#addon/vaadin-control-panel-for-liferay">Vaadin
        Control Panel for Liferay</a> for easy widget set compilation - when it is
        available - the add-on is not compatible with Vaadin @version@ at the time of this
        Vaadin release. <!-- TODO: Remove note when done -->
      </p>
      
      <h2 id="gae">Notes and Limitations for Google App Engine</h4>

      <p>The following instructions and limitations apply when you run a Vaadin
      application under the Google App Engine.</p>

      <ul>
        <li>
          <p>
            Applications must use <b>GAEVaadinServlet</b> instead of
            <b>VaadinServlet</b> in <tt>web.xml</tt>.
          </p>
        </li>

        <li>
          <p>
            Session support must be enabled in
            <tt>appengine-web.xml</tt>:
          </p>
          
          <pre>    &lt;sessions-enabled&gt;true&lt;/sessions-enabled&gt;</pre>
        </li>

        <li>
          <p>
            Avoid using the session for storage, usual App Engine limitations apply (no
            synchronization, that is, unreliable).
          </p>
        </li>

        <li>
          <p>
            Vaadin uses memcache for mutex, the key is of the form
            <tt>_vmutex&lt;sessionid&gt;</tt>.
          </p>
        </li>

        <li>
          <p>
            The Vaadin <b>VaadinSession</b> class is serialized separately into
            memcache and datastore; the memcache key is <tt>_vac&lt;sessionid&gt;</tt> and
            the datastore entity kind is <tt>_vac</tt> with identifiers of the type
            <tt>_vac&lt;sessionid&gt;</tt>.
          </p>
        </li>

        <li>
          <p>
            DO NOT update application state when serving an <b>ConnectorResource</b>
            (such as <b>ClassResource</b>.<i>getStream()</i>).
          </p>
        </li>

        <li>
          <p>
            The application remains locked during uploads - a progress bar is not
            possible
          </p>
        </li>
      </ul>

      <p>
        For other known problems, see open tickets at developer site <a
        href="http://dev.vaadin.com/">dev.vaadin.com</a>.
      </p>

      <h2 id="supportedversions">Supported Technologies</h2>

      <p>
        Vaadin 7 is compatible with <b>Java 6</b> and with most operating systems
        supporting the Java 6 or newer. Vaadin 7 is especially supported on the following
        <b>operating systems</b>:
      </p>

      <ul>
        <li>Windows</li>
        <li>Linux</li>
        <li>Mac OS X</li>
      </ul>

      <p>
        Vaadin 7 requires <b>Java Servlet API 2.4</b> but also supports later versions and
        should work with any Java application server that conforms to the standard. The
        following <b>application servers</b> are supported:
      </p>

      <ul>
        <li>Apache Tomcat, version 5.0 or newer</li>
        <li>Oracle WebLogic&reg; Server, version 9.2 or newer</li>
        <li>IBM WebSphere&reg; Application Server, version 6.1 or newer</li>
        <li>JBoss Application Server, 4.0.0 or newer</li>
        <li>Jetty, version 5.0 or newer</li>
        <li>Glassfish, version 2.0 or newer</li>
      </ul>

      <p>
        Vaadin 7 supports the JSR-286 Portlet specification. All portals that
        implement either of the portlet specifications should work. The following
        <b>portals</b> are supported:
      </p>

      <ul>
        <li>Liferay Portal 5.2 or newer</li>
        <li>GateIn Portal 3.1 or newer</li>
        <li>eXo Platform 3 or newer</li>
      </ul>

      <p>
        Vaadin also supports <b>Google App Engine</b>.
      </p>

      <p>
        Vaadin supports the following <b>desktop browsers</b>:
      </p>

      <ul>
        <li>Mozilla Firefox 5 or newer</li>
        <li>Internet Explorer 8-10</li>
        <li>Safari 6</li>
        <li>Opera 12</li>
        <li>Google Chrome 21</li>
      </ul>

      <p>
        Additionally, Vaadin supports the built-in browsers in the following 
        <b>mobile operating systems</b>:
      </p>

      <ul>
        <li>iOS 5 and later</li>
        <li>Android 2.3 and later</li>
      </ul>

      <h2 id="vaadinontheweb">Vaadin on the Web</h2>

      <ul>
        <li><a href="http://vaadin.com">vaadin.com - The developer
            portal containing everything you need to know about Vaadin</a>
        </li>
        <li><a href="http://demo.vaadin.com">demo.vaadin.com - A
            collection of demos for Vaadin</a></li>
        <li><a href="http://vaadin.com/learn">vaadin.com/learn -
            Getting started with Vaadin</a></li>
        <li><a href="http://vaadin.com/forum">vaadin.com/forum -
            Forums for Vaadin related discussions</a>
        </li>
        <li><a href="http://vaadin.com/book">vaadin.com/book - Book
            of Vaadin - everything you need to know about Vaadin</a> 
        </li>
        <li><a href="http://vaadin.com/api">vaadin.com/api - Online
            javadocs</a>
        </li>
        <li><a href="http://vaadin.com/directory">vaadin.com/directory
            - Add-ons for Vaadin</a>
        </li>

        <li><a href="http://vaadin.com/pro-account">vaadin.com/pro-account
            - Commercial support and tools for Vaadin development </a>
        </li>
        <li><a href="http://vaadin.com/services">vaadin.com/services
            - Expert services for Vaadin</a>
        </li>
        <li><a href="http://vaadin.com/company">vaadin.com/company
            - Information about the company behind Vaadin</a>
        </li>

        <li><a href="http://dev.vaadin.com">dev.vaadin.com - Bug tracker</a></li>

        <li><a
        href="http://dev.vaadin.com/wiki/Vaadin/Development/StartingVaadin7Development">How
        to get the source code of Vaadin</a>
        </li>
      </ul>
	</div> <!-- /content-->

	<div id="footer">
		<span class="slogan"><strong>vaadin <em>}></em> </strong>
			thinking of U and I<span> <a href="#top">&uarr; Back to
					top</a>
	</div> <!-- /footer -->
  </body>
</html>

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:("/etc/sgml/catalog" "/usr/share/xemacs21/xemacs-packages/etc/psgml-dtds/CATALOG")
sgml-local-ecat-files:("ECAT" "~/sgml/ECAT" "/usr/share/sgml/ECAT" "/usr/local/share/sgml/ECAT" "/usr/local/lib/sgml/ECAT")
End:
-->