<!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.php">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp; <font color="#808080">Next</font>
  </p>

</body>
</html>
