The diagram below provides an overview of the capabilities interfaces.
The key interface is java.state.Capability which is implemented by BasicCapability. The JavaDoc notes that the Capability is:
* For providers they are used to express the features / qualities of service they support. They can * also be used to express default configurations, a form of capability.
The UML diagram below highlights the relationship to configuration. Note that a capability can have one or many configurations.
I did some more background reading on JSR 107 and JSR 347 as JSR 350 is positioned as supporting these. I found http://www.theserverside.com/discussions/thread.tss?thread_id=62204 particularly informative. For me it highlights a need to work closely with those JSR groups and indeed the teams which are likely to implement the APIs.
Some thoughts were: