1<u:proxy id="txn-proxy">
 2    <u:transport id="http-8280"/>
 3    <u:target>
 4        <u:inSequence>
 5            <u:java import="org.springframework.jdbc.core.simple.*;"><![CDATA[
 6                String symbol = mediation.getXMLSupport().extractAsStringUsingXPath(msg, "//request/symbol", null);
 7                msg.beginTransaction();
 8
 9                SimpleJdbcTemplate t = new SimpleJdbcTemplate(mediation.getDataSource("dataSource"));
10                t.update("INSERT INTO quotes (symbol) VALUES (?)", new Object[] {symbol});
11
12                msg.suspendTransaction();
13                System.out.println("Suspended...");
14            ]]></u:java>
15        </u:inSequence>
16        <u:inDestination>
17            <u:address>http://localhost:9000/service/SimpleStockQuoteService</u:address>
18        </u:inDestination>
19        <u:outSequence>
20            <u:java><![CDATA[
21                if (Double.parseDouble(mediation.getXMLSupport().extractAsStringUsingXPath(msg, "//last", null)) == 0) {
22                    msg.resumeAndRollbackTransaction();
23                    System.out.println("Rollback...");
24                } else {
25                    msg.resumeAndCommitTransaction();
26                    System.out.println("Commit...");
27                }
28            ]]></u:java>
29        </u:outSequence>
30        <u:outDestination>
31            <u:address type="response"/>
32        </u:outDestination>
33    </u:target>
34</u:proxy>
35
36<!--Standard Spring transactional DataSource definition-->
37<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
38    <property name="dataSource" ref="dataSource"/>
39</bean>
40
41<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
42    <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
43    <property name="url" value="jdbc:derby://localhost:1529/build/unittestdb"/>
44</bean>