> For the complete documentation index, see [llms.txt](https://docs.nalpeiron.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/release-notes.md).

# Release Notes

Below, you will find a list of SDK releases. You can download the zip file with source code and compiled version, or use our package registry.

{% hint style="info" %}
Credentials to our package registry can be created in the Zentitle2 interface (Administration -> API Credentials -> Package Registry)
{% endhint %}

## 3.0.0

September 8, 2026

**New features**

* Added support for editionId hint that allows consumers to activate specific edition of a product to make required features available to end users. editionId is an optional argument with Activate call.
* Added Attributes property of type IAttributeSet to IActivation interface, placing alongside the existing Features property, for easier access.
* Added support for application events tracking

**Changes**

* Updated Zentitle2Core native library integration to support the new C++ status-code based contract, including native status codes on Zentitle2CoreException.
* Added CurrentUsagePeriodStart and NextUsagePeriodStart properties to the IActivationFeature interface, exposing the start of the current and next feature usage periods.
* Removed properties associated with the linger feature from the data models.
* Marked Features and Attributes properties in ActivationInfo class as deprecated to encourage migration to the new interface-based approach.
* Targeting Licensing API version 2025-10-10
* Increased the secure storage payload limit from 10,000 bytes to 1 MiB of UTF-8 encoded data.
* Improved secure storage reliability for concurrent reads.
* Changed secure storage behavior for empty values: empty strings are now rejected instead of being stored and later read as null.

**Behavior Change**

* Empty secure-storage values are no longer accepted. Attempts to save an empty string now throw Zentitle2CoreException instead of storing a value that is later read as null. Use getNativeStatusCode() to retrieve the native error code

**Bug Fixes**

* The IActivation.getFeatures() and IActivation.getInfo().getFeatures() had an inconsistent state after a refresh operation (both online and offline) once there were changes made to entitlement on the server side.
* Fixed an issue where feature checkout, return and usage-tracking operations could throw NullPointerException in offline mode. These operations now throw IllegalActivationOperationException, indicating that they are not supported in offline mode.

**Improved Documentation**

* Enhanced exception information throughout the API.
* Extended the list of possible error responses from the server through the ApiErrorCodes class.
* Added comprehensive documentation for common error scenarios.\
  Note: Deprecated features will be removed in version 4.0.0. Please migrate to the new interface-based approach for attribute and feature management.

**Breaking Changes:**

* The enableLogging(String) method of the ZentitleJniLazyLoading class has changed its return type from bool to void.

Download: [licensing-client-v3.0.0.zip](https://gitlab.com/api/v4/projects/67406777/packages/generic/src/v3.0.0/licensing-client-v3.0.0.zip)

## 2.0.0

July 21, 2025

**Enhanced Concurrency Management**

* Added native support for system-wide locking through the new `ISharedActivation` interface
* Removed `UseActivationOperationLock` from activation options (custom lock implementations are no longer needed; use `ISharedActivation` for cross-process scenarios)

**Simplified API Design**

* Moved all feature-related operations (`CheckoutFeature`, `ReturnFeature`, `TrackFeatureUsage`) from `IActivation.Features` to the `IActivation` interface for more intuitive usage
* All feature operations now use the `IActivationFeature` interface as input for more reliable access
* When a feature action succeeds, `IActivationFeature` represents the current state of the feature, including recent changes from other activations

Download: [licensing-client-v2.0.0.zip](https://gitlab.com/api/v4/projects/67406777/packages/generic/src/v2.0.0/licensing-client-v2.0.0.zip)

## 1.1.0

Option to use the SDK without the Core library.

Download: [licensing-client-v1.1.0.zip](https://gitlab.com/api/v4/projects/67406777/packages/generic/src/v1.1.0/licensing-client-v1.1.0.zip)

## 1.0.0

The initial version of `licensing-client` SDK.

Download: [licensing-client-v1.0.0.zip](https://gitlab.com/api/v4/projects/67406777/packages/generic/src/v1.0.0/licensing-client-v1.0.0.zip)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/release-notes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
