<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
   <META NAME="description" CONTENT="What's new in NetBeans IDE 3.2.1">
   <title>What's new in NetBeans IDE 3.2.1</title>
</head>
<body>

<h1>What's new</h1>

<h2>NetBeans IDE 3.2.1</h2>

<dl>
	<dt><b>Contents</b></dt>
	<dd><a href="#bugfixes">3.2.1 release</a></dd>
	<dd><a href="#features">New features in 3.2</a></dd>
	<dl>
		<dd><a href="#openide+core">OpenAPI &amp Core</a></dd>
                <dd><a href="#ant">Ant</a></dd>
                <dd><a href="#apisupport">API Support</a></dd>
		<dd><a href="#autoupdate">Auto Update (Update Center)</a></dd>
		<dd><a href="#beans">Beans module</a></dd>
		<dd><a href="#CVS">CVS module (vcscvs)</a></dd>
		<dd><a href="#debugger">Debugger</a></dd>
		<dd><a href="#editor">Editor</a></dd>
		<dd><a href="#form">Form Editor</a></dd>
		<dd><a href="#icebrowser">ICEBrowser</a></dd>
		<dd><a href="#image">Image module</a></dd>
		<dd><a href="#i18n">I18N module</a></dd>
		<dd><a href="#java">Java &amp; Clazz module</a></dd>
		<dd><a href="#jarpackager">JAR Packager</a></dd>
		<dd><a href="#javadoc">Javadoc module</a></dd>
		<dd><a href="#usersguide">Online Help (usersguide module)</a></dd>
		<dd><a href="#projects">Projects</a></dd>
		<dd><a href="#properties">Properties(Resource Bundles) module</a></dd>
		<dd><a href="#utilities">Utilities</a></dd>
	</dl>
	<dd><a href="#new">New modules</a></dd>
	<dl>
		<dd><a href="#extbrowser">External HTML browser</a></dd>
		<dd><a href="#javacvs">Javacvs (Built in CVS client)</a></dd>
		<dd><a href="#jndi">JNDI</a></dd>
		<dd><a href="#rmi">RMI</a></dd>
		<dd><a href="#VCSCore">VCS Core module</a></dd>
		<dd><a href="#VCSGeneric">VCS Generic</a></dd>
	</dl>
	<dd><a href="#other">Other Changes</a></dd>
</dl>

<h2><a NAME="bugfixes">3.2.1 release</a></h2>
The release 3.2.1 is a bugfixing release of NetBeans 3.2. It includes many bugfixes. You can look at the list of fixed bugs <A HREF="https://netbeans.org/bugzilla/buglist.cgi?issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED&resolution=FIXED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&issue_file_loc=&issue_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keywords=3.2.1_CANDIDATE&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time">online in Issuezilla</A>.


<h2><a NAME="features">New Features</a></h2>
The 3.2 release incorporates many new features since the NetBeans IDE 3.1
release.

<h3><a NAME="openide+core">OpenAPI &amp; Core</a></h3>
<blockquote>
	<ul>
		<li>Setup Wizard - enables you to set up the IDE on the first start. You can
			set the proxy, the HTML browser, and Update Center options.
			You can also disable modules you do not plan to immediately use, which can
			decrease the IDE's memory consumption and startup time.<br>
			Should you later want to change these settings, you can choose Options |
			Setup Wizard to run the setup wizard again.</li>
		<li>MDI and window system enhancements - option to run the IDE in MDI (multiple document
		        interface) mode, which means that the IDE appears as a single frame that contains
		        all of the windows and dialog boxes internally.</li>
	</ul>
</blockquote>

<h3><a NAME="ant">Ant</a></h3>
<blockquote>
	<ul>
		<li>Upgraded to Ant 1.3 release.</li>
		<li>Explorer view of build script structure.</li>
		<li>Configurable compilers, executors, properties, verbosity level, and more.</li>
                <li>Bundled Ant manual and quick help access to task reference.</li>
                <li>Better support for writing custom tasks.</li>
		<li>Many bugs fixed.</li>
  </ul>
</blockquote>

<h3><a NAME="apisupport">API Support</a></h3>
<blockquote>
	<ul>
		<li>New Module Wizard (easy module creation) - now in standard builds.</li>
                <li>Support for new reloadable module JARs, as well as Ant-based module testing.</li>
  </ul>
</blockquote>

<h3><a NAME="autoupdate">Auto Update (Update Center)</a></h3>
<blockquote>
	<ul>
		<li>The Update Center wizard was reimplemented to be more user
			friendly.</li>
		<li>The IDE's auto update facility can use more than one Update Center server. You can maintain
			the list of servers within the IDE.</li>
		<li>There is a new API which enables module writers to create services connecting
			to their own Update Center server.</li>
		<li>Installing a module by right-clicking it's downloaded NBM file in the Explorer and choosing Open,
		navigating to the NBM and selecting it using File | Open File, or right-clicking Modules in the Options
		window and choosing New | Module From NBM File.</li>
  </ul>
</blockquote>

<h3><a NAME="beans">Beans Module</a></h3>
<blockquote>
	<ul>
		<li>Various enhancements in generating beans patterns and in the beaninfo
		editor.</li>
		<li>An action for generating getter and setter methods for fields was added.</li>
	</ul>
</blockquote>

<h3><a NAME="CVS">CVS module (vcscvs)</a></h3>
<blockquote>
	<ul>
		<li>Made dependent on vcscore module and therefore provides all features,
			that are implemented in vcscore.</li>
		<li>Several new commands added.</li>
		<li>All available options can be set in dialogs when the Advanced Options
			property is set to true.</li>
		<li>Icon badging was added to show file status.</li>
	</ul>
</blockquote>

<h3><a NAME="debugger">Debugger</a></h3>
<blockquote>
	<ul>
		<li>Loaded classes view - displays a hierarchy of all loaded classes. Their
			classloaders, methods, fields and values of static fields can be inspected.</li>
		<li>Information about owned and contended monitors is provided (monitors are
			displayed as subnodes of thread nodes).</li>
		<li>Multi-session debugger functionality added - more than one debugging session
			can be started.</li>
	</ul>
</blockquote>

<h3><a NAME="editor">Editor</a></h3>
<blockquote>
	<ul>
		<li>Keyboard Macros.</li>
		<li>Fast Importing by clicking Alt+Shift+I over a class name.</li>
		<li>Fast Opening of java sources by clicking Alt+Shift+O.</li>
	</ul>
</blockquote>

<h3><a NAME="form">Form Editor</a></h3>
<blockquote>
	<ul>
		<li>New form designer - more solid, more WYSIWYG, usable in MDI (even with
			AWT components), enables design view zooming, etc.</li>
		<li>Selecting of components improved - resizing effect gone, TAB and Shift-TAB
			for selecting next/previous component, Ctrl and Alt modifiers for selecting
			lower/upper component.</li>
		<li>In-place editing of text labels of common components (like labels, buttons,
			textfields, etc).</li>
		<li>Enhanced drag&amp;drop capabilities in form designer window (for moving
			and resizing components).</li>
		<li>Standard "Look And Feel" defaults are used for designed forms (not affected
			by the IDE settings) - for really WYSIWYG forms.</li>
		<li>New Test Form action - replacing and improving old test mode, further step
			to true WYSIWYG design.</li>
		<li>Improved Component Palette - more interactive, beans can be chosen also
			from a menu (facilitating work with large amounts of beans).</li>
		<li>Support for ButtonGroup - ButtonGroup can be added as a non-visual bean
			to the form, buttons can be attached to it.</li>
	</ul>
</blockquote>

<h3><a NAME="java">Java &amp; Clazz module</a></h3>
<blockquote>
	<ul>
		<li>The Class wizard was reimplemented with a clearer user interface.</li>
		<li>A tool for managing import clauses was added.</li>
		<li>The icons now indicate whether the class file is up to date or the source
			needs to be compiled.</li>
		<li>Refactoring. The Java module was refactored. The module was divided into
			several support classes and subsystems that can be used independently of
			the module itself. Refactoring of the module also includes adding support
			for vetoable listeners and improvement of the Java hierarchy updates.</li>
	</ul>
</blockquote>

<h3><a NAME="jarpackager">JAR Packager</a></h3>
<blockquote>
<ul>
	<li>JAR files now act like other NetBeans components:</li>
	<ul>
		<li>Created via "New" wizard.</li>
		<li>Customized via property editors.</li>
		<li>Built and run with the standard Compile and Execute commands.</li>
	</ul>
	<li>Entries can be placed in any JAR directory.</li>
	<li>Multiple modules can now control the creation of JAR files.</li>
</ul>
</blockquote>

<h3><a NAME="javadoc">Javadoc module</a></h3>
<blockquote>
	<ul>
		<li>Javadoc can be generated by invoking external Javadoc. This feature solves
			some problems with the internal Javadoc which was the only option
			in earlier releases.</li>
		<li>The concept of plugable search engines was introduced. New search engines can
			be written to search types of documentation other than JDK 1.2 (e.g. internationalized
			documentation, documentation produced by 1.1 doclet, HTML fulltext etc.)</li>
		<li>Doclets are also plugable, so its possible to add support for other types
			of doclets (the MIF doclet, for example).</li>
	</ul>
</blockquote>


<h3><a NAME="i18n">I18N Module</a></h3>
<blockquote>
	<ul>
		<li>Wizard enabling you to internationalize multiple sources in one run.</li>
		<li>Test Wizard for testing internationalized strings to make sure they have key-value pairs.</li>
		<li>Internationalization of JSP. Simple one -> java code parts (scriptlets, expressions,
			declarations).</li>
		<li>Locale executor (an external executor) and the ability to choose which
			locale to run an application in.</li>
	</ul>
</blockquote>

<h3><a NAME="icebrowser">ICEBrowser</a></h3>
<blockquote>
	<ul>
		<li>We have upgraded to version 5.05 of ICEBrowser.</li>
	</ul>
</blockquote>


<h3><a NAME="image">Image Module</a></h3>
<blockquote>
	<ul>
		<li>Zooming on images.</li>
		<li>Grid for images.</li>
	</ul>
</blockquote>

<h3><a NAME="usersguide">Online Help (usersguide module)</a></h3>
<blockquote>
	<ul>
		<li>Help updated for many of the enhancements and changes in the IDE since 3.1, but not
		yet completed or thoroughly reviewed. Updates will be made available periodically
		 after the NetBeans 3.2 release.</li>
		<li>LookAndFeel tutorial and accompanying source removed because of two recently-discovered
		and relatively severe bugs.</li>
	</ul>
</blockquote>

<h3><a NAME="projects">Projects</a></h3>
<blockquote>
	<ul>
		<li>A Project Manager dialog box was added, enabling you to delete projects.</li>

	 </ul>
</blockquote>

<h3><a NAME="properties">Properties(Resource Bundles) Module</a></h3>
<blockquote>
	<ul>
		<li>Customizers for bundle, locale and key nodes.</li>
		<li>Editor-like features in table view for bundles of properties files.</li>
	</ul>
</blockquote>

<h3><a NAME="utilities">Utilities (Search in Files)</a></h3>
<blockquote>
	<ul>
		<li>Text search options &quot;Match Case&quot; and &quot;Match Whole Words Only&quot; were added.</li>
	</ul>
</blockquote>

<h2><a NAME="other">New modules</a></h2>

<h3><a NAME="extbrowser">External HTML browser</h3></a>
<blockquote>
	<ul>
		<li>Enables use of an external HTML browser. Currently Microsoft Windows Internet Explorer and Netscape Navigator are
			supported on the Microsoft Windows platform. Netscape is supported on Unix platforms.</li>
	</ul>
</blockquote>


<h3><a NAME="javacvs">Javacvs (Built-in CVS client)</h3></a>
<blockquote>
	This module adds Java native support for cvs client/server communication.
	<ul>
		<li>It supports the following commands: status, log, diff, commit, update, checkout,
			add, remove, tag.</li>
		<li>It also provides: Visual GUI representation of command's output and
			GUI dialogs for entering command parameters.</li>
	</ul>
</blockquote>



<h3><a NAME="jndi">JNDI Module</a></h3>
<blockquote>
	The JNDI specification covers uniform access to naming and directory
	services such as CORBA CosNaming, RMI Registry or LDAP.
	<ul>
		<li>The JNDI browser enables you to mount these naming contexts, browse them,
			and modify them. The module uses standard providers which are included in
			JDK 1.3. It is also possible to install and use a new provider.</li>
		<li>It is possible to use the browser for generation of the binding or
			accessing code to clipboard. This code can be put in the source editor to
			enable you to program handling of objects in directories. </li>
	</ul>
</blockquote>

<h3><a NAME="rmi">RMI Module</h3></a>
<blockquote>
	<ul>
		<li>Provides the RMI Stub Compiler which enables you to generate
			stubs and skeletons. You can also use the RMI Executor to execute remote
			objects using dynamic class loading.</li>
		<li>The RMI Registry Browser enables you to browse RMI registries that
			are running on your local machine or elsewhere on the network. You
			can see the remote interfaces and remote objects that have been
			registered with the naming service and perform operations such as
			copying client-side binding code.</li>
		<li>The Activation System Browser enables you to browse Activation Systems that
			are running on your local machine or elsewhere on the network. You
			can use customizers to see and modify registered groups, activation
			objects, and serialized data. It is also possible to perform special
			operations like copying client-side binding code, shutdown,
			activation, inactivation and registering an activation object into
			the RMI Registry.</li>
		<li>You can create a new RMI Object using the RMI Wizard or RMI
			templates. There are predefined templates for UnicastRemoteObject,
			Activatable and PortableRemoteObject (RMI-IIOP).</li>
	</ul>
</blockquote>

<h3><a NAME="VCSCore">VCS Core module</h3></a>
<blockquote>
	Module, that provides a generic base, to plug-in any version
	control system to the IDE.
	<ul>
		<li>A history of all VCS commands called is stored on the Runtime
			tab.</li>
		<li>A wizard for mounting VCS filesystems is now shared between
			the Javacvs a the CVS modules</li>
		<li>"Versioning" menu was added into the IDE's main menu.</li>
	</ul>
</blockquote>


<h3><a NAME="VCSGeneric">VCS Generic module</h3></a>
<blockquote>
	A new module which enables you to add support in the IDE for any
	command-line version control system.
</blockquote>

<h2><a NAME="other">Other Changes</a></h2>

<ul>
	<li>The IDE runs in the mode separating user's settings
		and IDE installation directory by default. The directory where to
		store the user settings can be specified on first start or as
		an option in the launcher (see the accompanying README file).</li>
	<li>The IDE uses Xerces 1.3.0 as XML parser.</li>
</ul>

</body>
</html>
