File tree Expand file tree Collapse file tree 6 files changed +51
-6
lines changed
main/java/org/springframework/data/jpa/datatables/mapping
test/java/org/springframework/data/jpa/datatables/mapping Expand file tree Collapse file tree 6 files changed +51
-6
lines changed Original file line number Diff line number Diff line change 77import jakarta .validation .constraints .NotBlank ;
88import jakarta .validation .constraints .NotNull ;
99
10+ import java .io .Serial ;
11+ import java .io .Serializable ;
12+
1013@ Data
1114@ NoArgsConstructor
1215@ AllArgsConstructor
13- public class Column {
16+ public class Column implements Serializable {
17+ @ Serial private static final long serialVersionUID = 5646239805793775339L ;
1418
1519 /**
1620 * Column's data source
Original file line number Diff line number Diff line change 55import jakarta .validation .constraints .Min ;
66import jakarta .validation .constraints .NotEmpty ;
77import jakarta .validation .constraints .NotNull ;
8+
9+ import java .io .Serial ;
10+ import java .io .Serializable ;
811import java .util .*;
912
1013/**
1316 * @see <a href="https://datatables.net/manual/server-side#Sent-parameters">datatables.net reference</a>
1417 */
1518@ Data
16- public class DataTablesInput {
19+ public class DataTablesInput implements Serializable {
20+ @ Serial private static final long serialVersionUID = 4977905421750437988L ;
21+
1722 /**
1823 * Draw counter. This is used by DataTables to ensure that the Ajax returns from server-side
1924 * processing requests are drawn in sequence by DataTables (Ajax requests are asynchronous and
Original file line number Diff line number Diff line change 33import com .fasterxml .jackson .annotation .JsonView ;
44import lombok .Data ;
55
6+ import java .io .Serial ;
7+ import java .io .Serializable ;
68import java .util .Collections ;
79import java .util .List ;
810
911@ Data
10- public class DataTablesOutput <T > {
12+ public class DataTablesOutput <T > implements Serializable {
13+ @ Serial private static final long serialVersionUID = -5222336791460405793L ;
1114
1215 /**
1316 * The draw counter that this object is a response to - from the draw parameter sent as part of
Original file line number Diff line number Diff line change 88import jakarta .validation .constraints .NotNull ;
99import jakarta .validation .constraints .Pattern ;
1010
11+ import java .io .Serial ;
12+ import java .io .Serializable ;
13+
1114@ Data
1215@ NoArgsConstructor
1316@ AllArgsConstructor
14- public class Order {
17+ public class Order implements Serializable {
18+ @ Serial private static final long serialVersionUID = 4855306115483811642L ;
1519
1620 /**
1721 * Column to which ordering should be applied. This is an index reference to the columns array of
Original file line number Diff line number Diff line change 66
77import jakarta .validation .constraints .NotNull ;
88
9+ import java .io .Serial ;
10+ import java .io .Serializable ;
11+
912@ Data
1013@ NoArgsConstructor
1114@ AllArgsConstructor
12- public class Search {
15+ public class Search implements Serializable {
16+ @ Serial private static final long serialVersionUID = -9209797224565963947L ;
1317
1418 /**
1519 * Global search value. To be applied to all columns which have searchable as true.
Original file line number Diff line number Diff line change 11package org .springframework .data .jpa .datatables .mapping ;
22
3- import org .junit .jupiter .api .Test ;;
3+ import org .junit .jupiter .api .Test ;
44
5+ import java .io .*;
56import java .util .*;
67
78import static java .util .Arrays .asList ;
@@ -30,4 +31,28 @@ public void testParseSearchPanes() {
3031 entry ("a.t.t.r.5" , Set .of ("7" ))
3132 );
3233 }
34+
35+ @ Test
36+ public void testJavaSerialization () throws Exception {
37+ DataTablesInput input = new DataTablesInput ();
38+ input .setDraw (1 );
39+ input .setStart (0 );
40+ input .setLength (10 );
41+ input .setSearch (new Search ("test" , false ));
42+ input .setOrder (Collections .singletonList (new Order (0 , "asc" )));
43+
44+ ByteArrayOutputStream baos = new ByteArrayOutputStream ();
45+ try (ObjectOutputStream oos = new ObjectOutputStream (baos )) {
46+ oos .writeObject (input );
47+ }
48+
49+ try (ObjectInputStream ois = new ObjectInputStream (new ByteArrayInputStream (baos .toByteArray ()))) {
50+ DataTablesInput deserialized = (DataTablesInput ) ois .readObject ();
51+ assertThat (deserialized .getDraw ()).isEqualTo (input .getDraw ());
52+ assertThat (deserialized .getStart ()).isEqualTo (input .getStart ());
53+ assertThat (deserialized .getLength ()).isEqualTo (input .getLength ());
54+ assertThat (deserialized .getSearch ().getValue ()).isEqualTo (input .getSearch ().getValue ());
55+ assertThat (deserialized .getOrder ().get (0 ).getColumn ()).isEqualTo (input .getOrder ().get (0 ).getColumn ());
56+ }
57+ }
3358}
You can’t perform that action at this time.
0 commit comments