The supplied dates indicate when the API change was made, on the CVS trunk. From this you can generally tell whether the change should be present in a given build or not; for trunk builds, simply whether it was made before or after the change; for builds on a stabilization branch, whether the branch was made before or after the given date. In some cases corresponding API changes have been made both in the trunk and in an in-progress stabilization branch, if they were needed for a bug fix; this ought to be marked in this list.
release41
branch was made on Apr 03 '05 for use in the NetBeans 4.1 release.
Specification versions: 6.0 begins after this point.release40
branch was made on Nov 01 '04 for use in the NetBeans 4.0 release.
Specification versions: 5.0 begins after this point.Fuller descriptions of all changes can be found below (follow links).
Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.
SystemAction
refers to Icon
rather than ImageIcon
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
task.waitFinished(timeout)
added
OS_FREEBSD
to Utilities
Mutex.isReadAccess()
and Mutex.isWriteAcess()
SharedClassObject.reset
method to allow subclasses to implement reset correctly
Lookup
WeakListener
replaced by WeakListeners
class
lookupItem()
method in Lookups
Utilities.toFile
and toURL
added
ErrorManager.isNotifiable
added
ErrorManager.isLoggable
added
ServiceType.createClone
added
ErrorManager
SystemAction
refers to Icon
rather than ImageIcon
NbBundle
is obsolete
SafeException
is a FoldingIOException
These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:
OpenIDE-Module-Module-Dependencies: $codebase > 1.20
Lookups.exclude
added to simplify writing of lookups that filter content of other lookups
task.waitFinished(timeout)
added
OS_FREEBSD
to Utilities
Mutex.isReadAccess()
and Mutex.isWriteAcess()
SharedClassObject.reset
method to allow subclasses to implement reset correctly
Lookup
WeakListener
replaced by WeakListeners
class
lookupItem()
method in Lookups
Utilities.toFile
and toURL
added
ErrorManager.isNotifiable
added
org.openide.util.lookup.AbstractLookup
org.openide.util.AsyncGUIJob
org.openide.util.actions.CallbackSystemAction
org.openide.util.Cancellable
org.openide.util.ContextAwareAction
org.openide.util.ContextGlobalProvider
Lookup
org.openide.xml.EntityCatalog
org.openide.util.Enumerations
org.openide.ErrorManager
ErrorManager.isNotifiable
added
ErrorManager.isLoggable
added
ErrorManager
org.openide.util.HelpCtx
org.openide.util.lookup.InstanceContent
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.util.Mutex
Mutex.isReadAccess()
and Mutex.isWriteAcess()
org.openide.util.NbBundle
NbBundle
is obsolete
org.openide.util.datatransfer.NewType
org.openide.util.datatransfer.PasteType
org.openide.util.actions.Presenter
org.openide.util.lookup.ProxyLookup
org.openide.util.RequestProcessor
task.waitFinished(timeout)
added
org.openide.util.io.SafeException
SafeException
is a FoldingIOException
org.openide.ServiceType
ServiceType.createClone
added
org.openide.util.SharedClassObject
org.openide.util.actions.SystemAction
SystemAction
refers to Icon
rather than ImageIcon
org.openide.util.Task
task.waitFinished(timeout)
added
org.openide.util.TopologicalSortException
org.openide.util.UserQuestionException
org.openide.util.Utilities
OS_FREEBSD
to Utilities
Lookup
Utilities.toFile
and toURL
added
org.openide.util.WeakListeners
WeakListener
replaced by WeakListeners
class
org.openide.xml.XMLUtil
ContextAwareAction
Utilities
CallbackSystemAction
; made by: jtulach pzavadsky; issues:
#27868
Introduction of new action system, which generally means
move from usage of SystemAction
to Action
instances.
That document also focuses on declarative actions
usage which is not subject of current change, it will be part of later changes.
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.
ProxyLookup
AbstractLookup
; made by: jtulach; issues:
#68031
Collection
s.
So do not try to modify them. It was always documented that the
results, are immutable and also it was never said that a change is
delivered when there is no change in the result, so this is considered
compatible change, even it is know that at least one piece of code
in NetBeans relied on this behaviour.
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.
Lookups
; made by: dkonecny; issues:
#41606
lookupItem()
method in Lookups
Lookups
; made by: vstejskal
Lookups
; made by: dstrupl; issues:
#29126
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.
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
.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.
RequestProcessor
; made by: jtulach; issues:
#68031
Presenter
; made by: mkleint; issues:
#35827
RequestProcessor
; made by: jtulach; issues:
#33467
public void run () { while (veryLongTimeLook) { doAPieceOfIt (); if (Thread.interrupted ()) return; } }
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
; 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
.
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
WeakListeners
; 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
.
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
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
ServiceType
SystemAction
NewType
PasteType
; 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()
.
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.
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.
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
.
ErrorManager.isLoggable
added
ErrorManager
isLoggable(int severity)
added to ErrorManager
.
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.
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.
SafeException
is a FoldingIOException
SafeException
FoldingIOException
, meaning that it should
delegate the detail message, etc. to the original.
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.
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.
XMLUtil
; 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
.
XMLUtil
; 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:
EntityCatalog
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
.
Built on March 26 2007. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.