Class SmooksDataFormat

java.lang.Object
org.smooks.cartridges.camel.dataformat.SmooksDataFormat
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.spi.DataFormat, org.apache.camel.spi.HasCamelContext

public class SmooksDataFormat extends Object implements org.apache.camel.spi.DataFormat, org.apache.camel.CamelContextAware, org.apache.camel.Service
SmooksDataFormat is a Camel data format which is a pluggable transformer capable of transforming from one dataformat to another and back again. This means that what is marshaled can be unmarshaled by an instance of this class.

A smooks configuration for a SmooksDataFormat should not utilize Smooks features such as routing that might allocated system resources. The reason for this is that there is no functionality in the SmooksDataFormat which will close those resources. If you need to use these Smooks features please take a look at the SmooksComponent or SmooksProcessor as they hook into Camels lifecycle manegment and will close resources correctly.

Author:
Christian Mueller, Daniel Bevenius
  • Constructor Details

  • Method Details

    • marshal

      public void marshal(org.apache.camel.Exchange exchange, Object fromBody, OutputStream toStream) throws Exception
      Marshals the Object 'fromBody' to an OutputStream 'toStream'

      The Camel framework will call this method from AsyncProcessorSupport.process(Exchange) and it will take care of setting the Out Message's body to the bytes written to the toStream OutputStream.

      Specified by:
      marshal in interface org.apache.camel.spi.DataFormat
      Parameters:
      exchange - The Camel Exchange.
      fromBody - The object to be marshalled into the output stream.
      toStream - The output stream that will be written to.
      Throws:
      Exception
    • unmarshal

      public Object unmarshal(org.apache.camel.Exchange exchange, InputStream fromStream)
      Unmarshals the fromStream to an Object.

      The Camel framework will call this method from AsyncProcessorSupport.process(Exchange) and it will take care of setting the returned Object on the Out Message's body.
      Specified by:
      unmarshal in interface org.apache.camel.spi.DataFormat
      Parameters:
      exchange - The Camel Exchange.
      fromStream - The InputStream that will be unmarshalled into an Object instance.
    • getResult

      protected Object getResult(org.smooks.io.payload.Exports exports, Result[] results, org.apache.camel.Exchange exchange)
    • setCamelContext

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

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

      public void start()
      Specified by:
      start in interface org.apache.camel.Service
    • stop

      public void stop()
      Specified by:
      stop in interface org.apache.camel.Service