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.
AbstractNode.cookieSet protected, not public
BeanChildren changed superclass
setChildren() in Node
Index.Support.showIndexedCustomizer
AbstractNode.cookieSet protected, not public
Children.Keys.createNodes can be null
Index.KeyChildren.createIndex protected
BeanChildren changed superclass
Index.KeyChildren
NodeOp.setDefaultActions removed
These 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.nodes > 1.20
setChildren() in Node
Index.Support.showIndexedCustomizer
org.openide.actions.AbstractCompileAction
org.openide.nodes.AbstractNode
AbstractNode.cookieSet protected, not public
org.openide.actions.AddWatchAction
org.openide.cookies.ArgumentsCookie
org.openide.nodes.BeanChildren
BeanChildren changed superclass
org.openide.nodes.BeanNode
org.openide.actions.BuildAction
org.openide.actions.BuildAllAction
org.openide.actions.BuildProjectAction
org.openide.nodes.Children
Children.Keys.createNodes can be null
org.openide.explorer.propertysheet.editors.ChoicePropertyEditor
org.openide.actions.CleanAction
org.openide.actions.CleanAllAction
org.openide.actions.CompileAction
org.openide.actions.CompileAllAction
org.openide.actions.CompileProjectAction
org.openide.cookies.CompilerCookie
org.openide.loaders.CompilerSupport
org.openide.options.ControlPanel
org.openide.nodes.CookieSet
org.openide.loaders.DataObjectFilter
org.openide.cookies.DebuggerCookie
org.openide.actions.DebugProjectAction
org.openide.nodes.DefaultHandle
org.openide.DialogDisplayer
org.openide.explorer.propertysheet.editors.DirectoryOnlyEditor
org.openide.cookies.ElementCookie
org.openide.explorer.propertysheet.editors.ElementFormatEditor
org.openide.cookies.ExecCookie
org.openide.loaders.ExecSupport
org.openide.actions.ExecuteAction
org.openide.actions.ExecuteProjectAction
org.openide.loaders.ExecutionSupport
org.openide.loaders.ExtensionListEditor
org.openide.explorer.propertysheet.editors.ExternalCompiler
org.openide.explorer.propertysheet.editors.FileEditor
org.openide.explorer.propertysheet.editors.FileOnlyEditor
org.openide.filesystems.FileUtil
org.openide.nodes.FilterNode
org.openide.actions.FinishDebuggerAction
org.openide.actions.GoAction
org.openide.actions.GoToCursorAction
org.openide.actions.HelpAction
org.openide.awt.HtmlBrowser
org.openide.explorer.propertysheet.editors.IconEditor
org.openide.explorer.propertysheet.editors.IdentifierArrayEditor
org.openide.modules.IllegalModuleException
org.openide.nodes.Index
Index.Support.showIndexedCustomizer
Index.KeyChildren.createIndex protected
Index.KeyChildren
org.openide.nodes.IndexedCustomizer
Index.Support.showIndexedCustomizer
org.openide.explorer.propertysheet.InplaceEditor
org.openide.windows.InputOutput
org.openide.windows.IOProvider
org.openide.LifecycleManager
org.openide.modules.ManifestSection
org.openide.explorer.propertysheet.editors.MethodParameterArrayEditor
org.openide.explorer.propertysheet.editors.ModifierEditor
org.openide.modules.ModuleDescription
org.openide.nodes.Node
setChildren() in Node
org.openide.nodes.NodeOp
NodeOp.setDefaultActions removed
org.openide.nodes.NodeOperation
org.openide.actions.OpenProjectAction
org.openide.windows.OutputEvent
org.openide.windows.OutputListener
org.openide.windows.OutputWriter
org.openide.Places
org.openide.cookies.ProjectCookie
org.openide.util.actions.ProjectSensitiveAction
org.openide.explorer.propertysheet.PropertyEnv
org.openide.explorer.propertysheet.PropertySheet
org.openide.explorer.propertysheet.PropertySheetSettings
org.openide.loaders.RepositoryNodeFactory
org.openide.actions.SaveProjectAction
org.openide.cookies.SourceCookie
org.openide.actions.StartDebuggerAction
org.openide.awt.StatusDisplayer
org.openide.actions.StepOutAction
org.openide.explorer.propertysheet.editors.StringArrayCustomEditor
org.openide.explorer.propertysheet.editors.StringArrayCustomizable
org.openide.explorer.propertysheet.editors.StringArrayEditor
org.openide.actions.ToggleBreakpointAction
org.openide.TopManager
org.openide.actions.TraceIntoAction
org.openide.actions.TraceOverAction
org.openide.explorer.propertysheet.editors.TypeEditor
CookieSet; made by: jtulach; issues:
#62707
getLookup to
allow queries for of its content.
Also there is a new method
assign(clazz, instances) that allows to add/remove
plain old java objects to the CookieSet.
BeanNode; made by: pnejedly; issues:
#67098
BeanNode, allowing
subclasses to pass context Lookup.
AbstractNode; made by: pnejedly; issues:
#53461
AbstractNode to use PNG files
as icons. Adding new final method
setIconBaseWithExtension(String baseExt)
which replaces the original method for manipulating icon base,
setIconBase(String).
The original (now deprecated) method stil works the same way,
using ".gif" as extension
The original method setIconBase(String) delegates
to the new one, using the default extension.
FilterNode; made by: pnejedly; issues:
#31006
getValue(String) and setValue(String, Object)
calls the to the original node. Also, FilterNode now exports two
new constants, FilterNode.DELEGATE_SET_VALUE and
FilterNode.DELEGATE_GET_VALUE, which can be used to control
the delegation of the above mentioned methods.
Node org.openide.explorer.propertysheet.InplaceEditor org.openide.explorer.propertysheet.PropertyEnv org.openide.explorer.propertysheet.PropertySheet org.openide.explorer.propertysheet.PropertySheetSettings; made by: tboudreau; issues:
#29447
PropertySheetSettings is an old SystemOption subclass that offers settings that affect the display of the property sheet. These settings are irrelevant to the new property sheet.
In order to provide some performance optimizations, it was necessary to un-final the class PropertyEnv. However, it should be treated as final outside the package - there should never be a need to subclass it. A note has been added to its javadoc to this effect.
A non-normative hint may now be supplied by instances of Node.PropertySet to return a localized display name for a tab which the property sheet should use for displaying that and any other property sets which share the name: "tabName".
FilterNode; made by: jtulach; issues:
#32470
NodeOp; made by: pzavadsky; issues:
#31476
NodeOp.findActions(Nodep[]) is changed
the way it returns an empty array instead of null (for the cases
there are no actions found). Also javadoc is refined in that sense.
Node; made by: dstrupl
Node; made by: jtulach; issues:
#26790
setChildren() in Node
Node; made by: phrebejk
Node has new method setChildren(Children) which allows
to change the Children of given Node. Node also fires
new PropertyChangeEvent(PROP_LEAF) whenever changing
children from non-LEAF to LEAF and vice-versa.
Children; made by: pnejedly
CookieSet; made by: dstrupl; issues:
#15373
FilterNode; made by: phrebejk; issues:
#12048
Method protected final void changeOriginal( Node original, boolean
) and protected final void changeOriginal( Node original added
to the class FilterNode and FilterNode.Children.
The methods allow to change the Node resp. Children the FilterNode resp.
FilterNode.Children delegates to. For more detailed information please see the
Javadoc of the methods.
Index.Support.showIndexedCustomizer
Index IndexedCustomizer; made by: jglick; issues:
#9323
Index.Support.showIndexedCustomizer(Index)
was added to provide a simpler way of displaying a dialog to reorder a
set of nodes based on an index cookie. Unlike direct use of the
IndexedCustomizer dialog, it interacts smoothly with the
IDE's window system.
IndexedCustomizer directly (as a dialog) should
consider using the new method instead.
Node; made by: phrebejk; issues:
#15495
Method protected final boolean hasPropertyChangeListeners() added
to the class Node. Method returns true if at least one PropertyChangeListener
is attached to the Node. At the same time changes were made to optimize the number
of attached listeners so calling this method should have some information value.
AbstractNode.cookieSet protected, not public
AbstractNode; made by: jglick
getCookieSet now protected, not public. Logically it should
never have been public, since each object is responsible for providing its
own set of cookies as it sees fit, and making it possible for anyone to
retrieve and modify its cookie set without its explicit permission
violates this modularity. Also setCookieSet deprecated.
MultiDataObject
.
Children.Keys.createNodes can be null
Children; made by: jtulach
createNodes(Object key) can now return null if
the key should have no nodes to represent it. The purpose is to reduce the
number of useless created objects.
Index.KeyChildren.createIndex protected
Index
createIndex made protected.
Index
protected Index.KeyChildren.lock() which returns an object that is
used as a synchronization lock when working the the list object provided
in constructor.
Node; made by: jglick
Node.PropertySet and Node.Property may now have
the FeatureDescriptor property helpID set on
them (to a String) help ID) which may be used in the property
sheet.
NodeOp
findContextMenuImpl. In case of constructing
menu from node which for some reason has more than one occurrence of the
same SystemAction no menu item was created. Now one menu item
will be created for such an action, where the first occurrence is taken
into account.
BeanChildren changed superclass
BeanChildren
Children.Map to
Children.Keys.
initMap
put
putAll
remove
removeAll
BeanChildren (it is rarely
used at all).
Index.KeyChildren
Index
java.util.List. Automatically provide
implementation of Index to reorder content of the list.
NodeOp.setDefaultActions removed
NodeOp
setDefaultActions deprecated.
boston. Only technically incompatible: could always only be
called once, otherwise a SecurityException would be thrown.
DefaultHandle; made by: jglick
DefaultHandle rewritten. Now stores just handle of direct
parent, so that intervening nodes have the opportunity to supply their own
handles.
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:
#19443
Three 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
#20898
Many 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 May 28 2007. | Portions Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.