blob: ebfd59a621560e4c6839c958a94f8224768776d8 [file] [log] [blame]
<!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 http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="default_style.css" type="text/css" title="main" media="screen" />
<title>Eclipse Project 4.5 M4 News</title>
</head>
<body>
<h1>Eclipse Project 4.5 M4 - New and Noteworthy</h1>
<p>Here are some of the more noteworthy things available in the Mars milestone build M4 (2014-12-12)
which is now available for <a href="http://download.eclipse.org/eclipse/downloads/#4.5_Stable_Build" target="_top">download</a>.
<br/>
We also recommend to read the Tips and Tricks, either via <b>Help &gt; Tips and Tricks...</b> or online for
<a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.user/tips/platform_tips.html">Platform</a>,
<a href="http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html">JDT</a>, and
<a href="http://help.eclipse.org/topic/org.eclipse.pde.doc.user/tips/pde_tips.htm">PDE</a>.
</p>
<ul>
<li><a href="#Platform">Platform</a></li>
<li><a href="#JDT">JDT</a></li>
<li><a href="#PDE">PDE</a></li>
<li><a href="#Equinox">Equinox</a></li>
</ul>
<table class="news" border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
<td colspan="2" class="section" id="Platform">Platform</td>
</tr>
<tr id="css-inherit-prop">
<td class="title">New 'inherit' value for CSS properties</td>
<td class="content">
When CSS property gets 'inherit' value then the parent's value will be applied. See more in <b><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=419377">bug 419377</a></b>
<p>
<img src="images/css-inherit-prop.png" alt="" />
</p>
</td>
</tr>
<tr id="apply-git-patch">
<td class="title">Apply Patch... wizard more resilient</td>
<td class="content">
Patches that have been created via "<code>git format-patch</code>" sometimes couldn't be
applied successfully using Eclipse's <b>Team &gt; Apply Patch...</b> wizard.
<p>
Now, the wizard properly skips lines that are not part of an actual file diff section
(e.g. the <code>--&crarr;2.1.1</code> that Git appends).
</p>
</td>
</tr>
<tr id="Job-groups-api">
<td class="title">Job groups API</td>
<td class="content">
A JobGroup API (<code>org.eclipse.core.runtime.jobs.JobGroup</code>) has been added that makes it
easier to implement parallel algorithms in Eclipse.
<p>Job groups provide a simple way to manage a set of Eclipse Jobs that are responsible
for pieces of the same large task. The API supports throttling, joining, cancellation,
combined progress and error reporting for all of the jobs in the group. The job grouping
functionality can be used to implement performance critical algorithms using cooperating
jobs. More information can be found in
<b><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=432049">bug 432049</a></b>.</p>
</td>
</tr>
<tr id="stdin-file">
<td class="title">Assigning stdin to a file</td>
<td class="content">
Stdin can now be assigned to a file in the "Common" tab of launch configuration dialogs.
<p>
<img src="images/stdin-file.png" alt="" />
</p>
</td>
</tr>
<tr id="scroll-lock">
<td class="title">Automatic scroll lock in Console view</td>
<td class="content">
Scrolling up in the <b>Console</b> view using keys, mouse wheel, or scroll bar now automatically enables the <b>Scroll Lock</b> mode.
<p>
When you scroll down to the end of the console, the scroll lock is automatically released again.
</p>
</td>
</tr>
<tr id="console-output-limit">
<td class="title">Console output limit</td>
<td class="content">
<b>Preferences &gt; Run/Debug &gt; Console &gt; Console buffer size (characters)</b>
is now only limited by the amount of characters the Console view can render.
<p>
The arbitrary limit of 1 million characters has been removed.
</p>
</td>
</tr>
<tr id="menuitem-tooltip">
<td class="title">Added API to set tooltip for MenuItem</td>
<td class="content">
SWT now supports setting a tooltip on menu items via <code>MenuItem.setToolTipText()</code>.
<p>
For an example, see the <b>Menu</b> tab in the <a href="https://www.eclipse.org/swt/examples.php">ControlExample</a>.</p>
<p>
<img src="images/tooltip.png" alt="" />
</p>
</td>
</tr>
<tr>
<td colspan="2" class="section" id="JDT">JDT</td>
</tr>
<tr id="loop-flows">
<td class="title">Improved flow analysis for loops</td>
<td class="content">
Flow analysis has been improved to more precisely capture the flow of null values in loops.
This mainly achieves a reduction of false positive reports from null analysis.
<p>
<a href="images/loop-flows.txt"><img src="images/loop-flows.png" alt="" /></a>
</p>
<p>
Previously, example method "test1" would raise a potential null pointer warning at point (3).
To correct this issue the merging of information leading towards point (3) has been
improved to correctly see that the null value from point (1) can never reach point (3).
</p><p>
In example method "test2" JDT previously reported a redundant null check at (3),
because analysis didn't see that the assignment directly above could indeed assign a non-null value.
</p><p>
In example method "test3" it was reported that "o can only be null" at (3),
because the information from the two null-assignments wrongly overruled the one assignment from non-null.
With improved analysis this is now softened to saying "o may be null".
</p><p>
The graph on the right hand side illustrates the new composition of flow information:
for each relevant point (3) inside a loop, the analysis first merges the flows that lead into (1).
This result is concatenated with the partial flow (b.c), which leads from the loop start to point (3).
Improved precision has thus been achieved within the design limits of a single AST traversal
in order to minimize impact on compiler performance.
</p>
</td>
</tr>
<tr id="junit-rerun">
<td class="title">Re-run parameterized JUnit tests</td>
<td class="content">
The JUnit view now allows you to re-run groups of parameterized tests, or actually any
kind of tests that are run by a specialized runner and add another level of grouping
in the JUnit view.
<p>
<img src="images/junit-rerun-parameterized.png" alt="'Rerun' in context menu of the parameter of a" />
</p>
<p>
See the full story in
<a href="http://blog.moritz.eysholdt.de/2014/11/new-eclipse-junit-feature-run-subtrees.html">Moritz' Blog</a>.
</p>
</td>
</tr>
<tr id="unused-exception-parameters">
<td class="title">Unused exception parameters</td>
<td class="content">
A new compiler option to report unused exception parameters in try-catch statements has been added. The option
is set to <code>Ignore</code> by default.
<p>
<img src="images/unused-exception.png" alt="" />
</p>
(In earlier Mars milestones, detection for unused exception parameters was added as part of
the old "Value of parameter is not used" option. But since it turned out that there are
situations were not using an exception parameter actually makes sense, we've reverted the old option
to only apply to method parameters.)
</td>
</tr>
<tr id="formatter-extension">
<td class="title">Extension point for third-party formatters</td>
<td class="content">
JDT now provides an extension point (<code>org.eclipse.jdt.core.javaFormatter</code>) to allow third-party source code formatters as extensions.
<p>
<img src="images/java-formatter.png" alt="" />
</p>
The default code formatter is used if no third-party formatter is provided.
</td>
</tr>
<tr>
<td colspan="2" class="section" id="PDE">PDE</td>
</tr>
<tr id="pde-target-editor-retains-selection">
<td class="title">Target editor retains selection </td>
<td class="content">
In the <b> Target Editor</b>, while editing an existing software site location,
the <b> Edit Software Site </b> dialog now opens with the appropriate selection.
</td>
</tr>
<tr id="pde-api-use-scan">
<td class="title">API use scan report specifies additional filters used </td>
<td class="content">
<b> API use scan report</b> specifies the location of additional filters (.api_filter files)
used during the scan. It also reports the number of illegal references filtered out due to
additional filters used.
<p>
<img src="images/pde-additional-filter-information.png" alt="Additional Filter Information"/>
</p>
</td>
</tr>
<tr id="pde-error-log-size">
<td class="title">Option to set maximum log size</td>
<td class="content">
In the <b>Error Log</b> view, on the <b>view menu &gt; Filters...</b> dialog, there now is an option to set
the maximum log size that can be read by the Error Log view. If the size of the error log exceeds
this limit, a warning is logged.
<p>
<img src="images/pde-logsize-filter-dialog.png" alt="Maximum log size in filter log dialog"/>
</p>
</td>
</tr>
<tr>
<td colspan="2" class="section" id="Equinox">Equinox</td>
</tr>
<tr id="default-gtk3">
<td class="title">GTK+ 3 used by default on Linux distributions (when installed and available)</td>
<td class="content">
SWT and Eclipse will use the GTK+ 3 libraries by default on all Linux platforms,
whenever GTK+ 3 is installed and available (including GTK+ 3.10 and above).
<p>You can force Eclipse to use GTK+ 2 port by setting the environment
variable <code>SWT_GTK3</code> to 0 or using the launcher parameter <code>--launcher.GTK_version</code> flag in .ini file, if needed.
(For example: export SWT_GTK3=0) </p>
</td>
</tr>
<tr id="gtk-supported-versions-update">
<td class="title">Dropped support for GTK+ 2 versions older than 2.18 in Eclipse launcher</td>
<td class="content">
GTK+ 2.18.0 or later (and its dependencies) will be the pre-requisites necessary to
run Eclipse successfully on all Linux/UNIX platforms as opposed to GTK+ 2.10.0 earlier.
Support for all versions older than 2.18 has been dropped effective Mars M3 milestone release.
<p>
Note: As of now, Eclipse shows the following error dialog, which allows you to run even when
a GTK+ version older than 2.18.0 is detected. But that behavior will soon be changed to not run
Eclipse with unsupported GTK+ versions.
</p>
<p>
<img src="images/gtk-version-warning.png" alt="" />
</p>
</td>
</tr>
<tr id="p2-native-dependencies">
<td class="title">Prompt for native dependencies</td>
<td class="content">
It is now possible with p2 to express dependencies on OS packages and prompt the user to install those when they are not installed.
<p><img src="images/os-prompt.png" alt="" /></p>
<p>This functionality can be enabled by a new touchpoint instruction. For example:</p>
<pre>org.eclipse.equinox.p2.touchpoint.natives.checkAndPromptNativePackage(distro:debian,package:handbrake,comparator:ge,version:0.9);</pre>
<p>At this point, the support is limited to Ubuntu.
<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox&amp;component=p2">Contributions</a> to add this support for other OS are welcomed.</p>
<p>Integration with Tycho is available from 0.23.0-SNAPSHOT and above.</p>
</td>
</tr>
<tr>
<td colspan="2"/>
</tr>
</table>
<p>The above features are just the ones that are new since the previous milestone
build. Summaries for earlier Mars milestone builds:</p>
<ul>
<li><a href="https://www.eclipse.org/eclipse/news/4.5/M3/">News for Eclipse Mars milestone build M3</a></li>
<li><a href="https://www.eclipse.org/eclipse/news/4.5/M2/">News for Eclipse Mars milestone build M2</a></li>
<li><a href="https://www.eclipse.org/eclipse/news/4.5/M1/">News for Eclipse Mars milestone build M1</a></li>
</ul>
</body>
</html>