blob: 918f04b09d27881a5f8c529bbf9433b26d32a1d6 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>What's New in NetBeans Platform 6.7?</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/>
<meta name="AUDIENCE" content="NBUSER"/>
<meta name="TYPE" content="ARTICLE"/>
<meta name="EXPIRES" content="N"/>
<meta name="developer" content="gwielenga@netbeans.org"/>
<meta name="indexed" content="y"/>
<meta name="description" content="Overview of new features in NetBeans Platform 6.7"/>
</head>
<body>
<h1>What's New in NetBeans Platform 6.7?</h1>
<p>An overview of changes relating to
<a href="https://platform.netbeans.org/">NetBeans Platform 6.7</a>, which is the
Swing framework that underpins applications such as NetBeans IDE. (<a href="https://platform.netbeans.org/whatsnew/65.html">Click here</a> for the 6.5
version of this document.)</p>
<h3>New & Changed Features</h3>
<ul>
<li><b>Annotations.</b> Several items that you were required
to register in the <tt>layer.xml</tt> file can now
be registered via annotations instead. Below is the list
of annotations introduced in NetBeans Platform 6.7:
<ul>
<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153655">@AntBasedProjectRegistration</a> (see <a href="http://blogs.sun.com/geertjan/entry/antbasedprojectregistration">related blog entry</a>)</li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-settings/apichanges.html#convertor.propertyannotation">@ConvertAsProperties</a> (see <a href="http://eppleton.sharedhost.de/blog/?p=619">related blog entry</a>)</li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-editor-lib2/apichanges.html#added-editoractionregistration">@EditorActionRegistration</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#ProjectServiceProvider">@LookupMerger.Registration</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#lookupprovider-ann">@LookupProvider.Registration</a></li>
<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153015">@NodeFactory.Registration</a> (see <a href="http://blogs.sun.com/geertjan/entry/nodefactory_registration">related blog entry</a>)</li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#ProjectServiceProvider">@ProjectServiceProvider</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/apichanges.html#ServiceProvider">@ServiceProvider</a> (see <a href="http://blogs.sun.com/geertjan/entry/org_openide_util_lookup_serviceprovider">related blog entry</a>)</li>
<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=161286">@ServicesTabNodeRegistration</a> (see <a href="http://blogs.sun.com/geertjan/entry/servicestabnoderegistration">related blog entry</a>)</li>
</ul>
<p>Where possible, you are recommended to use annotations instead
of <tt>layer.xml</tt> registrations. Future releases of the
NetBeans Platform will include additional annotations.</p></li>
<li><b>Suite chaining.</b> NetBeans Platform applications can now
include modules that belong to other NetBeans Platform applications.
As a result you can, for example, create a suite of modules that are
common to all your applications, which can then reuse them. (See
<a href="http://blogs.sun.com/geertjan/entry/sharing_code_between_different_netbeans">related blog entry</a>.)</li>
<li><b>Automatic resolution of excluded modules.</b>
Warnings about excluded modules that the application depends upon
can now be resolved automatically in the Project Properties
dialog of the NetBeans Platform application project type.</li>
<li><b>Declarative MIME type resolution.</b>
Traditionally, the NetBeans Platform recognizes files based on their
file extension or, in the case of XML files, by their root element.
However, sometimes you may need to read the content of a file,
via <tt>findMIMEType(FileObject)</tt> to properly determine a MIME type,
such as in the case of PHP files.
From NetBeans Platform 6.7, it is easier to resolve MIME types, <a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/doc-files/HOWTO-MIME.html">as described here</a>.
As a result, the MIME type resolver for PHP files is now <a href="http://hg.netbeans.org/main/file/tip/php.project/src/org/netbeans/modules/php/project/resources/php-project-mime-resolver.xml">as follows</a>.
For details, see <a href="http://wiki.netbeans.org/DevFaqMIMEResolver">"How can I create declarative MIMEResolver and add new file type?"</a></li>
<li><b>More control over <tt>TopComponents</tt>.</b> Per <tt>TopComponent</tt>,
you can specify whether features such as maximizing, docking, and closing
are supported. In NetBeans Platform 6.5, you were able to do this for the whole
window system; now, you can do so per <tt>TopComponent</tt>, too.</li>
<li><b>Improved Update Center support.</b> Licenses in
the AutoUpdate catalog have been removed, based on <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=149071">issue 149071</a>.
Though this enhancement is not directly visible to users,
it makes the plugin catalogs reload much faster and consume far
less memory than before.</li>
<li><b>Improved toolbar support.</b> The implementation of the toolbars
in the main window has been rewritten from scratch. Now the toolbars
behave better when the main window is being resized. It is also possible
to dock any toolbar to the right edge of the toolbar area in the main window, thanks
to a new version of the DTD for toolbar configurations:
<pre>&lt;!-- Document Type Declaration for toolbar configuration xml files. --&gt;
&lt;!-- Root element of toolbar configuration. It's a list of Rows. --&gt;
&lt;!ELEMENT Configuration (Row+)&gt;
&lt;!-- Toolbar configuration row. It's a list of Toolbars. --&gt;
&lt;!ELEMENT Row (Toolbar*)&gt;
&lt;!-- Toolbar configuration Toolbar. It contains name of toolbar,
it's position and switch of toolbar visibility. --&gt;
&lt;!ELEMENT Toolbar EMPTY&gt;
&lt;!ATTLIST Toolbar
name CDATA #REQUIRED
visible (true | false) #IMPLIED
align (left | right) #IMPLIED
dragable (true | false) #IMPLIED
&gt;</pre>
<p>In the new DTD, shown above, which is version 1.1, the attributes "align" and "dragable" are new,
while "position" has been removed. General information about
toolbar configuration can be <a href="http://blogs.sun.com/geertjan/entry/toolbar_configurations">found here</a>.</p>
</li>
</ul>
<h3>New APIs</h3>
<p>Read all of the changes <a href="http://bits.netbeans.org/6.7/javadoc/apichanges.html">here</a>, with
new/enhanced classes as follows:</p>
<ul>
<li><b>Parsing API.</b> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=133900">New API</a> for parsing syntax and providing features,
such as syntax coloring and code completion. See the
<a href="http://wiki.netbeans.org/New_Language_Support_TutorialDevelopment_Version">New Language Support Tutorial</a>.</li>
<li><b>I/O APIs.</b> Several enhancements that enable
the Output window to be displayed in different positions,
containing text with varying colors:
<ul>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOColorLines.html">IOColorLines</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOColors.html">IOColors</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOContainer.html">IOContainer</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOPosition.html">IOPosition</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOTab.html">IOTab</a></tt></li>
</ul></li>
<li><b>Filesystems API.</b> Several new classes and methods, enabling you
to work more efficiently with files of any kind:
<ul>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileChooserBuilder.html">FileChooserBuilder</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asBytes()">FileObject.asBytes</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asLines(java.lang.String)">FileObject.asLines</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asText(java.lang.String)">FileObject.asText(encoding)</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileUtil.html#addFileChangeListener(org.openide.filesystems.FileChangeListener,%20java.io.File)">FileUtil.addFileChangeListener(FileChangeListener, File)</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">FileUtil.getConfigFile</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">FileUtil.getRoot</a></tt></li>
<li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.setMIMEType">FileUtil.setMimeType</a></tt></li>
</ul></li>
<li><b>Explorer & Property Sheet API.</b>
<ul><li><p><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/view/CheckableNode.html">CheckableNode</a></tt>
is a new class that can be put into the <tt>Lookup</tt> of
a <tt>Node</tt>, enabling you to display
a checkbox next to the node in the display of explorer
views that support it:</p>
<img src="http://blogs.sun.com/geertjan/resource/video-store-checkablenode.png" alt="checkablenode image"/>
<p>See <a href="http://blogs.sun.com/geertjan/entry/org_openide_explorer_view_checkablenode">related blog entry</a>.</p>
</li></ul></li>
<li><b>UI Utilities API.</b>
<ul>
<li><p><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/NotificationDisplayer.html">NotificationDisplayer</a></tt>. New
class that creates and shows clickable notifications in the main status line:</p>
<p><img alt="statusline image" src="http://blogs.sun.com/geertjan/resource/notificationdisplayer-demo.png"/></p>
<p>See <a href="http://blogs.sun.com/geertjan/entry/org_openide_awt_notificationdisplayer">related blog entry</a>.</p></li>
<li><tt><a href="http://bits.netbeans.org/6.7/javadoc/org-openide-awt/apichanges.html#StatusTextImportance">StatusDisplayer</a>.</tt> Enhancement to
this class, enabling you to set the 'importance' of a message in the status line. Messages set to a
higher importance level will replace messages of lower importance. The most important messages
stay visible permanently, until explicitly cleared or replaced. Previously, all status line
messages were removed after some time.</li>
</ul>
</li>
</ul>
<h3>Deprecations</h3>
<p>The following are deprecated/obsolete from 6.7 onwards:</p>
<ul>
<li><b>Schliemann.</b> The declarative language approach, also
known as Schliemann, has been deprecated in favor of
the more robust Parsing API. However, you are still able
to use Schliemann, since it is part of the NetBeans IDE
distribution. Note, though, that no more development
of any kind will be done on Schliemann.</li>
<li><b><tt>Repository.getDefault().getDefaultFileSystem().getRoot()</tt>.</b>
Deprecated, replaced by <tt>FileUtil.getConfigRoot()</tt>. (<a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">Details.</a>)</li>
<li><b><tt>Repository.getDefault().getDefaultFileSystem().findResource(String resource)</tt>.</b>
Deprecated, replaced by <tt>FileUtil.getConfigFile(String file)</tt>. (<a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">Details.</a>)
</li>
</ul>
<h3>New & Changed NetBeans Platform Tools in NetBeans IDE 6.7</h3>
<ul>
<li><b>Project Properties Dialog.</b>
<ul>
<li>New "Add Project..." and
"Add Cluster..." in the Libraries tab
in the NetBeans Platform project type's Project Properties
dialog. These enable "suite chaining", i.e., modules or groups
of modules (clusters) can be added to an application via these
buttons.</li>
<li>New "Resolve" button to automatically
resolve modules that have not been included,
even though the application needs them</li>
<li><b>Contextual Menus.</b> When you right-click on the
project node of an application, a module suite, or a module,
the "Share on Kenai" menu item lets you upload the project
to a site on Kenai.</li></ul></li>
<li><b>New Window Component Wizard.</b> When you use the
New Window Component wizard, the "Basic Settings" step
lets you indicate whether the <tt>TopComponent</tt> will
be maximizable, closeable, etc. (See "More control over <tt>TopComponents</tt>" above.)
On completion of the wizard,
the related client property is added to the constructor
of the generated <tt>TopComponent</tt>.</li>
</ul>
<h3>New Screencasts</h3>
<p>A Free NetBeans
Platform Crash Course was released, to celebrate a brand new NetBeans Platform
book by Heiko Boeck, translated by the NetBeans Platform community, entitled
<a href="http://www.apress.com/book/view/9781430224174">The Definitive Guide to NetBeans Platform</a>.</p>
<p>A two-part series was introduced during this release cycle, focusing
on the creation of a CRUD application on the NetBeans Platform:</p>
<ul>
<li>Part 1: Database Displayer</li>
<li>Part 2: Database Editor (to come)</li>
</ul>
<p>The introductory screencast series Top 10 NetBeans APIs was expanded to 9 parts.</p>
<h3>New Tutorials</h3>
<p>All tutorials at <a href="https://netbeans.org/kb/trails/platform.html">http://www.netbeans.org/kb/trails/platform.html</a>
are updated. The following are published for the first time in the 6.7 release cycle:</p>
<ul>
<li><a href="../tutorials/nbm-quick-start.html">NetBeans Platform Quick Start</a></li>
<li><a href="../tutorials/nbm-crud.html">NetBeans Platform CRUD Application Tutorial</a></li>
<li><a href="../tutorials/nbm-quick-start-visual.html">NetBeans Visual Library Tutorial for Java Applications</a></li>
<li><a href="../tutorials/nbm-wizard.html">NetBeans Wizard Module Tutorial</a></li>
<li><a href="http://wiki.netbeans.org/New_Language_Support_TutorialDevelopment_Version">New Language Support Tutorial</a></li>
</ul>
</body>
</html>