This document lists changes made to the Open
APIs. Please ask on the dev@openide.netbeans.org
mailing list
if you have any questions about the details of a
change, or are wondering how to convert existing code to be compatible.
Most module authors should start by reading the Upgrade Guide for the current release.
Also of interest: raw API differences between NetBeans 3.4.1 and 3.5 as generated by JDiff. This list only shows visible changes in class and method signatures and Javadoc comments, but does not cover all semantic changes in the APIs during this period, nor does it exclude changes with no semantic effect (such as adding an undocumented method override to a subclass).
In general the NetBeans core API team has several responsibilities:
@since
tag, or as appropriate in prose. The
annotation should include both the date, and the current OpenIDE
specification version, to make it easy for module authors to depend on
the new API.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.
release40
branch was made on Nov 01 '04 for use in the NetBeans 4.0 release.
Specification versions: 5.0 begins after this point.release36
branch was made sometime in Feb or Mar '04 for use in the NetBeans 3.6 release.
Specification versions: 4.27 begins after this point.release35
branch was made on Feb 28 '03 for use in the
NetBeans 3.5 release. Specification versions: 4.0 begins after this point.release34
branch was made on Jul 10 '02 for use in the
NetBeans 3.4 release. Specification versions: 3.0 begins after this point.sierra
branch was made for use in Sun ONE Studio 4.1. There
are very few changes from S1S 4.0 from an API perspective. Specification
versions: 1.43.3.1 was used in this branch.release33
branch was made on Nov 23 '01 for use in
the NetBeans 3.3.x releases, and later for development of Sun ONE Studio (Forte for Java) 4.x.
Specification versions: 2.0 begins after this point.release330
branch was made on Nov 23 '01 for use in
the NetBeans 3.3 release.
Specification versions: see release33
.release32
branch was made on Mar 10 '01 for use in
the NetBeans 3.2 release, and later for NetBeans 3.2.1 and Forte for Java
3.0.release31
branch was made on Nov 7 '00 for use in
the NetBeans 3.1 release.boston
branch was made on Jun 29 '00 and
used for betas and the FCS of Forte for Java 2.0.
A number of API changes made after this date
have in fact been incorporated into the branch.postfcs
branch, which produced the Forte for Java 8xx series builds (1.0.x FCS
and betas) and also the NetBeans 3.0 release. So they do not
apply to these builds; this version of the change list was started
immediately after this branch was made (early Feb '00).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.
CloneableEditorSupport.notifyModified
is called only on first modification
FileObject.setImportant
deprecated
FileObject.toString()
not to be used for specific purposes
Places.Nodes.packages
deprecated and no more supported
FileObject.getPath()
returns full resource path of file object
WizardDescriptor
as bean customizers
MultiDataObject
's cookie set protected not public
AbstractNode.cookieSet
protected, not public
Repository
is not a cookie
SetDefaultValueAction
removed
BeanTreeView.selectionChanged
made protected, not public
MenuView.Acceptor
deprecated and not used
NbClassLoader
DataLoaderPool
made inaccessible
BeanChildren
changed superclass
PropertyDialogManager
removed
Toolbar
SystemAction
refers to Icon
rather than ImageIcon
ExternalCompiler.isUpToDate
protected, not public
ContextSystemOption.beanContext
changed type
ColumnMnemonicCharTTV
property to NodeTableModel
NotifyDescriptor.getDefaultValue()
Line.SHOW_TOFRONT
TopComponent
ability to bring their parent
Window
to front of other windows.
String[]
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
CloneableEditorSupport.notifyModified
is called only on first modification
leaf
to DialogDescriptor
FileObject.getFileObject
made not final.
task.waitFinished(timeout)
added
OS_FREEBSD
to Utilities
SystemAction/Action
that causes it's icon not to be displayed in menu.
Mutex.isReadAccess()
and Mutex.isWriteAcess()
SharedClassObject.reset
method to allow subclasses to implement reset correctly
TreeView.drag/dropActive
switcher
FileUtil.createMemoryFileSystem ()
FileUtil.preventFileChooserSymlinkTraversal(...)
HtmlBrowser
FileUtil.normalizeFile
added
FileObject.setImportant
deprecated
FileObject.toString()
not to be used for specific purposes
ModuleInfo.getClassLoader()
Lookup
WeakListener
replaced by WeakListeners
class
lookupItem()
method in Lookups
getInputStream()
method in CloneableEditorSupport
ActionManager.getDefault()
added
org.openide.awt.Mnemonics
added
InstanceDataObject.instanceOf
permits whitespace
Utilities.toFile
and toURL
added
DataLoader.getRepresentationClassName
InstalledFileLocator
ErrorManager.isNotifiable
added
Places.Nodes.packages
deprecated and no more supported
FileObject.getPath()
returns full resource path of file object
org.openide.awt.MenuBar
to understand Component
s.
setChildren()
in Node
Thread.contextClassLoader
defaults to TopManager.systemClassLoader
IndexOutOfBoundsException
can be thrown from NbDocument.findLineOffset
method
DataObject
accepts hint rootNode
Index.Support.showIndexedCustomizer
File
accepts hint baseDir
FileEvent
s fired inside atomic actions can report from which atomic actions they were fired
PropertyPanel
WizardDescriptor
as bean customizers
PropertyEnv
can control validation state
Line
methods deprecated in favor of annotations
XMLDataObject.createEditorCookie
InstanceSupport
provides InstanceCookie.Of
FolderLookup
MultiDataObject
's cookie set protected not public
AbstractNode.cookieSet
protected, not public
setSource
made protected in WeakListener
notifyError
and parseErrors
added
into ExternalCompilerGroup
InstanceCookie.Of
ProcessExecutor
Children.Keys.createNodes
can be null
Index.KeyChildren.createIndex
protected
DataObject.Container
added and used
Repository
from within Filesystems API
MIMEResolver
Repository
is not a cookie
MultiFileSystem
finds actions on a set of files specially
ErrorManager.isLoggable
added
ServiceType.createClone
added
SetDefaultValueAction
removed
BeanTreeView.selectionChanged
made protected, not public
XMLFileSystem
ExPropertyEditor
ExPropertyEditor
added and used
null
value
MenuView.Acceptor
deprecated and not used
ErrorManager
ScriptType
added
NbClassLoader
DataLoaderPool
made inaccessible
RepositoryAdapter
added
BeanChildren
changed superclass
IndentEngine
a service type
InputOutput
removed
PropertyDialogManager
removed
Index.KeyChildren
NodeOp.setDefaultActions
removed
Toolbar
SystemAction
refers to Icon
rather than ImageIcon
NbBundle
is obsolete
ExtensionListEditor
removed
ModuleDescription
constructor may specify a classloader
SaveAsTemplateAction.iconResource
removed
TopManager
ActionManager
added
ExternalCompiler.isUpToDate
protected, not public
SafeException
SafeException
is a FoldingIOException
ContextSystemOption.beanContext
changed type
AbstractFileSystem.refreshRoot
was of the wrong type
PrintSettings.getPageFormat
requires a printer job
org.openide.explorer.propertysheet.editors
package is deprecated
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-IDE-Dependencies: IDE/1 > 1.20
NotifyDescriptor.getDefaultValue()
ColumnMnemonicCharTTV
property to NodeTableModel
Line.SHOW_TOFRONT
TopComponent
ability to bring their parent
Window
to front of other windows.
String[]
leaf
to DialogDescriptor
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
CloneableEditorSupport.notifyModified
is called only on first modification
FileObject.getFileObject
made not final.
task.waitFinished(timeout)
added
OS_FREEBSD
to Utilities
SystemAction/Action
that causes it's icon not to be displayed in menu.
FileUtil.normalizeFile
added
FileObject.setImportant
deprecated
FileObject.toString()
not to be used for specific purposes
Mutex.isReadAccess()
and Mutex.isWriteAcess()
SharedClassObject.reset
method to allow subclasses to implement reset correctly
TreeView.drag/dropActive
switcher
FileUtil.createMemoryFileSystem ()
FileUtil.preventFileChooserSymlinkTraversal(...)
HtmlBrowser
ModuleInfo.getClassLoader()
Lookup
WeakListener
replaced by WeakListeners
class
lookupItem()
method in Lookups
getInputStream()
method in CloneableEditorSupport
ActionManager.getDefault()
added
org.openide.awt.Mnemonics
added
InstanceDataObject.instanceOf
permits whitespace
Utilities.toFile
and toURL
added
DataLoader.getRepresentationClassName
InstalledFileLocator
ErrorManager.isNotifiable
added
Places.Nodes.packages
deprecated and no more supported
FileObject.getPath()
returns full resource path of file object
org.openide.awt.MenuBar
to understand Component
s.
setChildren()
in Node
DataObject
accepts hint rootNode
Index.Support.showIndexedCustomizer
FileEvent
s fired inside atomic actions can report from which atomic actions they were fired
setSource
made protected in WeakListener
notifyError
and parseErrors
added
into ExternalCompilerGroup
Line
methods deprecated in favor of annotations
InstanceSupport
provides InstanceCookie.Of
FolderLookup
InstanceCookie.Of
org.openide.actions.AbstractCompileAction
org.openide.filesystems.AbstractFileSystem
AbstractFileSystem.refreshRoot
was of the wrong type
org.openide.util.lookup.AbstractLookup
org.openide.nodes.AbstractNode
AbstractNode.cookieSet
protected, not public
org.openide.actions.ActionManager
ActionManager.getDefault()
added
ActionManager
added
org.openide.awt.Actions
SystemAction/Action
that causes it's icon not to be displayed in menu.
org.openide.awt.Mnemonics
added
org.openide.actions.AddWatchAction
org.openide.text.Annotatable
org.openide.text.Annotation
org.openide.text.AnnotationProvider
org.openide.cookies.ArgumentsCookie
org.openide.util.AsyncGUIJob
org.openide.nodes.BeanChildren
BeanChildren
changed superclass
org.openide.explorer.view.BeanTreeView
org.openide.actions.BuildAction
org.openide.actions.BuildAllAction
org.openide.actions.BuildProjectAction
org.openide.util.actions.CallableSystemAction
org.openide.util.actions.CallbackSystemAction
org.openide.util.Cancellable
org.openide.util.CharacterArrayCharacterIterator
org.openide.nodes.Children
Children.Keys.createNodes
can be null
org.openide.explorer.propertysheet.editors.ChoicePropertyEditor
org.openide.src.ClassElement
org.openide.actions.CleanAction
org.openide.actions.CleanAllAction
org.openide.text.CloneableEditor
org.openide.text.CloneableEditorSupport
CloneableEditorSupport.notifyModified
is called only on first modification
getInputStream()
method in CloneableEditorSupport
org.openide.windows.CloneableOpenSupport
org.openide.windows.CloneableTopComponent
org.openide.compiler.CompilationEngine
org.openide.actions.CompileAction
org.openide.actions.CompileAllAction
org.openide.actions.CompileProjectAction
org.openide.compiler.Compiler
org.openide.cookies.CompilerCookie
org.openide.compiler.CompilerGroup
org.openide.compiler.CompilerJob
org.openide.loaders.CompilerSupport
org.openide.util.ContextAwareAction
org.openide.util.ContextGlobalProvider
Lookup
org.openide.options.ContextSystemOption
ContextSystemOption.beanContext
changed type
org.openide.options.ControlPanel
org.openide.nodes.CookieSet
org.openide.actions.CopyAction
org.openide.actions.CustomizeBeanAction
org.openide.actions.CutAction
org.openide.text.DataEditorSupport
org.openide.loaders.DataFolder
DataObject.Container
added and used
org.openide.loaders.DataLoader
DataLoader.getRepresentationClassName
org.openide.loaders.DataLoaderPool
DataLoaderPool
made inaccessible
org.openide.loaders.DataNode
org.openide.loaders.DataObject
DataObject.Container
added and used
org.openide.loaders.DataObjectFilter
org.openide.loaders.DataShadow
DataObject.Container
added and used
org.openide.cookies.DebuggerCookie
org.openide.actions.DebugProjectAction
org.openide.filesystems.DefaultAttributes
org.openide.nodes.DefaultHandle
org.openide.explorer.propertysheet.DefaultPropertyModel
ExPropertyEditor
added and used
org.openide.actions.DeleteAction
org.openide.modules.Dependency
org.openide.DialogDescriptor
leaf
to DialogDescriptor
org.openide.DialogDisplayer
org.openide.explorer.propertysheet.editors.DirectoryOnlyEditor
org.openide.text.DocumentLine
Line
methods deprecated in favor of annotations
org.openide.cookies.EditorCookie
org.openide.text.EditorSupport
org.openide.cookies.ElementCookie
org.openide.explorer.propertysheet.editors.ElementFormatEditor
org.openide.xml.EntityCatalog
org.openide.util.Enumerations
org.openide.loaders.Environment
org.openide.filesystems.EnvironmentNotSupportedException
org.openide.ErrorManager
ErrorManager.isNotifiable
added
ErrorManager.isLoggable
added
ErrorManager
org.openide.cookies.ExecCookie
org.openide.loaders.ExecSupport
org.openide.actions.ExecuteAction
org.openide.actions.ExecuteProjectAction
org.openide.loaders.ExecutionSupport
org.openide.explorer.ExplorerActions
org.openide.explorer.ExplorerManager
SafeException
org.openide.explorer.ExplorerPanel
SafeException
org.openide.explorer.ExplorerUtils
org.openide.explorer.propertysheet.ExPropertyEditor
ExPropertyEditor
ExPropertyEditor
added and used
org.openide.explorer.propertysheet.ExPropertyModel
ExPropertyEditor
added and used
org.openide.loaders.ExtensionList
org.openide.loaders.ExtensionListEditor
ExtensionListEditor
removed
org.openide.explorer.propertysheet.editors.ExternalCompiler
org.openide.compiler.ExternalCompiler
org.openide.compiler.ExternalCompilerGroup
notifyError
and parseErrors
added
into ExternalCompilerGroup
org.openide.filesystems.FileAttributeEvent
org.openide.explorer.propertysheet.editors.FileEditor
org.openide.loaders.FileEntry
org.openide.filesystems.FileEvent
FileEvent
s fired inside atomic actions can report from which atomic actions they were fired
org.openide.filesystems.FileObject
FileObject.getFileObject
made not final.
FileObject.setImportant
deprecated
FileObject.toString()
not to be used for specific purposes
FileObject.getPath()
returns full resource path of file object
org.openide.explorer.propertysheet.editors.FileOnlyEditor
org.openide.filesystems.FileRenameEvent
org.openide.filesystems.FileStateInvalidException
org.openide.filesystems.FileSystem
org.openide.actions.FileSystemAction
org.openide.filesystems.FileSystemCapability
org.openide.filesystems.FileUtil
FileUtil.createMemoryFileSystem ()
FileUtil.preventFileChooserSymlinkTraversal(...)
FileUtil.normalizeFile
added
WeakListener
replaced by WeakListeners
class
org.openide.util.enum.FilterEnumeration
org.openide.nodes.FilterNode
org.openide.actions.FinishDebuggerAction
org.openide.loaders.FolderInstance
org.openide.loaders.FolderLookup
FolderLookup
org.openide.actions.GoAction
org.openide.actions.GoToCursorAction
org.openide.actions.HelpAction
org.openide.util.HelpCtx
org.openide.awt.HtmlBrowser
HtmlBrowser
org.openide.awt.HtmlRenderer
org.openide.filesystems.FileSystem.HtmlStatus
org.openide.util.HttpServer
org.openide.explorer.propertysheet.editors.IconEditor
org.openide.explorer.propertysheet.editors.IdentifierArrayEditor
org.openide.modules.IllegalModuleException
org.openide.text.IndentEngine
IndentEngine
a service type
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
InputOutput
removed
org.openide.modules.InstalledFileLocator
InstalledFileLocator
org.openide.util.lookup.InstanceContent
org.openide.cookies.InstanceCookie
InstanceCookie.Of
org.openide.loaders.InstanceDataObject
InstanceDataObject.instanceOf
permits whitespace
org.openide.loaders.InstanceSupport
InstanceSupport
provides InstanceCookie.Of
org.openide.actions.InstantiateAction
org.openide.windows.IOProvider
org.openide.filesystems.JarFileSystem
org.openide.LifecycleManager
org.openide.text.Line
Line.SHOW_TOFRONT
Line
methods deprecated in favor of annotations
org.openide.explorer.view.ListTableView
org.openide.loaders.LoaderTransfer
org.openide.filesystems.LocalFileSystem
org.openide.util.Lookup
org.openide.util.LookupEvent
org.openide.util.LookupListener
org.openide.util.lookup.Lookups
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
lookupItem()
method in Lookups
org.openide.modules.ManifestSection
org.openide.awt.MenuBar
org.openide.explorer.view.MenuView
MenuView.Acceptor
deprecated and not used
org.openide.util.lookup.MetaInfServicesLookup
org.openide.explorer.propertysheet.editors.MethodParameterArrayEditor
org.openide.filesystems.MIMEResolver
MIMEResolver
org.openide.awt.Mnemonics
org.openide.awt.Mnemonics
added
org.openide.explorer.propertysheet.editors.ModifierEditor
org.openide.modules.ModuleDescription
ModuleDescription
constructor may specify a classloader
org.openide.modules.ModuleInfo
ModuleInfo.getClassLoader()
org.openide.modules.ModuleInstall
org.openide.loaders.MultiDataObject
MultiDataObject
's cookie set protected not public
org.openide.loaders.MultiFileLoader
org.openide.filesystems.MultiFileSystem
MultiFileSystem
finds actions on a set of files specially
org.openide.util.Mutex
Mutex.isReadAccess()
and Mutex.isWriteAcess()
org.openide.util.NbBundle
NbBundle
is obsolete
org.openide.execution.NbClassLoader
NbClassLoader
org.openide.text.NbDocument
IndexOutOfBoundsException
can be thrown from NbDocument.findLineOffset
method
org.openide.execution.NbfsStreamHandlerFactory
org.openide.execution.NbProcessDescriptor
org.openide.util.datatransfer.NewType
org.openide.nodes.Node
setChildren()
in Node
org.openide.util.actions.NodeAction
org.openide.nodes.NodeOp
WeakListener
replaced by WeakListeners
class
NodeOp.setDefaultActions
removed
org.openide.nodes.NodeOperation
org.openide.explorer.view.NodeRenderer
org.openide.explorer.view.NodeTableModel
ColumnMnemonicCharTTV
property to NodeTableModel
org.openide.NotifyDescriptor
NotifyDescriptor.getDefaultValue()
org.openide.actions.OpenProjectAction
org.openide.loaders.OpenSupport
org.openide.windows.OutputEvent
org.openide.windows.OutputListener
org.openide.windows.OutputWriter
org.openide.actions.PasteAction
org.openide.util.datatransfer.PasteType
org.openide.Places
Places.Nodes.packages
deprecated and no more supported
org.openide.text.PositionRef
org.openide.text.PrintSettings
PrintSettings.getPageFormat
requires a printer job
org.openide.execution.ProcessExecutor
ProcessExecutor
org.openide.cookies.ProjectCookie
org.openide.util.actions.ProjectSensitiveAction
org.openide.explorer.propertysheet.PropertyDialogManager
PropertyDialogManager
removed
org.openide.explorer.propertysheet.PropertyEnv
PropertyEnv
can control validation state
ExPropertyEditor
ExPropertyEditor
added and used
org.openide.explorer.propertysheet.PropertyPanel
String[]
PropertyPanel
org.openide.nodes.Node.PropertySet
org.openide.explorer.propertysheet.PropertySheet
org.openide.explorer.propertysheet.PropertySheetSettings
org.openide.util.lookup.ProxyLookup
org.openide.util.RE
org.openide.util.ReaderCharacterIterator
org.openide.util.RECompiler
org.openide.filesystems.Repository
Repository
from within Filesystems API
Repository
is not a cookie
org.openide.filesystems.RepositoryAdapter
RepositoryAdapter
added
org.openide.loaders.RepositoryNodeFactory
org.openide.util.RequestProcessor
task.waitFinished(timeout)
added
org.openide.util.RESyntaxException
org.openide.util.io.SafeException
SafeException
is a FoldingIOException
org.openide.actions.SaveAsTemplateAction
SaveAsTemplateAction.iconResource
removed
org.openide.actions.SaveProjectAction
org.openide.execution.ScriptType
ScriptType
added
org.openide.ServiceType
ServiceType.createClone
added
org.openide.explorer.propertysheet.SetDefaultValueAction
SetDefaultValueAction
removed
org.openide.util.SharedClassObject
org.openide.cookies.SourceCookie
org.openide.modules.SpecificationVersion
org.openide.actions.StartDebuggerAction
org.openide.awt.StatusDisplayer
org.openide.actions.StepOutAction
org.openide.util.StreamCharacterIterator
org.openide.explorer.propertysheet.editors.StringArrayCustomEditor
org.openide.explorer.propertysheet.editors.StringArrayCustomizable
org.openide.explorer.propertysheet.editors.StringArrayEditor
org.openide.util.StringCharacterIterator
org.openide.util.actions.SystemAction
SystemAction
refers to Icon
rather than ImageIcon
org.openide.options.SystemOption
SharedClassObject.reset
method to allow subclasses to implement reset correctly
org.openide.util.Task
task.waitFinished(timeout)
added
org.openide.loaders.TemplateWizard
org.openide.actions.ToggleBreakpointAction
org.openide.awt.Toolbar
Toolbar
org.openide.awt.ToolbarPool
org.openide.actions.ToolsAction
ActionManager
added
org.openide.windows.TopComponent
TopComponent
ability to bring their parent
Window
to front of other windows.
org.openide.windows.TopComponentGroup
org.openide.TopManager
TopManager
ActionManager
added
org.openide.util.TopologicalSortException
org.openide.actions.TraceIntoAction
org.openide.actions.TraceOverAction
org.openide.explorer.view.TreeTableView
org.openide.explorer.view.TreeView
TreeView.drag/dropActive
switcher
org.openide.src.Type
org.openide.explorer.propertysheet.editors.TypeEditor
org.openide.loaders.UniFileLoader
org.openide.filesystems.URLMapper
org.openide.util.UserQuestionException
org.openide.util.Utilities
OS_FREEBSD
to Utilities
Lookup
Utilities.toFile
and toURL
added
org.openide.util.WeakListener
WeakListener
replaced by WeakListeners
class
setSource
made protected in WeakListener
org.openide.util.WeakListeners
WeakListener
replaced by WeakListeners
class
org.openide.windows.WindowManager
TopComponent
ability to bring their parent
Window
to front of other windows.
org.openide.WizardDescriptor
org.openide.WizardValidationException
org.openide.windows.Workspace
org.openide.loaders.XMLDataObject
XMLDataObject.createEditorCookie
org.openide.filesystems.XMLFileSystem
XMLFileSystem
org.openide.xml.XMLUtil
topComponent.getActionMap().put("jumpPrev", new YourPrevAction()); topComponent.getActionMap().put("jumpNext", new YourNextAction());if your component provides items and you want the user to jump among them using standard next/prev actions.
SystemAction/Action
that causes it's icon not to be displayed in menu.
Actions
; made by: mkleint
SystemAction putValue("noIconInMenu", Boolean.TRUE)
influences the display of the action
in the main menu, the item will have no icon there. Works for Actions that don't define custom MenuPresenter.
This property is considered temporary, applications building on top of the platform that
don't want this functionality, have to patch the actions' code.
CallableSystemAction
; made by: jtulach; issues:
#39640
CallableSystemAction
that return true
from their asynchronous
method are executed outside of AWT thread.
However as most actions shall be executed synchronously, it is still required
for a subclass of CallableSystemAction
to override the method
with own implementation otherwise a warning is printed.
There is a special contract to allow synchronous actions to be executed asynchronously, by using special waitFinished as action command.
SystemAction
Actions
; made by: dstrupl; issues:
#32256
ActionManager
CallableSystemAction
; made by: jglick; issues:
#35755
In an attempt to migrate all actions in NetBeans to be run directly in
the event thread, as Swing actions normally are,
CallableSystemAction
gets a new method
asynchronous()
. By default it is true, meaning to still
use the request processor to run the action, but subclasses and new
code should override this to be false (and then expect to be called
from the event thread).
Correspondingly,
ActionManager.invokeAction(Action, ActionEvent)
is
deprecated and just delegates directly to
Action.actionPerformed(ActionEvent).
There are possible semantic incompatibilities introduced by this change.
Actions directly extending SystemAction
or
Action
, not CallableSystemAction
, will
begin running in the event thread, whereas before they ran in a
request processor.
Code calling ActionManager.invokeAction
expecting it
not to block will now need to handle the action possibly running
synchronously.
It is now generally enforced that
Action.actionPerformed
be called from the event
thread (relevant e.g. from a template wizard iterator).
For simplicity and consistency with Swing, the controller
(generally a view) is expected to ensure that an action is enabled
before calling actionPerformed
. Typically if it is
disabled and an attempt was made to call the action, you should use
Toolkit.beep
.
Miscellaneous properties of an action (most significantly, its enablement status) should be modified (or changes notified) from the event thread.
ActionManager.getDefault()
added
ActionManager
; made by: jglick; issues:
#32092
InstantiateAction
; made by: dkonecny; issues:
#27135
TopComponent
; made by: pzavadsky; issues:
#30231
According to changes in action system (see the change 3.29),
also the method TopComponent.getSystemActions()
is replaced by TopComponent.getActions()
method.
ContextAwareAction
Utilities
TopComponent
CallbackSystemAction
NodeAction
CutAction
CopyAction
DeleteAction
PasteAction
FileSystemAction
ToolsAction
Actions
Node
AbstractNode
NodeOp
; made by: jtulach pzavadsky; issues:
#27868
Introduction of new action system, which generally means
move from usage of SystemAction
to Action
instances.
Look at
general proposal. That document also focuses on declarative actions
usage which is not subject of current change, it will be part of later changes.
Current change is described by description of already implemented changes which also summarizes these API changes.
org.openide.awt.MenuBar
to understand Component
s.
MenuBar
; made by: pnejedly
MenuBar
is built. Prevoiusly only folders were recognized and turned into
top-level menus. Now also Component
instances found
in the folder are directly added to the resulting MenuBar
and Presenter.Toolbar
instances are asked for
the presentation component and added to the MenuBar
.
ActionManager
invokeAction
added to the ActionManager
.
It allows all actions code to happen in one request processor.
SystemAction
refers to Icon
rather than ImageIcon
SystemAction
; made by: jglick
getIcon
and setIcon
now use the interface
Icon
rather than the particular implementation
ImageIcon
. This corrects an API bug (excessive specificity).
boston
. Any code explicitly using this calls before may break
(source code may be compatible in many cases; binary compatibility has
been preserved). These calls were known to be used only for
Actions
to create presenters; normal code which constructs
SystemAction
s and implements iconResource
should
be unaffected. Actions using the "grouping action" template should check
their getMenuPresenter
method which may be
binary-incompatible; it is easy to replace the code with safer code such
as:
// .... private static Icon icon = null; // .... public JMenuItem getMenuPresenter() { JMenu menu = new JMenu(getName ()); if (icon == null) { icon = new ImageIcon(MyAction.class.getResource(iconResource())); } menu.setIcon(icon); // ....
SystemAction
; made by: jglick
iconResource
may now return null
to indicate no
icon. getIcon(true)
may be used to get an icon created from
the label if there is no icon specified.
SaveAsTemplateAction.iconResource
removed
SaveAsTemplateAction
iconResource
was accidentally a public method; no longer
needed, and deprecated. Technically backwards incompatible, but no one
should have been calling this method as public, as it was protected in the
superclass SystemAction
.
boston
.
ActionManager
added
ActionManager
ToolsAction
TopManager
ActionManager
added, along with
TopManager.getActionManager
. This class replaces the
functionality of ToolsAction.Model
and
ToolsAction.setModel
which have been deprecated. No one other
than ToolsAction
and the core implementation ought to have
been directly using the model class, and the same applies to the new
action manager.
ToolsAction
model first removed, later re-added but deprecated
in trunk and boston
.
CompilationEngine
; made by: dstrupl; issues:
#20539
Compiler
CompilerJob
; made by: dkonecny; issues:
#19668
CompilerGroup
; made by: jglick
addCompilerListener
and removeCompilerListener
made final.
notifyError
and parseErrors
added
into ExternalCompilerGroup
ExternalCompilerGroup
; made by: anovak; issues:
#13319
ExternalCompilerGroup
public static final String TAG_JDKHOME
added to the
ExternalCompilerGroup.Format
class.
ExternalCompiler.isUpToDate
protected, not public
ExternalCompiler
; made by: jglick
isUpToDate
made protected instead of public, closing an API
bug (it overrides a protected method and code calling it as public was
erroneous).
boston
. In recommended coding style, an instance of the class
would be constructed but then assigned to a variable, or otherwise used,
as an instance of the interface type (Compiler
); in this case
it would be impossible to accidentally call the isUpToDate
method.
EditorCookie
; made by: dkonecny; issues:
#31101
InstanceDataObject.instanceOf
permits whitespace
InstanceDataObject
; made by: pkuzel
InstanceDataObject
recognizes whitespace as a token separator
in the instanceOf
file attribute for .instance files in XML layers.
DataLoader.getRepresentationClassName
DataLoader
; made by: jglick
DataLoader.getRepresentationClassName
was added.
It should behave similarly to
DataLoader.getRepresentationClass
, but not require the class
to be loaded.
Environment
; made by: jpokorsky; issues:
#27303
DataShadow
; made by: phrebejk
TemplateWizard
; made by: jglick
TemplateWizard.targetName
may
now legally be null
. In fact it was always null
until set, and template wizard iterators would see a null value
if they used a custom second panel.
TemplateWizard
; made by: jtulach; issues:
#8858
TemplateWizard.Iterator
now implements Node.Cookie and
TemplateWizard.getIterator(DataObject)
now first checks
for the cookie.
InstanceDataObject
; made by: jpokorsky; issues:
#21083
InstanceDataObject.create
with parameter create
specifying whether a new file should be created or an existing should be reused.
InstanceDataObject
; made by: jpokorsky
InstanceDataObject.create
allowing creation of a
settings data object annotated by a ModuleInfo
.
DataLoaderPool
DataLoader.markFile
changed to used them. Now any loader can
check if it is the preferred or not. Also it is possible to unset
preferred loader.
Environment
public Lookup getEnvironment ()
of
Environment.Provider
interface was changed to public
Lookup getEnvironment(DataObject obj)
.
LoaderTransfer
LoaderTransfer
class to allow clipboard operations on
DataObject
s. It is similar to the NodeTransfer
class allowing clipboard operations for nodes.
DataObject
DataObject.getCookie (DataShadow shadow, Class clazz)
to notify data objects that a cookie is requested via its shadow.
XMLDataObject.createEditorCookie
XMLDataObject
; made by: pkuzel
createEditorCookie()
method.
FileEntry
MultiDataObject
s
with FileEntry.Folder
.
DataFolder
DataShadow
DataFolder
extends MultiDataObject
instead of
DataObject
, backward compatibility is ensured. Original
constructor accepting DataLoader
was preserved and
deprecated. Behavior of Move operation has been changed to make it
compatible with Copy, both of them now merge folders if they exist in the
target location. Similarly for DataShadow
.
InstanceSupport
provides InstanceCookie.Of
InstanceSupport
InstanceSupport
now implements
InstanceCookie.Of
.
FolderLookup
FolderLookup
FolderLookup
created that allows to create an instance of
lookup from objects in a folder.
FolderInstance
FolderInstance
(DataObject.Container)
. Also a protected InstanceCookie
acceptContainer (DataObject.Container)
has been added to allow
subclasses to accept subcontainers.
DataFolder
DataFolder.findContainer
method added to allow the use of the
folder recognition mechanism without constructing the folder itself.
DataLoader
MultiFileLoader
UniFileLoader
protected DataLoader(String
representationClassName)
to allow deferment of loading and
resolving DataObject classes.
MultiDataObject
's cookie set protected not public
MultiDataObject
; made by: jglick
getCookieSet
and setCookieSet
now protected, not
public. Logically they 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
can continue to expose their
cookie sets to outside classes if they wish by using e.g.:
/*package-private*/ CookieSet getCookieSet0() { return getCookieSet(); }This is useful for
DataEditorSupport
especially. Code which
expected to obtain the cookie set for arbitrary foreign data objects
cannot be so easily fixed and should be redesigned.
FolderInstance
FolderInstance.postCreationTask (Runnable)
allows subclasses
to create the instances in different thread.
InstanceCookie.Of
InstanceCookie
DataLoader
protected String defaultDisplayName()
protected SystemAction[] defaultActions()
getDisplayName()
, getActions()
modified
to return defaults if there are no changes. null
will be stored. Integer object representing
version will be stored too. setDisplayName(String)
(or
setActions(SystemAction[])
) will be called only if read
object differs from default.
CompilerSupport
CompilerSupport.prepareJob
added to simplify the creation of
CompilerJob
for set of data objects.
DataObject.Container
added and used
DataObject
DataFolder
DataShadow
DataObject.Container
interface added and
DataFolder
and DataShadow
changed to implement
it. Every other data object that contains another objects is
supposed to implement it too.
TemplateWizard
TemplateWizard.instantiate
can throw
IllegalStateException
to signal that the file provided is not
OK. For example the Java wizard can check whether the file name is a valid
Java identifier.
DataNode
canCopy
and canCut
made non-final.
MultiDataObject
MultiFileLoader
UniFileLoader
; made by: jtulach
Changes in MultiDataObject
, MultiFileLoader
,
and UniFileLoader
to handle the problem when
X.java exists and X.form is created (in such
situation JavaDataObject
is discarded and form created) and
also the situation when (later) the X.form is deleted, so
FormDataObject
is discarded and JavaDataObject
created.
To better optimize the speed I made a small API addition. I added the
method MultiDataObject.Entry.isImportant
whose return value
is used by the data object to correctly notify the filesystem if the
file object is not important and also for not doing enhanced consistency
tests for unimportant files (for example when X.class is
deleted). I also override the method in FileEntry.Numb
to
return false (that is the reason why X.class is ignored).
ExtensionList
ExtensionList
now supports not only extensions but also MIME
types. This allows anybody using UniFileLoader
to recognize
files based on MIME type and not on extension.
DataShadow
; made by: jglick
create
, and that extension should be honored in future
operations on the file. deserialize
is now available as a
protected method; it now just returns the original data object, rather
than a new shadow based on it. (If you want the shadow you must create it
yourself with the constructor.)
DataLoaderPool
made inaccessible
DataLoaderPool
; made by: jglick
FolderLoader
InstanceLoader
ShadowLoader
DefaultLoader
boston
. All classes were documented in Javadoc to be public
only due to serialization, so any outside code referring to them was
already erroneous.
TemplateWizard
; made by: jglick
nbrescurrloc
URL protocol handles
that adequately. Although the methods
getDescriptionAsResource
and
setDescriptionAsResource
were deprecated, probably no one
refers to them at runtime anyway; the old file attribute is still
recognized and automatically upgraded to a URL attribute.
boston
.
ExtensionListEditor
removed
ExtensionListEditor
ExtensionListEditor
removed from the APIs (now in an
implementation package providing property editors). No one should have
been referring to this class directly.
boston
.
DataFolder
createNodeChildren
no longer final.
DataNode
; made by: jglick
getShowFileExtensions
and
setShowFileExtensions
added.
NotifyDescriptor.getDefaultValue()
NotifyDescriptor
; made by: jrechtacek; issues:
#56878
NotifyDescriptor.getDefaultValue()
returns object which represents the default value.
This default value is introduced in the constructor of NotifyDescriptor
.
leaf
to DialogDescriptor
DialogDescriptor
; made by: jrechtacek
Added the parameter leaf
in constructor of the DialogDescriptor
.
The parameter is not mandatory and can be set manually.
If this parameter is false
(as default), all works as before.
If the parameter leaf
is true
, then a dialog which is created by this
descriptor cannot own any other windows.
WizardDescriptor
; made by: jrechtacek; issues:
#44513
Set getInstantiatedObjects
. This method
returns set of newly instantiated objects if the wizard has been correctly finished.
The empty set is returned as default, if the wizard uses the InstantiatingIterator
then returns a set of Object
as same as InstantiatingIterator.instantiate()
does.
The method throws the exception IllegalStateException
if this method
is called on the unfinished wizard.
WizardDescriptor
; made by: jrechtacek; issues:
#42192
WizardDescriptor.InstantiatingIterator
extends WizardDescriptor.Iterator
and contains the methods for initialize/uninitialize
the iterator and the central method
instantiate
which returns a set on instantiated objects.
WizardDescriptor
; made by: jrechtacek; issues:
#7706
Finish
button. This interface WizardDescriptor.FinishablePanel
extends WizardDescriptor.Panel
and adds a method isFinishPanel()
which returns if Finish
button could be enabled. WizardDescriptor.FinishPanel
is now deprecated, the preferred way is using FinishablePanel
instead.
WizardDescriptor
WizardValidationException
; made by: jrechtacek; issues:
#23116
Next
or Finish
button is clicked.
This interface WizardDescriptor.ValidatingPanel
extends WizardDescriptor.Panel
and adds a method validate()
which is called when un user clicked Next
or Finish
button. If validation fails the wizard doesn't move to next panel nor finish,
the WizardValidationException
is thrown and it returns which component
fails (in a wizard's panel) and provides a error message to notify the user about.
Line.SHOW_TOFRONT
Line
; issues:
#47825
EditorSupportLineSet
and brings
editor's parent Window
to be fronted above all other top-level windows.
CloneableEditorSupport
; made by: pnejedly; issues:
#51441
Deprecated EditorSupport
has had a method
openAt
, which has no easy replacement in
CloneableEditorSupport
.
The method is implemented in CloneableEditorSupport
,
but is package private. This change makes it protected.
CloneableEditorSupport.Pane
interface,
Pane.ensureVisible()
. The implementing classes should ensure that the pane's component
is open and visible after calling this method. Is used in CloneableEditorSupport.openAt()
.
Line
; made by: jtulach; issues:
#43484
AnnotationProvider
; made by: pnejedly; issues:
#41345
NbDocument
CloneableEditorSupport
CloneableEditor
EditorSupport
; made by: mkleint; issues:
#41085
CloneableEditorSupport
; made by: pnejedly; issues:
#37892
CloneableEditorSupport.documentID
to allow subclasses to compute preferred ID String used for
TopComponent persistence.
getInputStream()
method in CloneableEditorSupport
CloneableEditorSupport
; made by: pjiricka; issues:
#34692
CloneableEditorSupport
; made by: jtulach; issues:
#32937
PositionRef
DataEditorSupport
; made by: jtulach; issues:
#32143
PositionRef.getEditorSupport()
method
has been removed to enabled separation of EditorSupport to openide-loaders.jar
Line
DataEditorSupport
; made by: jtulach; issues:
#32143
Line.getDataObject()
method had to be removed and replaced by Line.getLookup
which
provides more general way for providing line context. The direct replacement
for the old method is DataObject DataEditorSupport.findDataObject(Line)
.
Line
DocumentLine
; made by: jtulach; issues:
#32143
Line
and
DocumentLine
constructors taking DataObject had to be
modified to take Lookup or plain Object instead.
CloneableEditorSupport
; made by: jtulach; issues:
#32143
String messageLine (Line)
that can be
overriden to provide meaningful display name for lines produced
by this support.
IndexOutOfBoundsException
can be thrown from NbDocument.findLineOffset
method
NbDocument
; issues:
#17144
NbDocument.findLineOffset()
can throw an unchecked
IndexOutOfBoundsException
. The method could throw
the exception also before (and also other kinds of them see the issue),
but it was not declared in javadoc. This change makes it compliant
to use with standard Swing text package and also with
Line.Set.getCurrent()
method.
Annotation
Annotation.notifyAttached()
and
Annotation.notifyDetached()
.
Annotatable
Annotatable.getText()
. Listeners can be attached to
Annotatable.PROP_TEXT property.
Annotatable
Annotation
Annotation.getAttachedAnnotatable()
and
Annotation.moveToFront()
.
Line
methods deprecated in favor of annotations
Line
DocumentLine
setBreakpoint
, isBreakpoint
,
markError
, unmarkError
,
markCurrentLine
, unmarkCurrentLine
, and
canBeMarkedCurrent
are deprecated. Use
Annotation.attach()
and detach()
instead.
Line
now extends Annotatable
abstract class.
Annotation
Annotatable
NbDocument
NbDocument
methods like markError
,
markCurrent
, markNormal
are deprecated. Use
addAnnotation
and removeAnnotation
instead.
CloneableEditorSupport
; made by:
initializeCloneableEditor
to allow easier
customization of the editor after creation and also after deserialization.
CloneableEditorSupport
getUndoRedo()
method was made protected final instead of
final.
CloneableEditorSupport
updateTitles()
method was made protected final instead of
private.
IndentEngine
a service type
IndentEngine
ServiceType
. A few new methods relating to lookup.
register
had been deleted as it is no longer useful); the
method was then restored but made deprecated.
EditorSupport
CloneableEditorSupport
CloneableEditor
OpenSupport
CloneableOpenSupport
EditorSupport
and
OpenSupport
, so that subclasses can have much finer control
over pieces of its functionality.
NbDocument
NbDocument.COLORS
and NbDocument.Colors
deprecated.
boston
. These classes were long disused (and should only have
ever been used by the editor module anyway, which did not need them).
PrintSettings.getPageFormat
requires a printer job
PrintSettings
getPageFormat
method now requires a PrinterJob
argument.
boston
. User-stored settings of this class should be
backwards compatible, however code directly calling
getPageFormat
will produce a deprecation warning. Probably no
one should be directly referring to this class or its BeanInfo outside the
package; public only because it is a system option that must be public to
appear.
CompilationEngine
; made by: dstrupl; issues:
#20538
NbProcessDescriptor
; made by: jglick
exec
accepting parameter appendEnv
added to permit incremental replacement of environment variables.
ProcessExecutor
; made by: jglick
appendEnvironmentVariables
added.
ProcessExecutor
ProcessExecutor
public static final String TAG_JDKHOME
added to the
ProcessExecutor.Format
class.
ScriptType
public abstract void addVariable(String name, Object
value);
added.
ScriptType
added
ScriptType
ScriptType
, a new subclass of
org.openide.ServiceType
, was added. It should support
execution of scripts written in scripting languages. The scripting module
depends on it.
NbClassLoader
NbClassLoader
setDefaultPermissions(PermissionCollection)
added. These permissions
will be used in PermissionCollection getPermissions(CodeSource)
.
Which is in turn used in ClassLoader.defineClass(..., ProtectionDomain)
.
So the supplied permissions are used for ProtectionDomain
s of newly created
classes.
NbClassLoader
is not always trusted now, so you may want to
add some permissions to allow loaded classes to execute checked operations. This does not
apply to NbClassLoader
s created with InputOutput
, since it has
AllPermission
by default.
NbfsStreamHandlerFactory
; made by: jglick
nbfs
protocol, but four resource-based
protocols. Also, external code may insert support for additional
protocols.
ColumnMnemonicCharTTV
property to NodeTableModel
NodeTableModel
; made by: saubrecht; issues:
#56781
TreeTableView
columns.
String[]
PropertyPanel
; made by: jtulach; issues:
#56257
Node.Property np = new Node.Property (String[].class, ...); np.setValue ("item.separator", "-");separates items returned from
getAsText
and parsed by setAsText
by -. List of supported parameters can be found here.
Boolean.TRUE
from Node.getValue(String)
for attribute customDelete.
TreeView.drag/dropActive
switcher
TreeView
; made by: jrechtacek; issues:
#47672
TreeView.setDragSource(boolean)
and TreeView.setDropTarget
can set drag/dropActive on/off. The drag source and drop target are enabled by default.
Before the views were forced to be drag/drop active no matter what state was set.
ExplorerUtils
; made by: pnejedly; issues:
#37543
NodeRenderer
; made by: tboudreau; issues:
#43148
InplaceEditor
; made by: tboudreau; issues:
#37626
PropertyPanel
; made by: tboudreau; issues:
#31896
ExplorerActions
ExplorerPanel
ExplorerUtils
; made by: jtulach; issues:
#34758
ExplorerActions
class and ExplorerPanel
are being deprecated and replaced by new factory methods in
ExplorerUtils
class. Use them to create actions
handling copy, cut, paste and delete on given ExplorerManager.
MenuView
; made by: pnejedly
PropertyPanel
PropertyEnv
; issues:
#23369
PropertyPanel.getState()
,
PropertyEnv.addPropertyChangeListener(PropertyChangeListener)
and
PropertyEnv.removePropertyChangeListener(PropertyChangeListener)
.
Added public static field
PropertyPanel.PROP_STATE
.
TreeView
TreeView.setSelectionMode(int)
and
TreeView.getSelectioMode()
.
ExPropertyEditor
; made by: akemr; issues:
#19294
DefaultPropertyModel
; made by: jtulach; issues:
#20601
New constructor to make DefaultPropertyModel more easily usable with PropertyDescriptor created by hand and not obtained from BeanInfo.
DataObject
accepts hint rootNode
org.openide.loaders.DataObject
may now be given the
property hint rootNode
specifying a root node of displyed nodes hierarchy.
If omited filesystems repository root node is used instead.
File
accepts hint baseDir
java.io.File
may now be given the
property hint baseDir
specifying a directory from which
relative filenames edited by the editor may be resolved.
PropertyPanel
PropertyPanel
public boolean
isChangeImmediate();
and public void
setChangeImmediate(boolean b);
PropertyEnv
can control validation state
PropertyEnv
PropertyEnv
:
public static final String PROP_STATE; public static final Object STATE_VALID; public static final Object STATE_NEEDS_VALIDATION; public static final Object STATE_INVALID; public void setState (Object state); public Object getState (); public void addVetoableChangeListener(VetoableChangeListener l); public void removeVetoableChangeListener(VetoableChangeListener l);
PropertyEnv
should
provide information on what they do.
NodeTableModel
TreeTableView
ListTableView
ExplorerManager
public final void setExploredContextAndSelection(Node
value, Node[] selection) throws PropertyVetoException
added to the
class ExplorerManager
. It is replacement for the
setExploredContext
method which should throw the exception.
SetDefaultValueAction
removed
SetDefaultValueAction
; made by: jglick
BeanTreeView.selectionChanged
made protected, not public
BeanTreeView
selectionChanged
made protected, not public, to match
the access mode of the method it was implementing in
TreeView
. Code calling it as public is erroneous.
ExPropertyEditor
PropertyEnv
ExPropertyEditor
PropertyEnv
: removed methods
set
/isValid
from PropertyEnv
and
introduced new constant PROP_VALUE_VALID
in the
ExPropertyEditor
.
PropertyEnv
only.
ExPropertyEditor
added and used
ExPropertyEditor
DefaultPropertyModel
PropertyEnv
ExPropertyModel
ExPropertyEditor
added to the package org.openide.explorer.propertysheet
.
It extends PropertyEditor
allowing to pass information to the
property editor by passing an instance of PropertyEnv
class - this
class was also added. To be able to pass the required information
the PropertyModel
interface was also extended to ExPropertyModel
.
DefaultPropertyModel
was modified to implement the new interface
ExPropertyModel
(instead of PropertyModel
).
ExplorerManager
setExploredContext
added with a second parameter
giving nodes which are to be selected.
MenuView.Acceptor
deprecated and not used
MenuView
MenuView.Acceptor
is now deprecated. It is
recommended to use nodes.NodeAcceptor
over
MenuView.Acceptor
, which will be probably removed entirely in
future. The protected field action
in both
MenuView.Menu
and MenuView.MenuItem
has changed
type to be NodeAcceptor
.
action
field will be broken.
PropertyDialogManager
removed
PropertyDialogManager
boston
. Code referring to this class can generally be easily
rewritten to simply embed the supplied component in a dialog and show that
dialog.
SafeException
ExplorerPanel
ExplorerManager
; made by: jglick
readExternal
of ExplorerPanel
or deserialization
of ExplorerManager
may throw SafeException
to
indicate a failure in the loading of the manager's handles, but the stream
is OK.
org.openide.explorer.propertysheet.editors
package is deprecated
org.openide.explorer.propertysheet.editors
The entire
org.openide.explorer.propertysheet.editors
package is
generally deprecated
and no longer included in Javadoc.
As of 3.14, this package is again included in the Javadoc, though only only a few interfaces remain, and of these several are in fact deprecated, and the rest will probably be deprecated at some point.
FileObject.getFileObject
made not final.
FileObject
; made by: rmatous; issues:
#51551
Method public final FileObject getFileObject (String relativePath)
in class FileObject
isn't final anymore to let more freedom for implemetations.
FileUtil.createMemoryFileSystem ()
FileUtil
; made by: jtulach; issues:
#46701
FileUtil.createMemoryFileSystem ()
to create an empty, writeable instance of a FileSystem
with content completely stored in memory. This filesystem is the
one that is by default returned from Repository.getDefaultFileSystem()
so since now the standalone applications may expect the default file system
to be writeable.
FileUtil.preventFileChooserSymlinkTraversal(...)
FileUtil
; made by: jglick; issues:
#46459
FileUtil.preventFileChooserSymlinkTraversal(...)
to help work around problems with symbolic links and JFileChooser
.
FileUtil
; made by: rmatous; issues:
#37549
FileObject
isn't root.
Repository
; made by: rmatous; issues:
#42273
getDefault ()
getDefaultFileSystem ()
URLMapper
for providing FileObjects
DefaultAttributes
; made by: rmatous; issues:
#43180
FileUtil
; made by: jglick
There are now various methods in FileUtil
that let you
easily convert between archive files themselves and their entries. It
is no longer necessary (or advisable) to explicitly construct
JarFileSystem
s to work with archives. A standard
URLMapper
implementation is present which handles
jar
-protocol URLs correctly.
FileUtil.normalizeFile
added
FileUtil
; made by: jglick; issues:
#40410
The method FileUtil.normalizeFile(File)
was added as a
refinement of File.getCanonicalFile
that does not traverse
symlinks on Unix. Used throughout the NetBeans 4.0 project system.
FileObject.setImportant
deprecated
FileObject
; made by: jglick
In NetBeans 3.x, normally “compilation” or similar build
steps would produce generated files kept in the user’s
development folder alongside source files, and picked up as secondary
files by a MultiFileLoader
. To ensure that the VCS
integration did not offer to version such files,
FileObject.setImportant
could be used to mark them as
disposable.
In NetBeans 4.0, such disposable files should not be placed in a source
folder. They should always be built to a separate build directory,
typically defined by the containing project. In this case marking an
individual file as unimportant is unnecessary, since the entire build
tree is known to be disposable. Instead, the project (not data loaders)
can use SharabilityQueryImplementation
to indicate which
subtrees contain build products.
There is no direct replacement. Code using this method should be reëvaluated in the light of other changes in NetBeans 4.0.
EnvironmentNotSupportedException
FileObject
FileSystem
FileSystemCapability
; made by: jglick
Various parts of the Filesystems API which are no longer useful in NetBeans 4.0 were deprecated. The assumptions which are now invalid were:
The root of a filesystem corresponds to a Java classpath root (if the appropriate capabilities were set). Now handled by the Classpath API.
The user explicitly mounts and unmounts filesystems, either to control the classpath, for version control purposes, or simply to access some area of the disk; and so filesystem metadata is relevant to the GUI. Now obsoleted by the Classpath API and MasterFS.
The IDE internally managed a list of mounted filesystems. Now only the default system filesystem is “mounted”; MasterFS transparently manages all “user-space” files.
File objects are persisted by saving a reference to the containing filesystem, plus the relative path within the filesystem. Now done using URLs.
Specific deprecations:
FileSystem.Environment
and
EnvironmentNotSupportedException
FileSystemCapability
(and its constants and subclasses),
FileSystem.getCapability
and setCapability
,
constructors taking FileSystemCapability
FileSystem.PROP_HIDDEN
, isHidden
, and
setHidden
FileSystem.PROP_SYSTEM_NAME
, getSystemName
,
and setSystemName
FileSystem.find
FileObject
methods such as getPackageName
FileSystem.isPersistent
See also deprecations in
Repository
.
In general, attempts to call the old methods will yield well-defined but useless results in NetBeans 4.0.
FileObject.toString()
not to be used for specific purposes
FileObject
; made by: jglick; issues:
#27640
FileObject.toString()
no longer returns a predictable
value; in particular, it will not be the same as
getPath()
. The new value is suitable for logging and
debugging but otherwise cannot be relied upon.
There are two benefits to this change:
The new toString()
is more useful for logging than the
previous value. It is no longer necessary to separately include
fileObject.getFileSystem().toString()
, which was
cumbersome (and required an extra catch clause).
Clients which were incorrectly using toString()
to get
a Java resource path will now be predictably broken, so they can be
fixed to use ClassPath
. (The paths would not have been
usable in NetBeans 4.0 anyway.) Just deprecating
toString()
was not possible because it overrides a
nondeprecated Object
method, and is also inserted into
code by the compiler without emitting any deprecation warning.
Older Filesystems API clients which assumed that
FileObject.toString()
and
FileObject.getPath()
do the same thing will be broken.
FileUtil
URLMapper
; made by: rmatous; issues:
#41506
FileUtil
FileObject
; made by: rmatous; issues:
#37445
FileObject
AbstractFileSystem
; made by: rmatous
public boolean canRead ()
.
Method public boolean isReadOnly ()
was deprecated and replaced with
method: public boolean canWrite ()
. This change can be considered as compatible.
Newly added methods have default implementation. Also AbstractFileSystem was modified and two
necessary method were added: method: public boolean canRead ()
and
method: public boolean canWrite ()
.
URLMapper
; made by: rmatous; issues:
#28312
URLMapper.findFileObjects
returns empty array if not successful.
As far there was in documentation written, that null is returned.
FileUtil
; made by: vstejskal
FileObject
; made by: pzavadsky; issues:
#27640
#27687
FileObject.toString
(it was used
as full path format), which is replaced by
FileObject.getPath
now. Explained correct purpose
of that method. Also added those warnings to
findResource
and findAllResource
of Repository
class.
FileObject.getPath()
returns full resource path of file object
FileObject
; made by: jglick; issues:
#26904
getPackageNameExt('/', '.')
, but this is clumsy to
write, potentially inefficient, and is prone to misinterpretation in the
case of files without any extension (or files ending in a period, or
folders with extensions). Calling toString()
was more
effective, but this suffered from the problem that for compatibility
reasons, no assurance could be made that it would actually give a
resource path - an old FileObject
implementation could
implement it in any way, since it was not originally documented what it
should return. Therefore, the new method getPath()
has been
introduced.
FileObject
implementations ought to override the
new method for efficiency. They should also cease to override
toString
. Subclasses of AbstractFileSystem
(the
normal case) need not be concerned, since the corresponding
FileObject
already implements this method correctly. Code
assuming toString
returns a resource path should be changed
to use getPath
instead.
Repository
; made by: jtulach
URLMapper
; made by: rmatous
public static FileObject[] findFileObjects (URL url)
and
public abstract FileObject[] getFileObjects (URL url)
.
public abstract FileObject[] getFileObjects (URL url)
But there doesn`t exists any known subclass of URLMapper yet. And URLMapper was introduced
recently 2.16 in 3.4 release.
URLMapper
; made by: rmatous
URLMapper
. This class provides basic mapping
for FileObjects from LocalFileSystem, JarFileSystem and MultiFileSystem and is intended
as superclass for individual mappers.
FileSystem
; made by: rmatous
public void FileSystem.refresh (boolean expected))
was added.
FileSystem
; made by: rmatous
public final void addFileChangeListener(FileChangeListener fcl)
and
public final void removeFileChangeListener(FileChangeListener fcl)
was added
to maintain FileChangeListeners that should be notified if some change in FileSystem occures.
Repository
; made by: rmatous
public final void addFileChangeListener(FileChangeListener fcl)
and
public final void removeFileChangeListener(FileChangeListener fcl)
was added
to maintain FileChangeListeners that should be notified if some change in Repository occures.
FileSystem
; made by: rmatous
FileSystem.PROP_DISPLAY_NAME
added to
notify a change in the display name.
FileEvent
s fired inside atomic actions can report from which atomic actions they were fired
FileEvent
; made by: rmatous
boolean FileEvent.firedFrom(FileSystem.AtomicAction run)
returns true if this
FileEvent
was fired from run
.
MultiFileSystem
; made by: rmatous
createWritableOnForRename
in MultiFileSystem
was added. This method has the same meaning as createWritableOn
but have two parameters:
oldName, newName. This method is called from MultiFileObject.rename
.
FileAttributeEvent
; made by: rmatous
FileAttributeEvent
's methods getName ()
,
getOldValue ()
, getNewValue ()
can return null
.
If getName ()
returns null then this means that one of attributes were changed. If
getName ()
returns null
then there is supposed that all FileAttributeEvent
fields will return null
also.
FileAttributeEvent
fields were non-null may now be broken, and should check for
null
s.
FileStateInvalidException
; made by: mschilling
public String getFileSystemName()
. This will
return the name of the filesystem containing the file with invalid
state if such information is available.
FileUtil
; made by: rmatous
public File toFile(FileObject)
. Finds
appropriate java.io.File
to FileObject
if
possible. If not possible then null
is returned.
Also added method public FileObject[] fromFile(File)
. Finds
appropriate FileObject
s to java.io.File
if
possible. If not possible then empty array is returned. More than one
FileObject
may correspond to one java.io.File
so
an array is returned.
WizardDescriptor
as bean customizers
It used to be the case (NB 3.2) that a FileSystem implementation could in its BeanInfo specify a BeanDescriptor whose Customizer class extended WizardDescriptor. This would cause the wizard to be opened when the user tried to mount that filesystem type.
The situation now (from 3.3) is that this no longer opens the customizer and property sheet is presented in the second step of the mount wizard.
FileObject
; made by: rmatous
public FileObject createData(String name)
throws IOException
. Creates new data file in this folder with the
specified name. Plainly calls createData(name,"")
.
FileObject
public final void delete()
.
FileObject
is locked before delete and finally this lock is
released.
AbstractFileSystem
protected boolean checkVirtual(String
name)
.Tests if file really exists or is missing. Some operation on
it may be restricted if returns true.
AbstractFileSystem
protected void markImportant(String name,
boolean important)
. Mark the file as being important or
unimportant.
FileObject
public isVirtual
. Tests if file really
exists or is missing. Some operation on it may be restricted. Return value
true indicates that the file is missing.
Repository
from within Filesystems API
Repository
Repository.getDefault()
that allows standalone
tools (using just filesystems library) without access to
TopManager
to get the default repository of the system.
FileUtil
getMIMEType(FileObject)
. Resolves
MIME type. Registered resolvers are invoked and used to achieve this goal.
Resolvers must subclass MIMEResolver
. If
resolvers do not recognize MIME type then MIME type is obtained for a
well-known extension.
MIMEResolver
MIMEResolver
; made by: rmatous
MIMEResolver
. This class is intended as superclass
for individual resolvers.
FileEvent
FileAttributeEvent
FileRenameEvent
FileEvent
and subclass constructors may take a parameter
boolean expected
.
Repository
is not a cookie
Repository
; made by: jtulach
Repository
has been changed not to implement the
Node.Cookie
interface. The reason for such change is that
this was the only place where filesystems package depended on another part
in the IDE.
Repository
as cookie should be changed to:
ic = (InstanceCookie)node.getCookie(InstanceCookie.class); if (ic != null && Repository.class.isAssignableFrom(ic.instanceCookie())) { // do stuff }
MultiFileSystem
finds actions on a set of files specially
MultiFileSystem
getActions(final Set foSet)
was added, which should
provide a Set of FileObject
s to run the actions on. This method overloads
default behavior of FileSystem.getActions(final Set foSet)
.
MultiFileSystem
; made by: jglick
setPropagateMasks
and getPropagateMasks
added to
make it easier to compose multi filesystems inside other multi filesystems.
XMLFileSystem
XMLFileSystem
XMLFileSystem
that reads content of special XML
file and represents it as filesystem. This filesystem is used by modules
to provide their own content of menus, toolbars, templates, component
palette, etc.
FileUtil
; made by: jglick
AbstractFileSystem
Reference createReference(FileObject fo)
. This
method returns WeakReference
of obj
(new WeakReference (fo)
). If you subclass from
AbstractFileSystem
, you can overload this method to return
another type of Reference
.
AbstractFileSystem
Reference findReference(String resourceName)
. This
method finds the reference associated with resourceName
.
AbstractFileSystem
existingFileObjects(FileObject)
.
Can be used to find all FileObject
s in this filesystem with
the given predecessor.
RepositoryAdapter
added
RepositoryAdapter
; made by: jglick
RepositoryListener
.
LocalFileSystem
JarFileSystem
; made by: jtulach
Many methods in LocalFileSystem
and
JarFileSystem
were declared public though they should never
have been called directly. (They were implementing interface methods
that would only be called from within the class itself.) These methods
are:
children(String)
createData(String)
createFolder(String)
delete(String)
folder(String)
inputStream(String)
lastModified(String)
lock(String)
markUnimportant(String)
mimeType(String)
outputStream(String)
readOnly(String)
rename(String,String)
size(String)
unlock(String)
Also in JarFileSystem
only:
readAttribute(String,String)
writeAttribute(String,String,Object)
attributes(String)
renameAttributes(String,String)
deleteAttributes(String)
All these methods are now protected.
In general, outside code should use the proper outer API to access
filesystems (FileSystem
and FileObject
and
some helper classes), only directly calling methods of implementation
classes where this is required (constructors or
setRootDirectory
). As a matter of style, it is recommended
that calling code declare variables to be of the abstract type (e.g.
FileSystem
) to clarify that only generally available
methods will be called.
boston
. Any outside code calling them as public will break;
however such code is definitely erroneous and should be rewritten.
AbstractFileSystem.refreshRoot
was of the wrong type
AbstractFileSystem
refreshRoot
now returns FileObject
rather than
the subclass AbstractFileObject
. In fact the returned object
currently is always an AbstractFileObject
but this subclass
is package-private so it was an API bug to mention it from an accessible
method.
boston
. The change should be source-code compatible, and is
made to be binary compatible as well.
CustomizeBeanAction
HtmlBrowser
InstanceCookie
InstanceSupport
DocumentLine
Line
PositionRef
WeakListener
CloneableTopComponent
TopComponent
; made by: jglick
Previously, a number of deprecated classes and APIs were made inaccessible in source code but left accessible at runtime (for the benefit of old modules already built in binary form). This was accomplished by patching API module bytecode as it was loaded to expose the old APIs as public. All of these patches have been removed for NetBeans 4.0, so not only can new sources not compile against them, but old binaries can no longer link against them. Also some obsolete classes were simply deleted. Specifically:
new TopComponent(DataObject)
new CloneableTopComponent(DataObject)
new Line(DataObject)
Line.getDataObject()
new DocumentLine(DataObject, PositionRef)
PositionRef.getEditorSupport()
WeakListener.operation(...)
InstanceCookie.Origin
InstanceSupport.Origin
CustomizeBeanAction
HtmlBrowser.BrowserComponent
Binary modules which still used these APIs must be rebuilt for NetBeans 4.0.
HtmlStatus
Node
HtmlRenderer
DataNode
; made by: tboudreau; issues:
#29466
getHtmlDisplayName
. An interface,
HTMLStatus
has been created which extends
FileSystem.Status
, has been created, which allows
filesystems to supply HTML formatted status information, by
implementing it on their FileSystem.Status
implementation.
Filesystems which delegate to other filesystems my implement
FileSystem.HtmlStatus and simply return null for filesystems which
do not support it.
If one is present, DataNode will use it to supply HTML formatted
text to Explorer. The renderer itself can be found in
org.openide.awt.HtmlRenderer.
Places.Nodes.packages
deprecated and no more supported
Places
; made by: pzavadsky; issues:
#27655
Places.Nodes.packages
is not working any more. The default
implementation returns empty node now. Original purpose of this method
was java-centric, what will be not supported. Thus the old
implementation wouldn't be working anyway. (The old packages node impl
was moved to objectbrowser module, where it needs to deal with
upcoming changes.)
ClassElement
Type
ClassElement
, getVMName
and
getSignature
added. getVMName()
returns name
for a class that can be passed to
java.lang.Class.forName()
. getSignature()
returns signature for the class according to the VM specs.
Correspondingly Type
got getVMClassName
and
getSignature
.
org.openide.modules.os.MacOSX
,
org.openide.modules.os.Unix
or
org.openide.modules.os.Windows
token in their manifest:
OpenIDE-Module-Requires: org.openide.modules.os.UnixSuch a module will then be enabled only on specified class of operating systems. See also the modules api description.
Previously, a number of module manifest sections (e.g.
OpenIDE-Module-Class: FileSystem
) had been deprecated
in favor of XML-layer-based installation, but a compatibility layer was
left in place to permit old modules to still function as before. This
layer has been removed.
Manifest-based installation of JavaHelp help sets was also removed.
Modules which did not remove these manifest sections before must do so for NetBeans 4.0.
ModuleInfo.getClassLoader()
ModuleInfo
; made by: jglick; issues:
#38330
ModuleInfo.getClassLoader()
making it
possible to find a Java class loader associated with an enabled module.
ModuleInfo
.
ModuleInfo
; made by: jtulach; issues:
#36064
OpenIDE-Module-Implementation-Version
unchanged
to allow implementation dependencies and still identify the
actual build version by specifying
OpenIDE-Module-Build-Version
. If omited the
build version is equal to implementation version.
Modules may now declare their own transformations of module dependencies using a declarative XML syntax in the folder ModuleAutoDeps/ in the system filesystem. This is useful for being able to manage major refactorings of functionality in a manner that will retain binary compatibility.
InstalledFileLocator
InstalledFileLocator
; made by: jglick; issues:
#28683
netbeans.home
and netbeans.user
should be
replaced with calls to the new supported API.
OpenIDE-Module-Deprecated
and localized attribute OpenIDE-Module-Deprecation-Message
may be used to warn clients of an obsolete API module.
Modules which provide Java-level APIs to other modules can now specify which packages should be considered part of the public API. Other packages are blocked from client modules.
Utilizing this feature for already released modules is very dangerous. See issue #31637 for details.
Thread.contextClassLoader
defaults to TopManager.systemClassLoader
Dependency
ModuleInfo
; made by: jglick; issues:
#18781
OpenIDE-Module-Provides
and
OpenIDE-Module-Requires
were introduced. These permit
modules to depend on capabilities offered by other modules, without
explicitly naming who the provider will be.
Dependency
; made by: jglick; issues:
#19714
JavaHelp support is now in a separate module,
org.netbeans.modules.javahelp/1
. This module includes the
javax.help.**
packages, and it provides the token
org.netbeans.api.javahelp.Help
which signifies the ability
to display help, for example using TopManager.showHelp
, or
by querying Lookup for an instance of Help
.
New modules (declaring a dependency on APIs after 2.2) which wish to
provide a helpset should continue to do so via XML layer, and need only
require the token org.netbeans.api.javahelp.Help
. New
modules wishing to display help can either require this token and use
TopManager.showHelp
, or depend on the
org.netbeans.modules.javahelp/1
API module, require the
token, query Lookup for an instance of Help
, and use its
methods directly. New modules wishing to use the
javax.help.**
packages directly should declare a
dependency on the org.netbeans.modules.javahelp/1
module
rather than using a package dependency.
Existing modules (with an API dependency earlier than 2.2, or none at
all) for compatibility are given an automatic dependency on the
org.netbeans.api.javahelp.Help
token. Additionally, if
they declared a package dependency on javax.help.**
, they
are given an automatic dependency on the
org.netbeans.modules.javahelp/1
module.
(Note: the automatic conversion of the package dependency is implemented by issue #27776, which was not fixed for the NetBeans 3.4 release, but will be for NetBeans 3.4.1. NetBeans 3.4 did, however, add automatic dependencies on the token, by far the more common case.)
Both layer- and manifest-based installation of help sets continue to be supported; manifest-based installation is still deprecated.
ModuleInfo
; made by: jpokorsky
owns(Class)
to determine if the provided class was
loaded as a part of the module.
ModuleInfo
; made by: jglick
OpenIDE-Module-Module-Dependency-Message
and
OpenIDE-Module-Package-Dependency-Message
.
ModuleInfo
Dependency
SpecificationVersion
ModuleDescription
ManifestSection
IllegalModuleException
ModuleInstall
; made by: jglick
ModuleDescription
, ManifestSection
, and
IllegalModuleException
deprecated. ModuleInfo
,
Dependency
, SpecificationVersion
, and
ModuleInstall.validate
added. Module information available
from lookup. Localized properties may be stored in bundles.
ManifestSection
getSectionClass()
.
ModuleDescription
; made by: jglick
getLongDescription
and
TAG_LONG_DESCRIPTION
.
ModuleDescription
; made by: jglick
getDescriptionResource
. Retrieving as URL deprecated.
ModuleDescription
; made by: jglick
getDisplayCategory
and TAG_CATEGORY
.
ModuleDescription
; made by: jglick
getShortDescription
and
TAG_SHORT_DESCRIPTION
.
ModuleDescription
; made by: jglick
getLayerResource()
added. Thus all locale variants of a layer
may be merged together. Retrieval as URL is deprecated.
ModuleDescription
; made by: jglick
PackageAccessibleClassLoader
added to make it
easier to check package dependencies. Package dependencies which include
sample classes are now permitted.
ModuleDescription
; made by: jglick
OpenIDE-Module-Layer
tag that can specify
a resource path to XMLFileSystem that is provided by the module. Also
added method getLayer()
that returns the URL of XML
filesystem if provided.
ModuleDescription
; made by: jglick
getClassLoader
, setClassLoader
and
getBadClasses
.
ModuleDescription
constructor may specify a classloader
ModuleDescription
; made by: jglick
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.
PropertySet
InplaceEditor
PropertyEnv
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.
ControlPanel
ControlPanel.add(SystemOption)
and
ControlPanel.remove(SystemOption)
are deprecated now.
ContextSystemOption.beanContext
changed type
ContextSystemOption
beanContext
has changed type. The previous
type was an inaccessible class, which was an API bug; it is now the
public superclass.
ContextSystemOption
directly accessing this field; but use
of this field is probably unnecessary as addOption
and
removeOption
are the normal public methods to manipulate
the children. As of May 22 '01 the field is
deprecated.
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
Lookups
; made by: jtulach; issues:
#53058
New method that takes lookup and set of classes and return new lookup which contains everything from the original one except instances of the specified classes has been added.
CloneableEditorSupport.notifyModified
is called only on first modification
CloneableEditorSupport
; made by: jtulach; issues:
#52493
It has been found that CloneableEditorSupport.notifyModified
is called more often than it should. It used to be called after every
keystroke, which is bad, as its return value could not be honored -
it is not possible to prevent modification when the document is already
modified. Now the method is called only on first modification of the
document and if it returns false, the modification is not allowed.
This may be incompatible for clients that relied on the often calls.
Such clients need to be fixed.
MetaInfServicesLookup
; made by: dkonecny; issues:
#41606
Some time ago (NetBeans 3.4), a module called the Settings
API was created to handle persistent settings in customizable
formats. The built-in support for
-//NetBeans//DTD Session settings 1.0//EN
(i.e., *.settings
files) was moved to that module and
client modules were encouraged to depend on it; but a copy remained in
the core just in case. The redundant code has now been removed so
anyone using *.settings
files should declare in their
manifest:
OpenIDE-Module-Module-Dependencies: org.netbeans.modules.settings/1 > 1.4
Failure to do so might result in the settings module being
disabled or missing, which would prevent *.settings
files
from functioning.
Modules using XML settings files should declare a dependency on the separated module in order to guarantee that the functionality will work.
lookupItem()
method in Lookups
Lookups
; made by: vstejskal
Lookups
; made by: dstrupl; issues:
#29126
FolderLookup
AbstractLookup
ProxyLookup
; made by: jglick; issues:
#20190
AbstractLookup
as well as
FolderLookup
's lookup. ProxyLookup
has a
protected subclass constructor permitting subclasses to be serializable.
InstanceCookie
between sessions may not work
correctly with the cache. This is probably very rare.
ErrorManager.isNotifiable
added
ErrorManager
; made by: jglick; issues:
#24056
ErrorManager.isNotifiable
was added to capture
the fact that an error manager implementation might be more aggressive
about displaying stack traces than log messages.
isLoggable
can be used for this purpose, or which calls notify
at a low
level such as INFORMATIONAL
without first checking
isNotifiable
for efficiency, should be revised.
Lookups
; made by: dstrupl; issues:
#27425
Lookup.getDefault()
can be specified
by a standard JDK registration mechanism, using JARs'
META-INF/services
directory. This is suitable for services that do not change,
do not require user modification and that need to be ready
soon during initialization of the system. For other usecases
it is still better to continue to use
module layer registration.
TopManager
; made by: jtulach
TopManager
(methods that take no arguments
and return a value like getPlaces
, getLoaderPool
, etc.)
have been deprecated in favor of using Lookup
. So
instead of calling TopManager.getDefault().getLoaderPool()
the suggested way is to Lookup.getDefault().lookup (DataLoaderPool.class)
.
Lookups
; made by: dstrupl; issues:
#20550
public static Lookup singleton(Object objectToLookup); public static Lookup fixed(Object[] objectsToLookup); public static Lookup fixed(Object[] keys, InstanceContent.Convertor convertor);The methods return an instance of simple lookup implementation that holds the objects passed a parameter.
AbstractLookup
ProxyLookup
; made by: jtulach
AbstractLookup.Content
made public to allow its usage
for objects that do not subclass AbstractLookup. ProxyLookup.beforeLookup
added so subclasses can update themselves (call setLookups (...)) before the actual lookup is
performed.
ProxyLookup
ProxyLookup.setLookups
made protected instead of public so
nobody can misuse the method except the creator of the object and
ProxyLookup.getLookups
added. ProxyLookup
made
non final.
AbstractLookup
ProxyLookup
; affected packages: org.openide.util.lookup
; made by: jtulach
org.openide.util.lookup
created, should hold SPI
interfaces for lookup. Initially filled with AbstractLookup
which introduces AbstractLookup.Pair
and with
ProxyLookup
.
Lookup
; made by: jtulach
Lookup
enhanced. Interface Lookup.Item
and
additional methods to access it also added.
Lookup
LookupEvent
LookupListener
; made by: jtulach
Lookup
introduced. There is a
org.openide.util.Lookup
with bunch of inner classes and
org.openide.util.LookupListener
and
org.openide.util.LookupEvent
.
ServiceType.createClone
added
ServiceType
public final ServiceType createClone()
added.
Cloneable
.Places
welcome()
added to Places.Folders
.
TopManager
TopManager
TopManager.setDefault
deprecated.
boston
.
An incompatible change only in the
technical sense: it was called by the core implementation at startup,
and any further attempts to call it would also result in a
SecurityException
anyway.
AbstractLookup
InstanceContent
; made by: jtulach
AbstractLookup.Content
which can be passed to an
abstract lookup in its constructor and used to control the contents
easily. Also InstanceLookup
provides the common easy
implementation.
task.waitFinished(timeout)
added
Task
RequestProcessor
; made by: jtulach; issues:
#16849
It is not possible to wait for a limited amount of time for
completion of any task. The RequestProcessor.Task
version is optimized, the Task
version ensures that
the sematics will be compatible for all subclasses, even they did
not know about the method at all.
OS_FREEBSD
to Utilities
Utilities
; made by: jrechtacek
FreeBSD was not recognized as Unix OS. Utilities
has been
enlarged with new field OS_FREEBSD
, part of OS Unix mask. Utilities.isUnix()
now returns true
for applications run on FreeBSD.
Mutex.isReadAccess()
and Mutex.isWriteAcess()
Mutex
; made by: jtulach; issues:
#49459
Mutex
has already been
granted to it and use it to decide whether it is safe to perform
certain operations or delay them.
SharedClassObject.reset
method to allow subclasses to implement reset correctly
SharedClassObject
SystemOption
; made by: jtulach; issues:
#20962
SharedClassObject.reset
method is called
by the infrastructure in moments when an original (at the time
of start) state of an option or any other SharedClassObject
is requested. Interested subclasses are free to implement any kind of clean
they need. The SystemOption
provides a default
implementation based on fired property changed events, so
its correctly written subclasses do not need
to do anything.
Enumerations
; made by: jtulach; issues:
#41166
org.openide.util.enum
package. We are providing
replacements of the original classes in form of factory methods
org.openide.util.Enumerations
.
HtmlBrowser
HtmlBrowser
; made by: jglick
The methods getBrowserImpl
and
getBrowserComponent
were added to HtmlBrowser
for use by core.
WeakListeners
; made by: jtulach; issues:
#35726
Lookup
ContextGlobalProvider
Utilities
; made by: jtulach; issues:
#34758
ContextGlobalProvider
and new method
in utilities Utilities.actionsGlobalContext()
had to be
added in order to separate the implementation of actions like
CallbackSystemAction
and NodeAction
from
their dependency on window system.
WeakListener
replaced by WeakListeners
class
WeakListener
WeakListeners
FileUtil
NodeOp
; made by: jtulach; issues:
#34758
As part of the work on separation of openide.jar into smaller parts
the WeakListener
had to be deprecated as it referenced too
many classes around and replaced by more general WeakListeners
factory class that provides a generic create
method and
specialized factory methods just for JDK own interfaces.
Also few factory methods were spread into appropriate packages like
FileUtil.weakFileChangeListener
and
NodeOp.weakNodeListener
.
WeakListener
; made by: jtulach; issues:
#32143
WeakListener.operation
method has been removed. Instead of it
one can use the generic WeakListener.create
or
DataLoaderPool.createWeakOperationListener
.
HelpCtx
; made by: jtulach; issues:
#32143
HelpCtx.findHelp(Object)
)
has been added to replace
the old InstanceSupport.findHelp
that has been
separated out from the openide.jar.
RequestProcessor
; made by: dsimonek
org.openide.awt.Mnemonics
added
Mnemonics
Actions
; made by: jglick; issues:
#26640
org.openide.awt.Mnemonics
was introduced as a
centralized and convenient place to set localized text for a variety of
components while properly handling mnemonics in a variety of
international scripts.
AsyncGUIJob
Cancellable
Utilities
; made by: dsimonek; issues:
#30604
Performance related API addition, allows clients to write asynchronous
initialization of UI components easily by providing AsyncGUIJob
implementation. Also introduced Cancellable
ability.
Utilities.attachInitJob
couples init job with target
UI component.
Utilities
TopologicalSortException
; made by: jglick; issues:
#27286
Utilities.topologicalSort
was added. It should be
faster and probably more robust than the older partialSort
method, which required a Comparator
; the new method requires
a list of ordering constraints, which should be O(n + m)
rather than O(n2) (where n is the number of
nodes to sort and m the number of edges). If the graph is
not a DAG a TopologicalSortException
is thrown containing
description of unsortable parts of the graph and the best partitial sort
that fullfils as much of ordering constraints as possible. These
information can be used for error reporting and recovery.
Utilities.toFile
and toURL
added
Utilities
; made by: jglick; issues:
#29711
file
protocol. This task is easy and
safe under JDK 1.4, yet JDK 1.3 lacks a single call to do these tasks which
will handle unusual characters in file names, especially hash marks. The
utility methods use the JDK 1.4 variants when possible, else use specially
coded versions of the JDK 1.3 variants which handle hash marks.
File.toURL
should be
examined, as it may be better to call Utilities.toURL
.
Similarly, code which gets the path from a URL and calls the File
constructor may need to be changed to call Utilities.toFile
.
Such changes should improve robustness of code when used in strangely
named directories.
Utilities
SystemAction
; made by: jglick; issues:
#22156
Utilities.loadImage(String, boolean)
which works like Utilities.loadImage(String)
except
that it will search for localized images. Also
SystemAction.getIcon()
will load a localized image now
if there is one.
Utilities
; made by: dsimonek
HelpCtx
DialogDescriptor
ServiceType
DataObject
Node
SystemOption
SystemAction
NewType
PasteType
TopComponent
; made by: pnejedly
Utilities
; made by: jtulach; issues:
#27238
Lookup
; made by: dstrupl; issues:
#26275
RequestProcessor
; made by: pnejedly
RequestProcessor.DEFAULT
through the static methods is inherently deadlock-prone,
so the methods are deprecated and their usage should phase out
in the favor of using private RequestProcessor
s
or the shared multithreaded instance available through the new
static method RequestProcessor.getDefault()
.
HttpServer
; made by: rkubacki; issues:
#14501
Utilities
; made by: ttran; issues:
#20882
public static Rectangle getUsableScreenBounds(); public static Rectangle getUsableScreenBounds(GraphicsConfiguration gconf); public static Rectangle findCenterBounds(Dimension componentSize);One should use these methods instead of calling
Toolkit.getScreenSize()
. For the same reason
Utilities.getScreenSize()
is now deprecated.
ErrorManager
; made by: jtulach; issues:
#16854
This method allows independent libraries (nodes, filesystems, utilities) to use the ErrorManager without
testing if it is really present. Just call ErrorManager.getDefault ()
and you can be sure
that a valid instance will be returned.
Also TopManager.getErrorManager
is no longer useful (see change) and is now deprecated.
It is also not abstract as it just delegates.
notifyException
is similarly deprecated.
Mutex
Privileged
.
Through its public methods one can enter internal states of the
Mutex
to which it was passed.
setSource
made protected in WeakListener
WeakListener
; made by: anovak; issues:
#11519
ToolbarPool
ToolbarPool
. Now any module can create its
own ToolbarPool
and use it.
Task
Task
has new protected constructor for subclasses and
methods notifyRunning ()
and also non-final version of
waitFinished ()
.
Utilities
Utilities.loadImage()
that uses cache to avoid duplicate
loading of images. mergeImages
uses the cache, too, for the
results of merge.
HtmlBrowser
HtmlBrower.setFactory()
is deprecated and its functionality
can be obtained by registering HtmlBrowser.Impl
in Lookup
folder. This allows to register more browsers in IDE, create
customizable browsers and switch between them.
UserQuestionException
Utilities
mergeImages(Image image1, Image image2, int x, int
y)
for merging images.
NbBundle
; made by: jglick
getLocalizingSuffixes
added.
Utilities
OS_DEC
changed to OS_TRU64
,
and added OS_VMS
.
Toolbar
Toolbar(String name, String displayName)
Toolbar(String name, String displayName, boolean floatable)
setDisplayName(String displayName)
String getDisplayName()
ErrorManager.isLoggable
added
ErrorManager
isLoggable(int severity)
added to ErrorManager
.
WeakListener
create
for creating user specified
WeakListeners, not only default ones.
null
value
FilterEnumeration
FilterEnumeration
is no longer abstract. The default
implementation accepts all non-null
values.
NbBundle
; made by: jglick
getLocalizedFile
now accepts null
extensions
to suppress the addition of a dot to the resource name.
ErrorManager
ErrorManager
getInstance(String name)
, log(int severity, String s)
, and
log(String s)
added to ErrorManager
.
Utilities
wrapString
which uses
BreakIterator
instead of a flag and a heuristic solution.
wrapString(String,int,boolean,boolean)
deprecated.
NbBundle
; made by: jglick
getBranding
and setBranding
.
Normally these should only be called by the core implementation during
startup, not module authors. All methods to look up localized objects
may now also search for branded variants, if applicable.
CharacterArrayCharacterIterator
RE
ReaderCharacterIterator
RECompiler
RESyntaxException
StreamCharacterIterator
StringCharacterIterator
CharacterArrayCharacterIterator
, RE
,
ReaderCharacterIterator
, RECompiler
,
RESyntaxException
, StreamCharacterIterator
,
and StringCharacterIterator
removed. Preferred regexp
classes are those from core/release/lib/ext/regexp.jar:
org.apache.regexp.*
.
java.util.regexp
).
Toolbar
Toolbar
DnDEvent
(dx
, dy
, name
, and
type
); public methods serving only to implement
MouseInputListener
have been removed (as well as the
implements-clause for this interface); BASIC_HEIGHT
now
final (it was static and only intended as a constant, so this is not
incompatible).
boston
. It is possible but unlikely that the first two
changes could cause incompatibilities; normally only the core
implementation uses the Toolbar
class anyway.
NbBundle
is obsolete
NbBundle
NbBundle.ClassLoaderFinder
and
NbBundle.setClassLoaderFinder
have been deprecated; they
were quite obsolete.
boston
. No one outside of NbBundle
and the
core implementation should have been using these classes to begin with.
Actions
; made by: jglick
ButtonBridge
has protected method with which it is possible
to specify whether or not to use textual icons rather than empty ones if
an action has no icon.
SafeException
is a FoldingIOException
SafeException
FoldingIOException
, meaning that it should
delegate the detail message, etc. to the original.
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.
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()
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)
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.
WizardDescriptor
((JComponent)WizardDescriptor.current().getComponent()).putClientProperty()
or WizardDescriptor.putProperty()
.
InputOutput
removed
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.
XMLUtil
; issues:
#16629
toAttribute(String, char, boolean)
method replaced by
toAttributeValue(String)
and
toContent(String, boolean)
method replaced by
toElementContent(String)
. These new simplified
signatures and particular semantics should cover 99% usage of
previous ones. See the original additions.
XMLUtil
toAttribute(String, char, boolean)
, toContent(String,
boolean)
, toHex(byte[], int, int)
and
fromHex(char[], int, int)
methods added.
XMLDataObject
; made by: pkuzel
registerCatalogEntry()
methods.
XMLUtil
EntityCatalog
; affected packages: org.openide.xml
; made by: pkuzel
XMLUtil
utility class introduced. The class provides set of
static methods useful for XML processing. EntityCatalog
class introduced. It provides access to entity mapping registrations
provided by installed modules.
XMLDataObject
; made by: pkuzel
write()
s, parse()
s,
createDocument()
, createInputSource()
and
createParser()
s methods.
Util
providing
utility methods replacing deprecated ones.
XMLDataObject.Util
itself deprecated on
Mar 3 '01 in favor of
XMLUtil
.
XMLDataObject
; made by: pkuzel
Document
s interfaces became level 2 ones.write(Document, Writer)
A conflict between encoding declared in document and actual Writer encoding can cause data loss. Suitable just for UTF-8 and UTF-16 writers.
write(Document, OutputStream, String encoding)
The write method is supposed to be used as an implementation independent way for writing DOM documents until self-writable documents specification will be introduced. The self-writability is considered to be a part of DOM level 3 specs.
Nowadays it is implemented that it can handle following DOM implementations:
XMLDataObject
addEntityResolver
and removeEntityResolver
added. These methods allow a user to develop own implementation of
functionality similar to registerCatalogEntry
. E.g. a user
can register EntityResolver
that reads data from persistent
catalog avoiding bunch of calls to the register method in module
restore
code.
EntityCatalog
.
AbstractCompileAction
BuildAction
BuildAllAction
CleanAction
CleanAllAction
CompileAction
CompileAllAction
ExecuteAction
ArgumentsCookie
CompilerCookie
ExecCookie
FileUtil
CompilerSupport
ExecutionSupport
IOProvider
InputOutput
OutputEvent
OutputListener
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.
DialogDisplayer
LifecycleManager
Places
TopManager
AddWatchAction
BuildProjectAction
CompileProjectAction
DebugProjectAction
ExecuteProjectAction
FinishDebuggerAction
GoAction
GoToCursorAction
HelpAction
OpenProjectAction
SaveProjectAction
StartDebuggerAction
StepOutAction
ToggleBreakpointAction
TraceIntoAction
TraceOverAction
HtmlBrowser
StatusDisplayer
DebuggerCookie
ElementCookie
ProjectCookie
SourceCookie
ChoicePropertyEditor
DirectoryOnlyEditor
ElementFormatEditor
ExternalCompiler
FileEditor
FileOnlyEditor
IconEditor
IdentifierArrayEditor
MethodParameterArrayEditor
ModifierEditor
StringArrayCustomEditor
StringArrayCustomizable
StringArrayEditor
TypeEditor
DataObjectFilter
ExecSupport
ExecutionSupport
ExtensionListEditor
RepositoryNodeFactory
IllegalModuleException
ManifestSection
ModuleDescription
NodeOperation
ControlPanel
ProjectSensitiveAction
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 4 2005. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.