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.
TopComponent.getHtmlDisplayName
,
TopComponent.setHtmlDisplayName
and
WindowManager.topComponentHtmlDisplayNameChanged
methods.
TopComponent
ability to bring their parent
Window
to front of other windows.
InputOutput
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.windows > 1.20
TopComponent.getHtmlDisplayName
,
TopComponent.setHtmlDisplayName
and
WindowManager.topComponentHtmlDisplayNameChanged
methods.
TopComponent
ability to bring their parent
Window
to front of other windows.
org.openide.actions.AbstractCompileAction
org.openide.actions.AddWatchAction
org.openide.cookies.ArgumentsCookie
org.openide.actions.BuildAction
org.openide.actions.BuildAllAction
org.openide.actions.BuildProjectAction
org.openide.explorer.propertysheet.editors.ChoicePropertyEditor
org.openide.actions.CleanAction
org.openide.actions.CleanAllAction
org.openide.windows.CloneableTopComponent
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.loaders.DataObjectFilter
org.openide.cookies.DebuggerCookie
org.openide.actions.DebugProjectAction
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.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.windows.InputOutput
InputOutput
removed
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.NodeOperation
org.openide.NotifyDescriptor
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.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.windows.TopComponent
TopComponent.getHtmlDisplayName
,
TopComponent.setHtmlDisplayName
and
WindowManager.topComponentHtmlDisplayNameChanged
methods.
TopComponent
ability to bring their parent
Window
to front of other windows.
org.openide.windows.TopComponentGroup
org.openide.TopManager
org.openide.actions.TraceIntoAction
org.openide.actions.TraceOverAction
org.openide.explorer.propertysheet.editors.TypeEditor
org.openide.windows.WindowManager
TopComponent.getHtmlDisplayName
,
TopComponent.setHtmlDisplayName
and
WindowManager.topComponentHtmlDisplayNameChanged
methods.
TopComponent
ability to bring their parent
Window
to front of other windows.
org.openide.WizardDescriptor
org.openide.windows.Workspace
TopComponent.getHtmlDisplayName
,
TopComponent.setHtmlDisplayName
and
WindowManager.topComponentHtmlDisplayNameChanged
methods.
TopComponent
WindowManager
; made by: dsimonek; issues:
#66777
TopComponent.getHtmlDisplayName
and TopComponent.setHtmlDisplayName
methods was added to allow TopComponent
s 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:
#56277
TopComponent
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:
#38475
TopComponent.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:
#36916
TopComponent
; made by: jtulach; issues:
#38185
TopComponent
s to provide
their own Lookup and still maintain their contract with
getActivatedNodes
.
WindowManager
; made by: mslama; issues:
#37199
CloneableTopComponent
TopComponent
TopComponentGroup
WindowManager
Workspace
; made by: pzavadsky; issues:
#29836
TopComponent
CloneableTopComponent
; made by: jtulach; issues:
#32143
TopComponent (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:
#25824
getAnyComponent
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:
#28466
TopComponent
WindowManager
; made by: pzavadsky; issues:
#21618
TopComponent
:
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:
#20153
WindowManager
; made by: dsimonek; issues:
#20942
TopComponent
WindowManager
public void TopComponent.requestVisible()
public void WindowManager.Component.requestVisible()
org.openide.NotifyDescriptor
isValid
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
WindowManager
protected void TopComponent.openNotify()
protected void TopComponent.closeNotify()
protected void WindowManager.componentOpenNotify(TopComponent tc)
protected void WindowManager.componentCloseNotify(TopComponent tc)
org.openide.WizardDescriptor
WizardDescriptor.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
removed
org.openide.windows.InputOutput
InputOutput.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:
#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
BeanInfo
s 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 BeanInfo
s
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 3 2007. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.