<!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 2014. 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=UTF-8" />
<link rel="stylesheet" href="default_style.css" charset="UTF-8" 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>
  <h2>Plug-in Development Environment</h2>

  <ul>
    <li><a href="#APITools">API Tools</a></li>
    <li><a href="#ViewsAndEditors">Views and Editors</a></li>
    <li><a href="#Misc">Misc</a></li>
  </ul>

  <!-- ****************** 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="api-tag-visibility">
        <td class="title">API Tools Javadoc tag visibility matches Java Language Specification</td>
        <td class="content">API Tools supports API restrictions using <a href="http://wiki.eclipse.org/PDE/API_Tools/Javadoc_Tags">Javadoc tags</a> such as @noextend and @noreference. The API
          Tools builder has an option to add problem markers for invalid use of the tags. The logic to check whether a tag is valid has been upgraded and now follows the visibility rules in the <a
          href="http://docs.oracle.com/javase/specs/">Java Language Specification (JLS)</a>.
          <p>
            <img src="images/tag-visibility.png" alt="Example tag visibility problem" />
          </p>
        </td>
      </tr>

      <tr id="api-tools-bree">
        <td class="title">API Tools moved to JavaSE-1.6</td>
        <td class="content">All API Tools plug-ins now have a bundle required execution environment (BREE) of JavaSE-1.6.</td>
      </tr>

      <tr id="api-tools-annotations">
        <td class="title">Annotation support in API Tools</td>
        <td class="content">API Tools now provides support for using annotations to describe your API usage. Prior to the new annotation support you would have, for example, used the <code>@noreference</code>
          Javadoc tag to indicate noone should use the tagged type / member. Now you can add the <code>@NoReference</code> annotation (in Java 1.5+ source) to the member directly without the need for
          Javadoc.
          <p>
            <img src="images/annotation-example.png" alt="The @NoExtend annotation being used on a class" />
          </p>
          <p>
            To make the transition from Javadoc tags to the new annotation support, API Tools provides a conversion wizard that is found using the <strong>Plug-in Tools &gt; Convert API Tools
              Javadoc tags...</strong> command for a selected project. The wizard can convert all existing Javadoc tags to their annotation equivalent, update the
            <code>build.properties</code>
            file and optionally remove all of the old Javadoc tags.
          </p> <img src="images/javadoc-conversion.png" alt="The Javadoc conversion wizard" />
        </td>
      </tr>

      <tr id="ApiToolsJava8">
        <td class="title">Java 8 support for API Tools complete</td>
        <td class="content">API Tools now has full support for Java 8. This includes illegal use, binary comparisons, restriction validation (for both javadoc tags and annotations), and
          completion proposals. Support has been added for the following code structures:
          <ul>
            <li>Default Methods</li>
            <li>Type Annotations</li>
            <li>Lambda Expressions</li>
            <li>Method References</li>
          </ul>
          <p>
            There is also a new <b>JavaSE-1.8</b> execution environment fragment available. Update the <b>API Tools Execution Environment Descriptions</b> feature. API tools now uses the 5.0.1 release
            of ASM to read Java 8 class files.
          </p>
        </td>
      </tr>


      <!-- ******************** Views and Editors ********************** -->
      <tr>
        <td id="ViewsAndEditors" class="section" colspan="2"><h2>Views and Editors</h2></td>
      </tr>

      <tr id="target-statusbar">
        <td class="title">Display target platform in the status bar</td>
        <td class="content">You can now have target platform information displayed in the workbench status bar. The active target name is shown, and the icon reveals problems with the target
          platform (if any). Double-clicking on it will open the <b>Target Platform</b> preference page.

          <p>
            This feature can be enabled on the <b>General &gt; Plug-in Development</b> preference page.
          </p>
          <p>
            <img src="images/target-status.png" alt="The target platform state in the status bar showing an error" />
          </p>
        </td>
      </tr>

      <tr id="pde-tracing">
        <td class="title">PDE UI tracing options available</td>
        <td class="content">The tracing options provided by PDE UI can now be enabled from the <b>General &gt; Tracing</b> preference page:
          <p>
            <img src="images/pde-tracing.png" alt="PDE tracing options" />
          </p> You can choose to have the output of debug trace statements being written to a file or sent to the standard output stream.
        </td>
      </tr>

      <tr id="feature-dialog-contains-plugins">
        <td class="title">Feature selection dialog filters by plug-ins</td>
        <td class="content">When entering text into the filter field of the feature selection dialog, features that contain a plug-in matching the filter will be returned. This provides a quick
          way to add the correct feature to include in a product.
          <p>
            <img src="images/feature-selection.png" alt="The feature selection dialog" />
          </p>
        </td>
      </tr>

      <tr id="bundle-exceptions-in-editor">
        <td class="title">OSGi bundle exceptions are displayed in the manifest editor</td>
        <td class="content">Certain syntax errors, such as missing a comma between entries in the <code>Require-Bundle</code> header, cause bundle exceptions when PDE tries to add the bundle to
          an OSGi State. The exceptions are now logged and displayed in the manifest editor.
          <p>
            <img src="images/bundle-exception.png" alt="Bundle exception displayed in the manifest editor" />
          </p>
        </td>
      </tr>

      <tr id="os-arch-system-props">
        <td class="title">Products can specify OS/arch system properties</td>
        <td class="content">In the <b>Product Editor</b> you can now add system properties that will only apply to a single OS, a single architecture or a an OS/architecture combination.
          <p>
            <img src="images/osarch-systemprops.png" alt="The product editor showing os/arch system properties" />
          </p>
        </td>
      </tr>

      <tr id="os-arch-vm-args">
        <td class="title">Products can specify OS/arch launch arguments</td>
        <td class="content">In the <b>Product Editor</b> you can now add program and VM arguments to all platforms, a specific operating system or a specific OS/architecture combination. A
          preview area shows the complete list of arguments that will apply to the selected OS and architecture.
          <p>
            <img src="images/osarch-args.png" alt="The product editor showing os/arch vm arguments" />
          </p>
        </td>
      </tr>

      <tr id="product-add-update-sites">
        <td class="title">Product can add p2 update sites</td>
        <td class="content">A new page has been added to the <b>Product Editor</b> where you can add p2 repository update sites. When your product is exported, the list of update sites will be
          added to the repository list that p2 uses to check for updates. You can set a site as disabled to have it visible on the <b>Install/Update > Available Software Sites</b> preference page, but
          it will not be used during install/update operations unless the user enables it first.
          <p>
            <img src="images/updatePage.png" alt="Update page in the product editor" />
          </p>
        </td>
      </tr>

      <tr id="product-custom-start-levels">
        <td class="title">Product can define custom default start levels</td>
        <td class="content">On the <b>Configuration</b> page of the <b>Product Editor</b>, there is a new button: <b>Add Recommended...</b>. When pressed, a dialog will open offering to add a
          list of recommended custom start levels to your product definition. This is helpful for new product developers as they may not be aware that some plug-ins require custom start levels to
          function correctly. The operation will not overwrite any existing custom start levels you have set previously.
          <p>
            <img src="images/startLevels.png" alt="Product editor start levels with add recommended button" />
          </p>
          <p>This is the list of recommended start levels currently provided:</p> <pre>org.eclipse.core.runtime@start
org.eclipse.equinox.common@2:start
org.eclipse.equinox.ds@2:start
org.eclipse.equinox.event@2:start
org.eclipse.equinox.simpleconfigurator@1:start
org.eclipse.equinox.p2.reconciler.dropins@start</pre>
        </td>
      </tr>

      <tr id="pdeDeprecatedExtensions">
        <td class="title">Plug-in editor indicates deprecated extension elements</td>
        <td class="content">When editing the extensions of a plug-in, you now have a visual indication that an extension element or attribute has been deprecated.
          <ul>
            <li>Icons in the tree are marked with a warning decoration:
              <p>
                <img src="images/deprecatedExtension1.png" alt="Deprecated extension in tree" />
              </p>
            </li>
            <li>Menu items are marked with <i>(deprecated)</i>:
              <p>
                <img src="images/deprecatedExtension2.png" alt="Deprecated extension in menu" />
              </p>
            </li>
            <li>Details of elements include deprecation information and deprecated attributes are marked with <i>(!)</i>:
              <p>
                <img src="images/deprecatedExtension3.png" alt="Deprecated extension in details" />
              </p>
            </li>
          </ul>
        </td>
      </tr>


      <!-- ******************** Misc ********************** -->
      <tr>
        <td id="Misc" class="section" colspan="2"><h2>Misc</h2></td>
      </tr>

      <tr id="warn-platformadmin-unavailable">
        <td class="title">Warning if PlatformAdmin is unavailable</td>
        <td class="content">PDE requires the PlatformAdmin service to function. The Equinox Framework has moved this service to the <b>org.eclipse.osgi.compatibility.state</b> compatibility
          fragment. If the fragment is not installed, PDE will write an error to the log and will not function correctly. The fragment is included in the Eclipse SDK, so most users will be unaffected.
          <p>
            <img src="images/platformadmin-message.png" alt="Error message for PlatformAdmin unavailable" />
          </p>
        </td>
      </tr>

      <tr id="pde-build-6">
        <td class="title">PDE Build moved to JavaSE-1.6</td>
        <td class="content">The org.eclipse.pde.build bundle now has a bundle required execution environment (BREE) of JavaSE-1.6, matching the Platform Ant bundles.</td>
      </tr>

      <tr id="target-no-preferences">
        <td class="title">Target platform content is no longer stored in preferences</td>
        <td class="content">The target platform specified on the <b>Target Platform</b> preference page uses flexible target definitions, stored in .target files, to specify the set of plug-ins
          PDE should build against and use to launch applications. However, the content of the target platform was previously stored in preferences. This could lead to inconsistencies between what you
          expect to exist in the target platform and what is actually available. This problem was more noticeable when using a complex target definition containing feature or software site locations.

          <p>In Luna, the target platform information is always created from the target definition chosen on the preference page. In addition to reducing inconsistencies in the target, there are
            performance improvements when interacting with the target.</p>
        </td>
      </tr>

      <tr id="pdeNoUnboundEE">
        <td class="title">Launch configurations don't select unbound execution environment</td>
        <td class="content">When creating a new launch configuration, PDE examines the list of plug-ins to be launched and selects the lowest execution environment (EE) that supports each
          plug-in's required EE. However, this could lead to selecting an EE that no installed JRE matches. With no bound JRE, launching with that execution environment would always fail. Now, when
          choosing an execution environment, any plug-in that requires an unbound EE will be ignored.</td>
      </tr>

      <tr id="pdeBuildConfigurator">
        <td class="title">PDE Build depends on org.eclipse.update.configurator</td>
        <td class="content">PDE Build now has a non-optional dependency on <code>org.eclipse.update.configurator [3.1.0,4.0.0)</code>. Functionality from that bundle is required by PDE Build and
          previously was added via an optional dependency on <code>org.eclipse.core.runtime.compatibility</code>. If this optional dependency was missing, PDE Build or PDE UI operations could fail
          with cryptic errors.
        </td>
      </tr>


      <!-- ****************** END OF N&N TABLE ****************** -->
    </tbody>
  </table>

  <p align="center">
    <a href="eclipse-news-part3.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp; <font color="#808080">Next</font>
  </p>

</body>
</html>
