Skip to main content
Jump to: navigation, search

IdAS Context Provider Registry

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}} Obsolete page see IdAS Registry

Context Provider Registry implementation (straw man for 0.5)

A Context Provider one or more types of IContextFactory and IContext. It is responsible for registering its IContextFactory classes with the IdASRegistry. This can be done programmatically (registerContextFactory), but there is also a desire for static configuration. The means of configuration is platform-specific. The Higgins-provided IdASRegistry is likely to use one or both of the following mechanisms:

  • For "raw" Java platforms, use java.security.Provider.
    • ContextProvider extends java.security.Provider.
      • imported through java.security properties file, or via Security.addProvider
      • maps IContextFactory classes to ContextFactory service, using a provider-defined algorithm string
    • ContextFactory is a service (abstract class)
      • algorithm string is defined by provider, used to distinguish ContextFactory services from one another
      • attribute "ProviderName" is required
      • attribute "DataFormats" is required -- lists all underlying data formats supported by factory
  • For Eclipse platforms, use plug-in that extends org.eclipse.higgins.context extension point
    • IdASRegistry uses built-in Eclipse plug-in registry to find providers and their IContextFactory classes


Context Provider Registry implementation (M0.4)

  • Context Provider is code that implements IContextFactory and IContext and is packaged as an Eclipse plug-in that extends org.eclipse.higgins.context extension point
  • Context provider plugins are files installed into a workspace and discovered at runtime by Eclipse plugin registry
  • we use built in Eclipse plugin registry to allow IdAS client to enumerate available plugins
  • we refer to a Context by a context reference that is the concatenation of the context provider plugin's unique extension id (e.g. "org.eclipse.higgins.context.user.context") with the id of a context managed by this provider (e.g. "residents of Raleigh, NC"). A context is identified by using this fully qualified compound identifier.

Back to the top