Skip to content

Instantly share code, notes, and snippets.

@djuang1
Created September 14, 2017 22:30
Show Gist options
  • Save djuang1/e334945cb1312dc7828fd1154d5adeff to your computer and use it in GitHub Desktop.
Save djuang1/e334945cb1312dc7828fd1154d5adeff to your computer and use it in GitHub Desktop.
MuleSoft example showing cache scope
<http:listener-config name="user-api-httpListenerConfig" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<ee:object-store-caching-strategy name="Caching_Strategy" keyGenerationExpression="#[flowVars.userID]" doc:name="Caching Strategy"/>
<db:mysql-config name="MySQL_Configuration" host="${db.host}" port="${db.port}" user="${db.user}" database="${db.db}" doc:name="MySQL Configuration" password="Mule1379"/>
<flow name="get:/user/{id}:user-api-config">
<timer-interceptor doc:name="Timer"/>
<logger message="Query parameter user_id = #[message.inboundProperties.'http.query.params'.id]" level="INFO" doc:name="Logger"/>
<set-variable variableName="userID" value="#[id]" doc:name="Variable"/>
<ee:cache cachingStrategy-ref="Caching_Strategy" doc:name="Cache">
<logger message="SubFlow - variable userID = #[flowVars.userID]" level="INFO" doc:name="Logger"/>
<db:select config-ref="MySQL_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[select * from records where id = #[flowVars.userID]]]></db:parameterized-query>
</db:select>
</ee:cache>
<logger level="INFO" doc:name="Logger" message="payload - #[payload]"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment