<!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 2020. This page is made available under license. For full details see the LEGAL in the documentation book 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="news.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
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; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Project 4.17 - New and Noteworthy</title>
</head>

<body>
<h2>Java development tools</h2>
<ul>
	<!--li><a href="#JavaXX">Java&trade; XX Support</a></li-->
	<li><a href="#Java15">Java 15 Support</a></li>
	<li><a href="#JUnit">JUnit</a></li>
	<li><a href="#JavaEditor">Java Editor</a></li>
	<li><a href="#JavaViewsAndDialogs">Java Views and Dialogs</a></li>
	<li><a href="#JavaFormatter">Java Formatter</a></li>
	<li><a href="#Debug">Debug</a></li>
	<!--li><a href="#JDTDev">JDT Developers</a></li-->
</ul>

<!-- ****************** START OF N&N TABLE ****************** -->
<table class="news">
<colgroup>
  <col class="title" />
  <col />
</colgroup>
<tbody>

 <!-- ******************* Java 15 Support ************************************* -->
  <tr>
    <td id="Java15" class="section" colspan="2">
    <h2>Java&trade; 15 Support </h2></td>
  </tr>
   <tr id="Java_15"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=559959 -->
      <td class="title">Java 15</td>
      <td class="content">
          <a href="http://jdk.java.net/15/">Java 15</a> is out and Eclipse JDT supports Java 15 for 4.17 via 
          <a href="https://marketplace.eclipse.org/content/java-15-support-eclipse-2020-09-417/"> Marketplace</a>. 
          <p></p>
          <p>
          The release notably includes the following Java 15 features:
           <br/>
           <a href="https://openjdk.java.net/jeps/378"> JEP 378: Text Blocks (Standard)</a>.
           <br/>
           <a href="https://openjdk.java.net/jeps/384"> JEP 384: Records (Second Preview)</a>.
           <br/>
           <a href="https://openjdk.java.net/jeps/375"> JEP 375: Pattern Matching for Instanceof (Second Preview)</a>.
           <br/>
           <a href="https://openjdk.java.net/jeps/360"> JEP 360: Sealed Classes (Preview)</a>.
           </p>
           <p>
           Please note that preview option should be on for <a href="http://openjdk.java.net/projects/jdk/15/"> preview language features</a>.
           For an informal introduction of the support, 
           please refer to <a href="https://wiki.eclipse.org/Java15/Examples"> Java 15 Examples wiki</a>. 
           </p>
      </td>
  </tr>
  <!-- ******************* End of Java 15 Support ************************************* -->

  <!-- ******************* JUnit ************************************* -->
  <tr>
    <td id="JUnit" class="section" colspan="2">
    <h2>JUnit</h2>
    </td>
  </tr>
  <tr id="junit-collapse-all"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=564964 -->
    <td class="title"><a href="#junit-collapse-all">Collapse all nodes in JUnit view</a></td>
    <td class="content">
     JUnit view now provides a context-menu option to collapse all nodes: 
     <p><img src="images/junit-collapse-all.png" alt=""/></p>
    </td>
  </tr>

  <tr id="junit-sort-time"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=219466 -->
    <td class="title"><a href="#junit-sort-time">Sort test results by execution time</a></td>
    <td class="content">
     JUnit view now provides the ability to sort results by execution time.
     By default, results will be sorted by execution order.  Choosing <b>Sort By &gt; Execution Time</b>
     from the <b>JUnit View</b> menu will reorder the results once all tests are complete.  While tests are still running, they will be shown in
     execution order.
     <p><img src="images/junit-sort-time-before.png" alt=""/></p>
     <p>
     Sorting by execution order results in:
     </p>
     <p><img src="images/junit-sort-time-after.png" alt=""/></p>
    </td>
  </tr>
  <!-- ******************* End of JUnit ************************************* -->

  <!-- ******************* Java Editor ************************************* -->
  <tr>
    <td id="JavaEditor" class="section" colspan="2">
    <h2>Java Editor </h2>
    </td>
  </tr>
  <tr id="content-assist-substring-types"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=481323 -->
    <td class="title"><a href="#content-assist-substring-types">Substring/Subword matches for types</a></td>
    <td class="content">
     Content Assist now fully supports both substring and subword matches for types:
     <p><img src="images/substring-types.png" alt=""/></p>
     <p>
         Substring matches are always shown and subword matches can be enabled/disabled with the existing <b>Show subword matches</b> option on the
         <b>Java &gt; Editor &gt; Content Assist</b> preference page.
     </p>
    </td>
  </tr>

  <tr id="optimization"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=565630 -->
    <td class="title"><a href="#optimization">Optimization tab</a></td>
    <td class="content">
      A new tab has been added that gathers cleanups that improve the time performance: the existing lazy operator cleanup and the regex precompiler cleanup.
      <p><img src="images/regex-preferences.png" alt="Preferences" width="800 px"/></p>
    </td>
  </tr>

  <tr id="objects-equals"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=562077 -->
    <td class="title"><a href="#objects-equals">Objects.equals()</a></td>
    <td class="content">
      A new clean up has been added that makes use of <code>Objects.equals()</code> to implement the <code>equals(Object)</code> method.
      <p>
        It reduces the code and improves the reading.
        The cleanup is only available for Java 7 or higher.
        Although this kind of comparison is almost exclusively seen in the <code>equals(Object)</code> method, it can also reduce code in other methods.
      </p>
      <p>
        To select the clean up, invoke <b>Source &gt; Clean Up...</b>, use a custom profile, and on the <b>Configure...</b> dialog select <b>Use Objects.equals() in the equals method implementation</b> on the <b>Unnecessary Code</b> tab.
      </p>
      <p><img src="images/objects-equals-preferences.png" alt="Preferences" width="800 px"/></p>
      For the given code:
      <p><img src="images/objects-equals-before.png" alt="Before"/></p>
      You get this after the clean up:
      <p><img src="images/objects-equals-after.png" alt="After"/></p>
    </td>
  </tr>

  <tr id="regex"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=561769 -->
    <td class="title"><a href="#regex">Precompiles the regular expressions</a></td>
    <td class="content">
      A new clean up has been added that optimizes the regular expression execution by precompiling it.
      <p>
        It replaces some usages of <code>java.lang.String</code> by usages of <code>java.util.regex.Pattern</code>.
        The cleanup is done only if it is sure that the string is used as a regular expression.
        If there is any doubt, nothing is done.
        The regular expression must be explicitly used several times to be sure the cleanup is useful.
      </p>
      <p>
        To select the clean up, invoke <b>Source &gt; Clean Up...</b>, use a custom profile, and on the <b>Configure...</b> dialog select <b>Precompiles reused regular expressions</b> on the <b>Optimization</b> tab.
      </p>
      <p><img src="images/regex-preferences.png" alt="Preferences" width="800 px"/></p>
      For the given code:
      <p><img src="images/regex-before.png" alt="Before"/></p>
      You get this after the clean up:
      <p><img src="images/regex-after.png" alt="After"/></p>
    </td>
  </tr>
  
  <tr id="String.format-quickfix"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=565040 -->
    <td class="title"><a href="#String.format-quickfix">String.format quickfix</a></td>
    <td class="content">
	  A new quickfix has been added to replace string concatenation with <code>String.format</code>, similar to the existing ones for <code>StringBuilder</code> and <code>MessageFormat</code>.
      <p><img src="images/String.format-quickfix.png" alt=""/></p>
    </td>
  </tr>

  <tr id="method_reference-quickfix"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=516504 -->
    <td class="title"><a href="#method_reference-quickfix">Method reference quickfix</a></td>
    <td class="content">
	  A new quickfix has been added to create missing methods for method references.
	  <p><b>NOTE! Current restriction is that this quickfix is only available on current class.</b></p>
	  <p><b>NOTE! Expect current implementation to work on simple cases only.
	  <br/>Method references invoking nested generics or type parameters might be problematic to resolve correct.</b></p>
      
      <p><img src="images/methodreference_1.png" alt=""/></p>
      
    </td>
  </tr>
  <!-- ******************* End of Java Editor ************************************* -->

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

  <tr id="toggle-code-minings"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=563199 -->
    <td class="title"><a href="#toggle-code-minings">Toggle Code Minings From Find Actions Menu</a></td>
    <td class="content">
      The code minings within an editor can be enabled/disabled through the Find Actions menu (<b>Ctrl+3</b>).
      <p><img src="images/toggle-code-minings.png" alt=""/></p>
    </td>
  </tr>
  <!-- ******************* End of Java Views and Dialogs ************************************* -->

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

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

  <tr id="formatter-wrap-assert"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=563558 -->
    <td class="title"><a href="#formatter-wrap-assert">Assert statement wrapping</a></td>
    <td class="content">
      A new setting in the Formatter profile controls <b>line wrapping of assert statements</b>.
      A line wrap can be added between the assert condition and its error message.
      The setting can be found in the <b>Profile Editor</b> (<b>Preferences &gt; Java &gt; Code Style &gt; Formatter &gt; Edit...</b>) in the <b>Line Wrapping &gt; Wrapping Settings &gt; Statemtens &gt; 'assert' messages</b> node.
      <p><img src="images/formatter-wrap-assert.png" alt=""/></p>
    </td>
  </tr>
  <!-- ******************* End of Java Formatter ************************************* -->
  
  <!-- *********************** Debug ******************************** -->
  <tr>
    <td id="Debug" class="section" colspan="2">
    <h2>Debug</h2>
    </td>
  </tr>
  <tr id="anonymous-class-inspection"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=549952 -->
    <td class="title"><a href="#anonymous-class-inspection">Anonymous class instance in evaluation</a></td>
    <td class="content">
      The <b>JDT debugger</b> is now capable of inspecting/evaluating expressions with anonymous class instances.
      <p><img src="images/anon-instance-inspection-code.png" alt=""/></p>
      <p><img src="images/anon-instance-inspection.png" alt=""/></p>
    </td>
  </tr>
  <tr id="helpful-nullpointer-exceptions"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=551483 -->
    <td class="title"><a href="#helpful-nullpointer-exceptions">JEP 358: Helpful NullPointerExceptions</a></td>
    <td class="content">
      The <b>JDT debugger</b> has now a checkbox option to activate the command line support for <a href="https://openjdk.java.net/jeps/358">JEP 358</a>.
      This is disabled below Java 14 and enabled by default for Java programs launched with Java 14 and above.
      <p><b>-XX:+ShowCodeDetailsInExceptionMessages</b></p>
      <p><img src="images/helpfulNullPointerExceptions.png" alt=""/></p>
      JVM is now capable of analyzing which variable was null at the point of NullPointerException and describe the variable with a null-detail message in the NPE.
      
    </td>
  </tr>
  <tr id="variables-actual-type"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=547096 -->
    <td class="title"><a href="#variables-actual-type">Actual type in Variables view</a></td>
    <td class="content">
	  The option <b>Show Type Names</b> in the <b>Variables</b> and <b>Expressions</b> views now displays the value's actual type instead of its declared type.
	  This simplifies debugging especially when variable details (<code>toString()</code>) is shown <b>As the label for all variables</b>.
	  <p>To enable <b>Show Type Names</b> in the <b>Variables</b> view, column mode must be disabled (<b>View Menu &gt; Layout &gt; Show Columns</b>).</p>
	  <p>Example:</p><pre>
	Object s = "some string";
	Collection&lt;?&gt; c = Arrays.asList(s, 1);
	// breakpoint
	  </pre>
      <p><img src="images/variables-actual-type.png" alt=""/></p>      
    </td>
  </tr>

  <!--************************ End of Debug ******************************** -->

  <!-- *********************** JDT Developers ******************************** -->
  <!--tr>
    <td id="JDTDev" class="section" colspan="2">
    <h2>JDT Developers</h2>
    </td>
  </tr-->
  <!-- *********************** End of JDT Developers ******************************** -->
</tbody>
</table>
<!-- ****************** END OF N&N TABLE ****************** -->

<script type="text/javascript" src="scripts.js"></script>
  <p style="text-align:center">
    <a href="platform.php">Previous</a> <a style="margin:1em" href=".">Up</a> <a href="platform_isv.php">Next</a>
  </p>
</body>
</html>
