Return to Snippet

Revision: 22352
at January 10, 2010 17:39 by hoggarth


Initial Code
<?xml version="1.0"?>
<definitions xmlns="http://ws.apache.org/ns/synapse" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <!--
    <proxy name="MicroBlog" transports="vfs">
        <parameter name="transport.vfs.FileURI">file:///Users/hoggarth/Development/synase_present/test/in</parameter>
        <parameter name="transport.vfs.ContentType">text/xml</parameter>
        <parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter>
        <parameter name="transport.PollInterval">15</parameter>
        <parameter name="transport.vfs.MoveAfterProcess">file:///Users/hoggarth/Development/synase_present/test/original</parameter>
        <parameter name="transport.vfs.MoveAfterFailure">file:///Users/hoggarth/Development/synase_present/test/original</parameter>
        <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
        <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
    -->
    <proxy name="MicroBlog" transports="http">
        <target>
            <outSequence>
                <log separator=",">
                    <property name="MESSAGE" value="OUT"/>
                </log>
                <send>
                    <endpoint>
                        <address uri="vfs:file:///Users/hoggarth/Development/synase_present/test/out"/>
                    </endpoint>
                </send>
            </outSequence>
            <inSequence>
                <log separator=",">
                    <property name="MESSAGE" value="IN"/>
                    <property name="update-message" expression="//message"/>
                    <property name="root" expression="name(//soapenv:Body/*[position()=1])"/>
                </log>
                <switch source="name(//soapenv:Body/*[position()=1])">
                    <case regex="update">
                        <dbreport>
                            <connection>
                                <pool>
                                    <driver>org.apache.derby.jdbc.ClientDriver</driver>
                                    <url>jdbc:derby://localhost:1527/microblog;user=synapse;password=synapse;create=false</url>
                                    <user>synapse</user>
                                    <password>synapse</password>
                                </pool>
                            </connection>
                            <statement>
                                <sql>INSERT INTO status (status) VALUES (?)</sql>
                                <parameter expression="//message/child::text()" type="VARCHAR"/>
                            </statement>
                        </dbreport>
                        <script language="js">
                         			mc.setPayloadXML(
                         			&amp;lt;greeting&amp;gt;Hello World&amp;lt;/greeting&amp;gt;
                         			);
                         		</script>
                    </case>
                    <case regex="timeline">
                        <log separator=",">
                            <property name="MESSAGE" value="TIMELINE"/>
                        </log>
                        <dblookup>
                            <connection>
                                <pool>
                                    <driver>org.apache.derby.jdbc.ClientDriver</driver>
                                    <url>jdbc:derby://localhost:1527/microblog;user=synapse;password=synapse;create=false</url>
                                    <user>synapse</user>
                                    <password>synapse</password>
                                </pool>
                            </connection>
                            <statement>
                                <sql>SELECT * FROM STATUS ORDER BY ID DESC FETCH FIRST ROW ONLY</sql>
                                <result name="status_1" column="status"/>
                            </statement>
                            <statement>
                                <sql>SELECT * FROM STATUS ORDER BY ID DESC OFFSET 1 ROW FETCH FIRST ROW ONLY</sql>
                                <result name="status_2" column="status"/>
                            </statement>
                            <statement>
                                <sql>SELECT * FROM STATUS ORDER BY ID DESC OFFSET 2 ROWS FETCH FIRST ROW ONLY</sql>
                                <result name="status_3" column="status"/>
                            </statement>
                            <statement>
                                <sql>SELECT * FROM STATUS ORDER BY ID DESC OFFSET 3 ROWS FETCH FIRST ROW ONLY</sql>
                                <result name="status_4" column="status"/>
                            </statement>
                            <statement>
                                <sql>SELECT * FROM STATUS ORDER BY ID DESC OFFSET 4 ROWS FETCH FIRST ROW ONLY</sql>
                                <result name="status_5" column="status"/>
                            </statement>
                        </dblookup>
                        <script language="js">
                         			mc.setPayloadXML(new XML("&amp;lt;timeline&amp;gt;" 
                         			                       + "&amp;lt;message&amp;gt;" + mc.getProperty("status_1") + "&amp;lt;/message&amp;gt;"
                         			                       + "&amp;lt;message&amp;gt;" + mc.getProperty("status_2") + "&amp;lt;/message&amp;gt;"
                         			                       + "&amp;lt;message&amp;gt;" + mc.getProperty("status_3") + "&amp;lt;/message&amp;gt;"
                         			                       + "&amp;lt;message&amp;gt;" + mc.getProperty("status_4") + "&amp;lt;/message&amp;gt;"
                         			                       + "&amp;lt;message&amp;gt;" + mc.getProperty("status_5") + "&amp;lt;/message&amp;gt;"
                         			                       + "&amp;lt;/timeline&amp;gt;")
                         			);
                         		</script>
                    </case>
                </switch>
                <header name="To" action="remove"/>
                <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
                <property name="RESPONSE" value="true"/>
                <send/>
            </inSequence>
        </target>
        <publishWSDL uri="file:../src/resources/proxy/hello.wsdl"/>
    </proxy>
    <proxy name="Twitter" transports="http">
        <target>
            <outSequence>
                <log separator=",">
                    <property name="MESSAGE" value="OUT"/>
                </log>
                <send/>
            </outSequence>
            <inSequence>
                <log separator=",">
                    <property name="MESSAGE" value="IN"/>
                    <property name="update-message" expression="//message"/>
                    <property name="root" expression="name(//soapenv:Body/*[position()=1])"/>
                </log>
                <switch source="name(//soapenv:Body/*[position()=1])">
                    <case regex="update">
                        <xslt key="transform/twitter_update.xslt"/>
                        <property name="Authorization" value="Basic c3luYXBzZV9wcmVzZW50OnN5bmFwc2U=" scope="transport"/>
                        <send>
                            <endpoint>
                                <!--
                        <address uri="http://twitter.com/statuses/update.xml" format="pox"/>
-->
                                <address uri="http://localhost:9000/statuses/update.xml" format="pox"/>
                            </endpoint>
                        </send>
                    </case>
                    <case regex="timeline">
                        <xslt key="transform/twitter_timeline.xslt"/>
<!--
                            <property name="Authorization" value="Basic c3luYXBzZV9wcmVzZW50OnN5bmFwc2U=" scope="transport"/>
-->
                        <send>
                            <endpoint>
                                <address uri="http://localhost:9000/statuses" format="get"/>
                            </endpoint>
                        </send>
                    </case>
                </switch>
                <!--
                <script language="js">
                 			mc.setPayloadXML(
                 			&amp;lt;greeting&amp;gt;Hello World&amp;lt;/greeting&amp;gt;
                 			);
                </script>
                <header name="To" action="remove"/>
                <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
                <property name="RESPONSE" value="true"/>
                <send/>
                -->
            </inSequence>
        </target>
        <publishWSDL uri="file:../src/resources/proxy/hello.wsdl"/>
    </proxy>
    <registry provider="org.apache.synapse.registry.url.SimpleURLRegistry">
        <parameter name="root">file:../src/resources/</parameter>
        <parameter name="cachableDuration">15000</parameter>
    </registry>
</definitions>

Initial URL


Initial Description


Initial Title
Crappy Synapse Config

Initial Tags


Initial Language
XML