blob: 3aa3e2740c74c6e7df695edda6c7e48d0317e275 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="Asciidoctor 0.1.4">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mars New and Noteworthy</title>
<style>
</style>
</head>
<body class="article">
<div id="header">
</div>
<div id="content">
<div class="sect1">
<h2 id="_mars_new_and_noteworthy">Mars New and Noteworthy</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Here are some of the noteworthy features in Eclipse Mars.</p>
</div>
<div class="sect2">
<h3 id="java">Java&#8482;</h3>
<div class="paragraph">
<p>Eclipse Mars includes numerous bug fixes and improvements in the Java 8
support, along with a lot of other useful features.</p>
</div>
<div class="sect3">
<h4 id="_add_and_remove_parentheses_quick_assist">Add and Remove Parentheses Quick Assist</h4>
<div class="paragraph">
<p>Use this <strong>Quick Assist</strong> (Ctrl+1) to add or remove optional
parentheses around lambda parameters.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/add-remove-parentheses-around-lambda-parameter.png" alt="add remove parentheses around lambda parameter">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_add_inferred_types_quick_assist">Add Inferred Types Quick Assist</h4>
<div class="paragraph">
<p>This Quick Assist (Ctrl+1) will make inferred types of the parameters explicit
in a lambda expression.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/infer-lambda-parameter-types.png" alt="infer lambda parameter types">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_convert_from_method_reference_to_lambda_expression_quick_assist">Convert From Method Reference to Lambda expression Quick Assist</h4>
<div class="paragraph">
<p>This Quick Assist (Ctrl+1) converts a method reference to a lambda expression.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/convert-to-lambda.png" alt="convert to lambda">
</div>
</div>
<div class="paragraph">
<p>In cases where it is possible, it can be used to convert a lambda expression
into a method reference.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/convert-to-method-reference.png" alt="convert to method reference">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_new_java_editor_templates">New Java editor templates</h4>
<div class="paragraph">
<p>New templates (try_finally, finally, lock) have been added to insert
commonly occurring patters in concurrent programming:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/new-java-editor-templates.png" alt="new java editor templates">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_recommendations_engine_enabled_by_default">Recommendations Engine Enabled by Default</h4>
<div class="paragraph">
<p>The recommendations engine, which provides content assistance based on common
usage patterns is now turned on by default, and features new subtype aware
constructor and types completion.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/call-completion-narrow.png" alt="call completion narrow">
</div>
</div>
<div class="paragraph">
<p>The code recommendations engine bases content assist recommendations on
common API usage patterns expressed in other code bases.</p>
</div>
</div>
<div class="sect3">
<h4 id="_constructor_completion">Constructor Completion</h4>
<div class="paragraph">
<p>The Constructor Completion engine provides you with recommendations for
constructors that you are likely to use to instantiate objects of a
particular type.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/constructor-completion.png" alt="constructor completion">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_override_completion">Override Completion</h4>
<div class="paragraph">
<p>The Override Completion engine provides you with recommendations which
methods you are most likely to override when triggering code completion
in the body of class.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/overrides-completion.png" alt="overrides completion">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_more_precise_flow_analysis">More precise flow analysis</h4>
<div class="paragraph">
<p>Flow analysis, as performed by the compiler to warn the user about
potential programming problems, has been made smarter. Some examples are:
Leverage knowledge that auto-boxing always produces a non-<code>null</code> value.
Leverage knowledge that certain compiler-generated methods&#8212;like
<code>valueOf()</code> and <code>values()</code> on enum types&#8212;provide non-<code>null</code> values.
Various improvements in resource leak analysis.</p>
</div>
</div>
<div class="sect3">
<h4 id="_improved_flow_analysis_for_loops">Improved flow analysis for loops</h4>
<div class="paragraph">
<p>Flow analysis has been improved to more precisely capture the flow of
<code>null</code> values in loops. This mainly achieves a reduction of false
positive reports from null analysis.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/loop-flows.png" alt="loop flows">
</div>
</div>
<div class="paragraph">
<p>Previously, example method "test1" would raise a potential <code>null</code> 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
<code>null</code> value from point (1) can never reach point (3).</p>
</div>
<div class="paragraph">
<p>In example method "test2" JDT previously reported a redundant <code>null</code> check
at (3), because analysis didn&#8217;t see that the assignment directly above
could indeed assign a non-<code>null</code> value.</p>
</div>
<div class="paragraph">
<p>In example method "test3" it was reported that "o can only be <code>null</code>" at
(3), because the information from the two <code>null</code>-assignments wrongly
overruled the one assignment from non-<code>null</code>. With improved analysis
this is now softened to saying "o may be <code>null</code>".</p>
</div>
<div class="paragraph">
<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>
</div>
</div>
<div class="sect3">
<h4 id="_show_skipped_tests_only_in_junit_view">Show skipped tests only in JUnit view</h4>
<div class="paragraph">
<p>The JUnit view now has a filter to show only the skipped
(ignored or assumption failed) tests:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/junit-view-filter-to-show-skipped-tests-only.png" alt="junit view filter to show skipped tests only">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_re_run_parameterized_junit_tests">Re-run parameterized JUnit tests</h4>
<div class="paragraph">
<p>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 <strong>JUnit</strong> view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/junit-rerun-parameterized.png" alt="junit rerun parameterized">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_shortcut_for_skip_all_breakpoints">Shortcut for Skip All Breakpoints</h4>
<div class="paragraph">
<p>A key binding (Ctrl+Alt+B) has been added as the shortcut for <strong>Skip All Breakpoints</strong>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/skip-all-breakpoints.png" alt="skip all breakpoints">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_add_watchpoint_for_final_variables">Add Watchpoint for final variables</h4>
<div class="paragraph">
<p>You can now add a watchpoint for non-constant final variables:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/final-watchpoint.png" alt="final watchpoint">
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
This cannot be implemented for final variables with compile-time
constant values because Java compiles the constant value into class
files and leaves no trace of a field access at points where the
final field is read.
</td>
</tr>
</table>
</div>
</div>
<div class="sect3">
<h4 id="_assigning_stdin_to_a_file">Assigning stdin to a file</h4>
<div class="paragraph">
<p>Stdin can now be assigned to a file in the <strong>Common</strong> tab of launch configuration dialogs.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/stdin-file.png" alt="stdin file">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_word_wrap_in_the_console">Word wrap in the Console</h4>
<div class="paragraph">
<p>A new formatting option has been contributed to the Console view for all
I/O consoles: Word Wrap.</p>
</div>
<div class="paragraph">
<p>The new option is available on the <strong>Console</strong> view toolbar and in the
content popup menu within the <strong>Console</strong> view.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/word-wrap.png" alt="word wrap">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_improved_compiler_performance">Improved compiler performance</h4>
<div class="paragraph">
<p>Significant performance improvements have been made to the Java
compiler on generics-heavy code.</p>
</div>
</div>
<div class="sect3">
<h4 id="_unused_exception_parameters">Unused exception parameters</h4>
<div class="paragraph">
<p>A new compiler option to report unused exception parameters in try-catch
statements has been added. The option is set to Ignore by default.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/unused-exception.png" alt="unused exception">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_external_annotations">External annotations</h4>
<div class="paragraph">
<p>Annotation-based null analysis can now leverage externally defined
annotations that are attached to a library.</p>
</div>
<div class="paragraph">
<p>Previously, annotation-based null analysis was significantly limited
by the fact that many 3rd party libraries have no <code>null</code> annotations
in their API. This implied that any errors caused at this interface
could not be detected by the analysis, and even worse, implementors
of library-defined interfaces could not use any intended contracts,
because any <code>null</code> annotations in overriding methods were flagged as
incompatible with the super version.</p>
</div>
<div class="paragraph">
<p>JDT now supports the concept of "external annotations". A user can
specify <code>null</code> annotations in separate files and attach these to a
given library. The compiler will take external <code>null</code> annotations into
consideration for its null analysis.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/external-annotation-configuration.png" alt="external annotation configuration">
</div>
</div>
<div class="paragraph">
<p>External annotations can be provided as a directory tree of individual
text files or as a zip file. External annotations can be attached to a
JRE (per workspace) and to arbitrary libraries (per project).</p>
</div>
<div class="paragraph">
<p>More <a href="https://wiki.eclipse.org/JDT_Core/Null_Analysis/External_Annotations">information</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_annotate_command">Annotate Command</h4>
<div class="paragraph">
<p>A new command Annotate is provided when browsing attached source
code of a library using the class file editor. Two pre-requisites
must be met for using this command:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The project is configured to use annotation-based null analysis.</p>
</li>
<li>
<p>An existing workspace folder has been specified as the external
annotation location for a given library.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Users may select any type in the signature of a library method or
field, and invoke <strong>Annotate</strong>: either using the context menu, or by
pressing Ctrl+1. Proposals will be offered for marking the selected
type as <code>@NonNull</code> or <code>@Nullable</code>. All method parameters, return types
and field types can be annotated. Additionally when Java 8 is
used, details like type arguments and type bounds etc. can be
annotated.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/annotate-map-return.png" alt="annotate map return">
</div>
</div>
<div class="paragraph">
<p>After selecting a proposal, the compiler will immediately leverage the new annotation for its null analysis.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/map-get-error.png" alt="map get error">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_java_9_beta">Java 9 Beta</h4>
<div class="paragraph">
<p>Java&#8482; 9 support has not yet landed in our standard download packages.
But you can add an early access preview to your existing Eclipse Mars install.</p>
</div>
<div class="paragraph">
<p>The Eclipse Java&#8482; 9 Support (BETA) contains the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>ability to add JRE and JDK 9 as installed JRE</p>
</li>
<li>
<p>support for JavaSE-1.9 execution environment</p>
</li>
<li>
<p>ability to create Java and Plug-in projects that use a JRE or JDK 9</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
At the moment Eclipse must be run with Java&#8482; 9 if you want
to use Java&#8482; 9 in your workspace. You can download from from
<a href="http://www.oracle.com/technetwork/articles/java/ea-jsp-142245.html">http://www.oracle.com/technetwork/articles/java/ea-jsp-142245.html</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>This is an implementation of an early-draft specification developed under
the Java Community Process (JCP) and is made available for testing and
evaluation purposes only. The code is not compatible with any specification
of the JCP.</p>
</div>
<div class="paragraph">
<p>Install the Java 9 Beta via the Eclipse Marketplace:</p>
</div>
<div class="paragraph">
<p><a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2393593" class="drag" title="Drag to your running Eclipse workspace to install Eclipse Javaâ„¢ 9 Support (BETA) for Mars"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install Eclipse Javaâ„¢ 9 Support (BETA) for Mars" /></a></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_java_ee">Java&#8482; EE</h3>
<div class="paragraph">
<p>Java EE support is provided by the <a href="https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr">Eclipse IDE for Java EE Developers</a>.</p>
</div>
<div class="sect3">
<h4 id="_async_support_option_in_the_new_servlet_and_filter_wizards">Async support option in the New Servlet and Filter wizards</h4>
<div class="paragraph">
<p>Selecting this option will generate an annotation with the asyncSupport
option enabled.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/Servlet_Generation.png" alt="Servlet Generation">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_ejb_3_x_support">EJB 3.x Support</h4>
<div class="paragraph">
<p>An asynch support option has been added to the session bean wizard.
A non-persistent support option has been added to the timer callback wizard</p>
</div>
</div>
<div class="sect3">
<h4 id="_apache_tomcat_8_support">Apache Tomcat 8 support</h4>
<div class="paragraph">
<p>In anticipation of Apache Tomcat 8.0 stable releases becoming available in
the near future, support has been added to create Apache Tomcat 8.0 runtimes
and servers. In addition, support for the Serve modules without publishing
feature is available for this version, but requires Apache Tomcat 8.0.5 or
later to work correctly.</p>
</div>
</div>
<div class="sect3">
<h4 id="_generate_web_services_targeting_tomcat_8">Generate Web Services targeting Tomcat 8</h4>
<div class="paragraph">
<p>Support for generating Web services targeting the Tomcat 8 Server.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/WebServicesTomcat8.png" alt="WebServicesTomcat8">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_validation_filters_for_html_attributes">Validation Filters for HTML Attributes</h4>
<div class="paragraph">
<p>HTML validation can now be configured to ignore specific attributes or
attribute patterns. This can be useful for attributes that are used throughout
a document but are not defined by the specification. A comma-separated
list of attribute patterns can be configured at the workspace level on the
<strong>Web &gt; HTML Files &gt; Validation</strong> preference page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/attribute_patterns.png" alt="attribute patterns">
</div>
</div>
<div class="paragraph">
<p>In addition, quick fixes have been added that will make it easy to add
attribute patterns to this list.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/attribute_quick_fix.png" alt="attribute quick fix">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_import_declarations_for_unresolved_java_types_in_jsp_editor">Import Declarations for Unresolved Java Types in JSP Editor</h4>
<div class="paragraph">
<p>The JSP editor can now add import declarations for unresolved types in
scriptlet regions. Select the unresolved type in the editor and choose
<strong>Add Import</strong> (Ctrl+Shift+M/Cmd+Shift+M) from the <strong>Source</strong> menu.</p>
</div>
</div>
<div class="sect3">
<h4 id="_pick_colors_from_preview_in_css_editor">Pick Colors from Preview in CSS Editor</h4>
<div class="paragraph">
<p>When hovering over a color value in the CSS editor, a preview of the color
is presented. The <strong>Edit Property Color</strong> toolbar action will open the system
color dialog to edit this color.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/color_picker.png" alt="color picker">
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_c_c">C/C++</h3>
<div class="paragraph">
<p>C/C++ support is provided by the <a href="https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/marsr">Eclipse IDE for C/C++ Developers</a>.</p>
</div>
<div class="sect3">
<h4 id="_c_c_stand_alone_debugger_as_separate_package">C/C++ Stand-alone Debugger as separate package</h4>
<div class="paragraph">
<p>The C/C++ Stand-alone Debugger is now available in the form of a separate,
lightweight download in addition to being also part of the complete
<strong>Eclipse IDE for C/C++ Developers</strong> package. Once extracted, it can be
started by launching the <strong>cdtdebug</strong> executable. This new package can be
obtained from the <a href="https://www.eclipse.org/cdt/downloads.php">CDT downloads</a> page.</p>
</div>
</div>
<div class="sect3">
<h4 id="_docker_support">Docker Support</h4>
<div class="paragraph">
<p>Use the <strong>Run As &gt; C/C++ Container Application</strong> or <strong>Debug As &gt; C/C++ Container Application</strong>
menu items to launch your C/C++ application in a Docker container.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/Containerdebug.png" alt="Containerdebug">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_options_for_format_with_empty_selection">Options for Format with Empty Selection</h4>
<div class="paragraph">
<p>The <strong>Format</strong> command (Ctrl+Shift+F) in C/C++ editor can now be configured to format either
the whole file or the current statement when no code is selected.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/C_Editor_Preference_Page.png" alt="C Editor Preference Page">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_project_less_execution">Project-less Execution</h4>
<div class="paragraph">
<p>Specify any C/C++ program on the file system in a Run configuration and CDT will execute it.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/CDT_ProjectLessRun.png" alt="CDT ProjectLessRun">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_import_existing_autotools_project">Import Existing Autotools Project</h4>
<div class="paragraph">
<p>An import wizard has been added for importing an existing <strong>Autotools</strong> project into a
C/C++ Autotools project.</p>
</div>
</div>
<div class="sect3">
<h4 id="_exited_processes_shown_in_the_debug_view">Exited Processes Shown in the Debug View</h4>
<div class="paragraph">
<p>The Debug view now keeps displaying exited processes, and displays the exit code.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/CDT_ExitedProcessRestart.png" alt="CDT ExitedProcessRestart">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_menu_to_add_expression_group">Menu to add Expression Group</h4>
<div class="paragraph">
<p>With Mars, C/C++ Developers can create an Expression Group for all registers or one for all variables.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/CDT_ExpressionGroupMenu.png" alt="CDT ExpressionGroupMenu">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_alignment_specifiers">Alignment specifiers</h4>
<div class="paragraph">
<p>The parser now supports alignment specifiers (<em>alignas</em> in C++ and <em>_Alignas</em> in C):</p>
</div>
</div>
<div class="sect3">
<h4 id="_arduino_c_support">Arduino C++ Support</h4>
<div class="paragraph">
<p>The Arduino C++ support that will use the toolchains and SDKs and libraries from the
standard Arduino IDE and let developers create C+\+ projects that use them.</p>
</div>
</div>
<div class="sect3">
<h4 id="_add_persistent_information_storage">Add persistent information storage</h4>
<div class="paragraph">
<p>The Multicore Visualizer was enhanced to permit easy persistence of information.
The information is saved in the workspace, and can be global for any instance of
the view or saved per view.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_php">PHP</h3>
<div class="paragraph">
<p>PHP is provided by the <a href="https://www.eclipse.org/downloads/packages/eclipse-php-developers/marsr">Eclipse for PHP Developers</a>
package, or can be added to your Eclipse installation via the Eclipse Marketplace:</p>
</div>
<div class="paragraph">
<p><a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1944539" class="drag" title="Drag to your running Eclipse workspace to install PHP Development Tools"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install PHP Development Tools" /></a></p>
</div>
<div class="sect3">
<h4 id="_phpdoc_improvements">phpdoc Improvements</h4>
<div class="paragraph">
<p>Added support for phpdoc <code>@method</code> static.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/400px-Pdt35_method_static.png" alt="400px Pdt35 method static">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_improved_task_focused_ui_support">Improved Task-focused UI Support</h4>
<div class="paragraph">
<p>The Task-focused UI (Mylyn) is able to track interest in methods and functions:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/500px-Pdt35_mylyn.png" alt="500px Pdt35 mylyn">
</div>
</div>
<div class="paragraph">
<p>This integration is enabled by default in <strong>Eclipse for PHP Developers</strong> package.</p>
</div>
</div>
<div class="sect3">
<h4 id="_php_model_in_project_explorer">PHP Model in Project Explorer</h4>
<div class="paragraph">
<p>The <strong>Project Explorer</strong> view now provides a drill-down into the structure of the
PHP source code:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/300px-Pdt35_project_explorer.png" alt="300px Pdt35 project explorer">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_php_editor_improvements">PHP Editor Improvements</h4>
<div class="paragraph">
<p>Syntax coloring for visibility keywords:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/300px-Pdt35_colors.png" alt="300px Pdt35 colors">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_php_debugging_improvements">PHP Debugging Improvements</h4>
<div class="paragraph">
<p>Highlighting for changed variables/objects:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/300px-Highlighting.png" alt="300px Highlighting">
</div>
</div>
<div class="paragraph">
<p>Improved look &amp; feel while debugging:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/400px-Pdt35_debugging.png" alt="400px Pdt35 debugging">
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_general">General</h3>
<div class="sect3">
<h4 id="_preference_recorder">Preference Recorder</h4>
<div class="paragraph">
<p>The Preference Recorder enables the user to define preferences that
they want to have propagated to all of the the workspaces on their machine.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/preferences-recorder.png" alt="preferences recorder">
</div>
</div>
<div class="paragraph">
<p>Preferences are recorded as they are set; every time a workspace is opened,
the recorded preferences are checked and updated where necessary.</p>
</div>
<div class="paragraph">
<p>You can enable/disable the Preference Recorder via the <strong>Oomph &gt; Preference Recorder</strong>
preference page.</p>
</div>
</div>
<div class="sect3">
<h4 id="_automatic_updates_by_default">Automatic Updates by Default</h4>
<div class="paragraph">
<p>With Eclipse Mars, the automatic updates option is turned on by default.
With this, Eclipse will periodically check with our servers to see if there
are any updates available and give users the option to download and install
them.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/automatic-updates.png" alt="automatic updates">
</div>
</div>
<div class="paragraph">
<p>By default, Eclipse will automatically look for updates every week. This
configuration can be changed on the <strong>Install/Update &gt; Automatic Updates</strong>
page in the preferences dialog.</p>
</div>
</div>
<div class="sect3">
<h4 id="_improved_performance_for_updates">Improved Performance for updates</h4>
<div class="paragraph">
<p>Changes in the compression strategy used for software repositories
has greatly improved the performance and footprint of updates.</p>
</div>
</div>
<div class="sect3">
<h4 id="_improvements_in_the_dark_theme">Improvements in the Dark Theme</h4>
<div class="paragraph">
<p>Significant work went into improving the fidelity of the the Dark Theme;
these improvements drove improved support for general styling via CSS,
and new icons that render much better against the dark background
(and other colours).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/dark_theme_new_pde.png" alt="dark theme new pde">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_nested_hierarchical_view_of_projects">Nested/Hierarchical view of projects</h4>
<div class="paragraph">
<p>The <strong>Project Explorer</strong> now provides the ability to view the projects in a
hierarchical (a.k.a. nested) form. For modular projects, this allows to
have your project mapping more closely the organization of your
modules as they are on the file system. This hierarchical view of projects
often makes easier to navigate modular projects.</p>
</div>
<div class="paragraph">
<p>Hierarchical view of projects can be triggered from the <strong>Project Explorer</strong>
view menu, under the <strong>Projects Presentation</strong> item.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/nested-projects-menu.png" alt="nested projects menu">
</div>
</div>
<div class="paragraph">
<p>Then it makes the folders that are at the same location as a project
replaced by the project, and the projects that are nested under other
projects will not be shown as root elements.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/nested-projects.png" alt="nested projects">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_preference_customization">Preference Customization</h4>
<div class="paragraph">
<p>The Perspective customization dialog, which
dropped out of the 4.x stream, is back, and a nested/hierarchical view of
projects is now supported by the <strong>Project Explorer</strong>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_launch_bar">Launch Bar</h4>
<div class="paragraph">
<p>The Launch Bar provides convenient fine grained control over launch configurations.
It is a tool bar control that has drop-down selectors for the active <strong>Launch Mode</strong>,
<strong>Launch Descriptor</strong>, and <strong>Launch Target</strong> and buttons to build, launch, or stop
the launch configuration.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/launch-bar.png" alt="launch bar">
</div>
</div>
<div class="paragraph">
<p>The Launch Bar is included the Eclipse IDE for C/C++ Developers package, and
can be added to other packages (e.g. to control Java, PHP, and other
launch configurations).</p>
</div>
<div class="paragraph">
<p>You an activate or deactivate the Launch Bar via the
<strong>Run/Debug &gt; Launching &gt; Launch Bar</strong> page in the preferences dialog.</p>
</div>
</div>
<div class="sect3">
<h4 id="_text_search_speedup">Text search speedup</h4>
<div class="paragraph">
<p>Text search has been sped up by a factor 3x-4x for full workspace searches
on multi-core machines.</p>
</div>
</div>
<div class="sect3">
<h4 id="_print_button_hidden_by_default">Print button hidden by default</h4>
<div class="paragraph">
<p>The Print button on the main toolbar is now hidden by default.
The button can be added back to the toolbar via the <strong>Customize Perspective</strong>
dialog. To open this dialog, right-click on the current perspective button
and select the <strong>Customize&#8230;</strong> menu item.</p>
</div>
<div class="paragraph">
<p>In the <strong>Tool Bar Visibility</strong> tab, expand <strong>File</strong>, select <strong>Print</strong>, and click <strong>OK</strong>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_error_reporting">Error Reporting</h3>
<div class="sect3">
<h4 id="_automatic_error_reporter">Automatic Error Reporter</h4>
<div class="paragraph">
<p>The Error Reporter sends information about errors that occur in the workbench
to the Eclipse Foundation. This information is relayed to the appropriate
Eclipse project development team.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/error-reporter.png" alt="error reporter">
</div>
</div>
<div class="paragraph">
<p>Users don&#8217;t need to create an account, or provide any identifying information.
Potentially personal information is obfuscated by default. Use the <strong>Install/Update &gt; Automatic
Updates</strong> preferences page to tune the update behaviour.</p>
</div>
</div>
<div class="sect3">
<h4 id="_ui_responsiveness_monitoring">UI responsiveness monitoring</h4>
<div class="paragraph">
<p>You can enable automatic detection of periods when the Eclipse user
interface is unresponsive:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/ui-responsiveness-monitoring.png" alt="ui responsiveness monitoring">
</div>
</div>
<div class="paragraph">
<p>UI freezes longer than the warning threshold are logged to the Eclipse
error log as warnings. The logged messages include one or more stack
traces of the display thread. Longer UI freezes are logged as errors
and include stack traces of all threads. Please keep in mind that
capturing stack traces of all threads involves extra overhead, so
setting the error threshold below 1 second is not recommended.</p>
</div>
<div class="paragraph">
<p>A UI freeze is logged at the end of the freeze or after the deadlock
threshold has expired, whichever comes first. The latter condition
facilitates logging of indefinite UI freezes caused by deadlocks.</p>
</div>
<div class="paragraph">
<p>Paired with the Error Reporter, the UI Responsiveness Monitor
this helps Eclipse open source software developers identify and
ultimately fix performance issues and improve the overall user experience.</p>
</div>
<div class="paragraph">
<p>You can configure the UI Responsiveness Monitor via the <strong>General &gt; UI Responsiveness</strong>
page in the preferences dialog.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_platform">Platform</h3>
<div class="sect3">
<h4 id="_default_max_heap_size_increased_to_1024_mb">Default max heap size increased to 1024 MB</h4>
<div class="paragraph">
<p>To improve the "out of the box" user experience on today&#8217;s modern
hardware, the default maximum heap size (-Xmx VM argument) has been
increased from 512M to 1024M. And the initial heap size (-Xms)
has been increased from 40M to 256M.</p>
</div>
</div>
<div class="sect3">
<h4 id="_gtk3_support">GTK3 Support</h4>
<div class="paragraph">
<p>For Linux users, GTK3 support is much improved.</p>
</div>
</div>
<div class="sect3">
<h4 id="_mac_os_x_distribution_now_an_application_bundle">Mac OS X distribution now an Application Bundle</h4>
<div class="paragraph">
<p>Eclipse packages for OS X are now distributed in a more
standard "Mac App" format, instead of the "directory format" we have
used in the past.</p>
</div>
<div class="admonitionblock caution">
<table>
<tr>
<td class="icon">
<div class="title">Caution</div>
</td>
<td class="content">
Current Mac users cannot update to Mars from a previous
version; doing so will break the installation! Mac users must
start with a fresh download.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>In the event that you updated before reading this, and have ended
up with a broken installation, see
<a href="https://wiki.eclipse.org/Platform-releng/Issues_related_to_Mac_App_installations">Issues related to Mac App installations</a>
for the steps to recover your installation, after getting a fresh download.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_team">Team</h3>
<div class="sect3">
<h4 id="_support_git_flow">Support git-flow</h4>
<div class="paragraph">
<p>The Git integration tools support <a href="http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/">git-flow</a>
to automate git branching workflow.</p>
</div>
</div>
<div class="sect3">
<h4 id="_git_project_import_wizard">Git Project Import Wizard</h4>
<div class="paragraph">
<p>Import projects into the workspace directly from Git or Gerrit.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/git-import.png" alt="git import">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_git_configuration_java_variable">Git Configuration Java Variable</h4>
<div class="paragraph">
<p>Use <strong>git-config</strong> values in your Java templates.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/git-template-var.png" alt="git template var">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_cvs_removed_from_packages">CVS Removed from Packages</h4>
<div class="paragraph">
<p>CVS is no longer included with Eclipse packages by default.</p>
</div>
<div class="paragraph">
<p>You can install CVS support into any Eclipse package via the Eclipse Marketplace:</p>
</div>
<div class="paragraph">
<p><a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2408355" class="drag" title="Drag to your running Eclipse workspace to install CVS Integration"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install CVS Integration" /></a></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="build">Build</h3>
<div class="sect3">
<h4 id="_gradle_tools">Gradle Tools</h4>
<div class="paragraph">
<p>Tools for importing existing Gradle build scripts as Eclipse projects;
and building, maintaining, and running Gradle builds can be easily added
to any of the Eclipse Mars packages.</p>
</div>
<div class="paragraph">
<p>Install Gradle Tools from the Eclipse Marketplace:</p>
</div>
<div class="paragraph">
<p><a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2306961" class="drag" title="Drag to your running Eclipse workspace to install Buildship Gradle Integration"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install Buildship Gradle Integration" /></a></p>
</div>
</div>
<div class="sect3">
<h4 id="_maven_improvements">Maven Improvements</h4>
<div class="paragraph">
<p>Improved Maven support, including support for Maven 3.3.3, improved
pom editor support, and support for auto-update and auto build.</p>
</div>
</div>
<div class="sect3">
<h4 id="_gerrit_connector_improvements">Gerrit Connector Improvements</h4>
<div class="paragraph">
<p>The Gerrit connector has improved handling for links to individual files on
a review. When a link is clicked, the corresponding patch set will be expanded
in the review editor and the patch set contents will be downloaded. If the
patch set has already been downloaded, the compare editor will open.</p>
</div>
<div class="paragraph">
<p>Gerrit 2.10 and 2.11 are now supported. Support for versions earlier than 2.9 has been removed.</p>
</div>
</div>
<div class="sect3">
<h4 id="_hide_succeeding_hudson_jenkins_build_plans">Hide Succeeding Hudson/Jenkins Build Plans</h4>
<div class="paragraph">
<p>The builds view allows you to hide suceeding build plans so you can focus on failures.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/builds.png" alt="builds">
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_new_features">New Features</h3>
<div class="sect3">
<h4 id="_docker_tools">Docker Tools</h4>
<div class="paragraph">
<p>Mars includes new tools for Docker that let the user manage and control
their Docker images and containers.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/Docker.png" alt="Docker">
</div>
</div>
</div>
<div class="sect3">
<h4 id="_cordova_tools">Cordova Tools</h4>
<div class="paragraph">
<p>Through Apache Cordova integration, deploy to a variety of devices. You
can develop using only HTML, CSS, and JavaScript but get access to the native
device APIs.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/Cordova.png" alt="Cordova">
</div>
</div>
<div class="paragraph">
<p>Install Cordova Tools via the Eclipse Marketplace:</p>
</div>
<div class="paragraph">
<p><a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2168203" class="drag" title="Drag to your running Eclipse workspace to install Eclipse Thym"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install Eclipse Thym" /></a></p>
</div>
</div>
<div class="sect3">
<h4 id="_installer">Installer</h4>
<div class="paragraph">
<p>For the Mars release, we are introducing a new Eclipse installer. This is
a new more efficient way to install Eclipse. It is a proper installer, so
no more zip files, with a self extracting download that will lead you through
the installation experience. For those not into installers, we still have the
packages and zip files available on our [download] pages.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/InstallerMain.png" alt="InstallerMain">
</div>
</div>
<div class="paragraph">
<p>Please see <a href="/downloads/installer-instructions.php">6 Steps to Install Eclipse</a>.</p>
</div>
<div class="paragraph">
<p>The installer&#8217;s advanced mode is where the real power lies. With advanced
mode, a user can realize a complete development environment including all
the Eclipse plug-ins they need, and a fully provisioned workspace that
includes source code from Git repositories, tasks from issue trackers,
and a target environment for builds. With this, a developer can provision
a complete development environment and be ready to start compiling, running,
and testing in just a few minutes.</p>
</div>
<div class="paragraph">
<p>The current implementation supports the
creation of environments that get developers started to work on building
contributions for Eclipse open source projects, as well as a handful of
other open source projects. Tools are provided by the
<a href="http://www.eclipse.org/oomph">Oomph project</a> to
assist with the creation of configurations for other environments.</p>
</div>
</div>
<div class="sect3">
<h4 id="_remote_services_tooling_perspective">Remote Services Tooling Perspective</h4>
<div class="paragraph">
<p>Remote Services Tooling supports development, debugging, and deployment of
<a href="http://www.eclipse.org/ecf">ECF</a> Remote Services. The new Remote Service perspective
shows the new Endpoint Discovery view dynamically updates to display Endpoints
that have been discovered via network discovery (i.e. using ECF-supported network
protocols like zeroconf, slp, zookeeper, dnssd, etcd, or custom).</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/remoteserviceperspective2.png" alt="remoteserviceperspective2">
</div>
</div>
<div class="paragraph">
<p>Discovered Endpoints can be Imported into Eclipse, locally registering a proxy
for the remote service that allows application code to actually use the remote
service (i.e. call its methods).</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_more">More</h3>
<div class="sect3">
<h4 id="_gef4">GEF4</h4>
<div class="paragraph">
<p><a href="https://wiki.eclipse.org/GEF/GEF4">GEF4</a> is the next generation API of the Graphical
Editing Framework (GEF). The GEF project team has been working hard on it for 5 years
now (in parallel to maintaining the current production components Draw2d 3.x,
GEF (MVC) 3.x, and Zest 1.x), and with Mars has released a first snapshot (with still
provisional API), together with a minor release of the currently available
production components.</p>
</div>
</div>
<div class="sect3">
<h4 id="_osgi_r6_remote_service_and_remote_service_admin_1_1_specifications">OSGi R6 Remote Service and Remote Service Admin (1.1) Specifications</h4>
<div class="paragraph">
<p>Eclipse Mars includes fully-compliant implementations of the <strong>OSGi R6
<a href="https://wiki.eclipse.org/ECF#OSGi_Remote_Services">Remote Service</a> and
<a href="https://wiki.eclipse.org/Remote_Services_Admin">Remote Service Admin</a> (1.1)</strong> specifications.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_sources">Sources</h3>
<div class="paragraph">
<p>Content for this document were harvested from multiple sources, including:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://www.eclipse.org/eclipse/news/4.5/">Eclipse Project New and Noteworthy</a>;</p>
</li>
<li>
<p><a href="https://www.eclipse.org/webtools/releases/3.6.0/NewAndNoteworthy/">Eclipse Web Tools New and Noteworthy</a>;</p>
</li>
<li>
<p><a href="https://wiki.eclipse.org/PDT/NewIn35">PHP Development Tools New and Noteworthy</a>;</p>
</li>
<li>
<p><a href="https://www.eclipse.org/mylyn/new/">Mylyn New and Noteworthy</a>; and</p>
</li>
<li>
<p><a href="https://www.eclipse.org/ecf/NewAndNoteworthy_3.10.0.html">ECF New and Noteworthy</a>.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2015-07-06 13:32:09 EDT
</div>
</div>
</body>
</html>