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
SystemActions 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
Collections.
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 RequestProcessors
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
Documents 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 May 28 2007. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.