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