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 publicBeanChildren changed superclasssetChildren() in Node
Index.Support.showIndexedCustomizer
AbstractNode.cookieSet protected, not publicChildren.Keys.createNodes can be null
Index.KeyChildren.createIndex protectedBeanChildren changed superclassIndex.KeyChildren
NodeOp.setDefaultActions 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.nodes > 1.20
setChildren() in Node
Index.Support.showIndexedCustomizer
org.openide.actions.AbstractCompileActionorg.openide.nodes.AbstractNodeAbstractNode.cookieSet protected, not publicorg.openide.actions.AddWatchActionorg.openide.cookies.ArgumentsCookieorg.openide.nodes.BeanChildrenBeanChildren changed superclassorg.openide.nodes.BeanNodeorg.openide.actions.BuildActionorg.openide.actions.BuildAllActionorg.openide.actions.BuildProjectActionorg.openide.nodes.ChildFactoryorg.openide.nodes.ChildrenChildren.Keys.createNodes can be null
org.openide.explorer.propertysheet.editors.ChoicePropertyEditororg.openide.actions.CleanActionorg.openide.actions.CleanAllActionorg.openide.actions.CompileActionorg.openide.actions.CompileAllActionorg.openide.actions.CompileProjectActionorg.openide.cookies.CompilerCookieorg.openide.loaders.CompilerSupportorg.openide.options.ControlPanelorg.openide.nodes.CookieSetorg.openide.loaders.DataObjectFilterorg.openide.cookies.DebuggerCookieorg.openide.actions.DebugProjectActionorg.openide.nodes.DefaultHandleorg.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.explorer.propertysheet.editors.FileEditororg.openide.explorer.propertysheet.editors.FileOnlyEditororg.openide.filesystems.FileUtilorg.openide.nodes.FilterNodeorg.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.nodes.IndexIndex.Support.showIndexedCustomizer
Index.KeyChildren.createIndex protectedIndex.KeyChildren
org.openide.nodes.IndexedCustomizerIndex.Support.showIndexedCustomizer
org.openide.explorer.propertysheet.InplaceEditororg.openide.windows.InputOutputorg.openide.windows.IOProviderorg.openide.LifecycleManagerorg.openide.modules.ManifestSectionorg.openide.explorer.propertysheet.editors.MethodParameterArrayEditororg.openide.explorer.propertysheet.editors.ModifierEditororg.openide.modules.ModuleDescriptionorg.openide.nodes.NodesetChildren() in Node
org.openide.nodes.NodeMemberEventorg.openide.nodes.NodeOpNodeOp.setDefaultActions removedorg.openide.nodes.NodeOperationorg.openide.nodes.NodeReorderEventorg.openide.actions.OpenProjectActionorg.openide.windows.OutputEventorg.openide.windows.OutputListenerorg.openide.windows.OutputWriterorg.openide.Placesorg.openide.cookies.ProjectCookieorg.openide.util.actions.ProjectSensitiveActionorg.openide.explorer.propertysheet.PropertyEnvorg.openide.explorer.propertysheet.PropertySheetorg.openide.explorer.propertysheet.PropertySheetSettingsorg.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.TopManagerorg.openide.actions.TraceIntoActionorg.openide.actions.TraceOverActionorg.openide.explorer.propertysheet.editors.TypeEditorNodeOp; made by: jtulach; issues:
#161286NodeOp.factory is new layer based factory method to allow declarative definition of a root node into the UI.
ChildFactory; made by: tboudreau; issues:
#153347ChildFactory.Detachable is an abstract class which adds addNotify() and removeNotify() methods to ChildFactory. addNotify() is called immediately before the first call to createKeys() after creation or a call to removeNotify().
Children NodeMemberEvent NodeReorderEvent; made by: t_h; issues:
#121913Children.Keys(boolean lazy).
Children.getNodesCount(boolean optimalResult) can be
used instead of Children.getNodes(boolean optimalResult)
for children "initialization". While keeping same behavior as
Children.getNodes(boolean optimalResult) for "default"
(non-lazy) implementation it allows full initialization without need to
create all nodes. Children.snapshot() creates an immutable snapshot representing
the current view of the nodes in this children object. Such snapshots are available in
NodeMemberEvent and
NodeReorderEvent
via getSnapshot() and provide information about state of nodes
in time when events were emited.
Children; made by: t_h; issues:
#121913
ChildFactory can also be used to implement synchronous children,
by setting the asynchronous parameter passed to
Children.create() to false. This could replace most
common usages of Children.Keys, and make it easy to switch to
asynchronous child computation if that is determined to be
necessary for performance reasons.
CookieSet; made by: jtulach; issues:
#62707getLookup 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:
#67098BeanNode, allowing
subclasses to pass context Lookup.
AbstractNode; made by: pnejedly; issues:
#53461AbstractNode 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:
#31006getValue(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:
#29447PropertySheetSettings 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:
#32470NodeOp; made by: pzavadsky; issues:
#31476NodeOp.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: dstruplNode; made by: jtulach; issues:
#26790setChildren() in Node
Node; made by: phrebejkNode 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: pnejedlyCookieSet; made by: dstrupl; issues:
#15373FilterNode; made by: phrebejk; issues:
#12048Method 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:
#9323Index.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:
#15495Method 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 publicAbstractNode; made by: jglickgetCookieSet 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: jtulachcreateNodes(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 protectedIndexcreateIndex made protected.
Indexprotected 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: jglickNode.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.
NodeOpfindContextMenuImpl. 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 superclassBeanChildrenChildren.Map to
Children.Keys.
initMap
put
putAll
remove
removeAll
BeanChildren (it is rarely
used at all).
Index.KeyChildren
Indexjava.util.List. Automatically provide
implementation of Index to reorder content of the list.
NodeOp.setDefaultActions removedNodeOpsetDefaultActions deprecated.
boston. Only technically incompatible: could always only be
called once, otherwise a SecurityException would be thrown.
DefaultHandle; made by: jglickDefaultHandle 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:
#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.