Class DataSonnetPipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@EnterpriseIntegrationPattern(TRANSLATOR) public class DataSonnetPipe extends FixedForwardPipe

Using .jsonnet transformation files, the DataSonnetPipe uses JSonnet at it's core to transform files from and to different file formats specified by supported outputTypes.

The pipe input message will be set to the JSON object called payload. It's required for the input message to have a correct MimeType, else the text will be interpreted as a String.

Input message (JSON) format:


 {
   "userId" : "123",
   "name" : "DataSonnet"
 }
 
Jsonnet stylesheet:

 {
   "uid": payload.userId,
   "uname": payload.name,
 }
 
Produces the following JSON output:

 {
   "uid": "123",
   "uname": "DataSonnet"
 }
 

See Also:
Parameters
All parameters are added to the .jsonnet stylesheet, parameter names must be unique.
  • Constructor Details

    • DataSonnetPipe

      public DataSonnetPipe()
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Description copied from class: FixedForwardPipe
      checks for correct configuration of forward
      Specified by:
      configure in interface IConfigurable
      Specified by:
      configure in interface IPipe
      Overrides:
      configure in class FixedForwardPipe
      Throws:
      ConfigurationException
    • doPipe

      public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession, String) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Throws:
      PipeRunException
    • setStyleSheetName

      public void setStyleSheetName(String stylesheetName)
      Location of stylesheet to apply to the input message
    • setOutputType

      public void setOutputType(DataSonnetPipe.DataSonnetOutputType outputType)
      Output file format, DataSonnet is semi-capable of converting the converted JSON to a different format.
    • setComputeMimeType

      public void setComputeMimeType(boolean computeMimeType)
      Compute mimetype when unknown. Requires more compute