Class 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 Detail

      • JsonInstanceSerializer

        public JsonInstanceSerializer​(java.lang.Class<T> payloadClass)
        CURATOR-275 introduced a new field into ServiceInstance. This caused a potential UnrecognizedPropertyException in older clients that read newly serialized ServiceInstances. Therefore the default behavior of JsonInstanceSerializer has been changed to NOT serialize the enabled field. If you wish to use that field, use the alternate constructor JsonInstanceSerializer(Class, boolean) and pass true for compatibleSerializationMode. 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 into ServiceInstance. This caused a potential UnrecognizedPropertyException in older clients that read newly serialized ServiceInstances. If you are susceptible to this you should set the serializer to be an instance of JsonInstanceSerializer with compatibleSerializationMode set to true. IMPORTANT: when this is done, the new enabled field of ServiceInstance is not serialized. If however you do want to use the enabled field, set compatibleSerializationMode to false.
        Parameters:
        payloadClass - used to validate payloads when deserializing
        compatibleSerializationMode - 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: InstanceSerializer
        Deserialize a byte array into an instance
        Specified by:
        deserialize in interface InstanceSerializer<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: InstanceSerializer
        Serialize an instance into bytes
        Specified by:
        serialize in interface InstanceSerializer<T>
        Parameters:
        instance - the instance
        Returns:
        byte array representing the instance
        Throws:
        java.lang.Exception - any errors