Class AbstractJacksonDataFormat

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.component.jackson.AbstractJacksonDataFormat
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.DataFormat, org.apache.camel.spi.DataFormatContentTypeHeader, org.apache.camel.spi.DataFormatName, org.apache.camel.spi.HasCamelContext, org.apache.camel.StatefulService, org.apache.camel.SuspendableService
Direct Known Subclasses:
JacksonDataFormat

public abstract class AbstractJacksonDataFormat extends org.apache.camel.support.service.ServiceSupport implements org.apache.camel.spi.DataFormat, org.apache.camel.spi.DataFormatName, org.apache.camel.spi.DataFormatContentTypeHeader, org.apache.camel.CamelContextAware
Abstract superclass of Jackson based data formats.
  • Constructor Details

    • AbstractJacksonDataFormat

      protected AbstractJacksonDataFormat()
      Use the default Jackson ObjectMapper and Object
    • AbstractJacksonDataFormat

      protected AbstractJacksonDataFormat(Class<?> unmarshalType)
      Use the default Jackson ObjectMapper and with a custom unmarshal type
      Parameters:
      unmarshalType - the custom unmarshal type
    • AbstractJacksonDataFormat

      protected AbstractJacksonDataFormat(Class<?> unmarshalType, Class<?> jsonView)
      Use the default Jackson ObjectMapper and with a custom unmarshal type and JSON view
      Parameters:
      unmarshalType - the custom unmarshal type
      jsonView - marker class to specify properties to be included during marshalling. See also https://github.com/FasterXML/jackson-annotations/blob/master/src/main/java/com/fasterxml/jackson/annotation/JsonView.java
    • AbstractJacksonDataFormat

      protected AbstractJacksonDataFormat(com.fasterxml.jackson.databind.ObjectMapper mapper, Class<?> unmarshalType)
      Use a custom Jackson mapper and and unmarshal type
      Parameters:
      mapper - the custom mapper
      unmarshalType - the custom unmarshal type
    • AbstractJacksonDataFormat

      protected AbstractJacksonDataFormat(com.fasterxml.jackson.databind.ObjectMapper mapper, Class<?> unmarshalType, Class<?> jsonView)
      Use a custom Jackson mapper, unmarshal type and JSON view
      Parameters:
      mapper - the custom mapper
      unmarshalType - the custom unmarshal type
      jsonView - marker class to specify properties to be included during marshalling. See also https://github.com/FasterXML/jackson-annotations/blob/master/src/main/java/com/fasterxml/jackson/annotation/JsonView.java
  • Method Details

    • getCamelContext

      public org.apache.camel.CamelContext getCamelContext()
      Specified by:
      getCamelContext in interface org.apache.camel.spi.HasCamelContext
    • setCamelContext

      public void setCamelContext(org.apache.camel.CamelContext camelContext)
      Specified by:
      setCamelContext in interface org.apache.camel.CamelContextAware
    • marshal

      public void marshal(org.apache.camel.Exchange exchange, Object graph, OutputStream stream) throws Exception
      Specified by:
      marshal in interface org.apache.camel.spi.DataFormat
      Throws:
      Exception
    • unmarshal

      public Object unmarshal(org.apache.camel.Exchange exchange, InputStream stream) throws Exception
      Specified by:
      unmarshal in interface org.apache.camel.spi.DataFormat
      Throws:
      Exception
    • getObjectMapper

      public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
    • setObjectMapper

      public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    • isUseDefaultObjectMapper

      public boolean isUseDefaultObjectMapper()
    • setUseDefaultObjectMapper

      public void setUseDefaultObjectMapper(boolean useDefaultObjectMapper)
    • getUnmarshalType

      public Class<?> getUnmarshalType()
    • setUnmarshalType

      public void setUnmarshalType(Class<?> unmarshalType)
    • getUnmarshalTypeName

      public String getUnmarshalTypeName()
    • setUnmarshalTypeName

      public void setUnmarshalTypeName(String unmarshalTypeName)
    • getCollectionType

      public Class<? extends Collection> getCollectionType()
    • setCollectionType

      public void setCollectionType(Class<? extends Collection> collectionType)
    • getCollectionTypeName

      public String getCollectionTypeName()
    • setCollectionTypeName

      public void setCollectionTypeName(String collectionTypeName)
    • getJsonView

      public Class<?> getJsonView()
    • setJsonView

      public void setJsonView(Class<?> jsonView)
    • getJsonViewTypeName

      public String getJsonViewTypeName()
    • setJsonViewTypeName

      public void setJsonViewTypeName(String jsonViewTypeName)
    • getInclude

      public String getInclude()
    • setInclude

      public void setInclude(String include)
    • isAllowJmsType

      public boolean isAllowJmsType()
    • isPrettyPrint

      public boolean isPrettyPrint()
    • setPrettyPrint

      public void setPrettyPrint(boolean prettyPrint)
    • isUseList

      public boolean isUseList()
    • setUseList

      public void setUseList(boolean useList)
    • getModules

      public List<com.fasterxml.jackson.databind.Module> getModules()
    • getNamingStrategy

      public String getNamingStrategy()
    • setNamingStrategy

      public void setNamingStrategy(String namingStrategy)
    • setModules

      public void setModules(List<com.fasterxml.jackson.databind.Module> modules)
      To use custom Jackson Modules
    • getModuleClassNames

      public String getModuleClassNames()
    • addModule

      public void addModule(com.fasterxml.jackson.databind.Module module)
      To use the custom Jackson module
    • setModuleClassNames

      public void setModuleClassNames(String moduleClassNames)
      To use custom Jackson Modules specified as a String with FQN class names. Multiple classes can be separated by comma.
    • getModuleRefs

      public String getModuleRefs()
    • setModuleRefs

      public void setModuleRefs(String moduleRefs)
      To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.
    • useList

      public void useList()
      Uses ArrayList when unmarshalling.
    • useMap

      public void useMap()
      Uses HashMap when unmarshalling.
    • setAllowJmsType

      public void setAllowJmsType(boolean allowJmsType)
      Allows jackson to use the JMSType header as an indicator what the classname is for unmarshaling content to POJO

      By default this option is false.

    • isEnableJacksonTypeConverter

      public boolean isEnableJacksonTypeConverter()
    • setEnableJacksonTypeConverter

      public void setEnableJacksonTypeConverter(boolean enableJacksonTypeConverter)
      If enabled then Jackson is allowed to attempt to be used during Camels type converter as a org.apache.camel.FallbackConverter that attempts to convert POJOs to/from Map/List types.

      This should only be enabled when desired to be used.

    • isAllowUnmarshallType

      public boolean isAllowUnmarshallType()
    • setAllowUnmarshallType

      public void setAllowUnmarshallType(boolean allowJacksonUnmarshallType)
      If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling.

      This should only be enabled when desired to be used.

    • isContentTypeHeader

      public boolean isContentTypeHeader()
    • setContentTypeHeader

      public void setContentTypeHeader(boolean contentTypeHeader)
      If enabled then Jackson will set the Content-Type header to the correct mime type when marshalling.
      Specified by:
      setContentTypeHeader in interface org.apache.camel.spi.DataFormatContentTypeHeader
    • getTimezone

      public TimeZone getTimezone()
    • setTimezone

      public void setTimezone(TimeZone timezone)
      If set then Jackson will use the Timezone when marshalling/unmarshalling.
    • isAutoDiscoverObjectMapper

      public boolean isAutoDiscoverObjectMapper()
    • setAutoDiscoverObjectMapper

      public void setAutoDiscoverObjectMapper(boolean autoDiscoverObjectMapper)
      If set to true and useDefaultObjectMapper is true, then Jackson will look for an objectMapper in the registry.
    • getSchemaResolver

      public SchemaResolver getSchemaResolver()
    • setSchemaResolver

      public void setSchemaResolver(SchemaResolver schemaResolver)
      Optional schema resolver used to lookup schemas for the data in transit.
    • isAutoDiscoverSchemaResolver

      public boolean isAutoDiscoverSchemaResolver()
    • setAutoDiscoverSchemaResolver

      public void setAutoDiscoverSchemaResolver(boolean autoDiscoverSchemaResolver)
      When not disabled, the SchemaResolver will be looked up into the registry
    • getEnableFeatures

      public String getEnableFeatures()
    • setEnableFeatures

      public void setEnableFeatures(String enableFeatures)
      Set of features to enable on the Jackson ObjectMapper. The features should be a name that matches a enum from SerializationFeature, DeserializationFeature, or MapperFeature.
    • getDisableFeatures

      public String getDisableFeatures()
    • setDisableFeatures

      public void setDisableFeatures(String disableFeatures)
      Set of features to disable on the Jackson ObjectMapper. The features should be a name that matches a enum from SerializationFeature, DeserializationFeature, or MapperFeature.
    • enableFeature

      public void enableFeature(com.fasterxml.jackson.databind.SerializationFeature feature)
    • enableFeature

      public void enableFeature(com.fasterxml.jackson.databind.DeserializationFeature feature)
    • enableFeature

      public void enableFeature(com.fasterxml.jackson.databind.MapperFeature feature)
    • disableFeature

      public void disableFeature(com.fasterxml.jackson.databind.SerializationFeature feature)
    • disableFeature

      public void disableFeature(com.fasterxml.jackson.databind.DeserializationFeature feature)
    • disableFeature

      public void disableFeature(com.fasterxml.jackson.databind.MapperFeature feature)
    • doInit

      protected void doInit() throws Exception
      Overrides:
      doInit in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • doStart

      protected void doStart() throws Exception
      Overrides:
      doStart in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • getDataFormatName

      public abstract String getDataFormatName()
      Specified by:
      getDataFormatName in interface org.apache.camel.spi.DataFormatName
    • createNewObjectMapper

      protected abstract com.fasterxml.jackson.databind.ObjectMapper createNewObjectMapper()
    • getObjectMapperClass

      protected abstract Class<? extends com.fasterxml.jackson.databind.ObjectMapper> getObjectMapperClass()
    • getDefaultContentType

      protected abstract String getDefaultContentType()