-
Notifications
You must be signed in to change notification settings - Fork 116
Extensions
Extensions provide for a way to plug-in new functions to existing Rexster resources (specifically, graphs, vertices and edges) allowing for support of standard traversal goals such as search, score, rank, and, in concert, recommendation.
Rexster is packaged with the Gremlin Extension which allows users to execute ad-hoc computations on the graph backend. Rexster Kibbles contains additional extensions that can easily plug-in to Rexster.
Extensions are identified by implementing the RexsterExtension
interface and are defined using a series of Annotations
(see Extension Annotations) which instruct Rexster how to expose it through the REST API. The Annotations
are applied to to any class and method to be exposed through the REST API. These Annotations
allow for the definition of meta-data, such as extension description and API documentation, the ExtensionPoint
, which refers to the Rexster resource the extension applies to, namespacing, and the injection of Rexster context into an extension method.
Methods marked for extension must return an ExtensionResponse
which is a wrapper for a a standard Jersey Response
object. The ExtensionResponse
has a series of helper methods for building its own instances so that the underlying details of Jersey are hidden from view. At the same time, the option to build-you-own Jersey Response
object remains open for complete flexibility.
Extensions are configured per graph in rexster.xml. This means that different extensions can be applied to different graphs. Furthermore, each graph extension may be given a different configuration (to the extent that the extension allows for configuration, at least).