Locations of javascript "API" classes

Rod Widdowson rdw at steadingsoftware.com
Tue Oct 28 05:54:17 EDT 2014


I just spotted this when contemplating IdP-622

The JavaScript attribute filter (and documentation) refers to a couple of
classes

net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedIdPAttribute.ScriptedI
dPAttribute

and

edu.internet2.middleware.shibboleth.common.attribute.provider.BasicAttribute

The latter being a subclass of the former used for backwards compatibility.

These currently live within the -impl tree.  

Since they are part of our publicly guaranteed API there is something to be
said about moving them to the -api tree.  However 

1) I would not like to see these APIs used anywhere except inside java.  The
"API" is a JavaScript contract, not a java one. 
2) JavaScript compatibility is a bit different from java compatibility (if I
understand java compatibility), one can just add methods and things don't
break.  I was careful with the documentation
https://wiki.shibboleth.net/confluence/pages/viewpage.action?pageId=12025990
#ResolverScriptAttributeDefinition(V3)-TheScriptedAttribute

So my instinct is that these are correctly located in IMPL, but I am by no
means 100%R and would defer to those who understand this in more detail than
I.

Maybe the answer is to encapsulate the ScriptedAttribute API into something
in the -API tree. Is this a Java Interface?  Or is it something more
JavaScript-y?

Rod



More information about the dev mailing list