<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="copyright"
  content="Copyright (c) Eclipse contributors and others 2014. This page is made available under license. For full details see the LEGAL in the documentation that contains this page." />
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="default_style.css" charset="UTF-8" type="text/css" />
<style type="text/css">
table.news td {
  border-top: solid thin black;
}

table.news tr {
  vertical-align: top;
}

table.news tr td.section {
  font-size: 20px;
  font-weight: bold;
}

table.news tr td.title {
  vertical-align: top;
  width: 30%;
  font-weight: bold;
}

table.news tr td.content {
  vertical-align: top;
  width: 70%;
}

ul {
  padding-left: 13px;
}
</style>
<title>Eclipse Project Luna - New and Noteworthy</title>
</head>

<body>
  <h2>Java development tools</h2>
  <ul>
    <li><a href="#JavaEditor">Java Editor</a></li>
    <li><a href="#JavaFormatter">Java Formatter</a></li>
    <li><a href="#JavaCompiler">Java Compiler</a></li>
    <li><a href="#JavaViewsAndDialogs">Java Views and Dialogs</a></li>
    <li><a href="#Debug">Debug</a></li>
    <li><a href="#JUnit">JUnit</a></li>
  </ul>
  <!-- *************************************************** -->

  <table class="news" cellpadding="10" cellspacing="0" summary="New and noteworthy items">
    <tbody>

      <!-- ******************* Java Editor ************************************* -->
      <tr>
        <td id="JavaEditor" class="section" colspan="2">
          <h2>Java Editor</h2>
        </td>
      </tr>

      <tr id="convert-compliance-JRE-1.8">
        <td class="title"><img src="images/java8.png" alt="" /> Quick fix to change project compliance and JRE to 1.8</td>
        <td class="content">A quick fix <b>Change project compliance and JRE to 1.8</b> is provided to quickly change the current project to be compatible with Java 8.
          <p>
            <img src="images/quickfix-change-compliance-1.8.png" alt="" />
          </p>
        </td>
      </tr>

      <tr id="migrate-anonymous-lambda">
        <td class="title"><img src="images/java8.png" alt="" /> Migrate anonymous class creations to lambda expressions and back</td>
        <td class="content">You can convert anonymous class creations to lambda expressions (and back) by invoking the <b>Quick Assists (Ctrl+1)</b>:
          <ul>
            <li>Convert to lambda expression</li>
            <li>Convert to anonymous class creation</li>
          </ul>
          <p>Before:</p>
          <p>
            <img src="images/convert-to-lambda-1.png" alt="anonymous class with a 1-line method body" />
          </p>
          <p>
            After the Quick Assist (<b>Ctrl+1</b>), the 6 lines are condensed into 1:
          </p>
          <p>
            <img src="images/convert-to-lambda-2.png" alt="lambda expression -- everything on 1 line" />
          </p> Or invoke <b>Source &gt; Clean Up...</b>, use a custom profile, and on the <b>Configure...</b> dialog select <b>Convert functional interface instances</b> and <b>Use lambda where
            possible</b> on the <b>Code Style</b> tab.
        </td>
      </tr>

      <tr id="change-body-block-to-expression">
        <td class="title"><img src="images/java8.png" alt="" /> Change lambda expression body block to expression and back</td>
        <td class="content">You can convert the body of a lambda expression from block to expression (and back) by invoking the <b>Quick Assists (Ctrl+1)</b>:
          <ul>
            <li>Change body expression to block
              <p>
                <img src="images/expression-to-block.png" alt="Change body expression to block" />
              </p>
            </li>
            <li>Change body block to expression
              <p>
                <img src="images/block-to-expression.png" alt="Change body block to expression" />
              </p>
            </li>
          </ul>
        </td>
      </tr>

      <tr id="view-method-implemented">
        <td class="title"><img src="images/java8.png" alt="" /> View the method implemented by the functional interface instances</td>
        <td class="content">To view the method implemented by the functional interface instances, you can hover on:
          <ul>
            <li>'<code>-&gt;</code>' in a lambda expression
            </li>
          </ul>
          <p>
            <img src="images/hover-on-lambda.png" alt="Hover on '->' in lambda to show functional method" />
          </p>
          <ul>
            <li>'<code>::</code>' in a method reference
            </li>
          </ul>
          <p>
            <img src="images/hover-on-method-reference.png" alt="Hover on '::' in method reference to view functional method" />
          </p>
        </td>
      </tr>

      <tr id="navigate-method-declaration">
        <td class="title"><img src="images/java8.png" alt="" /> Navigate to the functional method declaration</td>
        <td class="content">To navigate to the functional method declaration, hold <b>Ctrl</b>, move the mouse pointer over '<code>-&gt;</code>' or '<code>::</code>', and click the hyperlink.
          <ul>
            <li>'<code>-&gt;</code>' in a lambda expression:
            </li>
          </ul>
          <p>
            <img src="images/navigate-from-lambda.png" alt="" />
          </p>
          <ul>
            <li>'<code>::</code>' in a method reference:
            </li>
          </ul>
          <p>
            <img src="images/navigate-from-method-reference.png" alt="" />
          </p>
        </td>
      </tr>


      <tr id="quickfix-create-for-loop">
        <td class="title">Quick Fixes to create 'for' loops</td>
        <td class="content">A set of new quick fixes can create <code>for</code> loops that iterate over a given expression.
          <p>For arrays:</p>
          <ul>
            <li>Create an enhanced <code>for</code> loop
            </li>
            <li>Create a <code>for</code> loop using an index
            </li>
          </ul>
          <p>
            <a href="images/quickfix-create-for-loop-array.txt"><img src="images/quickfix-create-for-loop-array.png" alt="" /></a>
          </p> For <code>Collection</code>s:
          <ul>
            <li>Create an enhanced <code>for</code> loop
            </li>
            <li>Create a <code>for</code> loop using an <code>Iterator</code></li>
          </ul> For <code>List</code>s:
          <ul>
            <li>Create a <code>for</code> loop using an index and <code>get(i)</code></li>
          </ul>
          <p>
            <a href="images/quickfix-create-for-loop-collection.txt"><img src="images/quickfix-create-for-loop-collection.png" alt="" /></a>
          </p>
        </td>
      </tr>

      <tr id="syntax-color">
        <td class="title">Enabled coloring of variables</td>
        <td class="content">Parameter variables and local variables are now colored by default:
          <p>
            <img src="images/variable-coloring.png" alt="" />
          </p> This can be disabled or configured with different colors and styles on the <b>Java &gt; Editor &gt; Syntax Coloring</b> preference page.
        </td>
      </tr>

      <!-- ******************* Java Formatter ************************************* -->
      <tr>
        <td id="JavaFormatter" class="section" colspan="2">
          <h2>Java Formatter</h2>
        </td>
      </tr>

      <tr id="formatter-for-lambda">
        <td class="title"><img src="images/java8.png" alt="" /> Option to control lambda code formatting</td>
        <td class="content">New options are provided in the formatter page to configure the formatting of lambda expressions.
          <ul>
            <li>Configure the position of braces within lambda body:
              <p>
                <img src="images/formatter-braces-lambda.png" alt="" />
              </p>
            </li>
            <li>Configure whitespace before and after the arrow operator of lambda:
              <p>
                <img src="images/formatter-whitespace-lambda.png" alt="" />
              </p>
            </li>
          </ul>
          <p>
            Formatter profiles can be configured on the <b>Java &gt; Code Style &gt; Formatter</b> preference page.
          </p>
        </td>
      </tr>


      <!-- ******************* Java Compiler ************************************* -->
      <tr>
        <td id="JavaCompiler" class="section" colspan="2">
          <h2>Java Compiler</h2>
        </td>
      </tr>

      <tr id="java-8">
        <td class="title"><img src="images/java8.png" alt="" /> Java 8</td>
        <td class="content"><a href="http://docs.oracle.com/javase/8/">Java&trade; 8</a> is here, and JDT fully supports it. The Eclipse compiler for Java (ECJ) implements all the new Java 8 <a
          href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/enhancements.html">language enhancements</a>.</td>
      </tr>

      <tr id="generate-methodparameters">
        <td class="title"><img src="images/java8.png" alt="" /> Option to control generation of method parameter attributes in class files</td>
        <td class="content">In 1.8 compliance mode, you can enable the generation of method parameter attributes in class files:
          <p>
            <img src="images/store-method-parameters.png" alt="Option to store method parameters in class files" />
          </p>
        </td>
      </tr>

      <tr id="contrib-jres">
        <td class="title">Contributed VMs are more recognizable</td>
        <td class="content">You can't remove VMs that have been contributed to Eclipse via the <code>org.eclipse.jdt.launching.vmInstalls</code> extension point.This fact is now more
          recognizable:
          <p>
            <img src="images/contrib-vm.png" alt="The Installed JREs preference page showing a contributed VM install" />
          </p>
        </td>
      </tr>

      <tr id="null-types-annotations">
        <td class="title"><img src="images/java8.png" alt="" /> Null type annotations</td>
        <td class="content">With the advent of "type annotations" as introduced in Java 8 via JSR 308, JDT takes null pointer analysis to the next level.
          <p>
            This feature requires a set of nullness annotations declared with
            <code>@Target({TYPE_USE})</code>
            , which JDT ships as version 2.0.0 of the <a href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/annotation/package-summary.html"><code>org.eclipse.jdt.annotation</code></a>
            bundle.
          </p>
          <p>With these annotations, nullness can be considered as an intrinsic part of the type system, allowing the compiler to perform null type checking along with each task of type checking.
            This is a major step towards systematically detecting all possible NullPointerExceptions in a program.</p>
          <p>The most obvious benefit is in annotating type arguments of generic types:</p>
          <p>
            <a href="images/generics_unsafeSingleton.txt"><img src="images/generics_unsafeSingleton.png" alt="null annotated generics (1)" /></a>
          </p>
          <p>
            The example shows diverse usage of null-annotated type arguments. While most of the code has been checked to be safe, the compiler directly points out one obvious bug:
            <code>in</code>
            is declared with a nullable type, and hence cannot be passed into
            <code>add()</code>
            of a list of nonnull elements.
          </p>
          <p>
            <a href="images/generics_unsafePredicateCall.txt"><img src="images/generics_unsafePredicateCall.png" alt="null annotated generics (2)" /></a>
          </p>
          <p>
            In this variant an error is detected by recognizing that
            <code>string</code>
            has been extracted from a list that may contain nulls, hence passing this value into a Predicate expecting a nonnull argument is wrong.
          </p>
          <p>
            For a comprehensive description of type annotation based null analysis see the <a
              href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm">online help</a>.
          </p>
          <p>
            While potentially, the new approach could lead to an explosion of the number of annotations, also <a
              href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/annotation/NonNullByDefault.html"><code>@NonNullByDefault</code></a> has become much
            more powerful, such that programs not using any null values can be fully checked with just a single annotation:
          </p>
          <p>
            <a href="images/generics_defaults.txt"><img src="images/generics_defaults.png" alt="null annotated generics (2)" /></a>
          </p>
          <p>
            The
            <code>@NonNullByDefault</code>
            annotation in line 7 affects most types in the example (with the exception of local variables, which are inferred using flow analysis). The compiler directly points out the single bug in
            the
            <code>safe_</code>
            methods: the type argument of list
            <code>result</code>
            defaults to '
            <code>@NonNull String</code>
            ', hence passing null to its
            <code>add()</code>
            method is now wrong.
          </p>
          <p>
            In line 27 all null-defaults are canceled for the scope of method
            <code>unprotectedClient()</code>
            . Here we simulate the interface between un-annotated (legacy) code and code governed by
            <code>@NonNullByDefault</code>
            . We can observe that all arguments and local variables from the legacy code require unchecked conversions when being passed into the annotated code. In particular note that
            <code>myStrings</code>
            lacks two annotations required by the method
            <code>safeFilter()</code>
            : the List should be nonnull, and so should be its type argument.
          </p>
        </td>
      </tr>

      <tr id="migrating-null-annotations">
        <td class="title"><img src="images/java8.png" alt="" /> Migrating projects using null annotations for use in Luna</td>
        <td class="content">The switch from declaration annotations (Java 5) to null type annotations (Java 8) brings a few unavoidable incompatibilities. Developers already using null
          annotations are advised to carefully read the <a href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm#compatibility">compatibility
            notes</a>.
          <p>Main points to observe:</p>
          <dl>
            <dt>
              <a href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm#compatibility_configuration">Project configuration</a>
            </dt>
            <dd>
              No matter if you are adopting null type annotations or continue to use old-style null annotations: always refer to the
              <code>org.eclipse.jdt.annotation</code>
              bundle using a suitable version range, either
              <code>[1.1.0,2.0.0)</code>
              for declaration annotations or
              <code>[2.0.0,3.0.0)</code>
              for type annotations. This is important, because Eclipse now ships with both versions of the annotation bundle.<br /> As an alternative, OSGi/plug-in projects may use a <a
                href="http://help.eclipse.org/luna/topic/org.eclipse.pde.doc.user/guide/tools/file_wizards/new_target_definition.htm">target definition</a> for explicitly selecting the appropriate
              version of the annotation bundle.
            </dd>
            <dt>
              <a href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm#compatibility_syntax">Syntax changes</a>
            </dt>
            <dd>When migrating to null type annotations, your code may need to be changed if you have null annotations attached to an array type or to a qualified type reference. The latter may
              simply create a new compile error, while the former implicitly changes its meaning.</dd>
          </dl>
        </td>
      </tr>

      <tr id="ecj-needs-1.5">
        <td class="title">ECJ requires 1.6 JRE</td>
        <td class="content">The JDT Core project has moved to Java 1.6 compliance level. This means the command line compiler now requires JRE 1.6 or above to run.</td>
      </tr>

      <tr id="man-page-batch-compiler">
        <td class="title">A man page is available for ECJ batch compiler</td>
        <td class="content">A UNIX like man page is available for the batch compiler. This man page essentially lists down the options and the corresponding usage information as found in this <a
          href="http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/tasks/task-using_batch_compiler.htm">section</a>.
          <p>Information in the man file can be read by the command "man &lt;path_to_ecj.1&gt;" in command prompt mode.</p>
        </td>
      </tr>

      <!-- ******************* Java Views and Dialogs ************************************* -->
      <tr>
        <td id="JavaViewsAndDialogs" class="section" colspan="2">
          <h2>Java Views and Dialogs</h2>
        </td>
      </tr>

      <tr id="search-limit-method-reference-expressions">
        <td class="title"><img src="images/java8.png" alt="" /> Option to fine-grain Java search to limit to method reference expressions</td>
        <td class="content">The Java search for method and constructor can now be limited to method reference expressions.
          <p>
            This option can be configured by clicking the hyperlink next to <b>Search &gt; Java Search &gt; Limit To &gt; Match locations</b>:
          </p>
          <p>
            <img src="images/search-limitto-method-reference-expression.png" alt="" />
          </p>
        </td>
      </tr>


      <!-- *********************** Debug ******************************** -->
      <tr>
        <td id="Debug" class="section" colspan="2">
          <h2>Debug</h2>
        </td>
      </tr>

      <tr id="java8-debug-support">
        <td class="title"><img src="images/java8.png" alt="" /> Java 8 debug support</td>
        <td class="content">Java Debugger has been enhanced to support Java 8 key features like:
          <ul>
            <li>Evaluating expressions and variables from the context of interface methods</li>
            <li>Java Application can now be executed from the static main method in interface (without <b>public</b> modifier also)
            </li>
            <li>Breakpoints can be added inside lambda expressions</li>
          </ul> See <a
          href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;classification=Eclipse&amp;component=Debug&amp;list_id=9280044&amp;product=JDT&amp;query_format=advanced&amp;resolution=FIXED&amp;short_desc=[1.8]&amp;short_desc_type=allwordssubstr">
            here </a>for details on debugger enhancements.
        </td>
      </tr>

      <tr id="improved-hcr">
        <td class="title">Improved HCR for member types</td>
        <td class="content">Hot Code Replace (HCR) has been improved in the Java debugger to ensure the correct method is dropped to in member types (inner / anonymous / local classes).
          <p>
            For more information see the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=409023">bugzilla entry</a>.
          </p>
        </td>
      </tr>



      <!-- ******************* JUnit ************************************* -->
      <tr>
        <td id="JUnit" class="section" colspan="2">
          <h2>JUnit</h2>
        </td>
      </tr>

      <tr id="junit-failure-trace-font">
        <td class="title">Failure trace font for the JUnit view</td>
        <td class="content">The font for the failure trace in the JUnit view is now configurable on the <b>General &gt; Appearance &gt; Colors and Fonts</b> preference page.
          <p>
            <img src="images/junit-failure-trace-font.png" alt="" />
          </p>
        </td>
      </tr>

      <!-- ****************** END OF N&N TABLE ****************** -->
    </tbody>
  </table>

  <p align="center">
    <a href="eclipse-news-part1.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="eclipse-news-part3.html">Next</a>
  </p>
</body>
</html>