This repository was archived by the owner on Mar 11, 2022. It is now read-only.
Releases: cloudant/java-cloudant
Releases · cloudant/java-cloudant
2.6.0 (2016-09-12)
- [NEW] Enabled
reduceand other reduce related parameters to be set when using
MultipleRequestBuilder. - [FIX] Consumed response streams in
client.shutdown()andCookieInterceptorto 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
IllegalArgumentExceptionif using an unsupported proxy type. - [IMPROVED] Documentation for connecting to and authenticating with proxy servers.
- [FIX]
java.lang.StringIndexOutOfBoundsExceptionwhen trying to parseSet-Cookieheaders. - [FIX]
NullPointerExceptioninCookieInterceptorwhen 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)
- [IMPROVED] Made the 429 response code backoff optional and configurable. To enable the backoff add
an instance of aReplay429Interceptorwith 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
usingnew Replay429Interceptor(10, 250l). - [FIX] Fixed places where streams where not closed and could cause connections to leak.
2.5.0 (2016-05-24)
- [NEW] Handle HTTP status code
429 Too Many Requestswith blocking backoff and retries. - [NEW] Added
DesignDocumentManager.list()to return all design documents defined in a database. - [NEW] Added an optional
SettableViewParameters.STALE_NOconstant for the default omitted case of
the stale parameter on a view request. - [NEW] Added
descendingoption for changes feed. - [NEW] Added
parameteroption 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
Replicationclass. - [FIX]
JsonSyntaxExceptionwhen deserializing Cloudant query language generated design
documents into theDesignDocumentclass. - [FIX]
PreconditionFailedExceptionwas never thrown when callingcreateDB("dbname")when the
database already existed. - [FIX] Documentation that suggested calling
database("dbname", false)would immediately throw a
NoDocumentExceptionif the database did not exist. The exception is not thrown until the first
operation on theDatabaseinstance. - [FIX]
ClassCastExceptionwhen the server responded403with anullreason in the JSON.
2.4.3 (2016-05-05)
- [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 usingDesignDocumentManagermethods. - [FIX] Issue where
use_indexwas 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_indexoption whenFindByIndexOptions.useIndex()
was not used. - [FIX] Incorrect method names in overview documentation example for connecting to Cloudant service.
2.4.2 (2016-04-07)
- [IMPROVED] Use the JVM default chunk size for HTTP content of unknown length.
- [FIX] Regression where
JsonParseExceptionwould be thrown ifDatabase.findByIndexselector
contained leading whitespace.
2.4.1 (2016-03-10)
- [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_failureon
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 theHttpURLConnection. - [FIX] Issue where a
java.net.ProtocolExceptionwas 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-continueheader on requests. - [FIX] Fix issue where design documents would not be updated if only the
indexesfield was updated. - [FIX] The
equalsandhashcodemethods forDocumentandReplicatorDocumentfailed to compare
revision identifier and some other fields. - [FIX] Issue where connections could leak because streams were not closed.
- [DEPRECATED] The
InputStreamsettersHttpConnection.setRequestBody(InputStream)and
HttpConnection.setRequestBody(InputStream, long). Use of the newInputStreamGeneratoris
preferred because it allows for request replays. - [CHANGE] Moved HTTP and interceptor code into a separate jar.
2.3.0 (2016-02-12)
- [NEW] Constructor for
Databasesubclasses. - [IMPROVED] Documentation for
Database.findByIndexto show complete selector. - [IMPROVED] Documentation regarding document revisions.
- [FIX]
CouchDbException: 400 Bad Request: bad_request: invalid_jsonwhen a
query parameter contains a semicolon. - [FIX]
NullPointerExceptionwhen usingDatabase.saveAttachmentwith anull
revision to attach to a new document with the specified ID. - [FIX]
CouchDbExceptionwhen usingDatabase.saveAttachmentto update
attachments.
2.2.0 (2016-01-08)
- [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.invokeUpdateHandlernow handles POST requests.
2.1.0 (2015-12-04)
- [IMPROVED] Included error and reason information in message from
CouchDbExceptionclasses. - [IMPROVED] Added HTTP status code to
Responseobjects. - [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
ReplicatorDocumentwhere 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)
- [NEW]
DesignDocument.MapReducenow has a setter for thedbcopyfield. - [NEW] Requests for the
_all_docsendpoint are made viaDatabase#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 forqueryForStream().
If you were using thequeryForStream()method we would be interested in feedback about your use case.
For example, if you were using theInputStreamdirectly 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. Usingbatch=okis not recommended. - [BREAKING CHANGE] JVM
http.maxConnectionsconfigured pool is used by default for connection pooling. - [BREAKING CHANGE] Removed Apache HttpClient dependency. API methods that used HttpClient classes
(e.g.executeRequest) now useHttpConnectioninstead. - [BREAKING CHANGE]
CloudantClientpublic constructors andConnectionOptionshave been removed.
CloudantClientinstances are now created and have options configured usingClientBuilder. - [BREAKING CHANGE] Removed these deprecated methods:
CloudantClient.deleteDB(String, String)useCloudantClient.deleteDb(String),
Database.invokeUpdateHandler(String, String, String)useDatabase.invokeUpdateHandler(String, String, Params),
CloudantClient.setGsonBuilder(GsonBuilder)useClientBuilder.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 forCouchDbExceptionand its subclasses. - [BREAKING CHANGE] Removed DbDesign class and replaced with DesignDocumentManager.
If you were using thegetFromDeskmethod, convert your design document directory to javascript
files and useDesignDocumentManager.fromFile(File)orDesignDocumentManager.fromDirectory(File).
More information is available in the javadoc, including usage for de-serializing design document
javascript files toDesignDocumentobjects. - [FIX] Use the default port for the protocol when a client instance is created from a URL without
specifying a port.