Skip to content

Commit a3563f0

Browse files
andrea-ligiosmaibin
authored andcommitted
BAEL-1778 (eugenp#4351)
* Also needed * BAEL-1698 * BAEL-1698 * BAEL-1778
1 parent 89d1127 commit a3563f0

11 files changed

Lines changed: 301 additions & 61 deletions

File tree

gson/pom.xml

Lines changed: 68 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,74 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3-
<modelVersion>4.0.0</modelVersion>
4-
<groupId>com.baeldung</groupId>
5-
<artifactId>gson</artifactId>
6-
<version>0.1-SNAPSHOT</version>
7-
<name>gson</name>
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<groupId>com.baeldung</groupId>
6+
<artifactId>gson</artifactId>
7+
<version>0.1-SNAPSHOT</version>
8+
<name>gson</name>
89

9-
<parent>
10-
<groupId>com.baeldung</groupId>
11-
<artifactId>parent-java</artifactId>
12-
<version>0.0.1-SNAPSHOT</version>
13-
<relativePath>../parent-java</relativePath>
14-
</parent>
10+
<parent>
11+
<groupId>com.baeldung</groupId>
12+
<artifactId>parent-java</artifactId>
13+
<version>0.0.1-SNAPSHOT</version>
14+
<relativePath>../parent-java</relativePath>
15+
</parent>
1516

16-
<dependencies>
17-
<!-- utils -->
18-
<dependency>
19-
<groupId>joda-time</groupId>
20-
<artifactId>joda-time</artifactId>
21-
<version>${joda-time.version}</version>
22-
</dependency>
23-
<dependency>
24-
<groupId>commons-io</groupId>
25-
<artifactId>commons-io</artifactId>
26-
<version>${commons-io.version}</version>
27-
</dependency>
28-
<dependency>
29-
<groupId>org.apache.commons</groupId>
30-
<artifactId>commons-collections4</artifactId>
31-
<version>${commons-collections4.version}</version>
32-
</dependency>
33-
<dependency>
34-
<groupId>org.apache.commons</groupId>
35-
<artifactId>commons-lang3</artifactId>
36-
<version>${commons-lang3.version}</version>
37-
</dependency>
38-
<!-- marshalling -->
39-
<dependency>
40-
<groupId>com.google.code.gson</groupId>
41-
<artifactId>gson</artifactId>
42-
<version>${gson.version}</version>
43-
</dependency>
44-
</dependencies>
17+
<dependencies>
18+
<!-- utils -->
19+
<dependency>
20+
<groupId>org.projectlombok</groupId>
21+
<artifactId>lombok</artifactId>
22+
<version>1.16.10</version>
23+
<scope>provided</scope>
24+
</dependency>
25+
<dependency>
26+
<groupId>joda-time</groupId>
27+
<artifactId>joda-time</artifactId>
28+
<version>${joda-time.version}</version>
29+
</dependency>
30+
<dependency>
31+
<groupId>commons-io</groupId>
32+
<artifactId>commons-io</artifactId>
33+
<version>${commons-io.version}</version>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.apache.commons</groupId>
37+
<artifactId>commons-collections4</artifactId>
38+
<version>${commons-collections4.version}</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.apache.commons</groupId>
42+
<artifactId>commons-lang3</artifactId>
43+
<version>${commons-lang3.version}</version>
44+
</dependency>
45+
<!-- marshalling -->
46+
<dependency>
47+
<groupId>com.google.code.gson</groupId>
48+
<artifactId>gson</artifactId>
49+
<version>${gson.version}</version>
50+
</dependency>
51+
</dependencies>
4552

46-
<build>
47-
<finalName>gson</finalName>
48-
<resources>
49-
<resource>
50-
<directory>src/main/resources</directory>
51-
<filtering>true</filtering>
52-
</resource>
53-
</resources>
54-
</build>
53+
<build>
54+
<finalName>gson</finalName>
55+
<resources>
56+
<resource>
57+
<directory>src/main/resources</directory>
58+
<filtering>true</filtering>
59+
</resource>
60+
</resources>
61+
</build>
5562

56-
<properties>
57-
<!-- marshalling -->
58-
<gson.version>2.8.0</gson.version>
59-
<!-- util -->
60-
<guava.version>19.0</guava.version>
61-
<commons-lang3.version>3.5</commons-lang3.version>
62-
<commons-collections4.version>4.1</commons-collections4.version>
63-
<commons-io.version>2.5</commons-io.version>
64-
<joda-time.version>2.9.6</joda-time.version>
65-
</properties>
63+
<properties>
64+
<!-- marshalling -->
65+
<gson.version>2.8.0</gson.version>
66+
<!-- util -->
67+
<guava.version>19.0</guava.version>
68+
<commons-lang3.version>3.5</commons-lang3.version>
69+
<commons-collections4.version>4.1</commons-collections4.version>
70+
<commons-io.version>2.5</commons-io.version>
71+
<joda-time.version>2.9.6</joda-time.version>
72+
</properties>
6673

6774
</project>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Retention(RetentionPolicy.RUNTIME)
9+
@Target(ElementType.FIELD)
10+
public @interface Exclude {
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MyClass {
9+
private long id;
10+
private String name;
11+
private String other;
12+
private MySubClass subclass;
13+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import com.google.gson.annotations.Expose;
4+
5+
import lombok.AllArgsConstructor;
6+
import lombok.Data;
7+
8+
@Data
9+
@AllArgsConstructor
10+
public class MyClassWithAnnotatedFields {
11+
12+
@Expose
13+
private long id;
14+
@Expose
15+
private String name;
16+
private String other;
17+
@Expose
18+
private MySubClassWithAnnotatedFields subclass;
19+
20+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MyClassWithCustomAnnotatedFields {
9+
10+
private long id;
11+
private String name;
12+
@Exclude
13+
private String other;
14+
private MySubClassWithCustomAnnotatedFields subclass;
15+
16+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MyClassWithTransientFields {
9+
10+
private long id;
11+
private String name;
12+
private transient String other;
13+
private MySubClassWithTransientFields subclass;
14+
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MySubClass {
9+
private long id;
10+
private String description;
11+
private String otherVerboseInfo;
12+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import com.google.gson.annotations.Expose;
4+
5+
import lombok.AllArgsConstructor;
6+
import lombok.Data;
7+
8+
@Data
9+
@AllArgsConstructor
10+
public class MySubClassWithAnnotatedFields {
11+
12+
@Expose private long id;
13+
@Expose private String description;
14+
private String otherVerboseInfo;
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MySubClassWithCustomAnnotatedFields {
9+
10+
private long id;
11+
private String description;
12+
@Exclude
13+
private String otherVerboseInfo;
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.baeldung.gson.serializationwithexclusions;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class MySubClassWithTransientFields {
9+
10+
private long id;
11+
private String description;
12+
private transient String otherVerboseInfo;
13+
}

0 commit comments

Comments
 (0)