<!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.14 - 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> -->
</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>

  <tr id="features-view-update"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=550316 -->
    <td class="title">Target Platform in Features view</td>
    <td class="content">
      Using the <b>Features</b> view you can now view the structure of features in the target platform in addition to the ones in your workspace projects.
      <p>
        Features from workspace projects are shown first, followed by the ones from the target platform.
      </p>
      <p>
        <img src="images/features-view-with-target-platform-support.png" alt="" />
      </p>
    </td>
  </tr>
  <tr id="features-view-products"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=550317 -->
    <td class="title">Products in Features view</td>
    <td class="content">
      You can now view the structure of product configurations using the <b>Features</b> view.
      <p>
        <img src="images/features-view-products.png" alt="" />
      </p>
    </td>
  </tr>
  <tr id="launch-sorted"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=231099 -->
    <td class="title">Improved launch configuration persistence</td>
    <td class="content">
      The file format of Eclipse Application, JUnit Plug-in Test and OSGi Framework launch configurations was updated to make them more SCM friendly.
    </td>
  </tr>
  <!-- ******************** End ofDialogs, Wizard and Views ********************** -->

  <!-- ******************** Editors ********************** -->
  <tr>
    <td id="editors" class="section" colspan="2"><h2>Editors</h2></td>
  </tr>
  <tr id="BREE-dependencies-warning"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=552194 -->
    <td class="title">Detect bundle's BREE lower than its dependencies</td>
    <td class="content">
     A warning will now appear in the <b>Plug-in manifest editor</b> when a bundle's dependency requires a higher execution environment than what is currently set.
     <p>
      The provided quick fix can automatically set the appropriate execution environment.
     </p>
     <p>
      <img src="images/BREE-dependencies-warning.png" alt="" />
     </p>
     <p>
      A new PDE compiler preference <b>Bundle BREE lower than its dependencies</b> has been added to configure the severity of the problem. By default, it is set to warning.
     </p>
     <p>
      <img src="images/pde-compilers-versioning.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="apiDescription-generator-app"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=551417 -->
    <td class="title">Application to generate API descriptor manifest</td>
    <td class="content">
      In addition to the legacy Ant tasks, PDE now provides a direct Eclipse application to generate API manifest
      (typically <code>.api_description</code> files).
      <p>
        The Application id is <code>org.eclipse.pde.api.tools.apiGeneration</code> and it's arguments are the same as
        for Ant tasks. The application can typically be invoked with command line as shown below:
        <code>./eclipse -application org.eclipse.pde.api.tools.apiGeneration
        -projectName org.eclipse.pde.ui
        -project /home/git/eclipse.pde.ui/ui/org.eclipse.pde.ui
        -binary /home/git/eclipse.pde.ui/ui/org.eclipse.pde.ui/target/org.eclipse.pde.ui-3.11.200-SNAPSHOT.jar
        -target /home/git/eclipse.pde.ui/ui/org.eclipse.pde.ui/target/
        </code>.
      </p>
      <p>
      This application can also be run using the Eclipse launch configuration UI and selecting 
      <b>org.eclipse.pde.api.tools.apiGeneration </b> application as shown below. The required arguments should  
      be specified in the program arguments.
      </p>
       <p>
       <img src="images/pde-api-generation-application-ui.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="report-error-on-unnecessary-change"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=551197 -->
    <td class="title">Report unnecessary change in minor and micro version</td>
    <td class="content">
      In addition to reporting minor version change without API changes, API tools now also reports the following unnecessary
      minor and micro version change. 
      <ul>
      <li>Minor version increased when major version was already increased in the release </li>
      <li>Micro version increased when minor version or major version was already increased in the release.</li> 
      </ul>

      <p>
       <img src="images/pde-unnecessary-ver-increase-new.png" alt="" />
      </p>
      
      The preference option <b>Report minor version change without API changes</b> has been renamed to 
      <b>Report unnecessary minor or micro version change</b>. 
    </td>
  </tr>

  <tr id="expanded-reduced-superinterface-error-detail"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=551146 -->
    <td class="title">Expanded or reduced super interface API tool error has details</td>
    <td class="content">
      The API tool error <b>Expanded or reduced super interface</b> now mentions which interface was added or removed
      from the super interfaces hierarchy.
      <p>
       <img src="images/pde-expanded-reduced-interface.png" alt="" />
      </p>
    </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>
<!-- ****************** 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>
