Release Notes

okram edited this page Sep 17, 2014 · 73 revisions

Rexster: A Graph Server
http://rexster.tinkerpop.com

Rexster 2.y.z

Version 2.6.0 (September 17, 2014)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.6.0</version>
</dependency>
  • Sessionless RexPro requests are now blocked when security is enabled – use in-session requests when using security.

Version 2.5.0 (April 14, 2014)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.5.0</version>
</dependency>
  • Rexster Console .rexster_history file now stored in the user root directory.
  • Prevent RexsterClient from continually retrying if a connection to Rexster is not established.
  • ScriptEngine initialization scripts properly reload on change to rexster.xml.
  • Add read-buffer setting in rexster.xml to increase the size of requests possible to RexPro.
  • Rexster respects the REXSTER_HOME environment variable for purpose of locating the rexster.xml file
  • Altered the semantics of RexsterClient.close()
  • Add configuration (<config-check-interval>) for the interval of time to use to check rexster.xml for change.
  • Gremlin Extension supports returnTotal parameter that will iterate all results and put a count in results.
  • Fix problem where HTTP metrics configuration for rates was not being respected
  • Support for configuration of IdGraph and LinkedDataSailGraph
  • Remove OrientDB dependencies

Version 2.4.0 (August 4, 2013)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.4.0</version>
</dependency>
  • Support server monitoring features via Metrics
  • Add performance testing.
  • The port rexster serves HTTP/REST on can no longer be overriden from rexster.sh.
  • Moved rexster-*.sh and rexster-*.bat to bin/ (noticeable to developers of source only)
  • Changes to rexster.xml no longer require a restart of Rexster to become available.
  • Allow multiple and separate Script Engine configurations with the addition of the <script-engines> element in rexster.xml
    • Configuration of multiple Script Engine initialization files in rexster.xml.
    • Configuration of additional imports to the Script Engine.
  • Property data types in REST now properly support boolean values.
  • Serialize RexPro in the same thread that mutates the graph to prevent partial serialization of property values with Neo4j.
  • Improve logging for
    • Graph configuration errors
    • Bad/missing Gremlin intialization scripts.
    • Incoming RexPro messages
  • Changed `keys` for root of results in key indices REST API to `results` to be more consistent with the rest of the API.
  • Frames Kibble uses FramedGraphFactory to create graphs.
  • Updating rexpro version to v1
    • Added JSON serializer option to rexpro

Version 2.3.0 (March 20, 2013)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.3.0</version>
</dependency>
  • Both RexPro and HTTP Server can be started independently with out configuration parameters, as all now have default values.
  • OPTIONS for extensions returns a default response.
  • Batch Kibble allows for multiple lookups within an manual or key index.
  • Rexster can initialize the Gremlin Script Engine with a script file referenced in rexster.xml.
  • More convenience methods for ExtensionResponse to help simplify writing extensions.
  • Change default IO strategy to leader-follower.
  • Prevent Rexster’s forced Gremlin Script Engine reset as it is now handled by the Script Engine itself.
  • Configuration in rexster.xml for allowing other Script Engine flavors of Gremlin to be exposed.
  • Remove rexster.xml embedded as a resource as the final fallback for configuring Rexster at startup.
  • Allow override of default embedded log4j.properties file with one in the root of REXSTER_HOME.
  • Improve logging configurability.
  • RexsterClient for Java connectivity to Rexster through RexPro.
  • Enable or disable Dog House through rexster.xml
  • Fix JSON serialization of Row results as a Map from the Gremlin Extension.
  • Improved JSON serialization for Map that uses a graph element as the key.

Version 2.2.0 (December 19, 2012)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.2.0</version>
</dependency>
  • Major refactoring and renaming of core “server” classes.
  • ExtensionRequestParameter now supports a defaultValue.
  • Requests with OPTIONS now returns OPTIONS in the Access-Control-Allow-Methods and a response 200 instead of 204.
  • Upgrade to Grizzly 2.2.18 and Jersey 1.14.
  • Include new configuration options in rexster.xml
    • enable-jmx element turns on or turns off JMX monitoring.
    • thread-pool section gives control over how many threads are allocated to Rexster.
    • max-post-size element controls the size of the data that can be POSTed to Rexster.
    • max-header-size element controls the size of the request header that can be sent to Rexster.
    • upload-timeout-millis element represents the length of the time in milliseconds that Rexster will wait for an upload to occur.
  • Fixed Rexster Console where some null results were not being rendered back to it.
  • Fixed Rexster Console issues where transactions were not executing properly as requests within a session were not being bound to specific threads.
  • Update the Dex configuration of rexster.xml to accept an external configuration file.

Version 2.1.0 (August 4, 2012)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster-core</artifactId>
  <version>2.1.0</version>
</dependency>
  • Added Travis continuous integration support
  • Fixed issue with POST and DELETE of key indices via REST API.
  • Configuration element of rexster.xml to bind the rexpro hostname.
  • Vertex query API.
  • Fixed issue with inconsistencies of PUT, POST, and DELETE around manual indices.
  • Restructured project to introduce rexster-core, rexster-console and rexster-protocol.
  • Integration tests now run across TinkerGraph, Neo4j, OrientDB, Titan and Dex by default (Titan is disabled by default)

Version 2.0.0 (May 23, 2012)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster</artifactId>
  <version>2.0.0</version>
</dependency>
  • REST API for POSTing new indices supports params argument which constructs a parameter map which will configure the newly created index
  • The DELETE operation for the Graph resource has been removed since Blueprints no longer supports Graph.clear()
  • The Index resource no longer has a keys sub-resource nor the notion of “automatic” or “manual” indices due to changes in the Blueprints API
  • Add metadata from graph Features to the Graph resource
  • KeyIndexResource to access features of KeyIndexableGraph instances
  • VertexResource and EdgeResource support key index filtering
  • Improved messaging to the server console regarding which rexster.xml file is being loaded

Rexster 0.x

Version 0.8 (Santa’s Little Helper — February 28, 2012)

<dependency>
  <groupId>com.tinkerpop.rexster</groupId>
  <artifactId>rexster</artifactId>
  <version>0.8</version>
</dependency>
  • Added PUT to the Indices resource to place elements in an index. This changes split this functionality away from POST. POST is now only for creating new indices.
  • DELETE of index elements now accepts parameters to be sent as an entity on the request.
  • Fix PermGen issues with Gremlin processing. This is bit of a stop gap fix in that it simply resets the engine after so many script executions.
  • The Gremlin Extension now includes a language parameter so that one can specify the flavor of Gremlin that is being used.
  • Gremlin Extension takes a params extension and applies the keys and values within it to the bindings of the Gremlin script engine.
  • Dog House uses require.js for module loading.
  • Simple graph visualization through JIT.
  • Dog House provides a filter option when browsing vertices and edges. Filters are backed by indices such that the user can select an index then specify a key/value to filter the paged results by.
  • Dropped support for support for application/x-www-form-urlencoded.
  • Basic authentication configurable through rexster.xml and extensible via extensions to AbstractSecurityFilter.
  • Better handling of null values being passed to Gremlin Extension as bindings.
  • Allow configuration of the Rexster server host in rexster.xml.
  • Launching an extension from Dog House that fails now properly removes the “Loading” spinner and displays the error.
  • Encode the URI for extensions launched in Dog House so that they are properly encoded for cut and paste use.
  • Added a mock TransactionalGraph implementation so that a TinkerGraph can be tested in a transactional mode (configured through rexster.xml).
  • Results from the Gremlin Extension that are Iterator implementations are now paging properly.
  • Added the load parameter to the Gremlin Extension so that it is possible to execute server-side stored Gremlin scripts.
  • Gremlin Extension can be configured so that it does not execute scripts sent on the script parameter leaving it to only process server-side scripts with the load parameter.
  • Gremlin Extension can be configured to cache server-side scripts.
  • Sample Kibble
    • Secure Sample Kibble shows how to get a Principal from the SecurityContext.

Version 0.7 (Brian — December 7, 2011)

<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.7</version>
</dependency>
  • Improved performance for most types of requests.
  • Added two custom Rexster mime types: application/vnd.rexster-v1+json and application/vnd.rexster-typed-v1+json.
    • The rexster.showTypes general parameter does not exist anymore and is replaced by application/vnd.rexster-typed-v1+json.
    • Rexster respects the data types of POSTed application/json mime type for edges and vertices.
    • Extensive refactoring of content negotiation and unit tests around these changes.
  • Fixed problem with the Prefix resource where SailGraph in read-only mode generated 500 (Internal Server Error) responses.
  • Added SPARQL Repository configuration.
  • Fixed error that appeared on multiple successive calls to PUT on the Vertex and Edge Resources.
  • The extension key in JSON responses now includes more information:
    • The full URI to the extension resource (not just the relative URL).
    • Parameters for the query string.
    • The name of the extension (not just the description).
  • Dog House has Rexster Extension support
    • List all configured extensions for graphs, vertices and edges.
    • Launch extensions that can be accessed with a GET and that return JSON.
  • Dog House is kinder to SailGraph implementations (generally cosmetic changes).
  • Rexster Console only hosts Gremlin-flavored script engine implementations. Currently, that means that gremlin-groovy is the only exposed language.
  • Upgrade all Kibbles to use GraphSON.
  • Sample Kibble
    • New Parameters Sample Kibble shows how to deal with injecting different data types into the request.

Version 0.6 (Dalmatian — September 18, 2011)

<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.6</version>
</dependency>
<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>batch-kibble</artifactId>
  <version>0.6</version>
</dependency>
<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>frames-kibble</artifactId>
  <version>0.6</version>
</dependency>
<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>sample-kibbles</artifactId>
  <version>0.6</version>
</dependency>
<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>sparql-kibble</artifactId>
  <version>0.6</version>
</dependency>
  • Support for High Availability mode of Neo4j
  • The rexster-stop.sh command is now consistent with the rexster-stop.sh in terms of parameter naming and shorthand.
  • Retrieve adjacency vertices through REST API of the vertex resource.
  • Filter by multiple edge labels in the REST API of the vertex resource.
  • PUT on vertex and edge resources in the REST API replaces all graph element properties with the specified set.
  • Combine rexster-start.sh and rexster-stop.sh into rexster.sh with new -version and -status commands.
  • If the -c argument is not passed at startup, Rexster first tries to read rexster.xml from the root of the working directory. If it cannot be found then it tries to read from a resource.
  • Dog House and REST API both serve from port 8182
    • Dog House is at http://localhost:8182/doghouse
    • The REST URI scheme has changed slightly to include a graphs segment, as in: http://localhost:8182/graphs/tinkergraph
  • RexPro sessions that remain idle for a configurable amount of time are destroyed.
  • Support OPTIONS HTTP method for all REST resources so that HTTP Access Control works properly when used (eg. jquery).
  • New Batch Kibble makes it possible to execute commands in a batch/transactional fashion.
  • Bring all Kibbles up to the latest version of REST API changes for the current version of Rexster.

Version 0.5 (Dog Star — August 1, 2011)

 <dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.5</version>
</dependency>
  • It is now possible to mix and match root level extensions with pathed extensions in the same extension class.
  • Support the Accept-Charset request header.
  • The Dog House Gremlin Console now handles UTF-8.
  • The HTTP method is now displayed in the hypermedia for extensions.
  • Added the parseToJson parameter to the @ExtensionRequestParameter so that it is possible for extensions to control whether or not a specific parameter’s value is parsed to JSON or not.
  • The <graph-file> parameter rexster.xml is now used to locate a graph, not to initialize it. Affects TinkerGraph and MemoryStoreSailGraph implementations.
  • When requesting an index by name http://localhost/graph/indices/edge the index is wrapped in a results key in the return JSON. This is more consistent with other return values.
  • Indices returned from http://localhost/graph/indices or when requested by name have their class value set to edge or vertex as opposed to the full canonical class name.
  • Short-hand command line options.
  • Extensions can be broken up across multiple classes within the same namespace and name.
  • Used the Blueprints JSONWriter to serialize to JSON which fixed a number of problems related to serialization of multi-layered hashes and lists.
  • Nulls in iterators returned through Dog House are displayed as “null”.
  • Rexster Console for evaluating scripts remotely on a Rexster server.

Version 0.4.1 (McGruff — June 28, 2011)

 <dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.4.1</version>
</dependency>
  • Fixed transactional graph error

Version 0.4 (McGruff — June 15, 2011)

 <dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.4</version>
</dependency>
  • Failed vertex POST now returns a “not found” status if the identifier cannot be found in the graph
  • Raw JSON can be POSTed for vertices and edges.
  • Extension can now contain a hyphen in the extension name and namespace.
  • POSTing raw JSON and form data is now supported on the IndexResource.
  • Gremlin scripts that return a null value return a null as a result in the JSON.
  • Non-configured extensions do not appear in JSON for graphs, vertices, and edges.
  • @ExtensionDescriptor is not required for an extension to work within Rexster.
  • Support for RexsterGraph configuration within rexster.xml.
  • The returnKeys parameter now works consistently across Rexster to only accept an array of keys as a value.
  • POST of form data to extensions.
  • POST to prefixes resource works consistently now supporting form data, JSON and query string parameters.
  • Ensured that all requests for a graph that does not exist throws an NOT FOUND HTTP status code.
  • Support start and stop of transactions for POST/DELETE operations
  • Better messaging returned as JSON if Rexster cannot find an extension class not found in com.tinkerpop.rexster.extension.RexsterExtension.
  • Extensions provide support for all standard HTTP methods allowing control through the ExtensionDefinition.

Version 0.3 (Dog Eat Dog — May 8, 2011)

 <dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.3</version>
</dependency>
  • Minor changes to rexster.xml:
    • Addition of the <base-uri> element.
    • Renaming of <webserver-port> to <rexster-server-port>.
    • Renaming of <adminserver-port> to <doghouse-server-port>.
    • Removed some redundancy where rexster.xml had to reference itself within intialization parameters.
  • The port to which the Dog House connects for REST services is no longer hardcoded and is configurable given the changes to rexster.xml defined above.
  • Supports DEX graph database.
  • Neo4jSail is no longer supported within Rexster and Blueprints.
  • Blueprints added a count method to indices. That function is exposed via http://localhost/graph/indices/myindex/count?key=name&value=val
  • Introducing the new extension model. The Gremlin traversal has been converted to the extension model. Traversals have all been removed from Rexster.
  • The following REST API parameters have a new format:
    • rexster.show_types is now rexster.showTypes
    • rexster.return_keys is now rexster.returnKeys
    • rexster.allow_cached is now rexster.allowCached
  • The following standard properties contained within the JSON response have been reformatted:
    • up_time is now upTime
    • query_time is now queryTime
    • read_only is now readOnly
  • Arrays are now serialized to JSON in the same fashion as Lists.
  • Requesting an index resource without parameters will return information about that index instead of a Bad Request status code.
  • Removed built-in caching functions.
  • New command line “debug” option for Rexster server which will turn on all logging of the underlying Jersey/Grizzly server.
  • Remote shutdown.
  • Paging model changed in The Dog House. There is no longer a “Move Last” button when paging through vertices and edges.
  • Prefix resource for SailGraph implementations.

Version 0.2 (Dog House — March 2, 2011)

 <dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.2</version>
</dependency>
  • Fixed problem with return_key parameter on a Gremlin Traversal from causing an error.
  • The return_keys option will now only filter out non-metadata values.
  • Rexster operational when deployed within Tomcat after the conversion from Restlet to Jersey.
  • Fixed problem where specifying a start offset without an end offset was not returning all records from the start to the unspecified end of the list.
  • Fixed problem where specifying a single return_key was returning all properties.
  • Command line options for overriding configuration options in rexster.xml.
  • Graphs configured in rexster.xml have a <read-only> option.
  • Added a Gremlin console to The Dog House.
  • Added vertex and edge property pages to The Dog House such that it is now possible to traverse the graph textually.
  • Bumped to Blueprints 0.5, Pipes 0.3.1, and Gremlin 0.8.

Version 0.1.5 (Fluffy — January 27, 2011)

<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.1.5</version>
</dependency>
  • Support for Gremlin 0.7
  • Bug fix in configuration parameters of rexster.xml preventing certain values from being configurable.
  • Early release of web tool for Rexster for browsing vertices and edges. Will be expanded with additional features in future releases. This feature is experimental only.
  • Sail support
  • Unit test coverage greatly expanded.

Version 0.1 (Fluffy — December 14, 2010)

<dependency>
  <groupId>com.tinkerpop</groupId>
  <artifactId>rexster</artifactId>
  <version>0.1</version>
</dependency>
  • Initial release of the web service shell and rank and score support