Class DataSonnetPipe
- All Implemented Interfaces:
FrankElement, HasApplicationContext, HasName, HasTransactionAttribute, IConfigurable, IForwardTarget, IPipe, IScopeProvider, IWithParameters, NameAware, EventThrowing, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.Lifecycle
Using .jsonnet transformation files, the DataSonnetPipe uses JSonnet at its 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 is required for the input message to have a correct MimeType; otherwise, 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"
}
This pipe can also call senders using their names as functions in the JSonnet file. For example:
<DataSonnetPipe>
<EchoSender name="myFunction" />
</DataSonnetPipe>
[
{
"number": sender.myFunction(x)
} for x in [ 1, 2, 3, 4 ]
]
results in [{"number":"1"},{"number":"2"},{"number":"3"},{"number":"4"}].
- See Also:
- Parameters
- All parameters are added to the
.jsonnetstylesheet. Parameter names must be unique.
-
Field Summary
Fields inherited from class AbstractPipe
parameterNamesMustBeUniqueFields inherited from class TransactionAttributes
logFields inherited from interface IPipe
LONG_DURATION_MONITORING_EVENT, MESSAGE_SIZE_MONITORING_EVENT, PIPE_EXCEPTION_MONITORING_EVENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidOne or more specifications of senders.voidChecks for correct configuration of forward.doPipe(Message message, PipeLineSession session) This is where the action takes place.voidsetImports(String imports) List of stylesheets / DataSonnet files imported by the stylesheet to be executed.voidsetOutputFileFormat(DataSonnetOutputType outputType) DataSonnet is semi-capable of converting the converted JSON to a different format.voidsetOutputType(DataSonnetOutputType outputType) Deprecated.final voidDeprecated.voidsetStyleSheetName(String stylesheetName) Location of the stylesheet to apply to the input message.voidstart()Perform necessary action to start the pipe.voidstop()Perform necessary actions to stop thePipe.
For instance, closing JMS connections, DBMS connections etc.Methods inherited from class FixedForwardPipe
getParameterValueMethods inherited from class AbstractPipe
addForward, addParameter, createBean, findForward, getAdapter, getEventSourceName, getParameterList, getRegisteredForwards, hasRegisteredForward, isRunning, registerEvent, setApplicationContext, setChompCharSize, setDefaultValue, setDurationThreshold, setElementToMove, setElementToMoveChain, setElementToMoveSessionKey, setEmptyInputReplacement, setGetInputFromFixedValue, setGetInputFromSessionKey, setHideRegex, setIfParam, setIfValue, setLocker, setLogIntermediaryResults, setMaxThreads, setName, setOnlyIfSessionKey, setOnlyIfValue, setPreserveInput, setRemoveCompactMsgNamespaces, setRestoreMovedElements, setSecLogSessionKeys, setSizeStatistics, setSkipOnEmptyInput, setStoreResultInSessionKey, setUnlessSessionKey, setUnlessValue, setWriteToSecLog, sizeStatisticsEnabled, skipPipe, throwEventMethods inherited from class TransactionAttributes
configureTransactionAttributes, isTransacted, isTransacted, setTransacted, setTransactionTimeoutMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FrankElement
addConfigWarningMethods inherited from interface HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface HasTransactionAttribute
getTransactionAttribute, getTransactionTimeout, getTxDef, setTransactionAttributeMethods inherited from interface IForwardTarget
getNameMethods inherited from interface IPipe
getChompCharSize, getDefaultValue, getDurationThreshold, getElementToMove, getElementToMoveChain, getElementToMoveSessionKey, getGetInputFromFixedValue, getGetInputFromSessionKey, getHideRegex, getIfParam, getIfValue, getLocker, getLogIntermediaryResults, getMaxThreads, getOnlyIfSessionKey, getOnlyIfValue, getSecLogSessionKeys, getStoreResultInSessionKey, getUnlessSessionKey, getUnlessValue, isPreserveInput, isRemoveCompactMsgNamespaces, isRestoreMovedElements, isSkipOnEmptyInput, isWriteToSecLog, setPipeLine, throwEvent
-
Constructor Details
-
DataSonnetPipe
public DataSonnetPipe()
-
-
Method Details
-
configure
Description copied from class:FixedForwardPipeChecks for correct configuration of forward.- Specified by:
configurein interfaceIConfigurable- Overrides:
configurein classFixedForwardPipe- Throws:
ConfigurationException- in case it was not able to configure the component.
-
start
public void start()Description copied from interface:IPipePerform necessary action to start the pipe. This method is executed after theIConfigurable.configure()method, for each start and stop command of the adapter.- Specified by:
startin interfaceIPipe- Specified by:
startin interfaceorg.springframework.context.Lifecycle- Overrides:
startin classAbstractPipe
-
stop
public void stop()Description copied from interface:IPipePerform necessary actions to stop thePipe.
For instance, closing JMS connections, DBMS connections etc.- Specified by:
stopin interfaceIPipe- Specified by:
stopin interfaceorg.springframework.context.Lifecycle- Overrides:
stopin classAbstractPipe
-
doPipe
Description copied from interface:IPipeThis 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.- Throws:
PipeRunException
-
setStyleSheetName
Location of the stylesheet to apply to the input message. -
setOutputFileFormat
DataSonnet is semi-capable of converting the converted JSON to a different format.- Default value
- JSON
-
setOutputType
@Deprecated @ConfigurationWarning("for documentation purposes we've renamed this field to [outputFileFormat]") public void setOutputType(DataSonnetOutputType outputType) Deprecated. -
setSender
Deprecated. -
addSender
One or more specifications of senders. Can be called from the JSonnet file usingsender.'name-here'(input). -
setImports
List of stylesheets / DataSonnet files imported by the stylesheet to be executed. Stylesheets are only evaluated as JSonnet files if the filename has the extension .ds or .libsonnet.The list of stylesheets is expected to be a comma-separated list of files, which are loaded from the configuration. Import statements in DataSonnet cannot be used unless each file to be imported is listed here in the
importsattribute.Imported files may not be able to use DataSonnet functions from DataSonnet's own libraries, normally available as
ds.map()and the like. The cause for this is not yet known.
-