plugin.xml
) file. These registry objects are intended for relatively short-term use. Clients that deal with these objects must be aware that they may become invalid if the declaring plug-in is updated or uninstalled. If this happens, all methods except {@link #isValid()} will throw {@link InvalidRegistryObjectException}. For extension objects, the most common case is code in a plug-in dealing with extensions contributed to one of the extension points it declares. Code in a plug-in that has declared that it is not dynamic aware (or not declared anything) can safely ignore this issue, since the registry would not be modified while it is active. However, code in a plug-in that declares that it is dynamic aware must be careful when accessing the extension objects because they become invalid if the contributing plug-in is removed. Similarly, tools that analyze or display the extension registry are vulnerable. Client code can pre-test for invalid objects by calling {@link #isValid()}, which never throws this exception. However, pre-tests are usually not sufficient because of the possibility of the extension object becoming invalid as a result of a concurrent activity. At-risk clients must treat InvalidRegistryObjectException
as if it were a checked exception. Also, such clients should probably register a listener with the extension registry so that they receive notification of any changes to the registry.
This interface can be used without OSGi running.
This interface is not intended to be implemented by clients.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|