Class JsonInstanceSerializer<T>
- java.lang.Object
-
- org.apache.curator.x.discovery.details.JsonInstanceSerializer<T>
-
- All Implemented Interfaces:
InstanceSerializer<T>
public class JsonInstanceSerializer<T> extends java.lang.Object implements InstanceSerializer<T>
A serializer that uses Jackson to serialize/deserialize as JSON. IMPORTANT: The instance payload must support Jackson
-
-
Constructor Summary
Constructors Constructor Description JsonInstanceSerializer(java.lang.Class<T> payloadClass)CURATOR-275 introduced a new field intoServiceInstance.JsonInstanceSerializer(java.lang.Class<T> payloadClass, boolean compatibleSerializationMode)CURATOR-275 introduced a new field intoServiceInstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ServiceInstance<T>deserialize(byte[] bytes)Deserialize a byte array into an instancebyte[]serialize(ServiceInstance<T> instance)Serialize an instance into bytes
-
-
-
Constructor Detail
-
JsonInstanceSerializer
public JsonInstanceSerializer(java.lang.Class<T> payloadClass)
CURATOR-275 introduced a new field intoServiceInstance. This caused a potentialUnrecognizedPropertyExceptionin older clients that read newly serialized ServiceInstances. Therefore the default behavior of JsonInstanceSerializer has been changed to NOT serialize theenabledfield. If you wish to use that field, use the alternate constructorJsonInstanceSerializer(Class, boolean)and pass true forcompatibleSerializationMode. Note: future versions of Curator may change this behavior.- Parameters:
payloadClass- used to validate payloads when deserializing
-
JsonInstanceSerializer
public JsonInstanceSerializer(java.lang.Class<T> payloadClass, boolean compatibleSerializationMode)
CURATOR-275 introduced a new field intoServiceInstance. This caused a potentialUnrecognizedPropertyExceptionin older clients that read newly serialized ServiceInstances. If you are susceptible to this you should set the serializer to be an instance ofJsonInstanceSerializerwithcompatibleSerializationModeset to true. IMPORTANT: when this is done, the newenabledfield of ServiceInstance is not serialized. If however you do want to use theenabledfield, setcompatibleSerializationModeto false.- Parameters:
payloadClass- used to validate payloads when deserializingcompatibleSerializationMode- pass true to serialize in a manner that supports clients pre-CURATOR-275
-
-
Method Detail
-
deserialize
public ServiceInstance<T> deserialize(byte[] bytes) throws java.lang.Exception
Description copied from interface:InstanceSerializerDeserialize a byte array into an instance- Specified by:
deserializein interfaceInstanceSerializer<T>- Parameters:
bytes- the bytes- Returns:
- service instance
- Throws:
java.lang.Exception- any errors
-
serialize
public byte[] serialize(ServiceInstance<T> instance) throws java.lang.Exception
Description copied from interface:InstanceSerializerSerialize an instance into bytes- Specified by:
serializein interfaceInstanceSerializer<T>- Parameters:
instance- the instance- Returns:
- byte array representing the instance
- Throws:
java.lang.Exception- any errors
-
-