<!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.9?</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.9"/>
    </head>
    <body>
        <h1>What's New in NetBeans Platform 6.9?</h1>

        <p>An overview of changes relating to
            <a href="https://platform.netbeans.org/">NetBeans Platform 6.9</a>, which is the
            Swing framework that underpins applications such as NetBeans IDE.</p>

        <p><b>Note:</b> <a href="https://platform.netbeans.org/whatsnew/68.html">Click here</a> for the previous
            release of this document.</p>

        <h3>New Features</h3>
        <p>The following new features are provided for developers
            creating applications atop NetBeans Platform 6.9:</p>
        <ul>

            <li><b>OSGi Interoperability.</b> OSGi support for NetBeans Platform applications is
                provided in
                various flavors, making it possible to:
                <ul>
                    <li>Create new OSGi bundles in NetBeans Platform applications.</li>
                    <li>Import OSGi bundles into NetBeans Platform applications.</li>
                    <li>Convert NetBeans Platform applications to OSGi bundles and
                        run, debug, and profile them in the IDE.</li>
                </ul>
                <p>Furthermore, the OSGi interoperability focus in this release includes:</p>
                <ul>
                    <li>Bundled Felix container and experimental Equinox support.</li>
                    <li>New OSGi-based NetBeans Platform articles and tutorials.</li>
                </ul>
            </li>
            <li><b>Enhanced Support for Maven.</b> Maven support for NetBeans Platform applications
                has been enhanced in the following ways:
                <ul>
                    <li>New Maven NetBeans Module Suite project archetype
                        added as a container project for a set of module projects.</li>
                    <li>UI support for setting public packages.</li>
                    <li>Annotation processing was fixed for Maven
                        to support those NetBeans APIs using annotation
                        generating sources and annotations referring
                        to resources in bundles.</li>
                    <li>Maven-based CRUD sample.</li>
                    <li>New Maven-based NetBeans Platform articles and tutorials.</li>
                </ul>
            </li>

            <li><b>REST Client Support.</b> Tools have been added to NetBeans IDE
                for quickly adding REST client support to NetBeans Platform applications.</li>

            <li><b>Branding Editor.</b> Right-click the application suite project (in the Ant case)
                or the branding module project (in the Maven case) and choose Branding.
                A Branding Editor opens, letting you
                brand icons, splash screen, window system, and all strings in the application.</li>

            <li><b>Installer Generator.</b> Right-click an application in the IDE
                and choose Properties to
                configure the generation of installers for the operating systems of your
                choice, in the new Installer tab. Close the Project Properties dialog
                and then right-click the project again and
                invoke Build Installers.</li>

            <li><b>NetBeans Platform Samples.</b> Several new samples are included in NetBeans IDE 6.9
                to help newbies get started with various NetBeans
                Platform development.
                <ul>
                    <li>CRUD sample</li>
                    <li>Facebook sample</li>
                    <li>Felix sample</li>
                    <li>Equinox sample</li>
                </ul>

            </li>

        </ul>

        <h3>NetBeans API Enhancements</h3>

        <p>Read all of the changes <a href="http://bits.netbeans.org/6.9/javadoc/apichanges.html">here</a>.</p>

        <p>Other changes:</p>

            <ul>
                <li><a href="http://wiki.netbeans.org/AutoUpdateTask">AutoUpdateTask</a></li>
                <li><a href="http://hg.netbeans.org/main-golden/rev/d032dfa7b3cf">More consistency between AbstractLookup and ProxyLookup</a>.</li>
                <li><a href="http://hg.netbeans.org/main-golden/rev/9f10d5cbc0aa">Support for custom configuration files</a>. (<a href="http://blogs.sun.com/geertjan/entry/support_for_custom_configuration_files">blog entry</a>)</li>
            </ul>

        <h3>Migration</h3>
        <p>The Lookup classes have been moved into a separate module, named Lookup API. Therefore,
            all modules making use of Lookup need a new dependency on this new module. Also,
            dependencies on the Utilities API module, which previously contained the Lookup classes, 
            need to be updated to the latest version.</p>

        <p>For Ant-based NetBeans Platform applications, run this target for each module
            making use of Lookup-related classes:</p>

        <pre>ant fix-dependencies </pre>

        <p>In the IDE, you can do the following to run the above Ant target:
            Important Files &gt; Build Scripts (right click) &gt; Run target &gt; fix-dependencies</p>

        <p>Also, instead of the above, you can simply add the Lookup API module to each module that makes
            use of the Lookup classes. For each module, right-click
            the module in NetBeans IDE, choose Properties, go to the Libraries panel,
            click Add Dependency, and then add the Lookup module. For the Utilities API module,
            you can remove it from the list of dependencies and then readd it to
            set the correct version of the dependency.</p>

        <p>To achieve the above for Maven-based NetBeans Platform applications,
            you need to add the Lookup dependency to the POM of all modules that use Lookup:</p>

        <pre>
&lt;dependency&gt;
    &lt;groupId&gt;org.netbeans.api&lt;/groupId&gt;
    &lt;artifactId&gt;org-openide-util-lookup&lt;/artifactId&gt;
    &lt;version&gt;${netbeans.version}&lt;/version&gt;
&lt;/dependency&gt;</pre>

        <p>For Maven-based applications, you also need to update
            the "platform" definition (from "platform11" to "platform") in the application module:</p>

        <pre>
&lt;dependency&gt;
    &lt;groupId&gt;org.netbeans.cluster&lt;/groupId&gt;
    &lt;artifactId&gt;platform&lt;/artifactId&gt;
    &lt;version&gt;${netbeans.version}&lt;/version&gt;
    &lt;type&gt;pom&lt;/type&gt;
&lt;/dependency&gt;</pre>

        <h3>New Screencasts</h3>

        <p><a href="https://netbeans.org/kb/docs/ide/platform-screencast.html">Creating Applications on NetBeans Platform 6.9</a></p>

    </body>

</html>
