Version 3x release notes

February 10, 2014 - March 14, 2014

 


Release 3.1.1 (10/06/2014: Enhancement - New Auth Filter for Rackspace Authentication Posts)

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
Loading...
Refresh

Enhancement

  • Rackspace Auth Identity Filter has been created to populate X-PP-User with a username in the payload of XML or JSON formatted messages for acquiring a token from Identity. This will enable rate-limiting to be done on POSTs for tokens.  REP-1119 - Getting issue details... STATUS

Release 3.0.6 (5/28/2014: Enhancement - Header Handling)

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
Loading...
Refresh

This release includes a minor enhancement.

Enhancement

  • Updated to not split on www-authenticate headers to bring Repose in line with the RFC 2616 REP-392 - Getting issue details... STATUS

Release 3.0.5 (5/13/2014: Enhancement - Header Handling)

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
Loading...
Refresh

This release includes a minor enhancement.

Enhancement

  • In order to work better with clients that don't follow the RFC (Fog) we make minimal changes to header names to include preservation of case.  REP-238 - Getting issue details... STATUS

Release 3.0.4 (3/6/2014: Bug Fix - Translation Filter)

This release includes a bug fix.

Bug Fixes

  • Translation Filter matching for Content Type is now a "contains" rather than an exact regex match.

Release 3.0.2 (2/28/2014: Bug Fix)

This release includes a bug fix.

Bug Fixes

  • Removed optional tag on saxon-ee dependency to fix a classpath issue

Release 3.0.1 (2/20/2014: Bug Fix)

This release includes a bug fix.

Bug Fixes

  • Datastore
    • Bursts of requests will no longer sometimes cause Null Pointer Exceptions. (D-17262)

Release 3.0.0 (2/10/2014: Remove DD Filter, Modularize DD, Bug Fixes)

This release includes modularization of the distributed datastore service and bug fixes.

New Features

  1. Datastore has received a number of changes. These changes affect the contract defined by the Datastore interfaces.
    1. Existing contract was altered to deal in Java Serializables and no longer pre-serialized objects.
    2. The ability to patch was added. Applying a patch will create a piece of data if it didn't exist, otherwise it will make the provided change to the data in the datastore.
    3. When using the old methods with non-JDK classes or the new patch methods in a distributed environment care must be taken with your classpath. Jars with your custom classes will need to be added to the libs directory of your container. We are aware that this isn't ideal and are investigating alternate solutions. If you are using valve, solutions are a little more complicated so please reach out to us on IRC or discourse.openrepose.org.
  2. Client Authorization Filter now utilizes the Akka Service so request bursts from one client will only cause one request to the external authorization service.
  3. Saxon EE set to optional as a step towards Maven Central publishing.
    1. This will require users to add the saxon-ee jar to the Repose classpath if they wish to utilize saxon-ee features.

In-Flight Features

  1. Distributed Datastore Service - modularizing code to support future pluggability of new datastore implementations
    1. Replicated Datastore Filter - as of this release, this filter no longer exists in Repose.  Usage of this filter ("replicated-datastore") will cause Repose failures during startup.  Usage of this filter by the Rate Limiting filter (datastore="distributed/replicated") will cause Repose failures during startup. Users must migrate to the Distributed Datastore Service

Deprecated Attributes

  • The debug attribute in the compression filter is deprecated. The attribute will now be ignored going forward. To use this functionality, logging can be controlled through the log4.j properties file. We recommend removing this attribute from your configuration files.

  • The include-user-agent-patterns attribute in the compression filter is deprecated. The attribute will now be ignored going forward. We recommend removing this attribute from your configuration files.

Bug Fixes

  • Running a request through multiple validators would cause repose to return  'Bad Content: I/O error reported by XML parser processing null: Stream closed' as the input stream for the request was already read and never preserved. Upgrading the api-checker dependency to 1.0.15 resolved this issue by preserving the original request body when running through multiple validators.
  • API Validator Filter
    • rax:roles defined in methods/resources with hrefs not working (D-16090)
  • Client Authentication Filter
    • When a single user sends a burst of requests where there is no auth token present in Repose cache or expired in cache, there is a potential of Repose occasionally returning 500. We have a feature to rework cache expiration that will alleviate this. (B-52618, B-58747, B-57363)
  • Compression Filter
    • Returns status code 200 with an empty body if certain IOExceptions were thrown while decompressing. Fixed to return a 400 on EOFException and 500 for other IOExceptions.
  • Rate Limit Filter
    • During a burst of requests in a single rate limit bucket, more requests than the configured rate limit may go through. (D-16618)

Removed Features

  • The long deprecated Distributed Datastore Filter has been removed.

Release Instructions

This release includes the following non-backwards compatible changes:

  • Removal of the Distributed Datastore Filter. All users must update to the Distributed Datastore Service.
  • Updated Distributed Datastore Service interface.