- Bundle chameleon.jpg in the repository and enable the
directUploadOriginalStepProducesResultintegration test viaJAVA_SDK_E2E. - Simplify the SSE listener by stopping immediately after
assembly_finishednow that trailing results are guaranteed.
- Extend the SSE listener grace window to 10 seconds so
assembly_result_finishedpayloads are not dropped afterassembly_finished. - Add
EventsourceRunnableDelayedResultTestto replay finish-before-result sequences and guard against regressions.
- Add regression coverage ensuring
assembly_result_finishedevents are processed even ifassembly_finishedarrives first. - Keep the SSE listener draining briefly after completion to capture trailing result payloads while tolerating reconnect-driven duplicates.
- Ensure the SSE client drains pending events before shutdown while still tolerating transient network faults prior to completion.
- Prevent duplicate
assembly_finishedcallbacks by only stopping once and leaving reconnect handling to the client until completion.
- Prevent the SSE client from reconnecting after
assembly_finished, eliminating spuriousassembly_errorcallbacks and timeouts. - Add regression coverage with a targeted unit test and a live SSE integration test executed via the Docker harness.
- Confirm the new tests run in CI alongside the existing Gradle
checkworkflow.
- Added support for external signature generation via
SignatureProviderinterface (#19)- New constructors in
Transloaditaccepting aSignatureProvider - Enables secure signature generation on backend servers for client applications and mobile apps
- Added unit tests covering the new signing flow
- New constructors in
- Replaced the Nix-based developer environment with a lightweight Docker workflow (
scripts/test-in-docker.sh) for consistent, fast test runs across platforms
- Update tus-java-client dependency to 0.5.1
- Exchange the Socket based assembly status fetching with a Server-Sent-Events (SSE) solution.
- Added new methods to the AssemblyListener interface to provide more information about the assembly status. e.g. encoding progress with AssemblyListener#onAssemblyProgress().
- Changed existing methods in the AssemblyListener interface to provide the bare JSON response from the api instead of pre-parsed data.
- Removed the deprecated AsyncAssemblies class and functionality.
-
The AssemblyListener interface has been upgraded. As a result you will have to implement the following methods:
onFileUploadFinished(JSONObject uploadInformation);onAssemblyProgress(JSONObject progress)onAssemblyResultFinished(JSONArray result)
-
The AsyncAssembly class has been removed. If you were using it, you will have to switch to the regular Assembly class. It has been extended with asynchronous upload capabilities in the past. The Example under
examples/src/main/java/com/transloadit/examples/MultiStepProcessing.javashows how to use the new features.
- Added SDK support for generating signed Smart CDN URLs (see https://transloadit.com/docs/topics/signature-authentication/#smart-cdn). This functionality ships as Transloadit#getSignedSmartCDNUrl() - Method.
- Migrated test suite from JUnit4 to JUnit 5
- Upgrade okhttp to 4.12.0 as a security update
Warning: This version includes breaking changes and some experimental features, please keep that in mind when using it.
If you encounter any problems because of the upgrade, please do not hesitate to contact support@transloadit.com or open a GitHub-Issue.
- The AssemblyListener Interface has been upgraded. As a result you will have to implement the following methods:
onFileUploadPaused(String name)onFileUploadResumed(String name)onFileUploadProgress(long uploadedBytes, long totalBytes)If you do not need their functionality, just leave them blank.
- Also take note of the deprecation of
AsyncAssemblies. The normalAssemblyclass, thanks to its extended functionality, serves as a replacement. You can find more about it further down in the text.
- Introduction of multithreaded uploads. - Now you can upload multiple files in parallel:
- The uploads are pausable via
Assembly#pauseUploads(). - And resumable with
Assembly#resumeUploads(). - The default value of files being uploaded at the same time is 2. You can adjust this with
Assembly#setMaxParallelUploads(int maxUploads). - If you want to turn off this feature use:
Assembly#setMaxParallelUploads(int maxUploads)with a value of 1.
- The uploads are pausable via
- The
AssemblyListenerhas now an extended feature set and provides also information to the new upload mode. AsyncAssembliesare deprecated now in favor of multithreaded uploads.- Because some users, especially on Android, are using AsyncAssemblies
this release ships a fix for the corresponding Listeners to avoid
NullPointerExceptions. - If you want to add a
Stepto anAssembly, providing the Robot's name is now optional. This helps if you want to do a Template Override. The provided Examples were revised and new examples have been added.
- All dependencies are up-to-date now and include all necessary security patches.
- Signature Authentication uses HmacSHA384 now.
- Signature Authentication uses a unique nonce per assembly in order to prevent signature reuse errors.
- The Socket-IO plugin has been updated to version 4, which is also used by the API.
- Includes a vulnerability patch in the used socket-io implementation
- Added possibility for SDKs using this SDK to send their own version number to the server in the Transloadit-Client header.
- Resolved some file-name conflicts with the tus-java-client library.
- Added debugging features regarding HTTP-requests, which should not be used in production without contacting Transloadit support.
- Added support for client-side Assembly IDs. You can obtain the ID of an Assembly now before even uploading/saving it. You can achieve this with the brand-new Assembly#getAssemblyID() method.
- Added debugging features regarding AssemblyIDs, which should not be used in production without contacting Transloadit support.
- Also updated the AssemblyListener interface to provide HashMaps instead of JSONObjects.
- Updated all dependencies to their most recent, compatible version => minimal requirements for the SDK are now Android 5+ and Java 8+.
- Add (form) fields to an Assembly or Template with the addField()- and addFields() - methods
- Extended support for Assembly progress updates via the Websocket. => AssemblyListener Interface provides more callback functions now. This should be considered before the update.
- Codebase received a review and an updated JavaDoc
- New Example added that uses Kotlin.
- Added retry functionality for assemblies in case of reaching the rate limit
- Fix bug that doesn't allow usage of templates that have disabled allow steps override.
- Added some new examples
- Make tus uploads to assembly's tus url
- Make assembly wait till completion
- Use a fallback version
- load sdk version via ResourceBundle
- send client version via "Transloadit-Client" header
- Do not use deprecated status_endpoint property
- update tus-java-client version
- Allow configurable upload chunk size #21
- Support for Pausable/Resumable Asynchronous assemblies
- Add assembly files as Inputstream
- Do tus uploads only when there are files to upload.
- Check for assembly error before proceeding with tus upload
- Remove tus upload chunksize
Steps.removeStepmethod- Added example project for sample codes
- Maven compliant deployment build.
AssemblyResponse.getStepResultmethod
- Initial release