Skip to content

Releases: LabKey/labkey-api-java

v5.1.0

Choose a tag to compare

@labkey-adam labkey-adam released this 03 Mar 19:16
  • Delegate first request behavior to the configured CredentialsProvider. Connection-based providers invoke login-ensureLogin.api and connection-less providers invoke login-whoAmI.api.
  • Restore connection-based authentication for BasicCredentialsProvider
  • Add logging to NetrcFileParser to help with debugging authentication problems
  • Optional parameters to GetContainersCommand to reduce the size of the response payload
  • Upgrade to most recent JSON-java, Gradle, and Gradle Plugins versions

v5.0.1

Choose a tag to compare

@labkey-adam labkey-adam released this 30 Jan 18:39
  • Fix regression introduced in 5.0.0: RowsResponse.fixupParsedData() was called before _requiredVersion was set. This caused the fixup method to skip BigDecimal to Double conversions in the returned data maps.

v5.0.0

Choose a tag to compare

@labkey-adam labkey-adam released this 25 Jan 01:00
  • Refactor the Command class hierarchy:
    • Add GetCommand, new abstract base class for all commands that use get
    • Make Command and PostCommand abstract
    • Add SimpleGetCommand, new concrete class used (instead of Command) to invoke GET API actions without creating a subclass
    • Add SimplePostCommand, new concrete class used (instead of PostCommand) to invoke POST API actions without creating a subclass
  • Refactor parameter handling for consistency:
    • createParameterMap() is now used by subclasses to create and populate a mutable map of URL parameters
    • getParameters() now returns an immutable copy of the current URL parameter map for external use, typically logging or testing
    • Commands no longer stash and reuse the parameter map; createParameterMap() always creates a new map.
    • setParameters() is now available only on SimpleGetCommand and SimplePostCommand. Custom GetCommand and PostCommand
      subclasses that need to specify parameters are expected to override createParameterMap().
    • setJsonObject() is now available only on SimplePostCommand. Custom PostCommand subclasses that need to post JSON are
      expected to override getJsonObject().
  • Stop passing command subclasses when constructing every CommandResponse. The two response classes that need this now implement
    it without burdening all other commands.
  • Introduce HasRequiredVersion interface and use it when instantiating CommandResponse subclasses that need required version
  • Remove all Command copy constructors. Same rationale as the earlier removal of copy methods.
  • Switch SelectRowsCommand and NAbRunsCommand to post their parameters as JSON
  • Fix NAbReplicate to handle "NaN" values
  • Remove CommandException from getHttpRequest() throws list
  • Adjust the Demo.java and Test.java tests to match current sample data and Command hierarchy changes

v4.3.1

Choose a tag to compare

@labkey-adam labkey-adam released this 15 Jan 23:41
  • Fix regression introduced in 4.3.0: SelectRowsCommand should create a fresh parameter map for every invocation of getParameters()

v4.3.0

Choose a tag to compare

@labkey-adam labkey-adam released this 12 Jan 05:03
  • Issue 47030: Switch SelectRowsCommand and NAbRunsCommand to always use POST
  • Add support for includeTotalCount, includeMetadata, and ignoreFilter flags to BaseQueryCommand and reconcile duplicate parameter handling code vs. SelectRowsCommand
  • Add support for includeTitle and includeViewDataUrl flags to GetQueriesCommand

v4.2.0

Choose a tag to compare

@labkey-adam labkey-adam released this 11 Jan 00:42
  • Refactor repository layout, removing unnecessary labkey-client-api folder
  • Upgrade to most recent Gradle, Gradle Plugins, and HttpClient versions

v4.0.0

Choose a tag to compare

@labkey-adam labkey-adam released this 26 Oct 20:43
4dc2b2d
  • Migrate to a new JSON library: JSON-java. The previous library, json-simple is no longer maintained (last released in early 2012) and lacks support for basic features like generics. This is an incompatible API change for developers who write their own Command classes; they will need to update their Command classes if/when they upgrade to v4.0.0. Developers who simply use Command classes should be able to upgrade without changes.
  • API changes:
    • Remove copy method from Commands. It was inconsistently implemented and served little purpose.
    • Remove CommandResponse.getSourceCommand. Functionality would vary wildly because of inconsistent Command.copy implementations.
    • Make the properties stashed by ResponseObject immutable.
  • Issue 46321: Remove lib directory from fatJar in favor of pulling dependencies via the published pom files when needed
  • Remove artifactory plugin since we use the maven publish command now

v3.1.0

Choose a tag to compare

@labkey-adam labkey-adam released this 20 Sep 22:20
  • Add support for creating Freezer Manager freezer hierarchies via StorageController APIs (earliest compatible LabKey Server version: 22.10.0)
    • CreateCommand, UpdateCommand, DeleteCommand
  • Restore proactive authentication behavior. A change in v3.0.0 caused some invocations of @NoPermissionsRequired
    actions (e.g., GetContainersCommand) to use guest credentials instead of the configured user credentials. The library
    now always authenticates using the configured credentials, matching pre-v3.0.0 behavior.

v3.0.0

Choose a tag to compare

@labkey-adam labkey-adam released this 15 Sep 18:28
  • Migrate internal HTTP handling to use Apache HttpClient 5.1.x
  • Switch StopImpersonatingCommand to disable redirects (mimicking previous behavior)
  • Add Connection.stopImpersonating() and deprecate stopImpersonate()
  • Remove deprecated methods:
    • ApiVersionException() (use constructor that takes contentType)
    • CommandException() (use constructor that takes contentType)
    • Connection.getBaseUrl() (use Connection.getBaseURI())
    • CredentialsProvider.configureRequest() (use variant that takes a URI)
    • Filter.NON_BLANK (use Filter.NONBLANK)
    • Filter.getCaption() (use Filter.getDisplayValue())
    • Filter.getName() (use Filter.getUrlKey())
    • Filter.isDataValueRequired() (use Filter.isValueRequired())
  • Remove SAS macros and wrapper classes
  • Add CreateFolderCommand
  • Add CreateProjectCommand (earliest compatible LabKey Server version: 22.3.0)
  • Update LogoutCommand to use POST

v2.0.0

Choose a tag to compare

@labkey-adam labkey-adam released this 25 Jul 22:52
  • Require Java 17 to build and run
  • v2.0.0 is functionally identical to v1.5.2, other than being compiled for Java 17
  • Code that can't yet support Java 17 can continue to use v1.5.2, which was compiled for Java 8
  • All future enhancements will target the 2.x line; we expect no further development on 1.x