I propose to remove "implements Serializable" from all of the
implementation classes in Johnzon core (impl).
For most classes it makes no sense to be Serializable and maybe its
not spec compliant (not sure about this). See attached diff.

If its not violating the spec maybe the JsonArrayImpl and
JsonObjectImpl and JsonLocationImpl could be Serializable (this would
make sense if one want persist them or send them over network)

-- 
Hendrik Saly (salyh, hendrikdev22)
@hendrikdev22
PGP: 0x22D7F6EC
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
index 4ab42d5..55578c3 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -26,7 +25,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.logging.Logger;
 
-public abstract class AbstractJsonFactory implements Serializable{
+public abstract class AbstractJsonFactory{
 
     protected final Logger logger = 
Logger.getLogger(this.getClass().getName());
     
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
index c37ecfb..eab1a7a 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 public enum BufferStrategy {
@@ -70,7 +69,7 @@ public enum BufferStrategy {
     public abstract BufferProvider<char[]> newCharProvider(int size);
     public abstract BufferProvider<StringBuilder> newStringBuilderProvider(int 
size);
 
-    public static interface BufferProvider<T> extends Serializable {
+    public static interface BufferProvider<T> {
         T newBuffer();
 
         void release(T value);
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
index 5dfd839..f8d903f 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.ArrayList;
@@ -30,7 +29,7 @@ import javax.json.JsonArrayBuilder;
 import javax.json.JsonObjectBuilder;
 import javax.json.JsonValue;
 
-class JsonArrayBuilderImpl implements JsonArrayBuilder, Serializable {
+class JsonArrayBuilderImpl implements JsonArrayBuilder {
     private List<JsonValue> tmpList;
 
     @Override
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
index fee44ce..7d219f3 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.util.AbstractList;
 import java.util.Iterator;
 import java.util.List;
@@ -29,7 +28,7 @@ import javax.json.JsonObject;
 import javax.json.JsonString;
 import javax.json.JsonValue;
 
-class JsonArrayImpl extends AbstractList<JsonValue> implements JsonArray, 
Serializable {
+class JsonArrayImpl extends AbstractList<JsonValue> implements JsonArray {
     private Integer hashCode = null;
     private final List<JsonValue> unmodifieableBackingList;
     private int size = -1;
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
index 7545da4..05625b0 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
@@ -21,7 +21,6 @@ package org.apache.johnzon.core;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.io.Serializable;
 import java.io.Writer;
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -40,7 +39,7 @@ import javax.json.JsonValue;
 import javax.json.stream.JsonGenerationException;
 import javax.json.stream.JsonGenerator;
 
-class JsonGeneratorImpl implements JsonGenerator, JsonChars, Serializable {
+class JsonGeneratorImpl implements JsonGenerator, JsonChars{
     private static final Charset UTF8_CHARSET = Charset.forName("UTF-8");
 
     private final transient Writer writer;
@@ -55,7 +54,7 @@ class JsonGeneratorImpl implements JsonGenerator, JsonChars, 
Serializable {
     protected int depth = 0;
 
     //minimal stack implementation
-    private static final class StructureElement implements Serializable{
+    private static final class StructureElement{
         final StructureElement previous;
         final boolean isArray;
 
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLocationImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLocationImpl.java
index 11fd074..c528075 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLocationImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLocationImpl.java
@@ -18,11 +18,9 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
-
 import javax.json.stream.JsonLocation;
 
-final class JsonLocationImpl implements JsonLocation, Serializable {
+final class JsonLocationImpl implements JsonLocation {
     
     public static final JsonLocation UNKNOWN_LOCATION = new 
JsonLocationImpl(-1, -1, -1);
     
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
index ea15a17..4064a1b 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.Collections;
@@ -30,7 +29,7 @@ import javax.json.JsonObject;
 import javax.json.JsonObjectBuilder;
 import javax.json.JsonValue;
 
-class JsonObjectBuilderImpl implements JsonObjectBuilder, Serializable {
+class JsonObjectBuilderImpl implements JsonObjectBuilder {
     private Map<String, JsonValue> tmpMap;
 
     @Override
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
index d7912cb..545d3bb 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
 import java.util.AbstractMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -31,7 +30,7 @@ import javax.json.JsonString;
 import javax.json.JsonValue;
 
 
-final class JsonObjectImpl extends AbstractMap<String, JsonValue> implements 
JsonObject, Serializable {
+final class JsonObjectImpl extends AbstractMap<String, JsonValue> implements 
JsonObject {
     private Integer hashCode = null;
     private final Map<String, JsonValue> unmodifieableBackingMap;
 
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
index d1bbec6..8ca6c57 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -21,7 +21,6 @@ package org.apache.johnzon.core;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
-import java.io.Serializable;
 import java.io.Writer;
 import java.util.Map;
 
@@ -38,7 +37,7 @@ import javax.json.stream.JsonGeneratorFactory;
 import javax.json.stream.JsonParser;
 import javax.json.stream.JsonParserFactory;
 
-public class JsonProviderImpl extends JsonProvider implements Serializable {
+public class JsonProviderImpl extends JsonProvider {
     private static final JsonProvider DELEGATE = new JsonProviderDelegate();
 
     @Override
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
index e012ae1..c6565ff 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
@@ -18,15 +18,13 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
-
 import javax.json.JsonArray;
 import javax.json.JsonObject;
 import javax.json.JsonStructure;
 import javax.json.JsonWriter;
 import javax.json.stream.JsonGenerator;
 
-class JsonWriterImpl implements JsonWriter, Serializable{
+class JsonWriterImpl implements JsonWriter{
     private final JsonGenerator generator;
     private boolean closed = false;
 
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/ThreadLocalBufferCache.java
 
b/johnzon-core/src/main/java/org/apache/johnzon/core/ThreadLocalBufferCache.java
index f973fcd..de1f64f 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/ThreadLocalBufferCache.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/ThreadLocalBufferCache.java
@@ -18,9 +18,7 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
-
-public abstract class ThreadLocalBufferCache<T> implements Serializable {
+public abstract class ThreadLocalBufferCache<T> {
     // alloc are expensive so using a very trivial buffer, we remove from TL 
to say we use it and reset it when we are done (close)
     private final ThreadLocal<T> buffers;
     private final int defaultSize;

Reply via email to