<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
  ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you under the Apache License, Version 2.0 (the
  ~  "License"); you may not use this file except in compliance
  ~  with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<document>
    <properties>
        <title>Apache Synapse - Samples Catalog</title>
    </properties>
    <body>
        <section name="Apache Synapse Samples Catalog">
            <p>
                Apache Synapse comes preloaded with a horde of sample configurations that
                demonstrate various features of the service bus. This catalog lists out all
                these sample configurations and provides detailed information on how to run
                them. These samples require an Apache ANT installation for you to be able to
                try them out. If you are new to Synapse and have no experience running Synapse,
                the Quick Start Guide may be a better starting point. If you are comfortable
                with running Synapse samples, please go ahead and pick the samples you are
                interested in.
            </p>
            <subsection name="Message Mediation">
                <p>
                    <ul>
                        <li><a href="samples/sample0.html">Sample 0: Introduction to Synapse</a></li>
                        <li><a href="samples/sample1.html">Sample 1: Simple content based routing (CBR) of messages</a></li>
                        <li><a href="samples/sample2.html">Sample 2: CBR with the Switch-case mediator, using message properties</a></li>
                        <li><a href="samples/sample3.html">Sample 3: Local Registry entry definitions, reusable endpoints and sequences</a></li>
                        <li><a href="samples/sample4.html">Sample 4: Introduction to error handling</a></li>
                        <li><a href="samples/sample5.html">Sample 5: Creating SOAP fault messages and changing the direction of a message</a></li>
                        <li><a href="samples/sample6.html">Sample 6: Manipulating SOAP headers, and filtering incoming and outgoing messages</a></li>
                        <li><a href="samples/sample7.html">Sample 7: Introduction to local registry entries and using schema validation</a></li>
                        <li><a href="samples/sample8.html">Sample 8: Introduction to static and dynamic registry resources, and using XSLT transformations</a></li>
                        <li><a href="samples/sample9.html">Sample 9: Introduction to dynamic sequences with registry</a></li>
                        <li><a href="samples/sample10.html">Sample 10: Introduction to dynamic endpoints with registry</a></li>
                        <li><a href="samples/sample11.html">Sample 11: A full registry based configuration, and sharing a configuration between multiple instances</a></li>
                        <li><a href="samples/sample12.html">Sample 12: One-way messaging / fire-and-forget through Synapse</a></li>
                        <li><a href="samples/sample14.html">Sample 14: Sequences and Endpoints as local registry items</a></li>
                        <li><a href="samples/sample15.html">Sample 15: Message Copying and Content Enriching with Enrich Mediator</a></li>
                        <li><a href="samples/sample16.html">Sample 16: Introduction to dynamic and static keys</a></li>
                        <li><a href="samples/sample17.html">Sample 17: Introduction to the payloadFactory mediator</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Endpoints">
                <p>
                    <ul>
                        <li><a href="samples/sample50.html">Sample 50: POX to SOAP conversion</a></li>
                        <li><a href="samples/sample51.html">Sample 51: MTOM and SwA optimizations and request/response correlation</a></li>
                        <li><a href="samples/sample52.html">Sample 52: Session less load balancing between 3 endpoints</a></li>
                        <li><a href="samples/sample53.html">Sample 53: Fail-over routing among 3 endpoints</a></li>
                        <li><a href="samples/sample54.html">Sample 54: Session affinity load balancing between 3 endpoints</a></li>
                        <li><a href="samples/sample55.html">Sample 55: Session affinity load balancing between fail-over endpoints</a></li>
                        <li><a href="samples/sample56.html">Sample 56: WSDL endpoint</a></li>
                        <li><a href="samples/sample57.html">Sample 57: Dynamic load balancing between 3 nodes</a></li>
                        <li><a href="samples/sample58.html">Sample 58: Static load balancing between 3 nodes</a></li>
                        <li><a href="samples/sample59.html">Sample 59: Weighted Round-Robin loadbalancing between 3 endpoints</a></li>
                        <li><a href="samples/sample61.html">Sample 61: Routing message to 3 static recipients</a></li>
                        <li><a href="samples/sample62.html">Sample 62: Routing message to dynamic recipients</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="QoS Addition/Removal with Message Mediation">
                <p>
                    <ul>
                        <li><a href="samples/sample100.html">Sample 100: Using WS-Security for outgoing messages</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Proxy Services">
                <p>
                    <ul>
                        <li><a href="samples/sample150.html">Sample 150: Introduction to proxy services</a></li>
                        <li><a href="samples/sample151.html">Sample 151: Custom sequences and endpoints with proxy services</a></li>
                        <li><a href="samples/sample152.html">Sample 152: Switching transports and message format from SOAP to REST/POX</a></li>
                        <li><a href="samples/sample153.html">Sample 153: Routing the messages without processing the security headers</a></li>
                        <li><a href="samples/sample154.html">Sample 154: Load Balancing with proxy services</a></li>
                        <li><a href="samples/sample155.html">Sample 155: Dual channel invocation on client side and server side</a></li>
                        <li><a href="samples/sample156.html">Sample 156: Service integration with specifying the receiving sequence</a></li>
                        <li><a href="samples/sample157.html">Sample 157: Conditional router mediator for implementing complex routing scenarios</a></li>
                        <li><a href="samples/sample158.html">Sample 158: Exposing a SOAP service over JSON</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="QoS Addition/Removal with Proxy Services">
                <p>
                    <ul>
                        <li><a href="samples/sample200.html">Sample 200: Engaging WS-Security on proxy services</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Transports">
                <p>
                    <ul>
                        <li><a href="samples/sample250.html">Sample 250: Introduction to transport switching - JMS to HTTP/S</a></li>
                        <li><a href="samples/sample251.html">Sample 251: Switching from http/s to JMS</a></li>
                        <li><a href="samples/sample252.html">Sample 252: Pure text, binary and POX message support with JMS</a></li>
                        <li><a href="samples/sample253.html">Sample 253: One way bridging from JMS to http and replying with a 202 Accepted response</a></li>
                        <li><a href="samples/sample254.html">Sample 254: Using file system as the transport medium (reading/writing files)</a></li>
                        <li><a href="samples/sample255.html">Sample 255: Switching from file transport (ftp) to the mail transport</a></li>
                        <li><a href="samples/sample256.html">Sample 256: Proxy services with the mail transport</a></li>
                        <li><a href="samples/sample257.html">Sample 257: Proxy services with the FIX transport</a></li>
                        <li><a href="samples/sample258.html">Sample 258: Switching from HTTP to FIX </a></li>
                        <li><a href="samples/sample259.html">Sample 259: Switching from FIX to HTTP </a></li>
                        <li><a href="samples/sample260.html">Sample 260: Switching from FIX to AMQP </a></li>
                        <li><a href="samples/sample261.html">Sample 261: Switch between different FIX versions </a></li>
                        <li><a href="samples/sample262.html">Sample 262: Content Based Routing of FIX messages </a></li>
                        <li><a href="samples/sample263.html">Sample 263: Transport switching - JMS to http/s using JBoss Messaging (JBM)</a></li>
                        <li><a href="samples/sample264.html">Sample 264: Request-response invocations with the JMS transport</a></li>
                        <li><a href="samples/sample265.html">Sample 265: Switching from TCP to HTTP/S</a></li>
                        <li><a href="samples/sample266.html">Sample 266: Switching from UDP to HTTP/S</a></li>
                        <li><a href="samples/sample269.html">Sample 269: AMQP transport-consumer proxy</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Scheduled Tasks">
                <p>
                    <ul>
                        <li><a href="samples/sample300.html">Sample 300: Introduction to tasks with simple trigger</a></li>
                        <li><a href="samples/sample301.html">Sample 301: Message Injector Task to invoke a named sequence</a></li>
                        <li><a href="samples/sample302.html">Sample 302: Message Injector Task to invoke a Proxy service</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Advanced Mediators">
                <h4>Script Mediator (Writing Mediation Logic in Scripting Languages)</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample350.html">Sample 350: Introduction to the script mediator using js scripts</a></li>
                        <li><a href="samples/sample351.html">Sample 351: Inline scripts with the script mediator</a></li>
                        <li><a href="samples/sample352.html">Sample 352: Accessing Synapse MessageContext API through scripts</a></li>
                        <li><a href="samples/sample353.html">Sample 353: Using Ruby scripts for mediation</a></li>
                        <li><a href="samples/sample354.html">Sample 354: Using In-lined Ruby scripts for mediation</a></li>
                        <li><a href="samples/sample355.html">Sample 355: Using Python scripts for mediation</a></li>
                    </ul>
                </p>
                <h4>Database Mediators (Interacting with Databases)</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample360.html">Sample 360: Introduction to dblookup mediator</a></li>
                        <li><a href="samples/sample361.html">Sample 361: Introduction to dbreport mediator</a></li>
                        <li><a href="samples/sample362.html">Sample 362: Perform database lookups and updates in the same mediation sequence</a></li>
                        <li><a href="samples/sample363.html">Sample 363: Reusable database connection pools</a></li>
                        <li><a href="samples/sample364.html">Sample 364: Executing database Stored Procedures</a></li>
                    </ul>
                </p>
                <h4>Throttle Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample370.html">Sample 370: Introduction to throttle mediator and concurrency throttling</a></li>
                        <li><a href="samples/sample371.html">Sample 371: Restricting requests based on policies</a></li>
                        <li><a href="samples/sample372.html">Sample 372: Use of both concurrency throttling and request rate based throttling </a></li>
                    </ul>
                </p>
                <h4>Class Mediator (Writing Mediation Logic in Java)</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample380.html">Sample 380: Writing custom mediation logic in Java</a></li>
                        <li><a href="samples/sample381.html">Sample 381: Class mediator for CBR of binary messages</a></li>
                    </ul>
                </p>
                <h4>XQuery Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample390.html">Sample 390: Introduction to the XQuery mediator</a></li>
                        <li><a href="samples/sample391.html">Sample 391: Using external XML documents in the XQuery mediator</a></li>
                    </ul>
                </p>
                <h4>Iterate Mediator and Aggregate Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample400.html">Sample 400: Message splitting and aggregation</a></li>
                    </ul>
                </p>
                <h4>Transaction Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample410.html">Sample 410: Distributed transactions management with the transaction mediator</a></li>
                    </ul>
                </p>
                <h4>Cache Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample420.html">Sample 420: Simple response caching scenario</a></li>
                    </ul>
                </p>
                <h4>Callout Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample430.html">Sample 430: Callout mediator for synchronous web service invocations</a></li>
                        <li><a href="samples/sample431.html">Sample 431: Callout Mediator with WS-Security for Outgoing Messages</a></li>
                        <li><a href="samples/sample432.html">Sample 432: Callout Mediator - Invoke a secured service which has different policies for inbound and outbound flows</a></li>
                        <li><a href="samples/sample433.html">Sample 433: Callout Mediator - Invoke a service using a defined Endpoint</a></li>
                        <li><a href="samples/sample434.html">Sample 434: Callout Mediator - Invoke a service using an inline Endpoint</a></li>
                    </ul>
                </p>
                <h4>Respond Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample440.html">Sample 440: Respond Mediator - Echo Service with a Proxy service</a></li>
                        <li><a href="samples/sample441.html">Sample 441: Respond Mediator - Mock Service with a Proxy service</a></li>

                    </ul>
                </p>
                <h4>URL Rewrite Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample450.html">Sample 450: Introduction to the URL Rewrite mediator</a></li>
                        <li><a href="samples/sample451.html">Sample 451: Conditional URL rewriting</a></li>
                        <li><a href="samples/sample452.html">Sample 452: Conditional URL rewriting with multiple rules</a></li>                        
                    </ul>
                </p>
                <h4>Spring Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample460.html">Sample 460: Introduction to the Spring mediator</a></li>
                    </ul>
                </p>
                
                
                <h4>EJB Mediator</h4>
                <p>
                    <ul>
                        <li><a href="samples/sample470.html">Sample 470: Introduction to the EJB mediator I: Invoking Stateless Session Beans</a></li>
                        <li><a href="samples/sample471.html">Sample 471: Introduction to the EJB mediator II: Invoking Stateful Session Beans</a></li>
                    </ul>
                </p>
                
                
            </subsection>
            <subsection name="Eventing">
                <p>
                    <ul>
                        <li><a href="samples/sample500.html">Sample 500: Introduction to Eventing</a></li>
                        <li><a href="samples/sample501.html">Sample 501: Event source with static subscriptions</a></li>
                        <li><a href="samples/sample502.html">Sample 502: Transforming events before publish</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Synapse Configuration Model">
                <p>
                    <ul>
                        <li><a href="samples/sample600.html">Sample 600: File hierarchy based configuration builder</a></li>
                        <li><a href="samples/sample601.html">Sample 601: Using Synapse Observers</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Priority Based Mediation">
                <p>
                    <ul>
                        <li><a href="samples/sample650.html">Sample 650: Introduction to priority based mediation</a></li>
                        <li><a href="samples/sample651.html">Sample 651: Priority based dispatching at transport level</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Message Stores and Message Processors">
                <p>
                    <ul>
                        <li><a href="samples/sample700.html">Sample 700: Introduction to Synapse Message Stores</a></li>
                        <li><a href="samples/sample701.html">Sample 701: Introduction to Message Sampling Processor</a></li>
                        <li><a href="samples/sample702.html">Sample 702: Introduction to Message Forwarding Processor</a></li>
                        <li><a href="samples/sample703.html">Sample 703: Introduction to Message Resequencing Processor</a></li>
                        <li><a href="samples/sample704.html">Sample 704: Invoke Secured Services with Scheduled Message Forwarding Processor</a></li>
                        <li><a href="samples/sample705.html">Sample 705: Introduction to Message Forwarding Processor With Advance Parameters</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Templates">
                <p>
                    <ul>
                        <li><a href="samples/sample750.html">Sample 750: Introduction to Synapse Templates</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="REST API">
                <p>
                    <ul>
                        <li><a href="samples/sample800.html">Sample 800: Introduction to REST APIs</a></li>
                    </ul>
                </p>
            </subsection>
            <subsection name="Synapse EIP Library">
                <p>
                    <ul>
                        <li><a href="samples/sample850.html">Sample 850: Introduction to Synapse Callout Block function template</a></li>
                        <li><a href="samples/sample851.html">Sample 851: Introduction to Synapse Splitter and Aggregator eip function templates</a></li>
                        <li><a href="samples/sample852.html">Sample 852: Introduction to Synapse Splitter-Agrregator combined function template</a></li>
                        <li><a href="samples/sample853.html">Sample 853: Introduction to Synapse Scatter-Gather eip function template</a></li>
<li><a href="samples/sample854.html">Sample 854: Introduction to Synapse Wire Tap eip function template</a></li>
<li><a href="samples/sample855.html">Sample 855: Introduction to Synapse Content Based Router eip function template</a></li>
<li><a href="samples/sample856.html">Sample 856: Introduction to Synapse Dynamic Router eip function template</a></li>
<li><a href="samples/sample857.html">Sample 857: Introduction to Synapse Recipient List eip function template</a></li>
                    </ul>
                </p>
            </subsection>
        </section>
    </body>
</document>
