Media Type Metadata Selector (.^mediaType)
Returns the MIME type of a value that includes parameters (for example, application/json;charset=UTF-16). The expression in the value of { “myMediaType” : payload.^mediaType } might return “myMediaType”: “/; charset=UTF-8″ for an input POJO.
In the following Mule app flow, the Logger uses payload.^mediaType to select the media type of 2014-10-12T11:11:19-00:03 set in the Set Payload (set-payload) component.
Mule App XML in Anypoint Studio:
<flow name=”setpayloadobjectFlow” >
<scheduler doc:name=”Scheduler” >
<scheduling-strategy >
<fixed-frequency frequency=”15″ timeUnit=”SECONDS”/>
</scheduling-strategy>
</scheduler>
<set-payload value=’#[|2014-10-12T11:11:19-00:03| as DateTime]’ doc:name=”Set Payload” />
<logger level=”INFO” doc:name=”Logger” message=”#[payload.^mediaType]”/>
</flow>
The Studio console output shows that the DateTime payload has the application/java; charset=UTF-8 media type.
Console Output in Anypoint Studio:
INFO 2019-04-20 16:41:01,276 [[MuleRuntime].cpuLight.04:
[setpayloadobject].setpayloadobjectFlow.CPU_LITE @7e991c71]
[event: c0e96860-63c5-11e9-bcff-8c8590a99d48]
rg.mule.runtime.core.internal.processor.LoggerMessageProcessor:
application/java; charset=UTF-8
In the following Mule app flow, the Loggers use payload.^mediaType to select a string “my string”, then to select a string that is set within an fx expression (#[“my string as String type” as String]) in the Set Payload (set-payload) component.
Mule App XML in Anypoint Studio:
<flow name=”setpayloadobjectFlow” >
<scheduler doc:name=”Scheduler” >
<scheduling-strategy >
<fixed-frequency frequency=”15″ timeUnit=”SECONDS”/>
</scheduling-strategy>
</scheduler>
<!– Set the payload to “my string”. –>
<set-payload value='”my string”‘ doc:name=”Set Payload” />
<!– Select the media type of “my string”. –>
<logger level=”INFO” doc:name=”Logger” message=’#[payload.^mediaType]’/>
<!– Set the payload using the fx expression “my string” as String. –>
<set-payload value=’#[“my string as String type” as String]’ doc:name=”Set Payload” />
<!– Select the media type of a Java string. –>
<logger level=”INFO” doc:name=”Logger” message=’#[payload.^mediaType]’/>
</flow>
The Studio console output shows that the simple string has the media type /, while the string that is set in the fx expression has the media type application/java; charset=UTF-8.
Console Output in Anypoint Studio:
INFO 2019-04-20 16:52:50,801 [[MuleRuntime].cpuLight.01:
[setpayloadobject].setpayloadobjectFlow.CPU_LITE @5d914abe]
[event: 68121cd0-63c7-11e9-bcff-8c8590a99d48]
org.mule.runtime.core.internal.processor.LoggerMessageProcessor:
*/*
INFO 2019-04-20 16:52:51,085 [[MuleRuntime].cpuLight.01:
[setpayloadobject].setpayloadobjectFlow.CPU_LITE @5d914abe]
[event: 68121cd0-63c7-11e9-bcff-8c8590a99d48]
org.mule.runtime.core.internal.processor.LoggerMessageProcessor:
application/java; charset=UTF-8
If you like my post please follow me to read my latest post on programming and technology.
Problem Statement: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. Example…
Given an integer A. Compute and return the square root of A. If A is…
Given a zero-based permutation nums (0-indexed), build an array ans of the same length where…
A heap is a specialized tree-based data structure that satisfies the heap property. It is…
What is the Lowest Common Ancestor? In a tree, the lowest common ancestor (LCA) of…