Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
The major and minor version follow Proxmox VE (9.2.x targets Proxmox VE 9.2); the patch number can include breaking changes, listed under "Changed (breaking)".

## [9.2.3] - 2026-10-03

### Added
- Tests: offline JUnit tests on a local server that plays the part of Proxmox VE, run by `mvn test` and by the build workflow; tests on a real Proxmox VE tagged `live`, run with `mvn test -P live` (`PVE_HOST`, `PVE_API_TOKEN`, `PVE_TEST_VMID`). The old `Test` program and the exec plugin are removed ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))

### Changed
- A request that times out gives a `Result` with status 408; a success status with a body that is not JSON (for example the page of a proxy) gives status 502 with the start of the body in the reason, instead of a success without data ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- A request without an answer (connection refused, name not resolved, certificate refused) keeps status 0 and has the exception in the reason ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- `getApiUrl()` follows the response type (`/api2/json` or `/api2/png`); new protected `getBaseAddress()` gives scheme, host and port ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- Bump `jackson-databind`, `jackson-core`, `jackson-annotations` from 2.18.10 to 2.18.11 ([#36](https://github.com/Corsinvest/cv4pve-api-java/pull/36))

### Fixed
- DELETE requests dropped their parameters: they are now sent in the query string (for example `delsnapshot(force)`, `deleteRouteMapEntry(lock_token)`) ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- The timeout was applied only to the connection: a node that accepted the connection and did not answer blocked the call, and the wait for a task, forever. It is now also the read timeout ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- PNG response type: the image was corrupted (read as text) and the request went to `/api2/json`. The bytes are returned as they are and the request goes to `/api2/png`; login and task status are always read as JSON ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- `Result.responseInError()` and `getError()` threw `NullPointerException` when there was no response ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- `login` threw `NullPointerException` on an answer without data or without a ticket; it now returns `false`. The realm is read after the last `@` ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- A task id that is not valid (null, empty, not a UPID) gave `NullPointerException` or `ArrayIndexOutOfBoundsException`; it is now a `PveResultException` before any request ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- Debug log: the ticket and the CSRF token of the login answer (`FINER`) and the query string of GET and DELETE requests (`FINE`) were printed unmasked ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))
- `Content-Length` was the number of characters, not of bytes: the header is now set by the JDK ([#37](https://github.com/Corsinvest/cv4pve-api-java/pull/37))

## [9.2.2] - 2026-10-02

### Added
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ Proxmox VE API Client for Java (Made in Italy)
<dependency>
<groupId>it.corsinvest.proxmoxve</groupId>
<artifactId>cv4pve-api-java</artifactId>
<version>9.2.2</version>
<version>9.2.3</version>
</dependency>
```

**Gradle**

```gradle
implementation 'it.corsinvest.proxmoxve:cv4pve-api-java:9.2.2'
implementation 'it.corsinvest.proxmoxve:cv4pve-api-java:9.2.3'
```

### Basic Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<dependency>
<groupId>it.corsinvest.proxmoxve</groupId>
<artifactId>cv4pve-api-java</artifactId>
<version>9.2.2</version>
<version>9.2.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<!-- === PROJECT INFO === -->
<groupId>it.corsinvest.proxmoxve</groupId>
<artifactId>cv4pve-api-java</artifactId>
<version>9.2.2</version>
<version>9.2.3</version>
<packaging>jar</packaging>

<name>cv4pve-api-java</name>
Expand Down
Loading