| <!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 2018. 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="../book.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>What's New in 4.12 (PDE)</title> |
| </head> |
| |
| <body> |
| <h2>What's New in 4.12 (PDE)</h2> |
| <p>Here are descriptions of some of the more interesting or significant changes made to the Plug-in Development Environment (PDE) |
| for the 4.12 release of Eclipse. They are grouped into:</p> |
| <ul> <!-- NOTE: Sync ../topics_WhatsNew.xml with this! --> |
| <li><a href="#dialogs-wizards-views">Dialogs, Wizards and Views</a></li> |
| <li><a href="#editors">Editors</a></li> |
| <li><a href="#APITools">API Tools</a></li> |
| </ul> |
| <p>See also the |
| <b><a href="../../org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html">Eclipse Platform What's New</a></b> |
| and |
| <b><a href="../../org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html">JDT What's New</a></b> |
| documents.</p> |
| <p>We also recommend to read the <a href="../tips/pde_tips.htm">Tips and Tricks</a>.</p> |
| <br/> |
| |
| <!-- ****************** START OF N&N TABLE****************** --> |
| <table class="news"> |
| <colgroup> |
| <col class="title" /> |
| <col /> |
| </colgroup> |
| <tbody> |
| <!-- ******************** Dialogs, Wizards and Views ********************** --> |
| <tr> |
| <td id="dialogs-wizards-views" class="section" colspan="2"><h2>Dialogs, Wizards and Views</h2></td> |
| </tr> |
| <tr id="pde-target-platform-preferences"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=546400 --> |
| <td class="title">Target Platform preferences</td> |
| <td class="content"> |
| The <b>Preferences > Plug-in Development > Target Platform</b> preference page now allows to change the height balance between 'Target definitions' and 'Locations' areas. |
| </td> |
| </tr> |
| <!-- |
| --> |
| <!-- ******************** End ofDialogs, Wizards and Views ********************** --> |
| |
| <!-- ******************** Editors ********************** --> |
| <!-- |
| --> |
| <tr> |
| <td id="editors" class="section" colspan="2"><h2>Editors</h2></td> |
| </tr> |
| <tr id="pde-category-editor-source"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=546803 https://bugs.eclipse.org/bugs/show_bug.cgi?id=547322 --> |
| <td class="title">'Source' tab for Product and Category Editor</td> |
| <td class="content"> |
| The <b>Product Editor</b> and <b>Category Editor</b> now have a 'Source' tab to enable direct access to their manifests. |
| <p> |
| <img src="images/pde-category-editor-source.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| <!-- ******************** End of Editors ********************** --> |
| |
| <!-- ******************** APITools ********************** --> |
| <tr> |
| <td id="APITools" class="section" colspan="2"><h2>API Tools</h2></td> |
| </tr> |
| <tr id="pde-restriction-removal-reported"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=327452 --> |
| <td class="title">Removing API restriction results in API error</td> |
| <td class="content"> |
| Removing PDE API tools restriction such as <code>@noextend</code>, <code>@noimplement</code> and <code>@noinstantiate</code> now results in an incompatible bundle version API tool error, since clients of this code can |
| access more APIs after the removal. |
| <p> |
| A quick fix for this error is available, and it increases the minor version to reflect the code changes. |
| </p> |
| <p> |
| <img src="images/pde-remove-restriction.png" alt="" /> |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="api-analysis-report-application"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=547206 --> |
| <td class="title">Run API analysis as application</td> |
| <td class="content"> |
| To ease automation without Ant, the API Tools analysis can be performed using a regular Eclipse application |
| named <code>org.eclipse.pde.api.tools.apiAnalysis</code>. |
| <p> |
| It can receive the following parameters: |
| </p> |
| <ul> |
| <li><code>-project </path/to/project></code> configures which project should be analyzed. It has to be a valid Plug-in project containing a .project file.</li> |
| <li><code>-dependencyList </path/to/a/dependencyList.txt></code> configures the target platform for the analysis. This file will be parsed, using new lines and |
| colon (:) as separator and all tokens that match a path on the filesystem will be added to the Target Platform.</li> |
| <li><code>-baseline <default|/path/to/baseline.target></code> specifies the baseline to use for comparison. If omitted or <code>default</code>, it is the current |
| running platform. If a path to a <code>.target</code> file is specified, it will resolve the target definition and use the included bundles as baseline.</li> |
| <li><code>-failOnError</code> If present, the application will return an error (non-<code>0</code>) in case of API errors.</li> |
| </ul> |
| <p> |
| The API analysis uses the project settings, but forces the <em>incompatible api component version report major without breaking change</em> and <em>incompatible api component version report minor without api change</em> |
| rules breakage to be reported as errors. |
| </p> |
| <p> |
| Example of invocation can look like: |
| </p> |
| <p> |
| <code>./eclipse -project /home/mistria/sandbox/org.eclipse.e4.ui.css.core -dependencyList /home/mistria/sandbox/org.eclipse.e4.ui.css.core/dependencies.txt -failOnError</code> |
| </p> |
| <p> |
| Additionally to the potential non-<code>0</code> result, example of output can look like: |
| </p> |
| <p> |
| <code> |
| 1 API ERRORS |
| * Marker [on: /org.eclipse.e4.ui.css.core/META-INF/MANIFEST.MF, id: 80, type: org.eclipse.pde.api.tools.version_numbering, attributes: [apiMarkerID: 4, charEnd: 228, charStart: 210, description: , lineNumber: 7, message: The minor version should be the same for version 0.11.400, since no new APIs have been added since version 0.12.700, messagearguments: 0.11.400#0.12.700, problemid: 926941240, severity: 2, sourceId: API Tools, version: 0.12.700.qualifier], created: 5/16/19, 5:36 PM] |
| 1 API warnings |
| * Marker [on: /org.eclipse.e4.ui.css.core, id: 81, type: org.eclipse.pde.api.tools.api_usage, attributes: [apiMarkerID: 3, charEnd: -1, charStart: -1, lineNumber: 0, message: Execution environment references were not checked for 'org.eclipse.e4.ui.css.core' because no environment descriptions are installed. , messagearguments: org.eclipse.e4.ui.css.core, problemid: 665845798, severity: 1, sourceId: API Tools], created: 5/16/19, 5:36 PM] |
| </code> |
| </p> |
| <p> |
| Here is an example of how this could be used in Tycho to trigger API checks in a Tycho build, in <code>pom.xml</code> |
| </p> |
| <pre style="width:778px;"> |
| <project> |
| [...] |
| <build> |
| [...] |
| <plugins> |
| [...] |
| <plugin> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>list-dependencies</id> |
| <goals> |
| <goal>list</goal> |
| </goals> |
| <phase>verify</phase> |
| <configuration> |
| <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> |
| <outputScope>false</outputScope> |
| <outputFile>${project.build.directory}/dependencies.txt</outputFile> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.eclipse.tycho.extras</groupId> |
| <artifactId>tycho-eclipserun-plugin</artifactId> |
| <version>1.4.0</version> |
| <executions> |
| <execution> |
| <id>api-analysis</id> |
| <goals> |
| <goal>eclipse-run</goal> |
| </goals> |
| <phase>verify</phase> |
| <configuration> |
| <applicationsArgs> |
| <!-- need to set workspace to a dir that's not a child of the project --> |
| <arg>-data</arg> |
| <args>${project.basedir}/../target/${project.artifactId}-apiAnalyzer-workspace</args> |
| <args>-application</args> |
| <args>org.eclipse.pde.api.tools.apiAnalysis</args> |
| <args>-project</args> |
| <args>${project.basedir}</args> |
| <args>-baseline</args> |
| <args>default</args> |
| <args>-dependencyList</args> |
| <args>${project.build.directory}/dependencies.txt</args> |
| <args>-failOnError</args> |
| </applicationsArgs> |
| <repositories> |
| <repository> |
| <id>eclipse-4.12</id> |
| <layout>p2</layout> |
| <url>https://download.eclipse.org/eclipse/updates/4.12-I-builds/</url> |
| </repository> |
| </repositories> |
| <dependencies> |
| <!-- This will constitute the default baseline --> |
| <dependency> |
| <artifactId>org.eclipse.sdk.ide</artifactId> |
| <type>p2-installable-unit</type> |
| </dependency> |
| </dependencies> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |
| </pre> |
| </td> |
| </tr> |
| <!-- ******************** End of APITools ********************** --> |
| |
| <!-- ******************** PDE Compiler ********************** --> |
| <!-- |
| <tr> |
| <td id="pde-compiler" class="section" colspan="2"><h2>PDE Compiler</h2></td> |
| </tr> |
| --> |
| <!-- ******************** End of PDE Compiler ********************** --> |
| |
| </tbody> |
| </table> |
| </body> |
| </html> |