blob: 33a0c60104453deacb20f5fbae2b7ffcf3430dbb [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 name="copyright" content="Copyright (c) Eclipse contributors and others 2016. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="STYLESHEET" href="news.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Project Oxygen - New and Noteworthy</title>
</head>
<body>
<h2>Plug-in Development Environment</h2>
<ul>
<li><a href="#dialogs-editors-views">Dialogs, Editors, and Views</a></li>
<li><a href="#declarative-services">OSGi Declarative Services</a></li>
<li><a href="#wizards">Wizards</a></li>
<li><a href="#APITools">API Tools</a></li>
</ul>
<table class="news">
<colgroup>
<col class="title" />
<col />
</colgroup>
<tbody>
<!-- ******************** Dialogs, Editors, and Views ********************** -->
<tr>
<td id="dialogs-editors-views" class="section" colspan="2"><h2>Dialogs, Editors, and Views</h2></td>
</tr>
<tr id="layout-spy">
<td class="title">New Layout Spy Tool</td>
<td class="content">
PDE has added a new tool for debugging SWT layouts. To activate it, use the
shortcut <b>Ctrl+Alt+Shift+F9</b> from any window.
<p>Usage:</p>
<ul>
<li>Click <b>Select Control</b> then click the control you want to inspect</li>
<li>Enable <b>Show Overlay</b> and navigate the widget hierarchy until you find a
control whose boundary is correct (the red rectangle) and whose child's boundary
is incorrect (the yellow rectangle).</li>
<li>Look at the results of computeSize. If the result of computeSize is correct,
the problem is in the parent layout or its attributes. Otherwise the problem
is in the child widget.</li>
</ul>
<p>
<img src="images/layout-spy.png" alt="" />
</p>
</td>
</tr>
<tr id="nested-categories-support">
<td class="title">Support for Nested categories</td>
<td class="content">
You can now organize features into hierarchies by using the nested categories support in the <b>Category Definition</b> editor.
<p>
The created definition can be used as input for the <b>Categorize repository</b> parameter in the <b>Options</b> tab of <b>File &gt; Export... &gt; Deployable features</b> wizard.
They are also visible in the <b>Install</b> dialog.
</p>
<p>
<img src="images/pde-support-for-nested-categories.png" alt=""/>
</p>
</td>
</tr>
<tr id="manage-versions-for-included-features">
<td class="title">Manage versions for included features</td>
<td class="content">
The <b>PDE Feature editor</b> now allows you to manage versions for included features (previously this was possible for included plug-ins only).
In the <b>Included Features</b> tab, a new <b>Versions...</b> button has been added, which allows you to synchronize the current feature with
actual versions of included features, or sets included feature versions to be synchronized on build.
<p>
<img src="images/pde-version-included-feature.png" alt=""/>
</p>
</td>
</tr>
<tr id="workspace-overriding-target-option">
<td class="title">Option added for workspace plug-ins overriding target plug-ins </td>
<td class="content">
A new option to specify if workspace plug-ins should override target platform plug-ins with the same id has been
added on the <b>Plug-in Development </b> preference page.
<p>
<img src="images/workspace-plugins-override-target.png" alt=""/>
</p>
<p>
This option is enabled by default. When it's disabled, all plug-in versions from the workspace and target platform will
be used and the best available plug-in for a plug-in id will be chosen.
</p>
</td>
</tr>
<tr id="error-log-show-in-console">
<td class="title">'Show In Console' added to context menu of Error Log view</td>
<td class="content">
In the <b>Error Log</b> view, the context menu now includes <b>Show In Console</b>, which performs the same
action as <b>Show Stack Trace in Console View</b> from the view toolbar.
<p>
<img src="images/pde-show-in-console-view-context-menu-error-log-view.png" alt=""/>
</p>
</td>
</tr>
<tr id="reload-target-editor">
<td class="title">Reload Target Editor</td>
<td class="content">
When a target platform is already active, the <b>Target Editor</b> now shows a <b>Reload Target Platform</b> link instead of <b>Set Active Platform</b>.
The reload link has the same effect as clicking the <b>Reload</b> button in the <b>Plug-in Development &gt; Target Platform</b> preference page.
<p>
<img src="images/pde-target-editor-reload.png" alt=""/>
</p>
If the .target file has been modified, clicking the
link will now ask you to save the target editor and then reload the target.
</td>
</tr>
<tr id="target-definition-generic-editor-extension">
<td class="title">Target definition files can be edited with the Generic Editor</td>
<td class="content">
The <b>Generic Editor</b> has been extended to enable it to edit target definition files (.target files). It supports syntax highlighting for the most used keywords.
It also supports content assist for tags and their attributes, installable units for a given repository, and the available versions for a given installable unit.
<p>
<img src="images/target-editor-screenshot.png" alt=""/>
</p>
</td>
</tr>
<tr id="p2-inf-editor">
<td class="title">p2.inf files open in Properties Editor</td>
<td class="content">
The <b>Properties File Editor</b> is now the default editor associated with <code>p2.inf</code> files.
</td>
</tr>
<tr id="search-in-features">
<td class="title">Search finds plug-in references in features</td>
<td class="content">
<b>Search > Plug-ins...</b> that finds references to a plug-in now also finds references to a plug-in in features.
<p>
<img src="images/pde-search-plugin-in-feature.png" alt=""/>
</p>
</td>
</tr>
<tr id="quickfix-adds-import-statement">
<td class="title"> Quick Fix to add bundle or package adds import statement</td>
<td class="content">
The Quick Fix that adds an <code>Import-Package</code> or <code>Require-Bundle</code> dependency
in the <code>MANIFEST.MF</code> now also adds the relevant import statement for the unresolved type in the <b>Java editor</b>.
</td>
</tr>
<tr id="validate-launch-configuration">
<td class="title">Validate launch configuration activated by default</td>
<td class="content">
When you create a new Eclipse Application launch configuration, PDE will now by default enable the option to
<b>Validate Plug-ins automatically prior to launching</b>.
<p>
This helps identify missing plug-in dependencies before the start of the application and makes it easier for new plug-in
and RCP developers to identify common problems.
This validation can be disabled in the <b>Plug-ins</b> tab of the launch configuration dialog.
</p>
<p>
<img src="images/validate-launch-config-by-default.png" alt=""/>
</p>
</td>
</tr>
<tr id="tracing-tab-restore-defaults">
<td class="title">'Restore to defaults' buttons added to Tracing tab</td>
<td class="content">
In the <b> Tracing</b> tab of the launch configuration dialog, new options to <b>Restore Selected to Defaults</b>
and <b>Restore All to Defaults</b> have been added.
<p>
<img src="images/pde-restore-default-tracing-tab.png" alt=""/>
</p>
</td>
</tr>
<!-- ******************** OSGi Declarative Services ********************** -->
<tr>
<td id="declarative-services" class="section" colspan="2"><h2>OSGi Declarative Services</h2></td>
</tr>
<tr id="ds-annotations">
<td class="title">Support for Declarative Services Annotations v1.3</td>
<td class="content">
Version 1.3 of OSGi Declarative Services delivers a number of improvements, including
Component Property Types for strongly-typed configuration parameter handling,
Field Strategy for dependency injection, service/reference scoping, and others.
<p>
PDE now supports the enhanced annotations and new usage options. It generates component
properties from any Component Property Types that you may use in your component lifecycle
methods. It also creates reference entries from <code>@Reference</code> annotations
specified directly in <code>@Component</code> as well as annotated member fields. New
reference event method signatures are also supported.
</p>
<p>
<img src="images/ds-annotations.png" alt="" />
</p>
<p>
To enable this feature, go to <b>Preferences</b> or <b>Project Properties &gt; Plug-in Development &gt; DS Annotations</b>
and check <b>Generate descriptors from annotated sources</b>.
</p>
</td>
</tr>
<!-- ******************** Wizards ********************** -->
<tr>
<td id="wizards" class="section" colspan="2"><h2>Wizards</h2></td>
</tr>
<tr id="generic-editor-template">
<td class="title">Plug-in project template added for Generic Text Editor</td>
<td class="content">
A plug-in project template has been added to show off the new extensible generic editor functionality. It will kick-start you with a sample .target file editor with syntax highlighting.
<p>
<img src="images/pde-generic-editor.png" alt=""/>
</p>
</td>
</tr>
<tr id="plug-in-template-names">
<td class="title">More descriptive plug-in template names</td>
<td class="content">
The template name for plug-ins have been modified to be more descriptive.
<p>
<img src="images/pde-plugin-template-names.png" alt=""/>
</p>
</td>
</tr>
<tr id="new-feature-project-filtered-tree">
<td class="title">Plug-in selection filter in Feature project wizard</td>
<td class="content">
You can now use a text filter when selecting plug-ins in the <b>New > Feature Project</b> wizard.
<p>
<img src="images/new-feature-project-filtered-tree.png" alt=""/>
</p>
</td>
</tr>
<tr id="plugin-and-feature-export-wizards-filtered-selection">
<td class="title">Filter in plug-in and feature export wizards</td>
<td class="content">
You can now use a text filter when selecting plug-ins in the <b>Export.. > Deployable plug-ins and fragments</b> or
features in the <b>Export.. > Deployable features</b> wizards.
<p>
<img src="images/plugin-and-feature-export-wizards-filtered-selection.png" alt=""/>
</p>
</td>
</tr>
<!-- ******************** APITools ********************** -->
<tr>
<td id="APITools" class="section" colspan="2"><h2>API Tools</h2></td>
</tr>
<tr id="changed-exec-env-version-problem">
<td class="title">Change in Execution Environment creates a version problem</td>
<td class="content">
Changing the <b>Execution Environments </b> in a plug-in now creates a problem marker indicating that the minor version should be increased. This happens
if the minor version is not already increased with respect to the baseline.
<p>
The preference to control the severity of this problem is located in
the <b>Version Management</b> tab of the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page.
</p>
<p>
<img src="images/pde-changed-exec-env-version-problem.png" alt=""/>
</p>
</td>
</tr>
<tr id="default-method-addition">
<td class="title">Default method addition reported as a breaking change</td>
<td class="content">
The API Tools now reports the addition of a default method in an API interface that can be implemented by
clients as a <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs_2#Evolving_API_Interfaces">
breaking change</a>.
<p>
On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
there is a new option in the <b>Interface</b> section to configure the severity of a "default method addition" API change.
</p>
<p>
By default, this option is set to "Error" because adding the same method in multiple interfaces can break
existing clients at run time (<a href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html#jls-13.5.6">JLS8 13.5.6</a>).
</p>
<p>
<img src="images/pde-default-method-addition-api-compat-option.png" alt=""/>
</p>
</td>
</tr>
<tr id="field-addition-to-class">
<td class="title">Field addition to Class reported as a breaking change</td>
<td class="content">
The API Tools now reports the addition of a field to a Class that is extendable by clients as a <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs_2#add-api-field ">breaking change.</a>
<p>
On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
there is a new option in the <b>Class</b> section to configure the severity of a "field addition to class".
Also, there is a new link at the top of <b>API Compatibility</b> tab that has more details on achieving API binary compatibility.
</p>
<p>
<img src="images/pde-api-tools-field-addition-to-class-preference-ui.png" alt=""/>
</p>
The field addition error has a Quick Fix that opens help to explain the incompatibility in greater detail.
<p>
<img src="images/pde-api-tools-field-addition-to-class-quickfix.png" alt=""/>
</p>
</td>
</tr>
<tr id="field-addition-to-annotation-option">
<td class="title">Option for field addition to an annotation</td>
<td class="content">
On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
there is a new option in the <b>Annotation</b> section to configure the severity of a "field addition to annotation".
<p>
<img src="images/pde-field-addition-to-annotation.png" alt=""/>
</p>
</td>
</tr>
<tr id="api-tools-noimplement-noextend-leak">
<td class="title">Types marked with <code>@noimplement</code> and <code>@noextend</code> processed by API leak analysis</td>
<td class="content">
Extending or implementing an interface marked as <code>@noimplement</code> is now reported as an API leak. This is because
adding a field or method to the interface marked as <code>@noimplement</code> may break a client that is using
the extended or implemented type.
<p>
Also, extending a type marked as <code>@noextend</code> is now reported as an API leak. This is because it may indirectly
leak API types if the extended type is further extended by the client.
</p>
Some of the new kinds of leak warnings are shown below:
<p>
<img src="images/pde-api-tool-warning-leak-noimplement-noextend.png" alt=""/>
</p>
</td>
</tr>
<tr id="quick-fix-for-apitool-pde-compiler-problems">
<td class="title">Quick Fix to configure problem severity</td>
<td class="content">
You can now configure the severity of an <b>API Tools </b>problem or a <b>PDE compiler</b> problem by invoking the new <b>Quick Fix (Ctrl+1)</b>.
<br/>
<br/>
<p>
<img src="images/pde-configure-problem-api-tool.png" alt=""/>
</p>
For API tools problems, the Quick Fix will open the <b>Plug-in Development &gt; Errors/Warnings</b>
preference page and highlight the configurable problem.
<br/>
<br/>
<p>
<img src="images/pde-configure-problem-pde-compiler.png" alt=""/>
</p>
For PDE compiler problems, the Quick Fix will open the <b>Plug-in Development &gt; Compilers</b>
preference page and highlight the configurable problem.
</td>
</tr>
<tr id="reorganized-version-management-tab">
<td class="title">Reorganized Version Management preferences tab</td>
<td class="content">
The <b>Version Management</b> tab of the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page has been
reorganized as shown below:
<ul>
<li>
The sub-options to control major/minor version change without API breakage/changes have been converted into normal options
and they are set to warning by default.</li>
<li>
The option 'Report changed execution environment incompatibility' has been moved
to the bottom of the tab.</li>
</ul>
<p>
<img src="images/pde-version-management-tab-preference.png" alt="" />
</p>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript" src="scripts.js"></script>
<p style="text-align:center">
<a href="platform_isv.php">Previous</a> <a style="margin:1em" href=".">Up</a> <span style="color:#808080">Next</span>
</p>
</body>
</html>