All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.7.0 (2024-10-11)
- adds the ability to pass options to default interceptors (d1c97c1)
1.6.0 (2024-10-08)
- Adds overload to serialization proxy factories to configure serialization of all values in backed models (867953c)
- Adds overloads to serialization helper methods with backing store serialization configuration options (0006ff8)
1.5.1 (2024-10-03)
- attempt to trigger release (954b8e5)
- attempt to trigger release (8914f9c)
- upgrades to std uri template and additional date formats management (df6208a)
- Adds an
AuthorizationHandler
that authenticates requests using a providedBaseBearerTokenAuthenticationProvider
. Opting in to use this middleware can be done viaKiotaClientFactory.create(authProvider)
.
- Fix InMemoryBackingStore by preventing updates to underlying store's Map while iterating over it #2106
- Use concurrent HashMap for In memory backing store registry to avoid race conditions.
- Ensure interceptors don't drain request body stream before network call #2037
- Adds bundle package for Kiota #1420.
- Continuous Access Evaluation is now enabled by default for Azure Identity.
- Fixed a bug where
Double
instances in theadditionalData
would lead to failed serialization with anIllegalStateException
.
- Fixed a bug where Parsable instances in the
additionalData
would lead to failed serialization with anIllegalStateException
. microsoftgraph/msgraph-sdk-java#1969
- Fixed a bug where large responses would make the client fail. microsoftgraph/msgraph-sdk-java#2009
- Downgraded jakarta annotation api dependency from 3.0.0 to 2.1.1 for Java 8 backward compatibility
- Fixing a bug where the type associated the opentelemetry metric attribute
server.port
was defined as a string instead of a long. #1241
- Normalize UUID path/query parameter values to string
- Fixed a bug where options could not be added to request information. #1238
- Fixes performance bottleneck when using the backing store due to unnecessary subscription invocations.
- Remove the OpenTelemetry
-alpha
dependencies to avoid classpath issues.
- Fixed exception thrown when setting content length on stream request bodies.
- Introduces a
filename
directive in theMultipartBody
.
- Replaces
@Nullable
annotations to@Nonnull
in theBaseRequestConfiguration
.
- Fixes a bug in the seriliazer that would
IllegalStateException
for json arrays in the additional data.
- Fixes a bug in the InMemoryBackingStore that would not leave out properties in nested IBackedModel properties.
- Fixed a bug where not providing scopes to
AzureIdentityAccessTokenProvider
failed withUnsupportedOperationException
when attempting to fetch the token. microsoftgraph/msgraph-sdk-java#1882
- Adds support for untyped nodes.
- Fixed a regression with the content length request header from 1.0.5.
- Added contentLength property to RequestInformation to facilitate in setting the content length of the Okhttp3 RequestBody object within the OkhttpRequestAdapter.
- Fixed a bug where regex would fail to compile on an Android runtime. microsoftgraph/msgraph-sdk-java#1851
- Fixed compatibility with Java 8 by replacing
isBlank
withCompatibility.isBlank
- Add default UTC offset when deserializing to OffsetDateTime fails due to a missing time offset value.
- Allow authentication for localhost HTTP urls
- Release 1.0.0 of the Kiota Java Libraries as part of Java-SDK GA release.
- Map
XXX
error status code range to Parsable Exception object if more specific error status code range is not found.
- Removed methods using reflection from
KiotaSerialization
- Improve
AllowedHostsValidator
to throw an error ifhttps://
orhttp://
prefix is present in a allowed host value.
- Fixed a bug when handling null QueryParameters instances
- [breaking] Removed the reflective extraction of Query Parameters in favor of plain methods invocations
- Fixed a bug where the URI replacement middleware would mangle base64 encoded IDs.
- Fixed a bug where trying to get a child node for a non exsiting property in JSON would fail instead of returning null.
- [breaking] Removed the usage of reflection in
ApiClientBuilder
- Added Spotless as an automatic formatting tool for the entire codebase
- Changed some internal implementations of JsonParse for performance and readability reasons
- [breaking] Removed the usage of reflection for enum deserialization and reordered
RequestAdapter
arguments order
- Reviewed transitive dependencies removing Guava and Javatuple
- Fixed a bug where path or query parameters of enum types would not be serialized properly. microsoft/kiota#3693
- Added helper methods to request information to reduce the amount of generated code. Kiota #3651
- Kiota-Java has moved away from Async/Completable futures, thus Async components are no longer utilized and have been removed. Furthermore, requestAdapter methods no longer use the async suffix. #175
- ApiException class now extends RuntimeException instead of Exception.
- Changed OkHttpRequestAdapter dependency from OkHttpClient to Call.Factory (parent interface implemented by OkHttpClient).
- Added a default implementation of
BasicAccessAuthenticationProvider
- Added helper methods to serialize kiota models. microsoft/kiota#3406
- Fixed a bug to preserve the user defined error instead of converting it to generic ApiException.
- Added an overload method to specify the content type of stream request body.
- Use
tryAdd
instead ofadd
in all of thesetContentFrom...
methods.
- Added a
tryAdd
method to theRequestHeaders
Map
- Better encapsulation of the mutable field
responseStatusCode
inApiException
- Fixed a regression where query parameters name replacement would fail with group like regex syntax ($ sign)
- Fixed bug that caused the ParametersNameDecodingHandler to decode query parameter values in addition to names
- Swapped custom implementation of RFC6570 URI templates to std uritemplates.
- Add PeriodAndDuration constructor to create new object from a PeriodAndDuration object.
- Added headers inspection option and handler.
- Javax annotations replaced in favor of Jakarta annotations.
- Added support for multipart form data request bodies.
- Adds the
UrlReplaceHandler
middleware to the Okhttp component to allow for customizing the URL before sending the request.
- Adds the
PeriodAndDuration
type to aggregatePeriod
andDuration
serialization
- Drops the
getPeriodValue
function in favour ofgetPeriodAndDurationValue
in the serialization interface. - Drops the
writePeriodValue
function in favour ofwritePeriodAndDurationValue
in the serialization interface.
- Fixed a bug where composed types would not serialize properly.
- Fix a bug where the OkHttp client would close InputStream responses before they reach the user code
- Adds responseHeader to APIException class
- Adds a NativeResponseHandler to abstractions.
- Adds setResponseHandler method to RequestInformation class in abstractions.
- Changed the visibility of one of the base constructors in request builders.
- Added a base request builder and request configuration class to reduce the amount of code being generated.
- Aligns default http client timeout to be 100 seconds
- Updates the JsonParseNodeFactory to pass a JsonElement using
JsonParser.parseReader
rather than creating a string when creating the root parseNode.
- Fix add an empty body when method is POST/PUT/PATCH and the body is null
- Adds ResponseStatusCode property to API exception class
- Adds support for serializing collections of primitive values in form serialization writer and form parse node
- Fix #165 incorrect/missing substitutions of
queryParameters
afterpathParameters
and other edge cases
- Removed defaults specific to Microsoft Graph for Azure Identity authentication library.
- Added a method to convert abstract requests to native requests in the request adapter interface.
- Adds a user agent handler to add the product to the header.
- Prevent empty values from showing up in query parameters values.
- restructure to use gradle multi-modules
- using a single version for all of the components
- Added support for multi-valued request headers
- [serialization/form] Initial release of the library
- Fixed a bug where collections bodies with a single entry would not serialize properly.
- Added API key authentication provider.
- [http/okHttp] Updated reference to abstractions for multi-valued header support.
- Added enum top level methods in request adapter interface.
- Added ResponseHandlerOption class.
- Removed responseHandler parameter from RequestAdapter sendAsync methods.
- Compatibility for Android level 26.
- Added support for tracing through open telemetry
- [http/okHttp] Added support for additional status codes
- Lowered compatibility requirements to Java 8.
- Added support for composed types serialization.
- Adds tests to verify DateTime and DateTimeOffsets default to ISO 8601.
- Adds check to throw IllegalStateException when the baseUrl path parameter is not set.
- Initial release on snapshot feed.