Skip to content

Commit e3edf5b

Browse files
authored
Merge pull request #480 from xdev-software/develop
Release
2 parents eb85988 + b5719b4 commit e3edf5b

File tree

8 files changed

+54
-76
lines changed

8 files changed

+54
-76
lines changed

.github/workflows/check-build.yml

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,31 +83,6 @@ jobs:
8383
path: ${{ env.PRIMARY_MAVEN_MODULE }}/target/screenshots
8484
if-no-files-found: ignore
8585

86-
# Ensure compatibility with Java 11
87-
# See https://github.com/xdev-software/chartjs-java-model/issues/14
88-
build-java-11:
89-
runs-on: ubuntu-latest
90-
timeout-minutes: 30
91-
steps:
92-
- uses: actions/checkout@v6
93-
94-
- name: Set up JDK
95-
uses: actions/setup-java@v5
96-
with:
97-
distribution: temurin
98-
java-version: 11
99-
100-
- name: Cache Maven
101-
uses: actions/cache@v5
102-
with:
103-
path: ~/.m2/repository
104-
key: ${{ runner.os }}-mvn-build-java-11-${{ hashFiles('**/pom.xml') }}
105-
restore-keys: |
106-
${{ runner.os }}-mvn-build-java-11-
107-
108-
- name: Build with Maven
109-
run: ./mvnw -B clean package -Dmaven.test.skip=true
110-
11186
checkstyle:
11287
runs-on: ubuntu-latest
11388
if: ${{ github.event_name != 'pull_request' || !startsWith(github.head_ref, 'renovate/') }}

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 3.0.0
2+
_Java 17 is now required_
3+
* Updated dependencies
4+
* Updated to Jackson v3 #477
5+
16
# 2.9.1
27
* Updated dependencies
38

chartjs-java-model-demo/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<groupId>software.xdev</groupId>
99
<artifactId>chartjs-java-model-root</artifactId>
10-
<version>2.9.2-SNAPSHOT</version>
10+
<version>3.0.0-SNAPSHOT</version>
1111
</parent>
1212

1313
<artifactId>chartjs-java-model-demo</artifactId>
14-
<version>2.9.2-SNAPSHOT</version>
14+
<version>3.0.0-SNAPSHOT</version>
1515
<packaging>jar</packaging>
1616

1717
<organization>
@@ -20,7 +20,7 @@
2020
</organization>
2121

2222
<properties>
23-
<javaVersion>11</javaVersion>
23+
<javaVersion>17</javaVersion>
2424
<maven.compiler.release>${javaVersion}</maven.compiler.release>
2525

2626
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

chartjs-java-model/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>software.xdev</groupId>
88
<artifactId>chartjs-java-model</artifactId>
9-
<version>2.9.2-SNAPSHOT</version>
9+
<version>3.0.0-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>chartjs-java-model</name>
@@ -42,7 +42,7 @@
4242
</licenses>
4343

4444
<properties>
45-
<javaVersion>11</javaVersion>
45+
<javaVersion>17</javaVersion>
4646
<maven.compiler.release>${javaVersion}</maven.compiler.release>
4747

4848
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -57,9 +57,9 @@
5757

5858
<dependencies>
5959
<dependency>
60-
<groupId>com.fasterxml.jackson.core</groupId>
60+
<groupId>tools.jackson.core</groupId>
6161
<artifactId>jackson-databind</artifactId>
62-
<version>2.21.0</version>
62+
<version>3.0.3</version>
6363
</dependency>
6464

6565
<!-- Tests -->

chartjs-java-model/src/main/java/software/xdev/chartjs/model/charts/AbstractChart.java

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,14 @@
1515
*/
1616
package software.xdev.chartjs.model.charts;
1717

18-
import java.io.UncheckedIOException;
19-
2018
import com.fasterxml.jackson.annotation.JsonAutoDetect;
2119
import com.fasterxml.jackson.annotation.JsonIgnore;
2220
import com.fasterxml.jackson.annotation.JsonInclude;
23-
import com.fasterxml.jackson.annotation.PropertyAccessor;
24-
import com.fasterxml.jackson.core.JsonProcessingException;
25-
import com.fasterxml.jackson.databind.ObjectMapper;
26-
import com.fasterxml.jackson.databind.ObjectWriter;
2721

2822
import software.xdev.chartjs.model.data.AbstractData;
2923
import software.xdev.chartjs.model.options.Options;
24+
import tools.jackson.databind.ObjectWriter;
25+
import tools.jackson.databind.json.JsonMapper;
3026

3127

3228
public abstract class AbstractChart<T, O extends Options<?, ?>, D extends AbstractData<?, ?>>
@@ -36,13 +32,16 @@ public abstract class AbstractChart<T, O extends Options<?, ?>, D extends Abstra
3632
protected O options;
3733

3834
@JsonIgnore
39-
protected ObjectWriter defaultObjectWriter = new ObjectMapper()
40-
.setDefaultPropertyInclusion(JsonInclude.Include.NON_EMPTY)
41-
.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY)
42-
.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE)
43-
.setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.NONE)
44-
.setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE)
45-
.setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.NONE)
35+
protected ObjectWriter defaultObjectWriter = JsonMapper.builder()
36+
.changeDefaultPropertyInclusion(v -> v
37+
.withValueInclusion(JsonInclude.Include.NON_EMPTY))
38+
.changeDefaultVisibility(vc -> vc
39+
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
40+
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
41+
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
42+
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
43+
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE))
44+
.build()
4645
.writer()
4746
.forType(this.getClass());
4847

@@ -102,14 +101,7 @@ public T setDefaultObjectWriter(final ObjectWriter defaultObjectWriter)
102101
@Override
103102
public String toJson()
104103
{
105-
try
106-
{
107-
return this.defaultObjectWriter.writeValueAsString(this);
108-
}
109-
catch(final JsonProcessingException e)
110-
{
111-
throw new UncheckedIOException("Failed to write json", e);
112-
}
104+
return this.defaultObjectWriter.writeValueAsString(this);
113105
}
114106

115107
@SuppressWarnings("unchecked")

chartjs-java-model/src/main/java/software/xdev/chartjs/model/javascript/JavaScriptFunction.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@
1515
*/
1616
package software.xdev.chartjs.model.javascript;
1717

18-
import java.io.IOException;
19-
20-
import com.fasterxml.jackson.core.JsonGenerator;
21-
import com.fasterxml.jackson.databind.JsonSerializer;
22-
import com.fasterxml.jackson.databind.SerializerProvider;
23-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
18+
import tools.jackson.core.JsonGenerator;
19+
import tools.jackson.databind.SerializationContext;
20+
import tools.jackson.databind.annotation.JsonSerialize;
21+
import tools.jackson.databind.ser.std.StdSerializer;
2422

2523

2624
@JsonSerialize(using = JavaScriptFunction.Serializer.class)
@@ -38,13 +36,18 @@ public String getFunction()
3836
return this.function;
3937
}
4038

41-
public static class Serializer extends JsonSerializer<JavaScriptFunction>
39+
public static class Serializer extends StdSerializer<JavaScriptFunction>
4240
{
41+
public Serializer()
42+
{
43+
super(JavaScriptFunction.class);
44+
}
45+
4346
@Override
4447
public void serialize(
4548
final JavaScriptFunction value,
4649
final JsonGenerator gen,
47-
final SerializerProvider serializers) throws IOException
50+
final SerializationContext provider)
4851
{
4952
gen.writeRawValue(value.function);
5053
}

chartjs-java-model/src/main/java/software/xdev/chartjs/model/objects/OptionalArray.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515
*/
1616
package software.xdev.chartjs.model.objects;
1717

18-
import java.io.IOException;
1918
import java.util.ArrayList;
2019

21-
import com.fasterxml.jackson.core.JsonGenerator;
22-
import com.fasterxml.jackson.databind.JsonSerializer;
23-
import com.fasterxml.jackson.databind.SerializerProvider;
24-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
20+
import tools.jackson.core.JsonGenerator;
21+
import tools.jackson.databind.SerializationContext;
22+
import tools.jackson.databind.annotation.JsonSerialize;
23+
import tools.jackson.databind.ser.std.StdSerializer;
2524

2625

2726
/**
@@ -31,35 +30,39 @@
3130
@JsonSerialize(using = OptionalArray.Serializer.class)
3231
public class OptionalArray<E> extends ArrayList<E>
3332
{
34-
public static class Serializer<T> extends JsonSerializer<OptionalArray<T>>
33+
public static class Serializer<T> extends StdSerializer<OptionalArray<T>>
3534
{
35+
public Serializer()
36+
{
37+
super(OptionalArray.class);
38+
}
39+
3640
@Override
37-
public boolean isEmpty(final SerializerProvider provider, final OptionalArray<T> value)
41+
public boolean isEmpty(final SerializationContext ctxt, final OptionalArray<T> value)
3842
{
3943
return value == null || value.isEmpty();
4044
}
4145

4246
@Override
4347
public void serialize(
4448
final OptionalArray<T> value,
45-
final JsonGenerator jgen,
46-
final SerializerProvider provider)
47-
throws IOException
49+
final JsonGenerator gen,
50+
final SerializationContext provider)
4851
{
4952
if(value != null && !value.isEmpty())
5053
{
5154
if(value.size() == 1)
5255
{
53-
jgen.writeObject(value.get(0));
56+
gen.writePOJO(value.get(0));
5457
}
5558
else
5659
{
57-
jgen.writeStartArray();
60+
gen.writeStartArray();
5861
for(final T t : value)
5962
{
60-
jgen.writeObject(t);
63+
gen.writePOJO(t);
6164
}
62-
jgen.writeEndArray();
65+
gen.writeEndArray();
6366
}
6467
}
6568
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>software.xdev</groupId>
88
<artifactId>chartjs-java-model-root</artifactId>
9-
<version>2.9.2-SNAPSHOT</version>
9+
<version>3.0.0-SNAPSHOT</version>
1010
<packaging>pom</packaging>
1111

1212
<organization>

0 commit comments

Comments
 (0)