<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    As I mentioned on the call today, I had been thinking about this a
    lot over the last couple of weeks.  Wanting to take a break from
    delegation work, I decided to start coding something up.  It proved
    to be as easy, or perhaps easier, than I expected.<br>
    <br>
    I basically have the fundamental indexing framework done and
    tested.  Details in the issue. [1]  If anyone has any
    comments/feedback/concerns, let me know.<br>
    <br>
    I did a MetadataIndex impl for indexing by roles.  Might be useful
    for example in a discovery interface - "give me all the IdPs".<br>
    <br>
    I also did a Function-driven impl of the MetadataIndex.  Just need
    to plugin a couple of functions like so:<br>
    <br>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <pre class="code-java">    /** Function <span class="code-keyword">for</span> producing index keys from a CriteriaSet. */
    @Nonnull <span class="code-keyword">private</span> Function<CriteriaSet, Set<MetadataIndexKey>> criteriaStrategy;
    
    /** Function <span class="code-keyword">for</span> producing index keys from an EntityDescriptor. */
    @Nonnull <span class="code-keyword">private</span> Function<EntityDescriptor, Set<MetadataIndexKey>> descriptorStrategy;</pre>
    <br>
    That impl would be very useful if we can do scripted impls of those
    2 functions.  I don't know how hard that is, but if it's easy, it
    would mean deployers could theoretically configue adhoc indexes
    right in config without having to write any Java, esp if the indexed
    info can be flattened out to a simple String, for which there is a
    common API SimpleStringMetadataIndexKey impl.<br>
    <br>
    All that remains is to implement MetadataIndex impls for the 2 use
    cases we had on deck for CAS endpoint stuff and SAML artifact.
    Should be pretty easy.  Just need to clarify some details.<br>
    <br>
    <br>
    [1] <a class="moz-txt-link-freetext" href="https://issues.shibboleth.net/jira/browse/OSJ-128">https://issues.shibboleth.net/jira/browse/OSJ-128</a><br>
  </body>
</html>