Skip to content

Releases: box/box-java-sdk

v2.4.0

02 May 21:54
Compare
Choose a tag to compare

This release adds support for multiput upload and single file collaborations. It also contains a number of minor bug fixes.

New Features:

  • Support for multiput upload. New methods in BoxFolder and BoxFile support multiput upload for better performance and reliability for large files.
  • Single file collaborations. The BoxFile class now supports sharing individual files.
  • Automatic configuration for JWT auth. The Box Developer console now lets you download a JSON file of your JWT app configuration settings. You can import this file into the Java SDK to easily configure your app.

v2.3.0

13 Jan 00:22
Compare
Choose a tag to compare

This release adds support for a number of new API endpoints.

New API Endpoints:

New Features:

  • Transactional Authentication. Support for Box's new Transactional Auth APIs.
  • Upload file versions with SHA1. A file's SHA1 can be passed in to BoxFile.uploadVersion(...) when uploading new versions.
  • Get effective_access for shared links. The effective_access field is accessible through BoxSharedLink. getEffectiveAccess().
  • Added additional Event Types. The TASK_ASSIGNMENT_COMPLETE, TASK_ASSIGNMENT_UPDATE, TASK_CREATE, COMMENT_DELETE types are now included in the BoxEvent class.

Bug Fixes:

Box Java SDK Issues

Known Issues:

JWT, which is needed for AppUsers, requires Java 1.7 or later. The rest of the SDK still supports Java 1.6 as expected.

v2.1.1

07 Mar 21:59
Compare
Choose a tag to compare

This release includes bug fixes for the file metadata functionality.

Bug Fixes:

  • Attempting to update metadata or access custom metadata templates would fail. Previously, there was no support for specifying the scope parameter when making a metadata-related API call. Now, setting the scope to global or enterprise is correctly handled automatically.

v2.1.0

22 Feb 17:38
Compare
Choose a tag to compare

This release includes improvements to token caching for App Users and support for additional API endpoints.

New Features:

  • App Users token caching. A token cache can now be specified in BoxDeveloperEditionAPIConnection. This allows for improved performance when using App Users authentication.
  • Support for retrieving download URLs. The BoxFile.getDownloadURL() method allows for retrieving a direct download URL to a file.
  • File thumbnails. The BoxFile.getThumbnail() method allows for downloading the thumbnail for a file.

Bug Fixes:

  • Getting info for a file could crash when there's no preview. Previously, an exception would be thrown if BoxFile.getInfo(BoxFile.ALL_FIELDS) was called and the file didn't have a preview available.

v2.0.0

07 Jan 21:48
Compare
Choose a tag to compare

This major release contains critical bug fixes for the events API as well as new support for App User authentication.

Breaking Changes:

  • EventLog stream position is now a string. The events API introduced a breaking change which modified the type of the streamPosition field from a number to a string. Any code that uses the EventLog class will need to be updated.

New Features:

  • Support for App Users. The new App Users authentication process is now supported by the SDK. Examples for how to use App Users can be found in the src/example directory and additional documentation can be found in the API docs.
  • Support for transferring folders between users. The BoxUser.moveFolderToUser(String) method lets a user's root folder me transferred to another user.
  • Support for tasks. The tasks API is now supported, allowing for tasks to be created, modified, and assigned.
  • File preview links. The BoxFile.getPreviewLink() can be used to retrieve a temporary link which allows users to preview a file's contents.

Bug Fixes:

  • EventLog properly maintains event ordering. Previously, the events in an EventLog were not guaranteed to be in the same order as returned by the API.
  • Fix exception when retrieving enterprise events. A StringIndexOutOfBoundsException would be thrown by EventLog.getEnterpriseEvents when the position parameter was non-zero and types parameter was an empty array.

Thanks to @mcmilwj, @jonjo-manywho, @danielandefors, and @itsmanishagarwal for their contributions to this release!

v1.1.0

14 Jul 01:59
Compare
Choose a tag to compare

This release introduces some new features around proxy configuration and improved event API support.

New Features:

  • Set a non-global proxy. New methods added to BoxAPIConnection allow for a non-global proxy to be set when making requests to the Box API. Basic HTTP authorization is also now support for proxies.
  • Improved events API support. The "created_at", "created_by", and "session_id" fields have been added to BoxEvent. Support was also added for some undocumented enterprise event fields.
  • Preflight checks. The methods canUpload() and canUploadVersion() can be used to perform a preflight check. This check helps ensure that a file can be uploaded before attempting to transfer all of its contents.

Bug Fixes:

  • gzip encoded error messages are correctly handled. Previously, the bodies of error responses weren't decoded properly when gzipped.
  • Groups are properly parsed when creating and retrieving collaborations. The "accessible_by" field of some collaborations was incorrectly parsed as a BoxUser instead of a BoxGroup.
  • Fix intermittent OAuth refresh failures. Sometimes OAuth refresh would fail when performing a large number of sequential requests. This was particularly noticeable when long-polling a large number of events from the events API.

There is a known issue where calling stop() on the EventStream class won't immediately cancel the current long-polling request until it times out (usually after 10 minutes). This can be problematic in situations where a refresh needs to occur, since the current access token will remain locked (and unable to refresh) until the request times out.

v1.0.0

15 Apr 19:02
Compare
Choose a tag to compare

This is the first API-stable release of the SDK. There won't be any further breaking API changes until the next major version.

New Features:

  • Save and restore API connections. Saving and restoring API connections is now much easier and more reliable. BoxAPIConnection can be saved to a state string, which can then be persisted and restored at a later time.
  • Support for group memberships. Users can be added and removed from groups, as well as have their group role changed.
  • Edit user information. Users can update their own profile information including their email aliases.
  • Manage enterprise users. Enterprise admins can create, delete, and update user accounts associated with their enterprise.
  • Enterprise event log support. Enterprises can retrieve admin logs which contain events that have occurred within their enterprise.

Bug Fixes:

  • Fix crash when iterating over a groups. A NullPointerException could be thrown when iterating using BoxGroupIterator.
  • Path collections now contain folder information. Previously, getPathCollection() would return a list of BoxFolders instead of a list of BoxFolder.Info.
  • Fix issue with failed requests breaking connection pooling. Connection resources are now properly cleaned up when an error occurs during a request.

v0.7.0

17 Feb 23:10
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

This is a relatively minor release that adds support for Java 6. The only breaking change in this release is a new method that was added to the EventListener interface which allows listeners to be notified of changes in the event stream's position.

v0.6.0

06 Feb 02:54
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

This release introduces support for the Box metadata API as well as some major performance improvements. Features include:

  • Metadata. You can now manipulate metadata properties associated with a BoxFile. Metadata allows your application to define and store custom data associated with files. For more information on Box metadata, see the documentation.
  • Shared item support. You can now retrieve items using their shared link. The SDK automatically handles shared link authentication, making it easy to access shared items and their children.
  • Request interceptors. Requests can be intercepted before they're sent to the API, allowing for applications to modify requests or prevent them from being sent entirely.
  • Performance improvements to persistent connections. HTTP keep-alive now works much more consistently, giving a massive performance boost to applications that send a large number of requests.
  • OAuth is now thread safe. OAuth refresh logic is now thread-safe, making authentication more reliable in multithreaded applications.
  • Support for OAuth refresh listeners. BoxAPIConnection now supports listeners that will be notified whenever an OAuth refresh happens. This makes it easier for applications to save authentication information for persistent logins.

Major bug fixes for this release include:

  • Fix restoring API connections from access and refresh tokens. A bug was fixed where restoring an API connection using saved access and refresh tokens would cause a token refresh error.
  • Fix crash when receiving a large number of duplicate events. When a large number of duplicate events was received, an exception would be thrown. This was caused by the EventStream's LRU not removing items correctly.
  • Fix bug when sending non-ASCII characters. The content length of requests with non-ASCII characters was being calculated incorrectly.

v0.5.0

09 Dec 01:53
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

This release marks the beginning of the public beta for the SDK. It comes along with a new site that has documentation as well as coordinates for using the SDK with maven. There are also a bunch of new features which include:

  • Range downloading. Downloading files now supports byte ranges, allowing only portions of a file to be downloaded.
  • Basic searching. Folders can be recursively searched with an arbitrary query. Advanced search queries will be supported in a future release.
  • Support for groups. Groups can be created, deleted, and updated as well as used in collaborations.
  • Support for comments. In addition to being edited or deleted, comments can be added to files or added as a reply to other comments.
  • Support for trash. Add support for accessing items in the trash or restoring them to their original locations.
  • Fields can be specified when iterating over a folder's items. Fields can now be specified with a new getChildren(String...) method.
  • Retrieve range of child items. A specific range of children can be retrieved from folders, similar to how the API allows an offset and limit to be specified.
  • Complete javadoc documentation. Javadocs are complete and can be found on the SDK's site.

In addition to new features, there are also the following bug fixes:

  • Fix ProgressListeners for compressed downloads. Compressed gzipped downloads now have their progress reported correctly.
  • Fix potential infinite loop when iterating over folder items. The offset when paging through a folder's items wasn't correctly incremented.
  • Fix bug with createdAt and modifiedAt timestamps with file uploads. Timestamps where being formatted incorrectly when uploading a new file.