| <!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="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 4.25 - New and Noteworthy</title> |
| </head> |
| |
| <body> |
| <h2>Plug-in Development Environment</h2> |
| <ul> |
| <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> |
| <li><a href="#pde-compiler">PDE Compiler</a></li> |
| <li><a href="#GeneralUpdates">General Updates</a></li> |
| </ul> |
| |
| <!-- ****************** START OF N&N TABLE****************** --> |
| <table class="news"> |
| <colgroup> |
| <col class="title" /> |
| <col /> |
| </colgroup> |
| <tbody> |
| <!-- ******************** Dialogs, Wizard and Views ********************** --> |
| <tr> |
| <td id="dialogs-wizards-views" class="section" colspan="2"><h2>Dialogs, Wizards and Views</h2></td> |
| </tr> |
| <!-- ******************** End ofDialogs, Wizard and Views ********************** --> |
| |
| <!-- ******************** Editors ********************** --> |
| <tr> |
| <td id="editors" class="section" colspan="2"><h2>Editors</h2></td> |
| </tr> |
| <!-- ******************** End of Editors ********************** --> |
| |
| <!-- ******************** APITools ********************** --> |
| <tr> |
| <td id="APITools" class="section" colspan="2"><h2>API Tools</h2></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 ********************** --> |
| <!-- ******************* General Updates ************************************* --> |
| <tr> |
| <td id="GeneralUpdates" class="section" colspan="2"><h2>General Updates </h2> </td> |
| </tr> |
| |
| <tr id="default-3rd-party-bundles"> |
| <td class="title"><a href="#default-3rd-party-bundles">Default target platform ships different 3rd party bundles</a></td> |
| <td class="content"> |
| Some 3rd-party bundles (JUnit, some Apache commons, ASM...) have changed as they are now originating from Maven Central instead |
| of Eclipse Orbit. They sometimes provide slightly different capabilities so some remediation may be necessary if you're using |
| the default target plaform. |
| <p>See the <a href="https://github.com/eclipse-platform/eclipse.platform.common/blob/master/bundles/org.eclipse.platform.doc.isv/porting/4.25/incompatibilities.html"> |
| documentation</a> for details about possible issues and remediation.</p> |
| </td> |
| </tr> |
| <tr id="default-osgi-annotations"> |
| <td class="title"><a href="#default-osgi-annotations">Support for the OSGi Bundle and Versioning Annotations</a></td> |
| <td class="content"> |
| <p>PDE now supports the <a href="https://docs.osgi.org/specification/osgi.core/7.0.0/framework.api.html#org.osgi.annotation.bundle">OSGi Bundle</a> and |
| <a href="https://docs.osgi.org/specification/osgi.core/7.0.0/framework.api.html#org.osgi.annotation.versioning">OSGi Versioning</a> annotations to be used in a Plugin Project. |
| </p> |
| <p> |
| To <b>enable</b> the annotations one only needs to add them to the target platform e.g. with the following locations: |
| <pre> |
| <target name="annotations"> |
| <locations> |
| <location includeDependencyDepth="none" includeSource="true" missingManifest="error" type="Maven"> |
| <dependencies> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.annotation.versioning</artifactId> |
| <version>1.1.2</version> |
| <type>jar</type> |
| </dependency> |
| </dependencies> |
| </location> |
| <location includeDependencyDepth="none" includeSource="true" missingManifest="error" type="Maven"> |
| <dependencies> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.annotation.bundle</artifactId> |
| <version>2.0.0</version> |
| <type>jar</type> |
| </dependency> |
| </dependencies> |
| </location> |
| </locations> |
| </target> |
| </pre> |
| but of course any other source is accepted (e.g. directory locations or update-sites). |
| </p> |
| <p> |
| You can now <b>use</b> them for example the following way on a package-info.java: |
| <pre> |
| @org.osgi.annotation.bundle.Export |
| @org.osgi.annotation.versioning.Version("1.0") |
| package bundle.annotations.project; |
| </pre> |
| Or on an interface |
| <pre> |
| import org.osgi.annotation.versioning.ProviderType; |
| |
| @ProviderType |
| public interface ProviderInterface { |
| |
| } |
| </pre> |
| and then they can be processed by other tools (e.g. bnd or tycho). |
| </p> |
| <p> |
| <b>PDE</b> has now also support for the <code>@Export</code> and <code>@Version</code> annotations, if you put them on a <code>package-info.java</code> file like this: |
| <img src="images/bunde-export-version-header.png" /> |
| the <code>MANIFEST.MF</code> is updated accordingly |
| <img src="images/manifest-example.png" /> |
| </p> |
| <p> |
| The same works for <code>@Header</code> annotation, adding this like this: |
| <img src="images/header-example.png" /> |
| this results in an extra header added to the <code>MANIFEST.MF</code> |
| <img src="images/manifest-example2.png" /> |
| </p> |
| </td> |
| </tr> |
| <tr><td colspan="2"/></tr> |
| </tbody> |
| </table> |
| <!-- ****************** END OF N&N 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> |