blob: dcf8117c0cd974b4fef338183c597d5e92b27b92 [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 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>
<!-- ******************* 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">
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>
To enable the annotations you only need to add them to the target platform e.g. with the following locations:
</p>
<pre>
&lt;target name="annotations"&gt;
&lt;locations&gt;
&lt;location includeDependencyDepth="none" includeSource="true" missingManifest="error" type="Maven"&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.osgi&lt;/groupId&gt;
&lt;artifactId&gt;org.osgi.annotation.versioning&lt;/artifactId&gt;
&lt;version&gt;1.1.2&lt;/version&gt;
&lt;type&gt;jar&lt;/type&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;/location&gt;
&lt;location includeDependencyDepth="none" includeSource="true" missingManifest="error" type="Maven"&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.osgi&lt;/groupId&gt;
&lt;artifactId&gt;org.osgi.annotation.bundle&lt;/artifactId&gt;
&lt;version&gt;2.0.0&lt;/version&gt;
&lt;type&gt;jar&lt;/type&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;/location&gt;
&lt;/locations&gt;
&lt;/target&gt;
</pre>
but of course any other source is accepted (e.g. directory locations or update-sites).
<p>
For example, you can now <b>use</b> them in the following way on a package-info.java:
</p>
<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).
PDE now also supports the <code>@Export</code> and <code>@Version</code> annotations, if you put them on a <code>package-info.java</code> file like this:
<p>
<img src="images/bunde-export-version-header.png" alt=""/>
</p>
the <code>MANIFEST.MF</code> is updated accordingly
<p>
<img src="images/manifest-example.png" alt=""/>
</p>
<p>
The same works for <code>@Header</code> annotation, adding this like this:
<img src="images/header-example.png" alt=""/>
</p>
this results in an extra header being added to the <code>MANIFEST.MF</code>
<p>
<img src="images/manifest-example2.png" alt=""/>
</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>