<?php
/*******************************************************************************
 * Copyright (c) 2015 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Eric Poirier (Eclipse Foundation) - Initial implementation
 *******************************************************************************/
?>

<section class="jumbotron breadcrumbs-offset">
  <div class="container">
    <div class="content">
      <h1>MARS release</h1>
      <h2>June 2015</h2>
      <div class="row">
        <div class="col-md-10 col-sm-12">
          <ul class="list-with-arrow">
            <li>New Java IDE features, including hierarchical view of nested projects, ability to customize perspectives
            and speed improvements for text search.</li>
            <li>Integrated tools for building and maintaining Docker containers, available from Linux Tools project.</li>
            <li>Oomph project now makes if possible to record and share user preference settings across individual workspaces.</li>
            <li>New integration with Gradle making it easy to manage Gradle builds from Eclipse, via the Buildship project.</li>
          </ul>
        </div>
        <div class="col-md-10 col-sm-12">
          <ul class="list-with-arrow">
            <li>Improved Maven support, including support for Maven 3.3.3, improved Maven archetypes integration
            and enhanced auto-completion in the pom editor.</li>
            <li>Automated error reporting that allows Eclipse users to report errors directly to Eclipse projects.</li>
            <li>The new Thym project provides tools for building cross-platform mobile applications using Apache Cordova.</li>
          </ul>
          <ul class="list-inline">
            <li><a class="btn btn-primary btn-border-only white" href="/downloads/">Download</a></li>
            <li><a class="btn btn-primary btn-border-only white" href="https://projects.eclipse.org/releases/mars">Projects</a></li>
            <li><a class="btn btn-primary btn-border-only white" href="#together">Improve Eclipse</a></li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</section>
<section class="projects">
  <div class="container">
    <div class="row">
      <div class="col-md-18 col-sm-24 col-md-offset-3">
        <h2><span class="bold">Projects</span> included in Eclipse Mars</h2>
        <div class="well">
          <div class="row vertical-align for-sm-and-up">
            <div class="col-lg-6 col-md-8 col-sm-8">
              <div class="logo col-left-box"><img src="images/logo-jubula.png" alt="Jubula logo"></div>
            </div>
            <div class="col-lg-18 col-md-16 col-sm-16">
              <div class="content">
                <h3><a href="/jubula/">Jubula 3.1</a></h3>
                <p>Automated functional testing tool. New 3.1 release includes a new client API for developing tests in code.</p>
              </div>
            </div>
          </div>
        </div><!-- end of .well -->
        <div class="well">
          <div class="row vertical-align for-sm-and-up">
            <div class="col-lg-6 col-md-8 col-sm-8 col-sm-push-16 col-lg-push-18">
              <div class="logo col-right-box"><img src="images/logo-gef.png" alt="GEF logo"></div>
            </div>
            <div class="col-lg-18 col-md-16 col-sm-16 col-sm-pull-8 col-lg-pull-6">
              <div class="content">
                <h3><a href="/gef/">GEF 3.10</a></h3>
                <p>Framework for building rich graphical applications. New 3.10 release includes the new GEF4
                implementation, a new generation of GEF that uses JavaFX.</p>
              </div>
            </div>
          </div>
        </div><!-- end of .well -->
        <div class="well">
          <div class="row vertical-align for-sm-and-up">
            <div class="col-lg-6 col-md-8 col-sm-8">
              <div class="logo col-left-box"><img src="images/logo-sirius.png" alt="Sirius logo"></div>
            </div>
            <div class="col-lg-18 col-md-16 col-sm-16">
              <div class="content">
                <h3><a href="/sirius/">Sirius 3.0</a></h3>
                <p>Easily define a modeling workbench.</p>
              </div>
            </div>
          </div>
        </div><!-- end of .well -->
        <div class="well">
          <div class="row vertical-align for-sm-and-up">
            <div class="col-lg-6 col-md-8 col-sm-8 col-sm-push-16 col-lg-push-18">
              <div class="logo col-right-box"><img src="images/logo-ecf.png" alt="ECF logo"></div>
            </div>
            <div class="col-lg-18 col-md-16 col-sm-16 col-sm-pull-8 col-lg-pull-6">
              <div class="content">
                <h3><a href="/ecf/">Eclipse Communication Framework 3.10</a></h3>
                <p>Set of frameworks that implement communications protocols for application developers.</p>
              </div>
            </div>
          </div>
        </div><!-- end of .well -->
        <div class="well">
          <div class="row vertical-align for-sm-and-up">
            <div class="col-lg-6 col-md-8 col-sm-8">
              <div class="logo col-left-box"><img src="images/logo-papyrus.png" alt="Papyrus logo"></div>
            </div>
            <div class="col-lg-18 col-md-16 col-sm-16">
              <div class="content">
                <h3><a href="/papyrus/">Papyrus 1.1</a></h3>
                <p>Set of modeling tools supporting EMF, UML and other languages.</p>
              </div>
            </div>
          </div>
        </div><!-- end of .well -->
        <div class="text-center">
          <a href="https://projects.eclipse.org/releases/mars" class="btn btn-primary btn-border-only black">MORE</a>
        </div>
      </div>
    </div>
  </div>
</section>
<section id="together" class="together footer-offset">
  <div class="container">
    <div class="row">
      <div class="col-md-18 col-md-offset-3">
        <h2><span class="bold">Together</span> We Can Improve Eclipse</h2>
        <p>By making a donation to Friends of Eclipse, you can help improve Eclipse.
        All donations will be used to fund Eclipse IDE development. Donate today and together
        we can improve Eclipse.</p>
        <p><a href="/donate" class="btn btn-primary btn-border-only black">DONATE</a></p>
      </div>
    </div>
  </div>
</section>