Skip to content

Instantly share code, notes, and snippets.

@bibryam
Created July 27, 2013 09:00
Show Gist options
  • Select an option

  • Save bibryam/6094302 to your computer and use it in GitHub Desktop.

Select an option

Save bibryam/6094302 to your computer and use it in GitHub Desktop.
Camel Infispan Transactional Example
<route>
<from uri="restlet:/persons?restletMethod=POST"/>
<transacted/>
<!-- PERSIST TO DB -->
<to uri="sql:insert into person(firstName, lastName) values(:#firstName,:#lastName)?dataSource=#dataSource"/>
<!-- DAMN EXCEPTION THROWER-->
<filter>
<simple>${in.header.lastName} == "damn"</simple>
<throwException ref="damn"/>
</filter>
<!-- PUT TO CACHE -->
<to uri="sql:select id from person WHERE id = (select max(id) from person)?dataSource=#dataSource"/>
<setHeader headerName="personId">
<simple>${body[0][ID]}</simple>
</setHeader>
<setHeader headerName="CamelInfinispanKey">
<simple>${headerAs(personId, String)}</simple>
</setHeader>
<setHeader headerName="CamelInfinispanValue">
<simple>${in.header.firstName}</simple>
</setHeader>
<setHeader headerName="CamelInfinispanOperation">
<simple>CamelInfinispanOperationPut</simple>
</setHeader>
<to uri="infinispan://localhost?cacheContainer=#cacheContainer&amp;caseName=orders"/>
</route>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment