<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
    #email-body { min-width: 30em !important; }
    #email-page { padding: 8px !important; }
    #email-banner { padding: 8px 8px 0 8px !important; }
    #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
    #email-fields { padding: 0 8px 8px 8px !important; }
    #email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
    <tr valign="top">
        <td id="email-page" style="padding:16px !important;">
            <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
                <tr valign="top">
                    <td bgcolor="#ffffff" style="background-color:#ffffff;color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="https://shibboleth.net/images/shib_240x83.png" alt="" style="vertical-align:top;" /></td>
                </tr><tr valign="top">
    <td id="email-banner" style="padding:32px 32px 0 32px;">
        
                
        
        
            <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
                                        <img id="email-avatar" src="https://issues.shibboleth.net/jira/secure/useravatar?ownerId=rdw%40iay.org.uk&avatarId=10124" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
                        <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
                                    <a class="user-hover" rel="rdw@iay.org.uk" id="email_rdw@iay.org.uk" href="https://issues.shibboleth.net/jira/secure/ViewProfile.jspa?name=rdw%40iay.org.uk" style="color:#326ca6;">Rod Widdowson</a>
     created <img src="https://issues.shibboleth.net/jira/images/icons/issuetypes/improvement.png" height="16" width="16" border="0" align="absmiddle" alt="Improvement"> <a style='color:#326ca6;text-decoration:none;' href='https://issues.shibboleth.net/jira/browse/IDP-680'>IDP-680</a>
            </div>
                        <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
                <a style='color:#326ca6;text-decoration:none;' href='https://issues.shibboleth.net/jira/browse/IDP-680'><strong>Deprecate Dependency</strong></a>
            </div>
                    </td>
    </tr>
</table>
    </td>
</tr>
<tr valign="top">
    <td id="email-fields" style="padding:0 32px 32px 32px;">
        <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
            <tr valign="top">
                <td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Issue Type:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                <img src="https://issues.shibboleth.net/jira/images/icons/issuetypes/improvement.png" height="16" width="16" border="0" align="absmiddle" alt="Improvement">        Improvement
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Affects Versions:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    3.1.1,                     3.1.0,                     3.0.0            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Assignee:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                                        <a class="user-hover" rel="rdw@iay.org.uk" id="email_rdw@iay.org.uk" href="https://issues.shibboleth.net/jira/secure/ViewProfile.jspa?name=rdw%40iay.org.uk" style="color:#326ca6;">Rod Widdowson</a>
                </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Components:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    Attribute Resolver,                     Configuration            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Created:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        31/Mar/15 5:33 AM
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Description:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <p style='margin-top:0;margin-bottom:10px;'>This case springs from #<a href="https://issues.shibboleth.net/jira/browse/IDP-665" title="Warn on sourceAttributeID being specified if is isn&#39;t used"><del>IDP-665</del></a> in which we opened the can of worms that was sourceAttributeID and &lt;Dependency&gt;</p>

<p style='margin-top:0;margin-bottom:10px;'>These two examples were quoted as valid</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;resolver:AttributeDefinition xsi:type=<span class="code-quote">"Simple"</span> xmlns=<span class="code-quote">"urn:mace:shibboleth:2.0:resolver:ad"</span> id=<span class="code-quote">"wibble"</span> &gt;
  &lt;resolver:Dependency ref=<span class="code-quote">"eduPE"</span> /&gt;                &lt;-- An AttributeDefinition --&gt;
  &lt;resolver:Dependency ref=<span class="code-quote">"eduPersonAffiliation"</span> /&gt; &lt;-- An AttributeDefinition --&gt;
&lt;/resolver:AttributeDefinition&gt;
</pre>
</div></div>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;resolver:AttributeDefinition xsi:type=<span class="code-quote">"Simple"</span> xmlns=<span class="code-quote">"urn:mace:shibboleth:2.0:resolver:ad"</span> id=<span class="code-quote">"wibble"</span> sourceAttributeID=<span class="code-quote">"saID"</span>&gt;
  &lt;resolver:Dependency ref=<span class="code-quote">"eduPE"</span> /&gt;                &lt;-- An AttributeDefinition --&gt;
  &lt;resolver:Dependency ref=<span class="code-quote">"eduPersonAffiliation"</span> /&gt; &lt;-- An AttributeDefinition --&gt;
  &lt;resolver:Dependency ref=<span class="code-quote">"DataConnector"</span> /&gt;        &lt;-- A DataConnector --&gt;
&lt;/resolver:AttributeDefinition&gt;
</pre>
</div></div>
<p style='margin-top:0;margin-bottom:10px;'>Now that #<a href="https://issues.shibboleth.net/jira/browse/IDP-665" title="Warn on sourceAttributeID being specified if is isn&#39;t used"><del>IDP-665</del></a> is done these produce warnings.  But the question arose as to whether we actually meant this capability, or whether it was an unintended circumstance from conflating two or possible three ideas into a general purpose syntax.</p>

<p style='margin-top:0;margin-bottom:10px;'>There are three different ideas at play here</p>

<ul>
        <li>The concept of a dependency.  A resolver plugin which should be run before this one is.  This is a programming artefact and I don’t think it is interesting to the deployer (yea I could construct a case where a scripted resolver affected the context to pass information on to another scripted resolver).  Furthermore it was (to me) confusing since I tended to supply the transitive closure of the dependencies which, from the above could ended up adding attributes from a dataconnector which I didn't want.</li>
</ul>


<ul>
        <li>The input attribute for those resolvers which require a single input (ComputedID, Simple, Mapped, Scoped, NameID…)</li>
</ul>


<ul>
        <li>The input environment for those connectors which might want to look at more attributes (I can only think of Scripted attributes).</li>
</ul>


<p style='margin-top:0;margin-bottom:10px;'>These three concepts were somewhat inelegantly stuffed into two buttons (&lt;Dependency&gt; and sourceAttributeID) which results in something which is reasonably intuitive but which creaks at the edges.   It was the confusion between the second two bullets above which provoked #<a href="https://issues.shibboleth.net/jira/browse/IDP-665" title="Warn on sourceAttributeID being specified if is isn&#39;t used"><del>IDP-665</del></a> and the messy explosion of my mind when I discovered the edges which provokes this case.</p>

<p style='margin-top:0;margin-bottom:10px;'>I’ll also add that there are multiple resolvers out there for which Dependency is meaningless and the documentation has to carry warning about this (always a red flag)</p>

<p style='margin-top:0;margin-bottom:10px;'>So I took an AI to worry about this. My conclusion is that we actually need to be explicit about the second two bullets and to remove the first (it’s an implementation detail and given the second two the implementation can deduce the first).  So the long term proposal is</p>

<p style='margin-top:0;margin-bottom:10px;'>Remove the &lt;Dependency&gt; element entirely and replace it by one of the two following, with these only allowed as children for those types which make sense.</p>

<p style='margin-top:0;margin-bottom:10px;'>+ &lt;SourceAttribute AttributeName=”AttributeName” [DataConnector=”DataConnector”&gt;.  Use these for the simple/scoped/…. case</p>

<p style='margin-top:0;margin-bottom:10px;'>+ &lt;InputAttributes Name=”AttributeNameOrDataConnectorName”&gt;</p>

<p style='margin-top:0;margin-bottom:10px;'>We could alias sourceAttributeID=”foo” to be &lt;SourceAttribute Name=”foo”&gt; if we wanted (you’d get one or the other, not both)</p>

<p style='margin-top:0;margin-bottom:10px;'>This makes it possible to configure such disasters as the above, but their meaning would be explicit</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;resolver:AttributeDefinition xsi:type=<span class="code-quote">"Simple"</span> xmlns=<span class="code-quote">"urn:mace:shibboleth:2.0:resolver:ad"</span> id=<span class="code-quote">"wibble"</span> &gt;
  &lt;resolver: SourceAttribute Name=eduPE" /&gt; 
  &lt;resolver: SourceAttribute Name=<span class="code-quote">"eduPersonAffiliation"</span> /&gt;
&lt;/resolver:AttributeDefinition&gt;
</pre>
</div></div>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;resolver:AttributeDefinition xsi:type=<span class="code-quote">"Simple"</span> xmlns=<span class="code-quote">"urn:mace:shibboleth:2.0:resolver:ad"</span> id=<span class="code-quote">"wibble"</span> sourceAttributeID=<span class="code-quote">"saID"</span>&gt;
  &lt;resolver: SourceAttribute AttributeName=<span class="code-quote">"eduPE"</span> /&gt;
  &lt;resolver: SourceAttribute AttributeName=eduPersonAffiliation" /&gt;
  &lt;resolver: SourceAttribute AttributeName=”said”/&gt;
   &lt;resolver: SourceAttribute AttributeName=”said” DataConnector=<span class="code-quote">"DataConnector"</span> /&gt;  
&lt;/resolver:AttributeDefinition&gt;
</pre>
</div></div>

<p style='margin-top:0;margin-bottom:10px;'>I believe that we can make this and the old style configuration coexist and then to pull the handle on the old style (and remove the warnings from #<a href="https://issues.shibboleth.net/jira/browse/IDP-665" title="Warn on sourceAttributeID being specified if is isn&#39;t used"><del>IDP-665</del></a> since we no longer need to warn about what is explicit).</p>

<p style='margin-top:0;margin-bottom:10px;'>However I’m not sure that we really need to do this.  It clarifies a configuration which most people seem to find trouble free, OTOH it does allow the conflation of attributes’ values into a single output with an obvious syntax (if we think that that is important).</p>

<p style='margin-top:0;margin-bottom:10px;'>For now I’ll target this at Future.  If we decide to do this we probably need to schedule it over two or three minor and one major release<br/>
*n.n Add the new function and document<br/>
*n.n+m (m&gt;=2) Deprecate the old style<br/>
*n+1.0 Remove the old style.</p>

<p style='margin-top:0;margin-bottom:10px;'>But do we care enough?  It really ends up as pointless make-work for our customers.  </p>

<p style='margin-top:0;margin-bottom:10px;'>For completeness I did do some thinking about actually adding the attribute ID to the dependency to make the dataconnector inheritance explicit, but I believe that it adds confusion whilst not stopping the accidental weirdness above so gains us nothing that isn't already covered by the warning from #idp-665</p>
    </td>
</tr>
                                                                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Fix Versions:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    Future            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Project:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <a style="color:#326ca6;" href="https://issues.shibboleth.net/jira/browse/IDP">Identity Provider</a>
    </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Priority:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                        <img src="https://issues.shibboleth.net/jira/images/icons/priorities/major.png" height="16" width="16" border="0" align="absmiddle" alt="Major">                Major
    </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Reporter:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                                        <a class="user-hover" rel="rdw@iay.org.uk" id="email_rdw@iay.org.uk" href="https://issues.shibboleth.net/jira/secure/ViewProfile.jspa?name=rdw%40iay.org.uk" style="color:#326ca6;">Rod Widdowson</a>
                </td>
</tr>                                                    
    
    
                        </table>
                </td>
            </tr>
        </table>
    </td>
</tr>













            </table>
        </td><!-- End #email-page -->
    </tr>
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
            This message is automatically generated by JIRA.<br />
            If you think it was sent incorrectly, please contact your JIRA administrators<br />
            For more information on JIRA, see: <a style='color:#326ca6;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
        </td>
    </tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->