Skip to content
This repository has been archived by the owner on Mar 11, 2022. It is now read-only.

Releases: cloudant/java-cloudant

2.6.0 (2016-09-12)

12 Sep 11:08
Compare
Choose a tag to compare
  • [NEW] Enabled reduce and other reduce related parameters to be set when using
    MultipleRequestBuilder.
  • [FIX] Consumed response streams in client.shutdown() and CookieInterceptor to prevent
    connection leaks.
  • [NEW] Added functionality to remove attachment from document by attachment name.
  • [FIX] Issue authenticating with a proxy server when connecting to a HTTPS database server.
  • [FIX] Throw an IllegalArgumentException if using an unsupported proxy type.
  • [IMPROVED] Documentation for connecting to and authenticating with proxy servers.
  • [FIX] java.lang.StringIndexOutOfBoundsException when trying to parse Set-Cookie headers.
  • [FIX] NullPointerException in CookieInterceptor when no body was present on response.
  • [UPGRADED] Upgraded GSON to 2.7
  • [IMPROVED] Added warning messages for JVM DNS cache configuration settings that could impede
    client operation during cluster failover.

2.5.1 (2016-07-19)

19 Jul 10:59
Compare
Choose a tag to compare
  • [IMPROVED] Made the 429 response code backoff optional and configurable. To enable the backoff add
    an instance of a Replay429Interceptor with the desired number of retries and initial backoff:
    ClientBuilder.account("example").interceptors(new Replay429Interceptor(retries, initialBackoff))
    A default instance is available using 3 retries and starting with a 250 ms backoff:
    Replay429Interceptor.WITH_DEFAULTS. To replicate the backoff of version 2.5.0 create an instance
    using new Replay429Interceptor(10, 250l).
  • [FIX] Fixed places where streams where not closed and could cause connections to leak.

2.5.0 (2016-05-24)

24 May 14:57
Compare
Choose a tag to compare
  • [NEW] Handle HTTP status code 429 Too Many Requests with blocking backoff and retries.
  • [NEW] Added DesignDocumentManager.list() to return all design documents defined in a database.
  • [NEW] Added an optional SettableViewParameters.STALE_NO constant for the default omitted case of
    the stale parameter on a view request.
  • [NEW] Added descending option for changes feed.
  • [NEW] Added parameter option for changes feed to allow specifying a custom query parameter on
    the request for example to be used by a filter function.
  • [NEW] Added HttpConnection logging filters for HTTP request method and URL regex.
  • [IMPROVED] Added additional logging output and documentation.
  • [IMPROVED] Documentation for Replication class.
  • [FIX] JsonSyntaxException when deserializing Cloudant query language generated design
    documents into the DesignDocument class.
  • [FIX] PreconditionFailedException was never thrown when calling createDB("dbname") when the
    database already existed.
  • [FIX] Documentation that suggested calling database("dbname", false) would immediately throw a
    NoDocumentException if the database did not exist. The exception is not thrown until the first
    operation on the Database instance.
  • [FIX] ClassCastException when the server responded 403 with a null reason in the JSON.

2.4.3 (2016-05-05)

05 May 08:38
Compare
Choose a tag to compare
  • [IMPROVED] Reduced the length of the User-Agent header string.
  • [IMPROVED] Use a more efficient HEAD request for getting revision information when using
    DesignDocumentManager.remove(String id).
  • [FIX] Regression where _design/ was not optional in ID when using DesignDocumentManager methods.
  • [FIX] Issue where use_index was specified as an array instead of a string when only a design
    document name was provided.
  • [FIX] Issue where empty array was passed for use_index option when FindByIndexOptions.useIndex()
    was not used.
  • [FIX] Incorrect method names in overview documentation example for connecting to Cloudant service.

2.4.2 (2016-04-07)

07 Apr 13:00
Compare
Choose a tag to compare
  • [IMPROVED] Use the JVM default chunk size for HTTP content of unknown length.
  • [FIX] Regression where JsonParseException would be thrown if Database.findByIndex selector
    contained leading whitespace.

2.4.1 (2016-03-10)

10 Mar 16:56
Compare
Choose a tag to compare
  • [NEW] Documentation for logging in project javadoc overview.html.
  • [IMPROVED] Upgraded optional okhttp to 2.7.5.
  • [FIX] Issues with the changes feed, replication, or getting database info when using Cloudant Data
    Layer Local Edition because sequence IDs were incorrectly always treated as strings not JSON.
  • [FIX] Issue of javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure on
    IBM Java with okhttp. SSL connections using okhttp are now configured to use the JVM enabled
    protocols and cipher suites in the same way as the HttpURLConnection.
  • [FIX] Issue where a java.net.ProtocolException was thrown if the cookie had expired when a
    request that included a body was sent. Note that the client no longer uses the
    Expect:100-continue header on requests.
  • [FIX] Fix issue where design documents would not be updated if only the
    indexes field was updated.
  • [FIX] The equals and hashcode methods for Document and ReplicatorDocument failed to compare
    revision identifier and some other fields.
  • [FIX] Issue where connections could leak because streams were not closed.
  • [DEPRECATED] The InputStream setters HttpConnection.setRequestBody(InputStream) and
    HttpConnection.setRequestBody(InputStream, long). Use of the new InputStreamGenerator is
    preferred because it allows for request replays.
  • [CHANGE] Moved HTTP and interceptor code into a separate jar.

2.3.0 (2016-02-12)

12 Feb 17:33
Compare
Choose a tag to compare
  • [NEW] Constructor for Database subclasses.
  • [IMPROVED] Documentation for Database.findByIndex to show complete selector.
  • [IMPROVED] Documentation regarding document revisions.
  • [FIX] CouchDbException: 400 Bad Request: bad_request: invalid_json when a
    query parameter contains a semicolon.
  • [FIX] NullPointerException when using Database.saveAttachment with a null
    revision to attach to a new document with the specified ID.
  • [FIX] CouchDbException when using Database.saveAttachment to update
    attachments.

2.2.0 (2016-01-08)

08 Jan 10:28
Compare
Choose a tag to compare
  • [IMPROVED] Request a session delete on client shutdown.
  • [IMPROVED] Consistently encode all parts of request URLs and handle additional special characters.
  • [FIX] Stopped integers in complex key arrays turning into floats when using view pagination with tokens.
  • [FIX] Replaced string operations with GSON objects when parsing JSON.
  • [FIX] Enabled specification of multiple drilldown parameters for search.
  • [NEW] Database.invokeUpdateHandler now handles POST requests.

2.1.0 (2015-12-04)

07 Dec 10:08
Compare
Choose a tag to compare
  • [IMPROVED] Included error and reason information in message from CouchDbException classes.
  • [IMPROVED] Added HTTP status code to Response objects.
  • [IMPROVED] Added parameter pagination option for views. See ViewRequest.getResponse(String).
  • [FIX] Too many bytes written exception caused by inconsistent encoding between UTF-8 and the
    JVM default. UTF-8 is now correctly used for the request body content length and throughout.
  • [FIX] Fixed deserialization of ReplicatorDocument where the source or target url is a JSON
    object not a string.
  • [FIX] Renew cookies when the server returns a 403 status code with {"error":"credentials_expired"}.
  • [FIX] Cookie authentication now honours custom SSL configurations when making the _session
    request.

2.0.0 (2015-11-12)

12 Nov 13:01
Compare
Choose a tag to compare
  • [NEW] DesignDocument.MapReduce now has a setter for the dbcopy field.
  • [NEW] Requests for the _all_docs endpoint are made via Database#getAllDocsRequestBuilder()
    instead of using a view.
  • [NEW] Introduced new view query API. More information is available in the javadoc,
    including usage and migration examples. Note the absence of an equivalent for queryForStream().
    If you were using the queryForStream() method we would be interested in feedback about your use case.
    For example, if you were using the InputStream directly for streaming API parsing with an alternative
    JSON library we might be able to make this easier by handling the streams and providing a callback.
  • [NEW] Optional OkHttp dependency for per CloudantClient instance connection pooling.
  • [BREAKING CHANGE] Removed Database.batch(Object) method. Using batch=ok is not recommended.
  • [BREAKING CHANGE] JVM http.maxConnections configured pool is used by default for connection pooling.
  • [BREAKING CHANGE] Removed Apache HttpClient dependency. API methods that used HttpClient classes
    (e.g. executeRequest) now use HttpConnection instead.
  • [BREAKING CHANGE] CloudantClient public constructors and ConnectionOptions have been removed.
    CloudantClient instances are now created and have options configured using ClientBuilder.
  • [BREAKING CHANGE] Removed these deprecated methods:
    CloudantClient.deleteDB(String, String) use CloudantClient.deleteDb(String),
    Database.invokeUpdateHandler(String, String, String) use Database.invokeUpdateHandler(String, String, Params),
    CloudantClient.setGsonBuilder(GsonBuilder) use ClientBuilder.gsonBuilder(GsonBuilder).
  • [BREAKING CHANGE] Removed version 1.x view query API.
  • [BREAKING CHANGE] LightCouch classes moved to package com.cloudant.client.org.lightcouch.
    This should only have a visible impact for CouchDbException and its subclasses.
  • [BREAKING CHANGE] Removed DbDesign class and replaced with DesignDocumentManager.
    If you were using the getFromDesk method, convert your design document directory to javascript
    files and use DesignDocumentManager.fromFile(File) or DesignDocumentManager.fromDirectory(File).
    More information is available in the javadoc, including usage for de-serializing design document
    javascript files to DesignDocument objects.
  • [FIX] Use the default port for the protocol when a client instance is created from a URL without
    specifying a port.