| <html> |
| |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| |
| <title>Change History for the Lookup API</title> |
| |
| <link rel="stylesheet" href="prose.css" type="text/css"> |
| |
| </head> |
| |
| <body> |
| |
| <p class="overviewlink"> |
| |
| <a href="overview-summary.html" shape="rect">Overview</a> |
| |
| </p> |
| |
| <h1>Introduction</h1> |
| |
| <h2>What do the Dates Mean?</h2> |
| |
| <p>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.</p> |
| |
| <ul> |
| |
| <li>The <code>release41</code> branch was made on Apr 03 '05 for use in the NetBeans 4.1 release. |
| Specification versions: 6.0 begins after this point.</li> |
| |
| <li>The <code>release40</code> branch was made on Nov 01 '04 for use in the NetBeans 4.0 release. |
| Specification versions: 5.0 begins after this point.</li> |
| |
| </ul> |
| |
| <hr> |
| |
| <h1> |
| <a name="list-all-apis">Index of APIs</a> |
| </h1> |
| <ul> |
| <li> |
| <a href="#lookup">Lookup API</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="incompat-by-date">Incompatible changes by date</a> |
| </h1> |
| <p>Fuller descriptions of all changes can be found below (follow links).</p> |
| <p>Not all deprecations are listed here, assuming that the deprecated |
| APIs continue to essentially work. For a full deprecation list, please |
| consult the |
| <a href="deprecated-list.html">Javadoc</a>.</p> |
| <ul> |
| <li>(Oct 22 '14) <a href="#lookups.execute">A way to control Lookup.getDefault</a> |
| </li> |
| <li>(Mar 10 '12) <a href="#lazy.proxy.lookup"><code>ProxyLookup</code> computes results lazily</a> |
| </li> |
| <li>(Apr 3 '06) <a href="#lookupAll-lookupResult">Convenience methods added to <code>Lookup</code></a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-date">All changes by date</a> |
| </h1> |
| <ul> |
| <li>(Oct 22 '14) <a href="#lookups.execute">A way to control Lookup.getDefault</a> |
| </li> |
| <li>(Mar 27 '12) <a href="#named.service.definition">Easy and robust way to register named services</a> |
| </li> |
| <li>(Mar 10 '12) <a href="#lazy.proxy.lookup"><code>ProxyLookup</code> computes results lazily</a> |
| </li> |
| <li>(Jan 15 '10) <a href="#named.services.provider">Introducing semihidden SPI</a> |
| </li> |
| <li>(Dec 20 '09) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li>(Jun 19 '09) <a href="#org.openide.util.Lookup.paths">Added |
| <code>org.openide.util.Lookup.paths</code> property |
| </a> |
| </li> |
| <li>(Nov 1 '08) <a href="#ServiceProvider">Added <code>ServiceProvider</code> annotation</a> |
| </li> |
| <li>(Jun 27 '08) <a href="#Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </li> |
| <li>(Apr 17 '07) <a href="#Lookups.forPath">Added simplified support for named lookups <code>Lookups.forPath</code></a> |
| </li> |
| <li>(Apr 3 '06) <a href="#lookupAll-lookupResult">Convenience methods added to <code>Lookup</code></a> |
| </li> |
| <li>(Nov 11 '05) <a href="#less-events-from-proxylookup">Less change notifications from ProxyLookup</a> |
| </li> |
| <li>(Jan 14 '05) <a href="#excluding-lookup"> |
| <code>Lookups.exclude</code> added to simplify writing of lookups that filter content of other lookups</a> |
| </li> |
| <li>(May 9 '04) <a href="#issue-41606">Added ability to order items in META-INF/services/ lookup</a> |
| </li> |
| <li>(Jul 9 '03) <a href="#version-4.8">New <code>lookupItem()</code> method in Lookups</a> |
| </li> |
| <li>(Feb 5 '03) <a href="#issue-29126">New method Lookups.metaInfServices</a> |
| </li> |
| <li>(Jan 7 '03) <a href="#issue-20190">Folder lookup may be serialized</a> |
| </li> |
| <li>(Sep 20 '02) <a href="#issue-27425">New method Lookups.proxy</a> |
| </li> |
| <li>(Jul 22 '02) <a href="#meta-inf-services">Modules can specify the content of Lookup.getDefault |
| in META-INF/services</a> |
| </li> |
| <li>(May 28 '02) <a href="#issue-20550">Added org.openide.util.lookup.Lookups</a> |
| </li> |
| <li>(Aug 18 '01) <a href="#AbstractLookup.Content-ProxyLookup.beforeLookup">Enhanced usage of ProxyLookup & AbstractLookup.Content</a> |
| </li> |
| <li>(Jul 8 '01) <a href="#version-1.19">Changes in access protection of proxy lookup</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#version-1.9">Lookup service providers package created</a> |
| </li> |
| <li>(May 25 '01) <a href="#version-1.8">Added lookup items and support APIs</a> |
| </li> |
| <li>(Mar 1 '01) <a href="#1.02992453E8">Lookup system introduced</a> |
| </li> |
| <li> |
| <a href="#version-1.25">Instance content simplifies creation of lookups</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-version">Changes by version</a> |
| </h1> |
| <p> |
| 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 <samp>1.20</samp>, your |
| manifest should contain in its main attributes the line: |
| </p> |
| <pre>OpenIDE-Module-Module-Dependencies: $codebase > 1.20</pre> |
| <ul> |
| <li> |
| (8.30) <a href="#lookups.execute">A way to control Lookup.getDefault</a> |
| </li> |
| <li> |
| (8.14) <a href="#named.service.definition">Easy and robust way to register named services</a> |
| </li> |
| <li> |
| (8.13) <a href="#lazy.proxy.lookup"><code>ProxyLookup</code> computes results lazily</a> |
| </li> |
| <li> |
| (8.1) <a href="#named.services.provider">Introducing semihidden SPI</a> |
| </li> |
| <li> |
| (8.0) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li> |
| (7.24) <a href="#org.openide.util.Lookup.paths">Added |
| <code>org.openide.util.Lookup.paths</code> property |
| </a> |
| </li> |
| <li> |
| (7.20) <a href="#ServiceProvider">Added <code>ServiceProvider</code> annotation</a> |
| </li> |
| <li> |
| (7.16) <a href="#Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </li> |
| <li> |
| (7.9) <a href="#Lookups.forPath">Added simplified support for named lookups <code>Lookups.forPath</code></a> |
| </li> |
| <li> |
| (6.10) <a href="#lookupAll-lookupResult">Convenience methods added to <code>Lookup</code></a> |
| </li> |
| <li> |
| (6.7) <a href="#less-events-from-proxylookup">Less change notifications from ProxyLookup</a> |
| </li> |
| <li> |
| (5.4) <a href="#excluding-lookup"> |
| <code>Lookups.exclude</code> added to simplify writing of lookups that filter content of other lookups</a> |
| </li> |
| <li> |
| (4.34) <a href="#issue-41606">Added ability to order items in META-INF/services/ lookup</a> |
| </li> |
| <li> |
| (4.8) <a href="#version-4.8">New <code>lookupItem()</code> method in Lookups</a> |
| </li> |
| <li> |
| (3.35) <a href="#issue-29126">New method Lookups.metaInfServices</a> |
| </li> |
| <li> |
| (3.27) <a href="#issue-20190">Folder lookup may be serialized</a> |
| </li> |
| <li> |
| (3.9) <a href="#issue-27425">New method Lookups.proxy</a> |
| </li> |
| <li> |
| (3.3) <a href="#meta-inf-services">Modules can specify the content of Lookup.getDefault |
| in META-INF/services</a> |
| </li> |
| <li> |
| (2.21) <a href="#issue-20550">Added org.openide.util.lookup.Lookups</a> |
| </li> |
| <li> |
| (1.31) <a href="#AbstractLookup.Content-ProxyLookup.beforeLookup">Enhanced usage of ProxyLookup & AbstractLookup.Content</a> |
| </li> |
| <li> |
| (1.25) <a href="#version-1.25">Instance content simplifies creation of lookups</a> |
| </li> |
| <li> |
| (1.19) <a href="#version-1.19">Changes in access protection of proxy lookup</a> |
| </li> |
| <li> |
| (1.9) <a href="#version-1.9">Lookup service providers package created</a> |
| </li> |
| <li> |
| (1.8) <a href="#version-1.8">Added lookup items and support APIs</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-class">Changes by affected class</a> |
| </h1> |
| <h2> |
| <a name="org.openide.util.lookup.AbstractLookup"><code><span style="color:gray">org.openide.util.lookup.</span>AbstractLookup</code></a> |
| </h2><ul><li>(Dec 20 '09) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li>(Jun 27 '08) <a href="#Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </li> |
| <li>(Nov 11 '05) <a href="#less-events-from-proxylookup">Less change notifications from ProxyLookup</a> |
| </li> |
| <li>(Jan 7 '03) <a href="#issue-20190">Folder lookup may be serialized</a> |
| </li> |
| <li>(Aug 18 '01) <a href="#AbstractLookup.Content-ProxyLookup.beforeLookup">Enhanced usage of ProxyLookup & AbstractLookup.Content</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#version-1.9">Lookup service providers package created</a> |
| </li> |
| <li> |
| <a href="#version-1.25">Instance content simplifies creation of lookups</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.InstanceContent"><code><span style="color:gray">org.openide.util.lookup.</span>InstanceContent</code></a> |
| </h2><ul><li>(Jun 27 '08) <a href="#Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </li> |
| <li> |
| <a href="#version-1.25">Instance content simplifies creation of lookups</a> |
| </li></ul><h2> |
| <a name="org.openide.util.Lookup"><code><span style="color:gray">org.openide.util.</span>Lookup</code></a> |
| </h2><ul><li>(Dec 20 '09) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li>(Jun 19 '09) <a href="#org.openide.util.Lookup.paths">Added |
| <code>org.openide.util.Lookup.paths</code> property |
| </a> |
| </li> |
| <li>(Apr 3 '06) <a href="#lookupAll-lookupResult">Convenience methods added to <code>Lookup</code></a> |
| </li> |
| <li>(May 25 '01) <a href="#version-1.8">Added lookup items and support APIs</a> |
| </li> |
| <li>(Mar 1 '01) <a href="#1.02992453E8">Lookup system introduced</a> |
| </li></ul><h2> |
| <a name="org.openide.util.LookupEvent"><code><span style="color:gray">org.openide.util.</span>LookupEvent</code></a> |
| </h2><ul><li>(Mar 1 '01) <a href="#1.02992453E8">Lookup system introduced</a> |
| </li></ul><h2> |
| <a name="org.openide.util.LookupListener"><code><span style="color:gray">org.openide.util.</span>LookupListener</code></a> |
| </h2><ul><li>(Mar 1 '01) <a href="#1.02992453E8">Lookup system introduced</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.Lookups"><code><span style="color:gray">org.openide.util.lookup.</span>Lookups</code></a> |
| </h2><ul><li>(Oct 22 '14) <a href="#lookups.execute">A way to control Lookup.getDefault</a> |
| </li> |
| <li>(Dec 20 '09) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li>(Apr 17 '07) <a href="#Lookups.forPath">Added simplified support for named lookups <code>Lookups.forPath</code></a> |
| </li> |
| <li>(Jan 14 '05) <a href="#excluding-lookup"> |
| <code>Lookups.exclude</code> added to simplify writing of lookups that filter content of other lookups</a> |
| </li> |
| <li>(May 9 '04) <a href="#issue-41606">Added ability to order items in META-INF/services/ lookup</a> |
| </li> |
| <li>(Jul 9 '03) <a href="#version-4.8">New <code>lookupItem()</code> method in Lookups</a> |
| </li> |
| <li>(Feb 5 '03) <a href="#issue-29126">New method Lookups.metaInfServices</a> |
| </li> |
| <li>(Sep 20 '02) <a href="#issue-27425">New method Lookups.proxy</a> |
| </li> |
| <li>(May 28 '02) <a href="#issue-20550">Added org.openide.util.lookup.Lookups</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.NamedServiceDefinition"><code><span style="color:gray">org.openide.util.lookup.</span>NamedServiceDefinition</code></a> |
| </h2><ul><li>(Mar 27 '12) <a href="#named.service.definition">Easy and robust way to register named services</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.ProxyLookup"><code><span style="color:gray">org.openide.util.lookup.</span>ProxyLookup</code></a> |
| </h2><ul><li>(Dec 20 '09) <a href="#lookup.is.free">Separate module for Lookup API</a> |
| </li> |
| <li>(Jun 27 '08) <a href="#Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </li> |
| <li>(Nov 11 '05) <a href="#less-events-from-proxylookup">Less change notifications from ProxyLookup</a> |
| </li> |
| <li>(Jan 7 '03) <a href="#issue-20190">Folder lookup may be serialized</a> |
| </li> |
| <li>(Aug 18 '01) <a href="#AbstractLookup.Content-ProxyLookup.beforeLookup">Enhanced usage of ProxyLookup & AbstractLookup.Content</a> |
| </li> |
| <li>(Jul 8 '01) <a href="#version-1.19">Changes in access protection of proxy lookup</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#version-1.9">Lookup service providers package created</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.ServiceProvider"><code><span style="color:gray">org.openide.util.lookup.</span>ServiceProvider</code></a> |
| </h2><ul><li>(Nov 1 '08) <a href="#ServiceProvider">Added <code>ServiceProvider</code> annotation</a> |
| </li></ul><h2> |
| <a name="org.openide.util.lookup.ServiceProviders"><code><span style="color:gray">org.openide.util.lookup.</span>ServiceProviders</code></a> |
| </h2><ul><li>(Nov 1 '08) <a href="#ServiceProvider">Added <code>ServiceProvider</code> annotation</a> |
| </li></ul><hr> |
| <h1> |
| <a name="details-by-api">Details of all changes by API and date</a> |
| </h1> |
| <hr style="width:50%"> |
| <h2> |
| <a name="lookup">Lookup API</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="lookups.execute">A way to control Lookup.getDefault</a> |
| </h3> |
| <em>Oct 22 '14; API spec. version: 8.30; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=247930"> |
| #247930</a></em> |
| <br> |
| |
| <p> |
| One can use <a href="org/openide/util/lookup/Lookups.html#executeWith-org.openide.util.Lookup-java.lang.Runnable-" shape="rect"> |
| Lookups.execute(yourLookup, yourRunnable) |
| </a> to temporarily influence return value from |
| <a href="org/openide/util/Lookup.html#getDefault--" shape="rect"> |
| Lookup.getDefault()</a>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| The clients of <a href="org/openide/util/Lookup.html#getDefault--" shape="rect"> |
| Lookup.getDefault()</a> are mostly unaffected by this change, |
| just they need to be ready for the fact that the return |
| value of the method may no longer be fixed one, but can mutate |
| over time. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="named.service.definition">Easy and robust way to register named services</a> |
| </h3> |
| <em>Mar 27 '12; API spec. version: 8.14; affected top-level classes: <a href="./org/openide/util/lookup/NamedServiceDefinition.html"><code>NamedServiceDefinition</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209780"> |
| #209780</a></em> |
| <br> |
| |
| <p> |
| Meta annotation |
| <a href="org/openide/util/lookup/NamedServiceDefinition.html" shape="rect">NamedServiceDefinition</a> |
| for those who define their own annotations that register |
| something into |
| <a href="org/openide/util/lookup/Lookups.html#forPath-java.lang.String-" shape="rect"> |
| Lookups.forPath</a> registration area. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="lazy.proxy.lookup"><code>ProxyLookup</code> computes results lazily</a> |
| </h3> |
| <em>Mar 10 '12; API spec. version: 8.13; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209322"> |
| #209322</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="org/openide/util/lookup/ProxyLookup.html" shape="rect"> |
| ProxyLookup.lookupAll().iterator()</a> is now incremental. |
| E.g. you can use traverse part of the results without |
| waiting for or creating all of them: |
| </p> |
| |
| <pre xml:space="preserve"> |
| for (<a href="http://download.oracle.com/javase/8/docs/api/java/net/URLStreamHandlerFactory.html" shape="rect">URLStreamHandlerFactory</a> first : <a href="org/openide/util/Lookup.html#getDefault--" shape="rect">Lookup.getDefault()</a>.lookupAll(<a href="http://download.oracle.com/javase/8/docs/api/java/net/URLStreamHandlerFactory.html" shape="rect">URLStreamHandlerFactory</a>.class)) { |
| return first; |
| } |
| </pre> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Calling <a href="org/openide/util/lookup/ProxyLookup.html" shape="rect"> |
| ProxyLookup.lookupAll()</a> and other methods that compute |
| aggregate results delays computation of the result. This |
| may affect code which called |
| <a href="org/openide/util/Lookup.Result.html" shape="rect">Lookup.Result</a>.<code>allItems</code>, |
| <code>allInstances</code> or <code>allClasses</code> and relied |
| on side effect of such call. In case you want to trigger the |
| computation call some method on the returned |
| <a href="http://download.oracle.com/javase/8/docs/api/java/util/Collection.html" shape="rect">Collection</a> |
| (other than <code>iterator()</code>) like <code>size()</code> |
| or <code>isEmpty</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="named.services.provider">Introducing semihidden SPI</a> |
| </h3> |
| <em>Jan 15 '10; API spec. version: 8.1; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=179289"> |
| #179289</a></em> |
| <br> |
| |
| <p> |
| Adding SPI interface package for those who implement |
| the NetBeans platform. This package is not shown in Javadoc |
| as it does not form a generally available public API. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="lookup.is.free">Separate module for Lookup API</a> |
| </h3> |
| <em>Dec 20 '09; API spec. version: 8.0; affected top-level classes: <a href="./org/openide/util/Lookup.html"><code>Lookup</code></a> <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a> <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=170056"> |
| #170056</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="../org-openide-util-lookup/org/openide/util/Lookup.html" shape="rect">Lookup</a> |
| and its associated interfaces are now available as a |
| <a href="../org-openide-util-lookup/overview-summary.html" shape="rect">separate module</a>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Runtime compatibility remains, compile time compatibility is |
| mostly preserved too. It is however recommended to upgrade |
| dependencies of your modules. Try running |
| <code>ant fix-dependencies</code> in your Ant module. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.openide.util.Lookup.paths">Added |
| <code>org.openide.util.Lookup.paths</code> property |
| </a> |
| </h3> |
| <em>Jun 19 '09; API spec. version: 7.24; affected top-level classes: <a href="./org/openide/util/Lookup.html"><code>Lookup</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=166782"> |
| #166782</a></em> |
| <br> |
| |
| <p> |
| Better way to integrate Lookup.getDefault() and system filesystem. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="ServiceProvider">Added <code>ServiceProvider</code> annotation</a> |
| </h3> |
| <em>Nov 1 '08; API spec. version: 7.20; affected top-level classes: <a href="./org/openide/util/lookup/ServiceProvider.html"><code>ServiceProvider</code></a> <a href="./org/openide/util/lookup/ServiceProviders.html"><code>ServiceProviders</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=150447"> |
| #150447</a></em> |
| <br> |
| |
| <p> |
| Added annotations <code>ServiceProvider</code> and <code>ServiceProviders</code> |
| to simplify registration of global singleton services. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Modules registering services using <code>META-INF/services</code> |
| files in the source tree are encouraged to switch to the annotation. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="Lookup.asynchronous">AbstractLookup and ProxyLookup fire changes asynchronously</a> |
| </h3> |
| <em>Jun 27 '08; API spec. version: 7.16; affected top-level classes: <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a> <a href="./org/openide/util/lookup/InstanceContent.html"><code>InstanceContent</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=134297"> |
| #134297</a></em> |
| <br> |
| |
| <p> |
| All modification methods in <code>AbstractLookup</code> and <code>ProxyLookup</code> |
| were extended to accept an |
| <a href="http://download.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html" shape="rect">Executor</a>. |
| If not null, it is used to dispatch events to listeners sometime |
| "later". Also the <code>AbstractLookup.Content</code> |
| and <code>InstanceContent</code> constructors |
| have been extended to accept such <code>Executor</code>s. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="Lookups.forPath">Added simplified support for named lookups <code>Lookups.forPath</code></a> |
| </h3> |
| <em>Apr 17 '07; API spec. version: 7.9; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=98426"> |
| #98426</a></em> |
| <br> |
| |
| <p> |
| New method <a href="org/openide/util/lookup/Lookups.html#forPath-java.lang.String-" shape="rect">Lookups.forPath(String)</a> |
| has been added to replace now deprecated <a href="../org-openide-loaders/org/openide/loaders/FolderLookup.html" shape="rect">FolderLookup</a> |
| and allow modules who wants to read settings from layers |
| to do so with a simpler code, without dependency on DataSystems API. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="lookupAll-lookupResult">Convenience methods added to <code>Lookup</code></a> |
| </h3> |
| <em>Apr 3 '06; API spec. version: 6.10; affected top-level classes: <a href="./org/openide/util/Lookup.html"><code>Lookup</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=73848"> |
| #73848</a></em> |
| <br> |
| |
| <p> |
| Two methods, <code>lookupResult</code> and <code>lookupAll</code>, were |
| added to <code>Lookup</code> to encapsulate the most common usage patterns |
| with less typing, and more importantly avoiding the need to explicitly |
| make a <code>Lookup.Template</code> object. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Could conceivably conflict with existing subclass method with same signature |
| with different semantics or return type. |
| </p> |
| |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="less-events-from-proxylookup">Less change notifications from ProxyLookup</a> |
| </h3> |
| <em>Nov 11 '05; API spec. version: 6.7; affected top-level classes: <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a> <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=68031"> |
| #68031</a></em> |
| <br> |
| |
| <a href="org/openide/util/lookup/ProxyLookup.html" shape="rect">ProxyLookup.setLookups</a> |
| used to fire <a href="org/openide/util/LookupEvent.html" shape="rect">LookupEvent</a> every |
| time it was called. Now it always checks whether there was a change to the |
| previous state. This will reduce the number of events delivered when a small |
| change is made. Also results from both |
| <a href="org/openide/util/lookup/ProxyLookup.html" shape="rect">ProxyLookup</a> |
| and <a href="org/openide/util/lookup/AbstractLookup.html" shape="rect">AbstractLookup</a> |
| were modified to return immutable <code>Collection</code>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. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="excluding-lookup"> |
| <code>Lookups.exclude</code> added to simplify writing of lookups that filter content of other lookups</a> |
| </h3> |
| <em>Jan 14 '05; API spec. version: 5.4; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=53058"> |
| #53058</a></em> |
| <br> |
| |
| <p>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. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-41606">Added ability to order items in META-INF/services/ lookup</a> |
| </h3> |
| <em>May 9 '04; API spec. version: 4.34; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: dkonecny; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=41606"> |
| #41606</a></em> |
| <br> |
| Items in META-INF/services/ lookup can be followed by advisory |
| "position" attribute. The resulting lookup will list first items with lower |
| position value. Items without position attribute will be listed |
| last. See documentation for more details on format. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-4.8">New <code>lookupItem()</code> method in Lookups</a> |
| </h3> |
| <em>Jul 9 '03; API spec. version: 4.8; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: vstejskal</em> |
| <br> |
| New method that returns Lookup.Item implementation for given instance and key identifying |
| that instance in the lookup. This method is useful when writing Looks which need to |
| return some cookies (Collection of Lookup.Items). |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-29126">New method Lookups.metaInfServices</a> |
| </h3> |
| <em>Feb 5 '03; API spec. version: 3.35; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: dstrupl; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=29126"> |
| #29126</a></em> |
| <br> |
| A lookup that implements the JDK1.3 JAR services mechanism and delegates |
| to META-INF/services/name.of.class files. This lookup was (is) used by core |
| and the core had to use reflection to create an instance. Moreover can |
| be usefull for module authors and in standalone library. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-20190">Folder lookup may be serialized</a> |
| </h3> |
| <em>Jan 7 '03; API spec. version: 3.27; affected top-level classes: <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=20190"> |
| #20190</a></em> |
| <br> |
| To implement lookup caching, some lookup implementations are now |
| serializable: <code>AbstractLookup</code> as well as |
| <code>FolderLookup</code>'s lookup. <code>ProxyLookup</code> has a |
| protected subclass constructor permitting subclasses to be serializable. |
| <br> |
| <strong>Compatibility: </strong> |
| Modules which rely on a data object under <samp>Services/</samp> gaining |
| or losing <code>InstanceCookie</code> between sessions may not work |
| correctly with the cache. This is probably very rare. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-27425">New method Lookups.proxy</a> |
| </h3> |
| <em>Sep 20 '02; API spec. version: 3.9; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: dstrupl; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=27425"> |
| #27425</a></em> |
| <br> |
| Creates a lookup that delegates to another one but that one can change |
| from time to time. The returned lookup checks every time somebody calls |
| lookup or lookupItem method whether the provider still returns |
| the same lookup. If not, it updates state of all Lookup.Results |
| that it created (and that still exists). |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="meta-inf-services">Modules can specify the content of Lookup.getDefault |
| in META-INF/services</a> |
| </h3> |
| <em>Jul 22 '02; API spec. version: 3.3; made by: jtulach</em> |
| <br> |
| The content of <code>Lookup.getDefault()</code> can be specified |
| by a standard JDK registration mechanism, using JARs' |
| <a href="http://java.sun.com/j2se/1.4/docs/guide/jar/jar.html#Service%20Provider" shape="rect"> |
| META-INF/services |
| </a> |
| 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. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-20550">Added org.openide.util.lookup.Lookups</a> |
| </h3> |
| <em>May 28 '02; API spec. version: 2.21; affected top-level classes: <a href="./org/openide/util/lookup/Lookups.html"><code>Lookups</code></a>; made by: dstrupl; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=20550"> |
| #20550</a></em> |
| <br>New utility class added. The class cannot be instantiated |
| and contains following static methods: |
| <pre xml:space="preserve"> |
| |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Lookup</span> <span class="function-name">singleton</span>(<span class="type">Object</span> <span class="variable-name">objectToLookup</span>); |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Lookup</span> <span class="function-name">fixed</span>(<span class="type">Object</span>[] <span class="variable-name">objectsToLookup</span>); |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Lookup</span> <span class="function-name">fixed</span>(<span class="type">Object</span>[] <span class="variable-name">keys</span>, <span class="type">InstanceContent.Convertor</span> <span class="variable-name">convertor</span>); |
| </pre> |
| The methods return an instance of simple lookup implementation |
| that holds the objects passed a parameter. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="AbstractLookup.Content-ProxyLookup.beforeLookup">Enhanced usage of ProxyLookup & AbstractLookup.Content</a> |
| </h3> |
| <em>Aug 18 '01; API spec. version: 1.31; affected top-level classes: <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a>; made by: jtulach</em> |
| <br> |
| |
| <code>AbstractLookup.Content</code> made public to allow its usage |
| for objects that do not subclass AbstractLookup. <code>ProxyLookup.beforeLookup</code> |
| added so subclasses can update themselves (call setLookups (...)) before the actual lookup is |
| performed. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.19">Changes in access protection of proxy lookup</a> |
| </h3> |
| <em>Jul 8 '01; API spec. version: 1.19; affected top-level classes: <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a></em> |
| <br> |
| |
| <code>ProxyLookup.setLookups</code> made protected instead of public so |
| nobody can misuse the method except the creator of the object and |
| <code>ProxyLookup.getLookups</code> added. <code>ProxyLookup</code> made |
| non final. |
| <br> |
| <strong>Compatibility: </strong> |
| Changes to newly added feature. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.9">Lookup service providers package created</a> |
| </h3> |
| <em>Jun 1 '01; API spec. version: 1.9; affected top-level classes: <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/ProxyLookup.html"><code>ProxyLookup</code></a>; affected packages: <a href="./org/openide/util/lookup/package-summary.html"><code>org.openide.util.lookup</code></a>; made by: jtulach</em> |
| <br> |
| Package <code>org.openide.util.lookup</code> created, should hold SPI |
| interfaces for lookup. Initially filled with <code>AbstractLookup</code> |
| which introduces <code>AbstractLookup.Pair</code> and with |
| <code>ProxyLookup</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.8">Added lookup items and support APIs</a> |
| </h3> |
| <em>May 25 '01; API spec. version: 1.8; affected top-level classes: <a href="./org/openide/util/Lookup.html"><code>Lookup</code></a>; made by: jtulach</em> |
| <br> |
| |
| <code>Lookup</code> enhanced. Interface <code>Lookup.Item</code> and |
| additional methods to access it also added. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="1.02992453E8">Lookup system introduced</a> |
| </h3> |
| <em>Mar 1 '01; affected top-level classes: <a href="./org/openide/util/Lookup.html"><code>Lookup</code></a> <a href="./org/openide/util/LookupEvent.html"><code>LookupEvent</code></a> <a href="./org/openide/util/LookupListener.html"><code>LookupListener</code></a>; made by: jtulach</em> |
| <br> |
| Better version of <code>Lookup</code> introduced. There is a |
| <code>org.openide.util.Lookup</code> with bunch of inner classes and |
| <code>org.openide.util.LookupListener</code> and |
| <code>org.openide.util.LookupEvent</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.25">Instance content simplifies creation of lookups</a> |
| </h3> |
| <em>(date unknown); API spec. version: 1.25; affected top-level classes: <a href="./org/openide/util/lookup/AbstractLookup.html"><code>AbstractLookup</code></a> <a href="./org/openide/util/lookup/InstanceContent.html"><code>InstanceContent</code></a>; made by: jtulach</em> |
| <br> |
| Added <code>AbstractLookup.Content</code> which can be passed to an |
| abstract lookup in its constructor and used to control the contents |
| easily. Also <code>InstanceLookup</code> provides the common easy |
| implementation. |
| |
| <hr> |
| |
| <p><span class="footnote">Built on September 14 2018. | Copyright © 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p> |
| |
| </body> |
| |
| </html> |