| <!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™</h3> |
| <div class="paragraph"> |
| <p>Eclipse Mars includes numerous bug fixes and improvements in the Java 9 |
| 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—like |
| <code>valueOf()</code> and <code>values()</code> on enum types—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’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™ 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™ 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™ 9 if you want |
| to use Java™ 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™ EE</h3> |
| <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 > HTML Files > 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="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 > C/C++ Container Application</strong> or <strong>Debug As > 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="_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 > 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 > 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 > Launching > 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…</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’t need to create an account, or provide any identifying information. |
| Potentially personal information is obfuscated by default. Use the <strong>Install/Update > 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 > 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’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> |
| <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’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/M7/">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>; 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-06-29 11:34:04 EDT |
| </div> |
| </div> |
| </body> |
| </html> |