Class JsonbJaxrsProvider<T>

java.lang.Object
org.apache.johnzon.jaxrs.jsonb.jaxrs.JsonbJaxrsProvider<T>
All Implemented Interfaces:
jakarta.ws.rs.ext.MessageBodyReader<T>, jakarta.ws.rs.ext.MessageBodyWriter<T>, AutoCloseable

@Provider @Produces("application/json") @Consumes("application/json") @Priority(4900) public class JsonbJaxrsProvider<T> extends Object implements jakarta.ws.rs.ext.MessageBodyWriter<T>, jakarta.ws.rs.ext.MessageBodyReader<T>, AutoCloseable
  • Field Details

    • ignores

      protected final Collection<String> ignores
    • config

      protected final jakarta.json.bind.JsonbConfig config
    • delegate

      protected volatile Function<Class<?>,jakarta.json.bind.Jsonb> delegate
    • readImpl

      protected volatile JsonbJaxrsProvider.ReadImpl readImpl
    • customized

      private boolean customized
    • throwNoContentExceptionOnEmptyStreams

      private Boolean throwNoContentExceptionOnEmptyStreams
    • providers

      @Context private jakarta.ws.rs.ext.Providers providers
  • Constructor Details

    • JsonbJaxrsProvider

      public JsonbJaxrsProvider()
    • JsonbJaxrsProvider

      protected JsonbJaxrsProvider(Collection<String> ignores)
  • Method Details

    • isIgnored

      private boolean isIgnored(Class<?> type)
    • setThrowNoContentExceptionOnEmptyStreams

      public void setThrowNoContentExceptionOnEmptyStreams(boolean throwNoContentExceptionOnEmptyStreams)
    • setFailOnUnknownProperties

      public void setFailOnUnknownProperties(boolean active)
    • setUseJsRange

      public void setUseJsRange(boolean value)
    • setOtherProperties

      public void setOtherProperties(String others)
    • setIJson

      public void setIJson(boolean active)
    • setEncoding

      public void setEncoding(String encoding)
    • setBinaryDataStrategy

      public void setBinaryDataStrategy(String binaryDataStrategy)
    • setPropertyNamingStrategy

      public void setPropertyNamingStrategy(String propertyNamingStrategy)
    • setPropertyOrderStrategy

      public void setPropertyOrderStrategy(String propertyOrderStrategy)
    • setNullValues

      public void setNullValues(boolean nulls)
    • setPretty

      public void setPretty(boolean pretty)
    • setFailOnMissingCreatorValues

      public void setFailOnMissingCreatorValues(boolean failOnMissingCreatorValues)
    • setInterfaceImplementationMapping

      public void setInterfaceImplementationMapping(Map<String,String> interfaceImplementationMapping)
    • setPolymorphicSerializationPredicate

      public void setPolymorphicSerializationPredicate(String classes)
    • setPolymorphicDeserializationPredicate

      public void setPolymorphicDeserializationPredicate(String classes)
    • setPolymorphicDiscriminatorMapper

      public void setPolymorphicDiscriminatorMapper(Map<String,String> discriminatorMapper)
    • setPolymorphicTypeLoader

      public void setPolymorphicTypeLoader(Map<String,String> aliasTypeMapping)
    • setPolymorphicDiscriminator

      public void setPolymorphicDiscriminator(String value)
    • getOrCreatePolymorphicConfig

      private PolymorphicConfig getOrCreatePolymorphicConfig()
    • asSet

      private Set<Class<?>> asSet(String classes)
    • isReadable

      public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
      Specified by:
      isReadable in interface jakarta.ws.rs.ext.MessageBodyReader<T>
    • isWriteable

      public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
      Specified by:
      isWriteable in interface jakarta.ws.rs.ext.MessageBodyWriter<T>
    • getSize

      public long getSize(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
      Specified by:
      getSize in interface jakarta.ws.rs.ext.MessageBodyWriter<T>
    • readFrom

      public T readFrom(Class<T> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,String> httpHeaders, InputStream entityStream) throws jakarta.ws.rs.WebApplicationException, IOException
      Specified by:
      readFrom in interface jakarta.ws.rs.ext.MessageBodyReader<T>
      Throws:
      jakarta.ws.rs.WebApplicationException
      IOException
    • writeTo

      public void writeTo(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream) throws jakarta.ws.rs.WebApplicationException
      Specified by:
      writeTo in interface jakarta.ws.rs.ext.MessageBodyWriter<T>
      Throws:
      jakarta.ws.rs.WebApplicationException
    • createJsonb

      protected jakarta.json.bind.Jsonb createJsonb()
    • getJsonb

      protected jakarta.json.bind.Jsonb getJsonb(Class<?> type)
    • initThrowNoContentExceptionOnEmptyStreams

      private boolean initThrowNoContentExceptionOnEmptyStreams()
    • doRead

      private Object doRead(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream)
    • doReadWithNoContentException

      private Object doReadWithNoContentException(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream) throws jakarta.ws.rs.core.NoContentException
      Throws:
      jakarta.ws.rs.core.NoContentException
    • logger

      private Logger logger()
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception