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
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@

### Breaking
* Requires Java 17 or later (#100) (#111)
* Required Jackson 3
* Modified interface structure

### Improvements
* Split client interface to group feature sets together (#113)

Use `connector.sys()`, `.kv2()`, `.token()`, `.appRole()` and `.transit()` to access respective feature sets.


### Removal
* Remove deprecated `read...Credentials()` methods (#112)

### Dependencies
* Updated Jackson to 3.0.0 (#116)


## 1.5.3 (2025-09-09)

Expand Down
12 changes: 3 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,9 @@

<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.20.0</version>
<version>3.0.0</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -129,8 +124,7 @@
<configuration>
<argLine>
@{argLine}
--add-opens
de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.databind
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=tools.jackson.databind
</argLine>
</configuration>
</plugin>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package de.stklcode.jvault.connector.internal;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import tools.jackson.core.JacksonException;

import de.stklcode.jvault.connector.exception.*;
import de.stklcode.jvault.connector.model.response.ErrorResponse;
import tools.jackson.databind.cfg.DateTimeFeature;
import tools.jackson.databind.json.JsonMapper;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;
Expand Down Expand Up @@ -67,9 +66,8 @@ public RequestHelper(final String baseURL,
this.tlsVersion = tlsVersion;
this.trustedCaCert = trustedCaCert;
this.jsonMapper = JsonMapper.builder()
.addModule(new JavaTimeModule())
.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.enable(DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DateTimeFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.build();
}

Expand All @@ -90,7 +88,7 @@ public String post(final String path, final Object payload, final String token)
// Generate JSON from payload.
try {
req.POST(HttpRequest.BodyPublishers.ofString(jsonMapper.writeValueAsString(payload), UTF_8));
} catch (JsonProcessingException e) {
} catch (JacksonException e) {
throw new InvalidRequestException(Error.PARSE_RESPONSE, e);
}

Expand Down Expand Up @@ -121,7 +119,7 @@ public <T> T post(final String path, final Object payload, final String token, f
try {
String response = post(path, payload, token);
return jsonMapper.readValue(response, target);
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidResponseException(Error.PARSE_RESPONSE, e);
}
}
Expand Down Expand Up @@ -160,7 +158,7 @@ public String put(final String path, final Map<String, String> payload, final St
// Generate JSON from payload.
try {
req.PUT(HttpRequest.BodyPublishers.ofString(jsonMapper.writeValueAsString(payload), UTF_8));
} catch (JsonProcessingException e) {
} catch (JacksonException e) {
throw new InvalidRequestException("Payload serialization failed", e);
}

Expand Down Expand Up @@ -191,7 +189,7 @@ public <T> T put(final String path, final Map<String, String> payload, final Str
try {
String response = put(path, payload, token);
return jsonMapper.readValue(response, target);
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidResponseException(Error.PARSE_RESPONSE, e);
}
}
Expand Down Expand Up @@ -303,7 +301,7 @@ public <T> T get(final String path, final Map<String, String> payload, final Str
try {
String response = get(path, payload, token);
return jsonMapper.readValue(response, target);
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidResponseException(Error.PARSE_RESPONSE, e);
}
}
Expand Down Expand Up @@ -455,7 +453,7 @@ private void handleError(final HttpResponse<InputStream> response) throws VaultC
throw new InvalidResponseException(Error.RESPONSE_CODE, response.statusCode(), er.toString());
}
}
} catch (IOException ignored) {
} catch (IOException | JacksonException ignored) {
// Exception ignored.
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,12 @@
package de.stklcode.jvault.connector.model.response;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import de.stklcode.jvault.connector.exception.InvalidResponseException;
import de.stklcode.jvault.connector.model.response.embedded.VersionMetadata;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.cfg.DateTimeFeature;
import tools.jackson.databind.json.JsonMapper;

import java.io.IOException;
import java.io.Serial;
import java.io.Serializable;
import java.util.Map;
Expand Down Expand Up @@ -88,9 +86,8 @@ public final <C> C get(final String key, final Class<C> type) throws InvalidResp
return type.cast(rawValue);
} else {
var om = JsonMapper.builder()
.addModule(new JavaTimeModule())
.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.enable(DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(DateTimeFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.build();

if (rawValue instanceof String stringValue) {
Expand All @@ -99,7 +96,7 @@ public final <C> C get(final String key, final Class<C> type) throws InvalidResp
return om.readValue(om.writeValueAsString(rawValue), type);
}
}
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidResponseException("Unable to parse response payload: " + e.getMessage());
}
}
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,11 @@
exports de.stklcode.jvault.connector.model.response;
exports de.stklcode.jvault.connector.model.response.embedded;

opens de.stklcode.jvault.connector.model to com.fasterxml.jackson.databind;
opens de.stklcode.jvault.connector.model.response to com.fasterxml.jackson.databind;
opens de.stklcode.jvault.connector.model.response.embedded to com.fasterxml.jackson.databind;
opens de.stklcode.jvault.connector.model to tools.jackson.databind;
opens de.stklcode.jvault.connector.model.response to tools.jackson.databind;
opens de.stklcode.jvault.connector.model.response.embedded to tools.jackson.databind;

requires java.net.http;
requires com.fasterxml.jackson.annotation;
requires com.fasterxml.jackson.databind;
requires com.fasterxml.jackson.datatype.jsr310;
requires tools.jackson.databind;
}