The supplied dates indicate when the API change was made, on the CVS trunk. From this you can generally tell whether the change should be present in a given build or not; for trunk builds, simply whether it was made before or after the change; for builds on a stabilization branch, whether the branch was made before or after the given date. In some cases corresponding API changes have been made both in the trunk and in an in-progress stabilization branch, if they were needed for a bug fix; this ought to be marked in this list.
release41 branch was made on Apr 03 '05 for use in the NetBeans 4.1 release.
Specification versions: 6.0 begins after this point.
release40 branch was made on Nov 01 '04 for use in the NetBeans 4.0 release.
Specification versions: 5.0 begins after this point.
Fuller descriptions of all changes can be found below (follow links).
Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.
ExternalDropHandler abstract class.TopComponent.getHtmlDisplayName,
TopComponent.setHtmlDisplayName and
WindowManager.topComponentHtmlDisplayNameChanged methods.TopComponent ability to bring their parent
Window to front of other windows.InputOutput removedThese API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:
OpenIDE-Module-Module-Dependencies: org.openide.windows > 1.20
ExternalDropHandler abstract class.TopComponent.getHtmlDisplayName,
TopComponent.setHtmlDisplayName and
WindowManager.topComponentHtmlDisplayNameChanged methods.TopComponent ability to bring their parent
Window to front of other windows.org.openide.actions.AbstractCompileActionorg.openide.actions.AddWatchActionorg.openide.cookies.ArgumentsCookieorg.openide.actions.BuildActionorg.openide.actions.BuildAllActionorg.openide.actions.BuildProjectActionorg.openide.explorer.propertysheet.editors.ChoicePropertyEditororg.openide.actions.CleanActionorg.openide.actions.CleanAllActionorg.openide.windows.CloneableTopComponentorg.openide.actions.CompileActionorg.openide.actions.CompileAllActionorg.openide.actions.CompileProjectActionorg.openide.cookies.CompilerCookieorg.openide.loaders.CompilerSupportorg.openide.options.ControlPanelorg.openide.loaders.DataObjectFilterorg.openide.cookies.DebuggerCookieorg.openide.actions.DebugProjectActionorg.openide.DialogDisplayerorg.openide.explorer.propertysheet.editors.DirectoryOnlyEditororg.openide.cookies.ElementCookieorg.openide.explorer.propertysheet.editors.ElementFormatEditororg.openide.cookies.ExecCookieorg.openide.loaders.ExecSupportorg.openide.actions.ExecuteActionorg.openide.actions.ExecuteProjectActionorg.openide.loaders.ExecutionSupportorg.openide.loaders.ExtensionListEditororg.openide.explorer.propertysheet.editors.ExternalCompilerorg.openide.windows.ExternalDropHandlerExternalDropHandler abstract class.org.openide.explorer.propertysheet.editors.FileEditororg.openide.explorer.propertysheet.editors.FileOnlyEditororg.openide.filesystems.FileUtilorg.openide.actions.FinishDebuggerActionorg.openide.actions.GoActionorg.openide.actions.GoToCursorActionorg.openide.actions.HelpActionorg.openide.awt.HtmlBrowserorg.openide.explorer.propertysheet.editors.IconEditororg.openide.explorer.propertysheet.editors.IdentifierArrayEditororg.openide.modules.IllegalModuleExceptionorg.openide.windows.InputOutputInputOutput removedorg.openide.windows.IOProviderorg.openide.LifecycleManagerorg.openide.modules.ManifestSectionorg.openide.explorer.propertysheet.editors.MethodParameterArrayEditororg.openide.explorer.propertysheet.editors.ModifierEditororg.openide.modules.ModuleDescriptionorg.openide.nodes.NodeOperationorg.openide.NotifyDescriptororg.openide.actions.OpenProjectActionorg.openide.windows.OutputEventorg.openide.windows.OutputListenerorg.openide.windows.OutputWriterorg.openide.Placesorg.openide.cookies.ProjectCookieorg.openide.util.actions.ProjectSensitiveActionorg.openide.loaders.RepositoryNodeFactoryorg.openide.actions.SaveProjectActionorg.openide.cookies.SourceCookieorg.openide.actions.StartDebuggerActionorg.openide.awt.StatusDisplayerorg.openide.actions.StepOutActionorg.openide.explorer.propertysheet.editors.StringArrayCustomEditororg.openide.explorer.propertysheet.editors.StringArrayCustomizableorg.openide.explorer.propertysheet.editors.StringArrayEditororg.openide.actions.ToggleBreakpointActionorg.openide.windows.TopComponentTopComponent.getHtmlDisplayName,
TopComponent.setHtmlDisplayName and
WindowManager.topComponentHtmlDisplayNameChanged methods.TopComponent ability to bring their parent
Window to front of other windows.org.openide.windows.TopComponentGrouporg.openide.TopManagerorg.openide.actions.TraceIntoActionorg.openide.actions.TraceOverActionorg.openide.explorer.propertysheet.editors.TypeEditororg.openide.windows.WindowManagerTopComponent.getHtmlDisplayName,
TopComponent.setHtmlDisplayName and
WindowManager.topComponentHtmlDisplayNameChanged methods.TopComponent ability to bring their parent
Window to front of other windows.org.openide.WizardDescriptororg.openide.windows.WorkspaceWindowManager; made by: saubrecht; issues:
#168060TopComponent.
There is a set of new properties defined in resource bundle which platform developers can use to customize the behavior of NetBeans' window system:
The features above can be turned on/off simply by branding of core.windows module.
WindowManager; made by: saubrecht; issues:
#102174TopComponent WindowManager; made by: dsimonek; issues:
#94604WindowManager; made by: saubrecht; issues:
#96338WindowManager; made by: dsimonek; issues:
#87009WindowManager; made by: dsimonek; issues:
#65431ExternalDropHandler abstract class.ExternalDropHandler; made by: saubrecht; issues:
#50129Lookup to get an
instance of ExternalDropHandler class. If such an instance
is available then it will be used to check whether the drop can be accepted
(methods canDrop) and eventually to handle the dropped
object(s) as well - method handleDrop - for example open
dropped files in editor.
DropTargetListeners
(for example Projects view or Files view) therefore the ExternalDropHandler
will not be used when dragging over these components.
TopComponent.getHtmlDisplayName,
TopComponent.setHtmlDisplayName and
WindowManager.topComponentHtmlDisplayNameChanged methods.TopComponent WindowManager; made by: dsimonek; issues:
#66777TopComponent.getHtmlDisplayName and TopComponent.setHtmlDisplayName
methods was added to allow TopComponents to have display
name that contains html tags differentiated from regular display name.
Regular display name should be used for tasks like alphabetical sorting
while html display name is used for labels and titles that support html,
like editor tabs. WindowManager.topComponentHtmlDisplayNameChanged
was also added to let window system implementation know about html
display name change.
TopComponent ability to bring their parent
Window to front of other windows.TopComponent WindowManager; issues:
#56277TopComponent class has a new method toFront()
that attempts to bring the parent Window of the TopComponent to
front of other top-level windows.
The method is implemented in the WindowManager class
using AWT's java.awt.Window#toFront().
WindowManager TopComponent; made by: mkleint; issues:
#48811
TopComponent.requestAttention(boolean) and TopComponent.cancelRequestAttention
added to allow components to signal that they require user's attention or the attention is no longer required.
It's up to the current TopComponent container to decide how to attract user's attention.
If the user activates the attention-requiring component, the container assumes the goal was achieved and the action is cancelled.
The methods are thread-safe.
For those implementing WindowManager class, there is an incompatible change where
abstract methods topComponentCancelRequestAttention(TopComponent) and
topComponentRequestAttention(TopComponent) were added.
TopComponent; made by: jtulach; issues:
#38475TopComponent.associateLookup to allow
late (in middle of constructor) association of Lookup with
component. This is especially useful in
org.openide.explorer.ExplorerUtils.
TopComponent; made by: mslama; issues:
#36916TopComponent; made by: jtulach; issues:
#38185TopComponents to provide
their own Lookup and still maintain their contract with
getActivatedNodes.
WindowManager; made by: mslama; issues:
#37199CloneableTopComponent TopComponent TopComponentGroup WindowManager Workspace; made by: pzavadsky; issues:
#29836TopComponent CloneableTopComponent; made by: jtulach; issues:
#32143TopComponent (DataObject)
and CloneableTopComponent (DataObject)
constructors have been removed. Instead of using the old behavior
new TopComponent (dataObject);
please change the code to use TopComponent.NodeName:
tc = new TopComponent ();
NodeName.connect (tc, dataObject.getNodeDelegate ());
CloneableTopComponent; made by: pzavadsky; issues:
#25824getAnyComponent in CloneableTopComponent.Ref
class uses NoSuchElementException as a mean indicating there is no
component. Moreover the exception is runtime one (unchecked).
It forces clients to use try-catch blocks, which doesn't follow
rule, which says there shouldn't be used exception for controlling program flow.
It is replaced by method getArbitraryComponent which returns
null instead of throwing an exception.
org.openide.WizardDescriptor; made by: dkonecny; issues:
#28466TopComponent WindowManager; made by: pzavadsky; issues:
#21618TopComponent:
protected void componentShowing(), protected void componentHidded(),
protected void componentOpened(), protected void componentClose().
The last two replaces deprecated protected void openNotify()
and protected void closeNotify() methods.
Two methods were added also to WindowManager to handle the
notifiction via its subclasses:
protected void componentShowing(TopComponent)
and protected void componentHidden(TopComponent).
TopComponent; made by: dsimonek; issues:
#20153WindowManager; made by: dsimonek; issues:
#20942TopComponent WindowManagerpublic void TopComponent.requestVisible()
public void WindowManager.Component.requestVisible()
org.openide.NotifyDescriptorisValid and setValid, added
property name String constant PROP_VALID. It can be used to
change validity (enable/disable) of standard OK button in dialog.
TopComponent WindowManagerprotected void TopComponent.openNotify()
protected void TopComponent.closeNotify()
protected void WindowManager.componentOpenNotify(TopComponent tc)
protected void WindowManager.componentCloseNotify(TopComponent tc)
org.openide.WizardDescriptorWizardDescriptor.Panel.readSettings can throw
IllegalStateException. This can be used to indicate that data
provided by the previous panels are not OK and that the panel wants the
wizard to go back one panel.
org.openide.WizardDescriptor((JComponent)WizardDescriptor.current().getComponent()).putClientProperty()
or WizardDescriptor.putProperty().
InputOutput removedorg.openide.windows.InputOutputInputOutput.Null
InputOutput.NullOutputWriter
InputOutput.nullReader
InputOutput.nullWriter
boston. Any code referring to these members is erroneous and
must be rewritten. The only useful related member, the
InputOutput.NULL constant, is still public and accessible.
org.openide.actions.AbstractCompileAction org.openide.actions.BuildAction org.openide.actions.BuildAllAction org.openide.actions.CleanAction org.openide.actions.CleanAllAction org.openide.actions.CompileAction org.openide.actions.CompileAllAction org.openide.actions.ExecuteAction org.openide.cookies.ArgumentsCookie org.openide.cookies.CompilerCookie org.openide.cookies.ExecCookie org.openide.filesystems.FileUtil org.openide.loaders.CompilerSupport org.openide.loaders.ExecutionSupport org.openide.windows.IOProvider org.openide.windows.InputOutput org.openide.windows.OutputEvent org.openide.windows.OutputListener org.openide.windows.OutputWriter; affected packages: org.openide.compiler org.openide.execution; made by: jglick; issues:
#19443Three sections of the Open APIs were split into new autoload modules.
The module org.openide.compiler (version 1.0) contains
the Compiler API and some other classes directly related to it.
The module org.openide.execution (version 1.0) contains
the Execution API and some other classes directly related to it.
The module org.openide.io (version 1.0) contains
InputOutput and related classes (formerly part of the
Window System API, and still physically in the
org.openide.windows package).
New modules wishing to use these APIs must declare regular module dependencies on them. Future changes in these APIs will be documented separately.
Furthermore, modules wishing to use certain services must
OpenIDE-Module-Require them if appropriate:
org.openide.compiler.CompilationEngine, in order to
call CompilationEngine.getDefault(), or safely use
AbstractCompileAction or one of its subclasses, or
call CompilerJob.start(), or use
BeanInfos for Compiler API classes, etc.
org.openide.execution.ExecutionEngine, in order to
call ExecutionEngine.getDefault(), or safely use
ExecuteAction, or call
Executor.execute(...), or use BeanInfos
for Execution API classes, etc.
org.openide.windows.IOProvider, in order to call
IOProvider.getDefault().
Other minor changes:
Registration of URL stream handler factories using
NbfsStreamHandlerFactory.register(...) is deprecated.
Simply create an instance of URLStreamHandlerFactory
and add it to Lookup instead.
The method FileUtil.nbfsURLStreamHandler was added,
but is not intended for use by modules.
All uses of ExecInfo are deprecated as they abuse the
distinction between Filesystems and the user classpath. Use and
override only Executor.execute(DataObject). Similarly,
ThreadExecutor is deprecated for the time being
because it suffers from similar problems.
Direct use of NbfsURLConnection is deprecated in favor
of the more general URLMapper from the Filesystems
API.
Package dependencies on
org.netbeans.lib.terminalemulator must be replaced
with module dependencies on a new autoload module
org.netbeans.lib.terminalemulator (version 1.0).
Several static convenience methods have been added to
AbstractCompileAction. Of most interest is
prepareJobFor. Module code should no longer assume
that DataFolder has a CompilerCookie
which recursively compiles the folder and subfolders (according to
depth); while it is still true, for reasons of compatibility, new
code should use prepareJobFor to create a compiler job
from a folder.
Module authors using the now-separated APIs will need to adjust their compilation classpaths to include the new JAR files. Modules wishing to use recent APIs and declaring a current openide specification version dependency will need to explicitly declare dependencies on these new APIs if there are any.
For compatibility, modules with no declared Open APIs dependency, or declared on a version prior to 3.17, will have their dependencies automatically refined as if to include the declarations:
OpenIDE-Module-Module-Dependencies: org.openide.compiler > 1.0,
org.openide.execution > 1.0, org.openide.io > 1.0
OpenIDE-Module-Requires: org.openide.compiler.CompilationEngine,
org.openide.execution.ExecutionEngine, org.openide.windows.IOProvider
And any package dependencies from old modules on
org.netbeans.lib.terminalemulator will be converted to
module dependencies.
org.openide.DialogDisplayer org.openide.LifecycleManager org.openide.Places org.openide.TopManager org.openide.actions.AddWatchAction org.openide.actions.BuildProjectAction org.openide.actions.CompileProjectAction org.openide.actions.DebugProjectAction org.openide.actions.ExecuteProjectAction org.openide.actions.FinishDebuggerAction org.openide.actions.GoAction org.openide.actions.GoToCursorAction org.openide.actions.HelpAction org.openide.actions.OpenProjectAction org.openide.actions.SaveProjectAction org.openide.actions.StartDebuggerAction org.openide.actions.StepOutAction org.openide.actions.ToggleBreakpointAction org.openide.actions.TraceIntoAction org.openide.actions.TraceOverAction org.openide.awt.HtmlBrowser org.openide.awt.StatusDisplayer org.openide.cookies.DebuggerCookie org.openide.cookies.ElementCookie org.openide.cookies.ProjectCookie org.openide.cookies.SourceCookie org.openide.explorer.propertysheet.editors.ChoicePropertyEditor org.openide.explorer.propertysheet.editors.DirectoryOnlyEditor org.openide.explorer.propertysheet.editors.ElementFormatEditor org.openide.explorer.propertysheet.editors.ExternalCompiler org.openide.explorer.propertysheet.editors.FileEditor org.openide.explorer.propertysheet.editors.FileOnlyEditor org.openide.explorer.propertysheet.editors.IconEditor org.openide.explorer.propertysheet.editors.IdentifierArrayEditor org.openide.explorer.propertysheet.editors.MethodParameterArrayEditor org.openide.explorer.propertysheet.editors.ModifierEditor org.openide.explorer.propertysheet.editors.StringArrayCustomEditor org.openide.explorer.propertysheet.editors.StringArrayCustomizable org.openide.explorer.propertysheet.editors.StringArrayEditor org.openide.explorer.propertysheet.editors.TypeEditor org.openide.loaders.DataObjectFilter org.openide.loaders.ExecSupport org.openide.loaders.ExecutionSupport org.openide.loaders.ExtensionListEditor org.openide.loaders.RepositoryNodeFactory org.openide.modules.IllegalModuleException org.openide.modules.ManifestSection org.openide.modules.ModuleDescription org.openide.nodes.NodeOperation org.openide.options.ControlPanel org.openide.util.actions.ProjectSensitiveAction org.openide.windows.IOProvider; affected packages: org.openide.debugger org.openide.src org.openide.src.nodes; made by: jglick; issues:
#19443
#20898Many classes were moved to a separate module, openide-deprecated.jar, not available to modules by default. Uses of these classes in modules should be cleaned up whenever possible.
Additionally, the entire contents of org.openide.src.* and
org.openide.src.nodes.*, as well as
org.openide.cookies.SourceCookie and some associated
property editors, were moved to a separate module.
The most common apparent symptom for module authors will be the absence
of TopManager. Most methods in this class have been
replaced by newer utility classes in a straightforward manner. See the
Upgrade Guide.
The deprecated classes continue to be available in the module
org.openide.deprecated which you may depend on it you
cannot remove uses of the deprecated APIs. In order for
TopManager.getDefault() to work, you must also require the
token org.openide.TopManager, which is provided by an
unspecified module. The deprecated API module and its implementation
module are autoloads, meaning they will not be loaded unless some
module still requires them.
Similarly, the Java Hierarchy API was moved to the module
org.openide.src which you should depend on in order to use
this API.
For compatibility, the above three dependencies are added to your module automatically in case it either requests no specific API version at all, or requests an API version prior to 3.14. Modules requesting APIs 3.14 or higher must declare these dependencies explicitly if they in fact need them.
Built on July 6 2010. | Portions Copyright 1997-2010 Sun Microsystems, Inc. All rights reserved.