| <!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 2018, 2019. 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.27 - New and Noteworthy</title> |
| </head> |
| |
| <body> |
| <h2>Java development tools</h2> |
| <ul> |
| <!--<li><a href="#JavaXX">Java™ XX 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 XX Support ************************************* --> |
| <!-- |
| <tr> |
| <td id="JavaXX" class="section" colspan="2"> |
| <h2>Java™ XX Support </h2> |
| </td> |
| </tr> |
| --> |
| <!-- ******************* End of Java XX Support ************************************* --> |
| |
| <!-- ******************* JUnit ************************************* --> |
| <tr> |
| <td id="ECJ" class="section" colspan="2"> |
| <h2>Eclipse compiler for Java (ECJ)</h2> |
| </td> |
| </tr> |
| <tr id="ecj-separated-from-core"> <!-- https://github.com/eclipse-jdt/eclipse.jdt.core/pull/182 --> |
| <td class="title"><a href="#ecj-separated-from-core">ECJ separated from JDT Core</a></td> |
| <td class="content"> |
| <p> |
| Historically the code for ECJ was always in the same <code>org.eclipse.jdt.core</code> |
| project that also contained the code for the Java support in the IDE, just in a different source folder. |
| The well known standalone ECJ compiler library that could be used outside of |
| Eclipse (for compilation with external tooling) was generated out of this |
| core bundle at build time and was not included in the default SDK (because |
| it contained subset of packages and classes provided by <code>org.eclipse.jdt.core</code>). |
| </p> |
| <p> |
| This lead to few issues, with both Eclipse / standalone use of the ECJ compiler. |
| The (non-JDT) code inside Eclipse that required "default" <code>javax.tools.JavaCompiler</code> |
| API implementation and had no need for full JDT / workspace support |
| was not able to use <code>org.eclipse.jdt.core</code> without pulling in |
| <code>org.eclipse.core.resources</code> bundle and so the dependency to the workspace. |
| Another interesting side effect of hosting ECJ code next to IDE code inside |
| same <code>org.eclipse.jdt.core</code> bundle was that developers couldn't see |
| if the ECJ code per mistake got some dependency to the IDE. |
| </p> |
| <p> |
| To resolve these (and other) problems, the ECJ code is moved from <code>org.eclipse.jdt.core</code> |
| to dedicated <code>org.eclipse.jdt.core.compiler.batch</code> project and will be |
| deployed as a separated bundle. |
| The <code>org.eclipse.jdt.core.compiler.batch</code> is now included in SDK |
| as a regular Eclipse bundle and can be compiled / deployed / used separately |
| from <code>org.eclipse.jdt.core</code> bundle. |
| All of ECJ packages are re-exported by <code>org.eclipse.jdt.core</code>, therefore |
| from OSGI point of view, all 3rd party code that used some compiler related API |
| from <code>org.eclipse.jdt.core</code> doesn't require any change. |
| The <code>org.eclipse.jdt.core.compiler.batch</code> bundle itself doesn't have any dependencies |
| and so can be used in Eclipse products that do not use workspace concepts. |
| </p> |
| <p> |
| However, no change is without side effects. |
| </p> |
| <p> |
| <b>Known problems with the split of the ECJ from core bundle</b> |
| </p> |
| <p> |
| <ul> |
| <li> |
| As part of the <code>org.eclipse.jdt.core.compiler.batch</code> code separation from |
| <code>org.eclipse.jdt.core</code>, the two fragments of <code>org.eclipse.jdt.core</code> - |
| <code>org.eclipse.jdt.compiler.apt</code> and <code>org.eclipse.jdt.compiler.tool</code> |
| were merged into <code>org.eclipse.jdt.core.compiler.batch</code>. |
| So if some target definition, launch configuration or build file referenced the two fragments, these |
| references can and should be removed now. |
| </li> |
| <li> |
| Another issue might affect standalone (non OSGI based) applications that |
| were using <code>org.eclipse.jdt.core</code> as a "simple" Java library |
| (which jdt.core never was). |
| So for example code that had <code>org.eclipse.jdt.core_XYZ.jar</code> on |
| classpath and tried to call this outside Eclipse: |
| <pre>ASTParser parser = ASTParser.newParser(AST.getJLSLatest());</pre> |
| would fail now with <pre>NoClassDefFoundError: org.eclipse.jdt.internal.compiler.env.ICompilationUnit</pre> |
| because <code>org.eclipse.jdt.core.dom.ASTParser</code> uses internally ECJ |
| APIs and they are now ... surprise ... moved to <code>org.eclipse.jdt.core.compiler.batch</code> |
| jar. To fix this error, <code>org.eclipse.jdt.core.compiler.batch</code> library |
| should be added to the application classpath. |
| </li> |
| </ul> |
| </p> |
| </td> |
| </tr> |
| |
| <!-- ******************* JUnit ************************************* --> |
| <tr> |
| <td id="JUnit" class="section" colspan="2"> |
| <h2>JUnit</h2> |
| </td> |
| </tr> |
| <!-- ******************* End of JUnit ************************************* --> |
| |
| <!-- ******************* Java Editor ************************************* --> |
| <tr> |
| <td id="JavaEditor" class="section" colspan="2"> |
| <h2>Java Editor </h2> |
| </td> |
| </tr> |
| <td class="title"><a href="#new-code-mining-preference">New code mining preference</a></td> |
| <td class="content"> |
| In the past, the code minings for method references used the <b>Search</b> preferences page setting: <b>Ignore potential matches</b> to determine if inexact matches should be filtered out. By default, this setting is false and so code mining could result in a number of entries that were only potential matches. To make this more intuitive and to change the default behavior, the <b>Code Mining</b> preference page has been enhanced to have its own setting: <b>Ignore inexact matches</b> which by default is set to true. |
| <p>To set the new option, go to: <b>Preferences > Java > Editor > Code Minings</b> |
| </p> |
| <p><img src="images/new-code-mining-pref.png" alt="New Code Mining Preference"/></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> |
| <!-- ******************* 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> |
| <!-- ******************* End of Java Formatter ************************************* --> |
| |
| <!-- *********************** Debug ******************************** --> |
| <tr> |
| <td id="Debug" class="section" colspan="2"> |
| <h2>Debug</h2> |
| </td> |
| </tr> |
| <!--************************ End of Debug ******************************** --> |
| |
| <!-- *********************** JDT Developers ******************************** --> |
| <tr> |
| <td id="JDTDev" class="section" colspan="2"> |
| <h2>JDT Developers</h2> |
| </td> |
| </tr> |
| <tr id="new-old-jdt-views"> <!-- https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/387 |
| https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/364 --> |
| <td class="title"><a href="#new-old-jdt-views">Four new views added to SDK</a></td> |
| <td class="content"> |
| <p> |
| Following four new Java / JDT related views are shipped now by default with the Eclipse SDK: |
| <ol> |
| <li><code>Abstract Syntax Tree</code></li> |
| <li><code>Bytecode</code></li> |
| <li><code>Bytecode Reference</code></li> |
| <li><code>Java Element</code></li> |
| </ol> |
| </p> |
| <p><img src="images/new-jdt-views-list.png" alt="List of views"/></p> |
| <p> |
| All four views are actually not new, however they were previously only available for installation |
| via Eclipse Marketplace and not included in the SDK itself. |
| Now they are shipped with SDK package and also will be available for installation in other packages |
| via <a href="https://download.eclipse.org/eclipse/updates/latest/">https://download.eclipse.org/eclipse/updates/latest/</a> |
| update site. |
| </p> |
| <p> |
| <ul> |
| <li> |
| <code>Bytecode</code> and <code>Bytecode Reference</code> views are of general use for advanced Java developers |
| interested how the Java code compiled to the class files, independently |
| if the class file was compiled by Eclipse or by other Java compiler. |
| </li> |
| <li> |
| <code>Abstract Syntax Tree</code> and <code>Java Element</code> views are |
| showing JDT internal representation of the Java code and are useful mostly for JDT developers only. |
| </li> |
| </ul> |
| </p> |
| <p><img src="images/new-jdt-views-content.png" alt="Views with some content"/></p> |
| </p> |
| </td> |
| </tr> |
| <!-- *********************** End of JDT Developers ******************************** --> |
| <tr><td colspan="2"/></tr> |
| </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> |