| <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html> |
| <head> |
| <meta name="copyright" content="Copyright (c) Eclipse contributors and others 2013. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page."/> |
| <meta http-equiv="Content-Language" content="en-us"/> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> |
| <link rel="stylesheet" href="default_style.css" charset="ISO-8859-1" type="text/css"/> |
| <style type="text/css"> |
| table.news td {border-top: solid thin black;} |
| 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; width: 30%; font-weight: bold;} |
| table.news tr td.content {vertical-align: top; width: 70%;} |
| </style> |
| <title>Eclipse Project Kepler - New and Noteworthy</title> |
| </head> |
| <body> |
| <div style="font-size: 20px; font-weight: bold;">Plug-in Development Environment</div> |
| |
| <!-- ****************** START OF N&N TABLE ****************** --> |
| <table class="news" cellpadding="10" cellspacing="0"> |
| <tbody> |
| |
| <!-- ******************** APITools ********************** --> |
| <tr> |
| <td id="APITools" class="section" colspan="2"><h2>API Tools</h2></td> |
| </tr> |
| |
| <tr id="ee-desc-feature"> |
| <td class="title">New API Tools EE descriptions feature</td> |
| <td class="content"> |
| The API Tools Execution Environment descriptions are now supplied on the Eclipse update sites as a single |
| installable feature. The feature includes the descriptions for all supported execution environments. |
| |
| <p><img src="images/eedescfeature.png" alt="New EE Desc feature on update sites"/></p> |
| </td> |
| </tr> |
| |
| <tr id="noreference-types"> |
| <td class="title">API Tools allows @noreference Javadoc tag on types</td> |
| <td class="content"> |
| API Tools now allows the use of the <code>@noreference</code> Javadoc tag on types (classes, interfaces, |
| annotations and enums). |
| <p><img src="images/no-reference.png" alt="Type defining noreference Javadoc tag"/></p> |
| <p>Placing this tag restricts the API so that any reference to that type or its members |
| will be flagged as invalid API use.</p> |
| <p><img src="images/using-no-reference.png" alt="Class trying to reference a type marked as noreference"/></p> |
| <p> |
| To mark a type in an API package as not being API, tag it as <code>@noreference</code>, |
| <code>@noextend</code> and <code>@noinstantiate</code> (or <code>@noimplement</code>). This ensures that |
| no client can access it via valid API and the type could later be removed. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="api-tags-check-visibility"> |
| <td class="title">API Tools Javadoc tags check visibility</td> |
| <td class="content"> |
| A member that is not publicly visible, such as a method or field marked private, is not part |
| of API. Any API Tools Javadoc tags on it are invalid. Now, API Tools will also check if a |
| member is not visible because of the visibility of an enclosing type. If the member is not visible, |
| any tags on it will be considered invalid. |
| <p><img src="images/api-parent-not-visible.png" alt="Javadoc tag flagged as invalid because member is not visible"/></p> |
| <p> |
| Tag validation is turned off by default. To turn it on for your API Tools enabled project, open |
| <b>Project Properties > Plug-in Development > API Errors/Warnings</b>. Set |
| <b>API Use > General > Unsupported use of API Javadoc tags</b> to <code>Warning</code> or <code>Error</code>. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="support-pre-osgi-bundles"> |
| <td class="title">API Tools has limited support for pre-OSGi Eclipse plug-ins</td> |
| <td class="content"> |
| Eclipse plug-ins created before 3.1 did not contain an OSGi bundle manifest. API Tools |
| can now convert the pre-OSGi plug-ins to valid components in an API baseline. This allows |
| analysis, use and freeze scans to process plug-ins that depend on pre-OSGi plug-ins instead |
| of failing to resolve. |
| <p><img src="images/use-scan.png" alt="Use scan launch configuration with pre-OSGi plug-ins"/></p> |
| <p> |
| An OSGi runtime is required to do the conversion. Tasks run using Eclipse AntRunner |
| or the API Use Report external tools launch configuration can convert the plug-ins. Tasks |
| run from the command line Ant runner will skip pre-OSGi plug-ins. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="api-unresolved-bundles"> |
| <td class="title">API Tools Analysis and Freeze tasks can run with unresolved bundles</td> |
| <td class="content"> |
| The API Tools <b>Analysis</b> and <b>API Freeze</b> Ant tasks will now process bundles |
| with resolver errors such as missing dependencies. This means you can now get analysis results |
| for an incomplete product. |
| <p> |
| The Ant tasks produce reports based on a reference baseline and a profile. Previously both |
| the baseline and the profile had to describe complete products. Any bundle that had resolver |
| errors due to missing dependencies would be skipped. Now these bundles will be processed. |
| </p> |
| <p> |
| Resolver errors can affect the results, therefore a list of resolver errors is included in the XML output |
| and warnings are added to the HTML report. To return to the old behavior of skipping |
| unresolved bundles, you can set <code>processunresolvedbundles="false"</code> on your Ant task. |
| </p> |
| <p> |
| <img src="images/unresolved-analysis.png" alt="Unresolved bundle in the analysis task"/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="api-use-filters"> |
| <td class="title">Problem filters apply to API Tools use scans</td> |
| <td class="content"> |
| Problem filter files (.api_filter) can be used to filter problems reported by the API Tools analysis |
| task and the workspace analysis builder. These filter files can now be applied to API Tools use scans. |
| Reference problems that are filtered out of the analysis results can also be filtered from the results |
| of use scans. |
| <p> |
| Filters are specified in the task using the same property as the analysis task. Set the <em>filters</em> |
| attribute on the <em>apitooling.apiuse</em> task, specifying the root directory of API filter files. Each |
| filter file must be in a folder with a filename matching the component name the filter file applies to. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="missing-filters-on-tasks"> |
| <td class="title">API Tools tasks warn about missing include or exclude files</td> |
| <td class="content"> |
| Many of the API Tools tasks, including Analysis, API Use, and API Freeze, provide <em>includelist</em> and |
| <em>excludelist</em> attributes which can be used to limit the reported problems. Previously, |
| if you set an include or exclude list, but the file wasn't found, the task would continue without warning |
| about the incorrect filtering. Now a missing include or exclude list will result in the task failing with |
| an explanation. |
| <p> |
| <img src="images/missing-include.png" alt="Example console output for missing include"/> |
| </p> |
| </td> |
| </tr> |
| |
| <!-- ******************** Views and Editors ********************** --> |
| <tr> |
| <td id="ViewsAndEditors" class="section" colspan="2"><h2>Views and Editors</h2></td> |
| </tr> |
| |
| <tr id="improved-feature-selection"> |
| <td class="title">Improved feature selection dialog</td> |
| <td class="content"> |
| The feature selection dialog used in wizards and editors has been enhanced with better wildcard support |
| and filtering options. |
| |
| <p><img src="images/featureselection.png" alt="Improved feature selection dialog"/></p> |
| </td> |
| </tr> |
| |
| <tr id="additional-type-info"> |
| <td class="title">Javadoc hover available in plug-in manifest editor</td> |
| <td class="content"> |
| When editing the plugin.xml or manifest.mf files using the <b>Plug-in Manifest Editor</b>, |
| opening content assist for type proposals will now display additional Javadoc information. |
| <p> |
| <img src="images/additional-type-info.png" alt="Additional info Javadoc hover for type proposals"/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="import-package"> |
| <td class="title">New import package quick fixes</td> |
| <td class="content"> |
| New quick fixes are available when you have an unresolved type in a Java file. If the unresolved type |
| can be found in a package exported by a plug-in, a quick fix will be available to add an import |
| package entry to your plug-in manifest. There is also a quick fix to add the exporting plug-in to |
| your manifest's require bundle header. |
| <p> |
| <img src="images/import-package.png" alt="Import package quick fix on an unresolved type"/> |
| </p> |
| <p> |
| If a package providing the type is available but the package is not exported by its plug-in, a quick fix will |
| offer to fix the providing plug-in's manifest. Only plug-ins in the workspace can be modified this |
| way. |
| </p> |
| <p> |
| <img src="images/export-package.png" alt="Export package quick fix on an unresolved type that is not exported"/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="bundles-in-category-editor"> |
| <td class="title">Bundles in the category editor</td> |
| <td class="content"> |
| The category editor now supports putting individual bundles into categories. |
| <p> |
| The category editor creates a category.xml that can define categories that the contents of |
| a p2 repository should be organized into. Previously only features could be specified as belonging |
| to a category and be visible to users. Now individual bundles can be added to the category.xml. |
| </p> |
| <p> |
| <img src="images/category-editor.png" alt="Category editor can include individual bundles"/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="plugin-image-view"> |
| <td class="title">Plug-in image browser view</td> |
| <td class="content"> |
| A new view has been added to PDE. The <b>Plug-in Image Browser</b> view displays icons and other |
| images from your target platform, running application or current workspace. |
| <p> |
| When an image is selected, additional information is displayed at the bottom of the view. The |
| reference text can be used in plug-in extensions to refer to images in other bundles. |
| </p> |
| <p> |
| <img src="images/plugin-image-view.png" alt="The plug-in image browser view"/> |
| </p> |
| </td> |
| </tr> |
| |
| <!-- ******************** Misc ********************** --> |
| <tr> |
| <td id="Misc" class="section" colspan="2"><h2>Misc</h2></td> |
| </tr> |
| |
| <tr id="default-launch-ee"> |
| <td class="title">Launch configurations choose default execution environment</td> |
| <td class="content"> |
| New PDE launch configurations (Eclipse Application, JUnit Plug-in Test, OSGi Framework) will |
| use a default execution environment to determine which Java runtime environment to launch with. |
| The launch configuration can be changed to use a different execution environment or a specific |
| JRE on the <b>Main</b> tab. |
| <p> |
| To find a valid execution environment, all known environments are checked against each bundle |
| or plug-in that will be launched. Only an execution environment that is valid for all |
| plug-ins and bundles will be selected. If no valid environment is found, a default JRE |
| will be chosen as before. |
| </p> |
| <p> |
| <img src="images/default-launch-ee.png" alt="Java runtime settings on the Main tab of PDE launch configurations"/> |
| </p> |
| <p> |
| The JRE associated with the selected execution environment will be used to launch. To change |
| which JRE is associated with an execution environment, use the <b>Preferences > Java > Installed JREs > |
| Execution Environments</b> preference page. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="pde-5-bree"> |
| <td class="title">PDE UI requires a 1.5 EE</td> |
| <td class="content"> |
| The bundle required execution environment for the PDE UI bundles org.eclipse.pde.core and |
| org.eclipse.pde.ui is now J2SE-1.5. |
| </td> |
| </tr> |
| |
| <tr id="plugin-classpath-contributors"> |
| <td class="title">New API to contribute to the classpath of plug-in projects</td> |
| <td class="content"> |
| New API in PDE allows you to add additional classpath entries to a plug-in project. Contribute a |
| <em>Plug-in Classpath Contributor</em> via the <em>org.eclipse.pde.core.pluginClasspathContributors</em> |
| extension point. Whenever the PDE classpath is computed or a new plug-in dependency is added, your classpath |
| contributor will be queried for additional entries. |
| <p> |
| If you are using Equinox Adapter hooks to load additional libraries at runtime you can use this API to add |
| the correct libraries to the classpath at build time. |
| </p> |
| <p> |
| <img src="images/classpath-contributor.png" alt="An example classpath contributor extension"/> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="update-classpath-workspace"> |
| <td class="title">Updating the classpath requires a workspace lock</td> |
| <td class="content"> |
| When a change is made to a plug-in that forces a classpath update, an update job is created that |
| modifies the Plug-in Dependencies classpath container in the background. This job now acquires a workspace lock |
| to prevent other operations such as builders from running on a stale classpath. |
| <p> |
| This behaviour can be enabled in 4.2.2 by setting the system property <em>pde.lockWorkspaceForClasspath</em> to |
| true. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="auto-start-all-plugins"> |
| <td class="title">Default start level settings apply to all plug-ins</td> |
| <td class="content"> |
| When editing the <b>Plug-ins</b> tab of an <b>Eclipse Application</b> launch configuration, the <b>Default |
| Start level</b> and <b>Default Auto-start</b> settings chosen at the top of the tab will be used when launching with |
| all workspace and enabled target plug-ins. Previously this setting would only be used when launching a |
| specific list of plug-ins. |
| <p><img src="images/autostart-all-plugins.png" alt="All plug-ins selected on the tab"/></p> |
| <p><img src="images/autostart-levels.png" alt="Different default start level settings"/></p> |
| </td> |
| </tr> |
| |
| <tr id="pde-run-remembers-selection"> |
| <td class="title">Running from PDE editors remembers previous launch</td> |
| <td class="content"> |
| The PDE editors allow applications to be launched from the top toolbar of the <b>Manifest</b>, <b>Plug-in</b> |
| and <b>Product</b> editors. By default PDE only provides one type of application to launch. However, if you have additional tooling |
| installed such as RAP Tools, different application launches will be available in a drop down menu. |
| <p><img src="images/launch-order.png" alt="Ordering of launches in editor"/></p> |
| <p> |
| This menu now remembers which application was launched most recently and puts it at the top of the list. The most |
| recent choice will be launched if the run button is pressed. The order is saved between workbench |
| restarts. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="pde-junit-e4"> |
| <td class="title">JUnit plug-in tests can run on Eclipse platform 4 workbench</td> |
| <td class="content"> |
| Applications that use the Eclipse Platform 4 workbench API can now |
| use <b>JUnit Plug-in Test</b> launch configurations to test their plug-ins. Previously |
| the tests would require the 3.x workbench API from the <code>org.eclipse.ui</code> bundle to |
| hook into the workbench lifecycle. |
| </td> |
| </tr> |
| |
| <!-- ****************** END OF N&N TABLE ****************** --> |
| </tbody> |
| </table> |
| |
| <p align="center"><a href="eclipse-news-part3.html">Previous</a> <font color="#808080">Next</font></p> |
| |
| </body> |
| </html> |